Tema 2: Gestión de la CPU

Documentos relacionados
Conceptos de Planificación

ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

Procesos. Planificación del Procesador.

Procesos Definición y Estados

6. Planificación. Los procesos tienden a tener ráfagas de ejecución (CPU-burst) y ráfagas de espera de operaciones de E/S (I/O burst).

PLANIFICACION DE LA CPU

Manipulación de procesos

Introducción a los Sistemas Operativos

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

Unidad 2: Gestión de Procesos

Sistemas Operativos Tema 6. Planificación de procesos José Miguel Santos Alexis Quesada Francisco Santana

Tema 12: El sistema operativo y los procesos

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR GESTIÓN DE PROCESOS

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

Sistemas Operativos. Procesos

El modelo de Procesos

Planificación en Servidores de Información

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

dit Planificación de tareas de tiempo real Juan Antonio de la Puente DIT/UPM UPM Copyright 2007, Juan Antonio de la Puente

Sistemas Operativos. Oscar Bedoya

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

Actividades de Teoría de Sistemas Operativos Sistemas informáticos multiusuario y en red

GESTION DE LA MEMORIA

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Planificación multiprocesador. Niveles de granularidad. Niveles de granularidad. Niveles de granularidad. Planificación multiprocesador - SSOO I

EJERCICIOS TEMAS 1 Y 2 - SO SOLUCIONES

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2015 Planificación

Introducción a los Sistemas Operativos

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Tema 2. Procesos. 1. Concepto de proceso

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Gestión de la Memoria y Memoria Virtual

Planificador de Linux (Scheduler)

Tema 19 Gestión de procesos

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

Sistemas Operativos- Evolución Histórica

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Sistemas Operativos. Sistemas Informáticos I.E.S. Virgen de la Paloma

Sistemas Operativos Gestión de memoria

ESTRUCTURAS BÁSICAS DE UN S.O.

Tema 1: Programación Multiproceso. Curso

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Capítulo 1. Sistemas de Asignación Contigua Basados en Particiones

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV

Métodos de Asignación

Mercedes Fernández Redondo

Tema 6 Organización y gestión de la memoria

Tema 20 Gestión de memoria

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistemas operativos. Tema 10: Sistemas de ficheros

Gestión de Entrada-salida

Convivencia Introducción

PLANIFICACIÓN DE PROCESOS

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

Pontificia Universidad Católica del Ecuador

1.- INTRODUCCIÓN TEORIA DE COLAS

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Concurrencia. Concurrencia

Guía práctica de estudio 03: Algoritmos

Sistemas Operativos. Introducción. Tema 6

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Qué es un programa informático?

Microprocesadores. Procesadores IA-32 e Intel R 64 Tareas. Alejandro Furfaro

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? El sistema operativo como máquina extendida El sistema operativo como gestor de

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:

Scheduling. Ricardo Corin

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos:

GESTION DE ENTRADA Y SALIDA

Clase Práctica Memoria Caché

4. Cuánta memoria puede direccionar con registros de 16 bits si la palabra es de 20 bits? Respuesta: Se puede direccionar 2 20 = 1Mb.

Definición de Sistema Operativo

CÓMO TRABAJA TU SISTEMA OPERATIVO?

Memoria. Organización de memorias estáticas.

Concurrencia y paralelismo

SOLUCIONES. SISTEMAS OPERATIVOS Examen de la convocatoria extraordinaria de diciembre 2 de diciembre de 2010

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

SISTEMAS OPERATIVOS Arquitectura de computadores

Funcionamiento de la computadora

TEMA 7. GESTIÓN DE PROCESOS

Organización de Computadoras

Transcripción:

Tema 2: Gestión de la CPU Yolanda Blanco Fernández yolanda@det.uvigo.es

Programas vs Procesos Programa: datos e instrucciones. Un proceso es un programa en ejecución: datos, instrucciones, recursos y estado. El SO carga el programa en memoria para su ejecución: las instrucciones van accediendo a los datos que necesiten y guardando resultados en la zona de memoria asignada. MEMORIA PROGRAMA SISTEMA OPERATIVO Instrucciones Instrucciones Datos Datos

Concepto de Multiprogramación El objetivo es aprovechar los tiempos muertos de la CPU para ejecutar otros programas, consiguiendo con ello un mejor aprovechamiento de los recursos del ordenador (gracias al incremento de uso del procesador). Crea la falsa apariencia de ejecución simultánea de varios programas: en cada instante sólo podrá ejecutarse un programa en la CPU, pero como los restantes están realizando operaciones de E/S sobre los dispositivos, el usuario tendrá la sensación de que todos están en ejecución.

