751 likes | 1.5k Views
Sistemas Operativos Tema 4. Gestión de Procesos. Resumen. Definición de proceso Descripción de los procesos Estados de un proceso Planificación del procesador Algoritmos de planificación. Definición de Proceso. Proceso: instancia de un programa en ejecución.
E N D
Sistemas OperativosTema 4 Gestión de Procesos
Resumen • Definición de proceso • Descripción de los procesos • Estados de un proceso • Planificación del procesador • Algoritmos de planificación
Definición de Proceso • Proceso: instancia de un programa en ejecución. • Un mismo programa puede dar lugar a varios procesos • Cada proceso ocupa un espacio en memoria y tiene unos datos • Para el sistema operativo el proceso es un conjunto de estructuras de datos a gestionar. • El proceso es el elemento central de la ejecución y el que realiza los trabajos del usuario. • Todas las estructuras del sistema operativo están orientadas a la gestión de procesos.
Estructuras de Control del S.O. (I) • Tabla de memoria • Se utilizan para seguir la pista a la memoria principal y secundaria • Incluyen la asignación de memoria a los procesos, los atributos de protección de memoria y cualquier otra información utilizada para gestionar la memoria • Tabla de dispositivos de E/S • Se utilizan para administrar los dispositivos y los canales de E/S • Anotan si un dispositivo está asignado a un proceso • También la situación de una operación en curso
Estructuras de Control del S.O. (II) • Tabla de ficheros • Almacenan información sobre la posición, estado y otros atributos de los ficheros • En algunos sistemas el gestor de ficheros es independiente del S.O. y esta información es externa • Tabla de procesos • Se utilizan para administrar los procesos • Es la estructura que estudiaremos en este tema • Estas cuatro tablas están enlazadas entre sí.
Estructuras de Control de Procesos • Imagen de un proceso • Un proceso está formado por el espacio suficiente como para albergar las instrucciones y los datos. • Además, durante la ejecución hace uso de una pila para llevar la cuenta de llamadas a procedimientos. • Por último, tiene un bloque de control de proceso (PCB) con los atributos que utiliza el sistema operativo para controlarlo. • Las instrucciones, datos y pila se almacenan en la memoria de procesos de usuario. La forma de almacenamiento depende del mecanismo de gestión de memoria empleado. • El PCB se almacena en la memoria destinada al S.O.
Bloque de Control de Proceso • Identificación del proceso • Campos destinados a identificar el proceso en el sistema. • PID, PPID, UID, GID, etc... • Información de estado del procesador • Almacena el contenido de los registros del procesador cuando el proceso no está ejecutando. • AC, IR, PC, etc... • Información de Control • Almacena la información que utiliza el S.O. para gestionar la ejecución del proceso.
Información de Control • (Control) Información de Planificación y Estado • Se utiliza para decidir si el proceso ejecuta. • (Control) Privilegios del Proceso • Indica qué tipo de operaciones puede realizar. • (Control) Recursos Utilizados • Indica los recursos controlados por el proceso. • (Control) Comunicación entre Procesos • Información para interactuar con otros procesos.
El Papel del PCB • Es la estructura de datos central del S.O. • Contiene toda la información del S.O. sobre procesos • Los leen y modifican todos los módulos del S.O. • Se debe proteger para evitar errores de utilización • Para ello se crea un módulo del S.O. que contiene a todos los PCB’s • Sólo se permite acceder a ellos a través de funciones de este módulo
Estados de un proceso • Un estado describe la situación actual de un proceso • Traza: representación de la secuencia de instrucciones que se ejecutan durante la evolución de un proceso • El S.O.: • Controla la ejecución de los procesos, • Establece el criterio para la intercalación de las trazas • Determina cómo realizar la asignación de los recursos que los procesos necesitan para su ejecución. • Es necesario tener un modelo claro del comportamiento de un proceso, con objeto de diseñar un programa que controle los procesos según el modelo establecido
Modelo de 2 Estados • Es el modelo más simple • Un proceso puede Ejecutar o No Ejecutar • El S.O. guarda datos sobre el estado y la posición en memoria
Modelo de 5 estados • El modelo de dos estados no indica la razón por la que un proceso no ejecuta • Estado Listo: El proceso puede ejecutar. • Estado Bloqueado: El proceso no puede ejecutar. • Además se utilizan otros dos estados • Estado Nuevo: el SO ha realizado las acciones necesarias para crear el proceso pero no se ha comprometido aún a su ejecución. • Estado Terminado: Se mantiene el proceso después de terminar para recoger información sobre su ejecución. El único recurso que utiliza es el PCB.
Modelo de 7 Estados • El modelo de cinco estados no indica si un proceso está en memoria principal o secundaria • Esa división es válida para Listo y Bloqueado • Un proceso en memoria secundaria está Suspendido • Con intercambio se puede aumentar el número de procesos que pasan de Nuevo a Listo • Los intercambios de procesos son operaciones de E/S y por tanto muy costosas
Políticas de Planificación • Planificación a Largo Plazo • Admisión de nuevos procesos • Tiempo de resolución largo • Criterio del 50% • Planificación a Medio Plazo • Intercambio a memoria secundaria • Tiempo de resolución medio • Suspender procesos bloqueados • Planificación a Corto Plazo • Gestión del procesador • Tiempo de resolución breve • FCFS, SJF, SRT, Prioridades, RR, etc
Modos de Ejecución (I) • Para proteger los datos del S.O. se utiliza el hardware • Los procesadores tienen varios modos de ejecución • Modo núcleo: Ofrece todas sus instrucciones • Modo usuario: Ofrece un conjunto limitado de instrucciones que no permiten acceder a determinados elementos del sistema • El S.O. ejecuta en modo núcleo y el resto de los procesos lo hacen en modo usuario • Para cambiar de modo se usa la instrucción privilegiada CHM (Change Mode)
Modos de Ejecución (II) • El cambio a modo usuario es “sencillo”, porque consiste en perder privilegios • El cambio a modo núcleo se realiza cuando un proceso ejecuta una llamada al sistema o cuando hay una interrupción • La llamada al sistema actúa como una interrupción pero proviene del software
Modos de Ejecución (y III) • Si hay una interrupción software o hardware, el procesador para la ejecución del proceso actual • Es lo que se llama cambio de contexto • Guarda en el PCB los registros que el proceso utiliza (son lo que se llama contexto) • Ejecuta la Rutina de Tratamiento de Interrupción • Después recupera el contexto del PCB del proceso y lo devuelve al procesador • El cambio de contexto lo realiza el hardware para que sea más rápido
Cambios de contexto y de proceso CAMBIO DE CONTEXTO: • Salvar el contexto del proceso. • Analizar el tipo de interrupción producida. • Asignar al contador de programa la dirección de la rutina de tratamiento de la interrupción. • Cambiar de estado usuario a estado sistema. • CHM • Cambiar a PSW de la rutina a ejecutar. CAMBIO DE PROCESO: • Salvar el contexto del proceso. • Actualizar el PCB del proceso en ejecución, cambiando el estado. • Mover este PCB a la cola apropiada según el estado. • Seleccionar otro proceso para ejecución. • Actualizar el PCB del proceso seleccionado indicando el estado ejecución. • Actualizar las estructuras de datos de gestión de memoria. • Restaurar el contexto del procesador.
Criterios de Planificación (I) • Uso de CPU • Es bueno entre un 40% y un 90% • Se debe maximizar • Productividad • Número de trabajos por unidad de tiempo • Se debe maximizar • Tiempo de retorno de un proceso • Instante final menos instante inicial • Se debe minimizar
Criterios de Planificación (II) • Tiempo de espera de un proceso • Tiempo que está sin hacer nada productivo, ni ejecuta ni utiliza los dispositivos de E/S • Incluye la espera del procesador y la espera de E/S • Se debe minimizar • Tiempo de retorno normalizado de un proceso • Tiempo de retorno entre tiempo de servicio • El tiempo de servicio es el tiempo que está haciendo algo productivo • Se debe minimizar • El valor óptimo es uno
Criterios de Planificación (y III) • Tiempo de respuesta interactiva de un proceso • Tiempo hasta la primera respuesta para el usuario • Importante en sistemas de tiempo compartido • Se debe minimizar • Eficiencia según prioridad • Los procesos más prioritarios terminan antes • Es un valor político, que depende de las necesidades de un sistema concreto
Algoritmos de Planificación • Modo de Decisión • Algoritmos no apropiativos: el proceso continúa ejecutándose mientras no acabe o se bloquee por una petición E/S o petición al sistema. • Algoritmos apropiativos: el proceso puede ser interrumpido en la ejecución. • Ejemplo de planificación • Para entender el funcionamiento de los algoritmos los estudiaremos sobre el siguiente ejemplo
Algoritmos de Planificación: Prioridades • Selecciona el proceso con mayor prioridad de los que esperan. • Se adapta a la forma de trabajo de muchos sistemas. • Es un algoritmo simple porque la prioridad existe en el sistema. • No es importante el tiempo que tardan los procesos de poca prioridad. • Es muy importante que los de alta prioridad tarden poco. • Puede ser apropiativo o no apropiativo. • Puede producir inanición, que se soluciona aplicando prioridades con envejecimiento.
5 0 10 15 20 1 2 3 4 5 Algoritmos de Planificación: FCFS • FCFS: Primero en llegar, Primero en ser servido • No apropiativo • Selecciona el primero de la cola de listos • Depende del orden de llegada • Penaliza a procesos cortos frente a largos
5 0 10 15 20 1 2 3 4 5 Algoritmos de Planificación: SJF • SJF: Primero el Proceso más Corto • No apropiativo • Selecciona el proceso de menor duración estimada: • No es aplicable si se desconoce la duración de los procesos • Posibilidad de inanición
5 0 10 15 20 1 2 3 4 5 Algoritmos de Planificación: SRT • Menor Tiempo Restante (SRT) • Es un SJF Apropiativo según duración estimada • No aplicable si no se conoce la duración de los procesos • Genera el mejor resultado posible • Posibilidad de inanición • Válido para comparaciones teóricas
5 0 10 15 20 1 2 3 4 5 Algoritmos de Planificación: RR • Round Robin: Turno Rotatorio • Apropiativo en función del tiempo. • Selecciona el primero de la cola de listos. • Equitativo para procesos heterogéneos. • Cada cambio de contexto retrasa los procesos. • El rendimiento es malo si tienen carga de E/S.
Algoritmos de Planificación: VRR • Turno Rotatorio Virtual (VRR ) • Utiliza dos colas de acceso al procesador. • En la segunda están los procesos que no pudieron completar su cuanto en la última ejecución. • Esta cola tiene prioridad sobre la primera. • Los procesos de esta cola ejecutan sólo durante el cuanto que no completaron anteriormente. • El objetivo es un RR con el rendimiento equilibrado entre los procesos con carga de CPU y los procesos con carga de E/S.
5 0 10 15 20 1 2 3 4 5 Algoritmos de Planificación: HRRN • Siguiente el de Mayor Tasa de Respuesta (HRRN) • No apropiativo. • Selecciona el proceso con mayor tasa de respuesta: TR = (Tespera + Tservicio) / Tservicio • Minimiza el tiempo de retorno normalizado.
Algoritmos de Planificación: Colas Multinivel • Se utilizan múltiples colas de procesos Listos • Es posible aplicar un algoritmo en cada cola • Se necesita un algoritmo para seleccionar una cola para el proceso • Retroalimentación: Un proceso vuelve de ejecutar a una cola diferente de la que salió • Se necesita un algoritmo para determinar a que cola va un proceso después de cada ráfaga de ejecución • Un ejemplo clásico: Colas que utilizan RR con prioridad entre colas y Q en aumento. Un proceso siempre va a una cola con un cuanto mayor.
Evaluación de Algoritmos de planificación • Evaluación Analítica • Modelos deterministas: Deciden para una carga de trabajo concreta • Modelos de colas: Aplica técnicas de probabilidad • Es el método más económico • Simulaciones • Se programa un modelo y se obtienen medidas de los resultados • Implementación • Se codifica el S.O. y se comprueba como trabaja
Bibliografía • Básica: • Sistemas operativos. Conceptos fundamentales. James L. Peterson y Abraham Silberschatz. Ed. Reverte. 1991. • Sistemas operativos, 5ª edición. Willian Stallings. Ed. Pearson. 2005. • Complementaria y de consulta: • Conceptos de Sistemas Operativos, 6ª edición. Silberschatz, Galvin y Gagne. Ed. Limusa-Wiley. 2002. • Sistemas operativos. Diseño e implementación, 2ª edición. Andrew Tanenbaum y Albert Woodhull. Ed. Pearson. 2002.