Gestión de Ejecución de Programas El SO crea las estructuras necesarias para gestionar todos los recursos necesarios durante la ejecución de los programas cargados en memoria. Estos datos se reúnen en el Bloque de Control del Sistema (SCB): Lista de descriptores de los procesos. Puntero al descriptor del proceso que ocupa actualmente la CPU (proceso en ejecución). Puntero a la cola de descriptores de los procesos que están esperando para poder usar el procesador (procesos preparados). Puntero a la cola de descriptores de los procesos que no están usando la CPU, y que están esperando a que se produzca algún evento, como la finalización de una operación de E/S (procesos en espera)). Puntero a la cola de descriptores de los procesos que no están usando la CPU por no estar activos pero que, ante una orden de activación, podrían seguir ejecutándose (interrupciones).

Estado del Proceso Nuevo: El proceso está siendo creado. En ejecución: Se están ejecutando las instrucciones. En espera: El proceso está esperando a que se produzca un suceso (fin de operación E/S o recepción de señal). Preparado: El proceso está a la espera de que le asignen a un procesador. Terminado: Ha terminado la ejecución del proceso. nuevo admitido interrupción terminado salida preparado en ejecución terminación de operacióne/s en espera en espera de suceso o de operación E/S

Información del Proceso Se almacena en el Bloque de Control del Proceso (PCB): Identificador del proceso (PID). Tipo de proceso. Privilegios. Prioridad. Estado CPU. Contador de programa. Registros. Estado del proceso. Recursos. Mapa de memoria donde se haya cargado el proceso. Ficheros abiertos. Jerarquía de procesos: proceso padre y procesos hijos. Objetivo: Preservar la información del proceso en el caso de que su ejecución tenga que ser temporalmente suspendida (cambio de contexto).

Prioridades Mecanismo que permite definir la urgencia con la que debe ejecutarse un proceso (la prioridad que tiene frente a otros procesos). Número entero: típicamente si P rioridad (A) > P rioridad (B) A es más prioritario que B. Tipos de prioridades: Asignadas por el SO. Asignadas por el propietario. Estáticas: no pueden ser modificadas durante la ejecución del proceso. Nunca en sistemas de tiempo real. Dinámicas: Un proceso puede modificar su prioridad para poder atender adecuadamente a todos los eventos que se produzcan.

Interrupciones Señal del HW ante un evento ajeno a la ejecución normal del proceso. Tras tratar la interrupción, el SO debe recuperar la ejecución del proceso en el punto en el que estaba antes de la misma.

Cambio de Contexto Se produce cuando se requiere la atención de algún servicio del SO (interrupción, llamada al SO, ejecución de instrucción privilegiada, etc). El SO salva el estado del proceso en su PCB, o lo restaura desde los datos almacenados en dicho bloque para continuar su ejecución en la CPU. Llamada al SO o interrupción Salva el estado del proceso Cambio de contexto Ejecución del SO Repone el estado del proceso Cambio de contexto

Cambio de Proceso Proceso A Proceso B Llamada al SO o interrupción Salva el estado del proceso A Repone el estado del proceso B Ejecución del SO Salva el estado del proceso B Ejecución del SO Repone el estado del proceso A

Planificación de Procesos Multiprogramación: tener en ejecución varios procesos al mismo tiempo para maximizar utilización de CPU. Sistemas de tiempo compartido: conmutar rápidamente la CPU entre los procesos en memoria de forma que los usuarios puedan interactuar con los programas en ejecución. Planificador de CPU: decide cuál de los procesos cargados en memoria pasará a ejecutarse en la CPU. El planificador no le da a cada proceso el tiempo de CPU que precisa de forma consecutiva ráfaga de CPU. Sucesión de ráfagas de CPU y operaciones E/S. Agenda de contenidos: 1. Colas de planificación. 2. Tipos de planificadores. 3. Criterios de planificación. 4. Algoritmos de planificación.

Colas de Planificación Cola de trabajos: almacena los procesos que entran en el sistema. Cola de procesos preparados: lista enlazada de los PCBs de los procesos que están cargados en memoria esperando a ocupar la CPU. Cola del dispositivo: lista enlazada de PCBs de los procesos que están esperando para poder acceder al dispositivo.

Tipos de Planificadores Planificador a largo plazo o planificador de trabajos: Qué trabajos se cargan en memoria para ser ejecutados en CPU? Controla el grado de multiprogramación del sistema. Alcanzar equilibrio entre procesos limitados por E/S (muchas operaciones de E/S y pocos cálculos) y procesos limitados por la CPU (muchos cálculos y operaciones E/S esporádicas). Planificador a corto plazo o planificador de CPU: Cuál de los procesos cargados en memoria se ejecutará en CPU? Con apropiación (un proceso puede desalojar a otro de la CPU) o sin apropiación (el proceso que ocupa la CPU no puede ser desalojado hasta terminar su ejecución o conmutar a estado de espera). Mayor frecuencia de ejecución que el planificador de trabajos. Planificador a medio plazo: Intercambio: Elimina procesos de la memoria (dejando de contender por la CPU) para luego volver a cargarlos. Para mejorar la combinación de procesos E/S y limitados por CPU o por restricciones de la memoria del sistema.

Criterios para elegir un Algoritmo de Planificación Tiempo de servicio: tiempo de carga en memoria + tiempo de espera en cola de procesos preparados + tiempo en CPU + tiempo consumido en operaciones E/S Tiempo de ejecución: tiempo en CPU + tiempo consumido en operaciones E/S Tiempo de procesador: tiempo de ejecución en CPU Tiempo de espera: tiempo en cola de procesos preparados + tiempo consumido en operaciones de E/S Rendimiento: tiempo de CPU de todos los procesos tiempo total de CPU Eficiencia: Número de procesos ejecutados por unidad de tiempo.

Algoritmos de Planificación FCFS (First-Come, First-Served) RR (Round-Robin) SJF (Shortest-Job-First) Planificadores por prioridades Planificación mediante colas multinivel Planificación mediante colas multinivel realimentadas

FCFS: First-Come, First-Served Se asigna en primer lugar la CPU al proceso que primero la solicite. Cuando un proceso entra en la cola de procesos preparados, su PCB se coloca al final de la cola FIFO. Cuando la CPU queda libre, se asigna el procesador al proceso cuyo PCB está al principio de la cola (y se elimina de la misma). Tiempo medio de espera en cola varía significativamente si la duración de las ráfagas de CPU de los procesos es muy variable. Produce efecto convoy: Procesos intensivos en E/S están esperando a que un proceso con ráfaga de CPU larga deje libre el procesador. Consecuencias: Utilización de CPU y dispositivos de E/S menor que la que se conseguiría si se permitiera a los procesos más cortos ejecutarse primero. Es un algoritmo colaborativo (sin apropiación) Inapropiado para sistemas de tiempo compartido.

SJF: Shortest-Job-First El algoritmo asocia a cada proceso la duración de su siguiente ráfaga de CPU. El planificador asigna la CPU al proceso (de la cola de procesos preparados) que tiene menor ráfaga de CPU. En caso de empate, se resuelve mediante FCFS. SJF proporciona el tiempo medio de espera mínimo para un conjunto de procesos. SJF puede ser apropiativo o colaborativo. SJF con apropiación se llama SRT (Shortest-Remaining-Time): apropiación cuando la ráfaga de CPU del proceso que acaba de llegar es menor que el tiempo de ejecución que le queda al que ocupa el procesador. Problema: cómo conocer la duración de la siguiente ráfaga de CPU del proceso? En planificador a largo plazo en un sistema por lotes, se usa como duración de la ráfaga el límite de tiempo del proceso que especifique el usuario en el momento de enviar el trabajo. En planificador a corto plazo se predice la duración de la siguiente ráfaga (porque no hay forma de conocerla).

SJF: Mecanismo de predicción de la siguiente ráfaga de CPU Se asigna la CPU al proceso que tenga la siguiente ráfaga de CPU predicha más corta. Se predice el valor de la siguiente ráfaga asumiendo que su duración será similar a la de las ráfagas anteriores. La siguiente ráfaga se predice como la media exponencial de las duraciones medias de las anteriores ráfagas de CPU. Sean t n la duración de la n-ésima ráfaga de CPU y τ n+1 el valor predicho para la siguiente ráfaga del proceso. Para α [0, 1], se tiene que: τ n+1 = α t n + (1 α) τ n (1) t n contiene la información más reciente y τ n el historial pasado. Si α = 0: τ n+1 = τ n el historial reciente no tiene efecto. Si α = 1: τ n+1 = t n sólo la ráfaga de CPU más reciente importa (historial obsoleto).

RR: Round-Robin o Planificación por Turnos Algoritmo con apropiación diseñado especialmente para sistemas de tiempo compartido. Los procesos nuevos se añaden al final de la cola (FIFO) de procesos preparados. El planificador toma el primer proceso de la cola y se asigna la CPU durante un quantum de tiempo (típicamente entre 10 y 100 ms). Si la ráfaga del proceso es menor que el quantum el proceso libera voluntariamente la CPU. Si la ráfaga es mayor que el quantum interrupción al SO, cambio de contexto y el proceso se coloca al final de la cola de procesos preparados. Si hay n procesos en la cola de procesos preparados y el quantum es q, cada proceso obtiene 1 n del tiempo de CPU en partes de como máximo q unidades de tiempo. Cada proceso no tiene que esperar más de (n 1) q unidades de tiempo hasta obtener su siguiente turno.

RR: Dimensionando el Quantum Si quantum muy largo RR degenera en FCFS. Si quantum muy corto compartición del procesador (impresión de que cada proceso tiene su propio procesador ejecutándose 1 n de la velocidad del procesador real). El quantum conviene que sea grande con respecto al tiempo requerido por un cambio de contexto (si el quantum es corto, los procesos no acaban de ejecutarse en la CPU y se ralentiza la ejecución debido a cambios de contexto). Si quantum excesivamente corto vapuleo: el rendimiento de CPU se reduce mucho porque sólo se hacen cambios de contexto (trabajo no útil). El tiempo medio de ejecución mejora si la mayor parte de los procesos terminan su siguiente ráfaga de CPU en un quantum. Regla práctica: 80% de las ráfagas de CPU deben ser más cortas que el quantum de tiempo.

Planificación por prioridades A cada proceso se le asigna una prioridad y el planificador asigna la CPU al proceso más prioritario. Ejemplos: FCFS (orden de llegada) y SJF (duración siguiente ráfaga de CPU). Típicamente se expresa mediante rango de números fijos. No hay consenso sobre si el mayor número corresponde a la mayor o a la menor prioridad. Las prioridades pueden definirse interna o externamente: Prioridades internas = f(requisitos de memoria, número de archivos abiertos, relación entre ráfaga promedio E/S y ráfaga promedio CPU, etc) Prioridades externas = f(criterios externos al SO) Puede ser sin apropiación o con apropiación (un proceso expulsa de la CPU a otro si es más prioritario). Problema: bloqueo indefinido o inanición los procesos menos prioritarios pueden esperar indefinidamente. Solución: envejecimiento aumentar progresivamente las prioridades de los procesos que llevan más tiempo esperando por CPU.

Planificación mediante colas multinivel Consiste en separar los procesos según su naturaleza/tipo (por ejemplo, interactivos vs. por lotes). La cola de procesos preparados se divide en varias colas (niveles) con algoritmos de planificación diferentes. Requiere un algoritmo de planificación entre colas: De qué cola se extraen procesos en primer lugar? Típicamente con apropiación y prioridad fija. Otra posibilidad: repartir el tiempo de CPU entre las colas (80% vs 20%). prioridad más alta Procesos del sistema Procesos interactivos prioridad más baja Procesos por lotes

Planificación mediante Colas Multinivel Realimentadas Permite mover los procesos de una cola a otra. Consiste en separar los procesos según las características de sus ráfagas de CPU (si uso de CPU es excesivo cola menos prioritaria). Mecanismo de envejecimiento implícito para evitar el bloqueo indefinido. Parámetros a definir: Número de colas. Algoritmo de planificación de cada cola. Mecanismo para determinar cuándo mover un proceso a una cola más prioritaria. Mecanismo para determinar cuándo mover un proceso a una cola menos prioritaria. Mecanismo para determinar en qué cola se colocará un proceso mientras espera por la CPU. Es el algoritmo de planificación de CPU más flexible más complejo.

Ejemplo de Planificación mediante Colas Multinivel Realimentadas cola 0 Quantum = 8 cola 1 Quantum = 16 cola 2 FCFS Se ejecutan los procesos de cola 2 sólo si cola 0 y 1 están vacías. Procesos de cola 0 desalojan a procesos de cola 1 y 2. Prioridad a procesos cortos (ráfaga 8ms) y semicortos (ráfaga 24ms). Los procesos largos (ráfaga > 24ms) usan ciclos de CPU no usados por los cortos y semicortos.

Evaluación de los Algoritmos de Planificación Elección del criterio: Conocer los tipos de trabajos a realizar. Conocer los parámetros modificables. Definir el objetivo del sistema. Evaluación formal: Evaluación analítica: Prestaciones del algoritmo = f(carga, parámetros del sistema). Difícil de realizar. Modelación determinista: Resultados exactos para una configuración de trabajos dada. Difícil de extrapolar. Modelos de colas: Permite evaluar las longitudes de las colas. Evaluación por simulación.