Tema 4: SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Marzo de 2006
Índice Concepto de Proceso 1 Concepto de Proceso 2
Tema 4: Sesión 1: Procesos
Antecedentes Los primeros sistemas de computación Un único programa en ejecución Los sistemas actuales Múltiples programas cargados en memoria Ejecución concurrente de los programas Requieren control más firme de los programas
Ejecución de Programas Características La ejecución de un programa, generalmente consiste en un ciclo en el que alternativamente Se usa el procesador para realizar un cómputo (ráfaga de CPU) Se realiza una operación de entrada/salida (ráfaga de E/S) Secuencia de ejecución
Multiprogramación Consiste en Usar los tiempos en que un programa ejecuta ráfagas de E/S para hacer que otro programa use la CPU Para ello, el S.O. debe Llevar el control del estado en que se encuentra la ejecución de cada programa
Concepto de Proceso Definición (Dic. RAE) (Del lat. processus) - 3a. Conjunto de las fases sucesivas de un fenómeno natural o de una operación artificial En nuestro ámbito Conjunto de las fases sucesivas en las que tiene lugar la ejecución de un programa
Concepto de Proceso (cont.) Programa vs. Proceso Un programa es una especificación de las operaciones que deben realizarse Un proceso es el hecho mismo de realizar (ejecutar) esas operaciones que el programa solamente describe Papel del Sistema Operativo El S.O. es el responsable de controlar los procesos durante los cuales son ejecutados los programas
Procesos y Programas Varios procesos ejecutando un mismo programa
Componentes de un Proceso Un proceso está formado por Código del programa (texto) Actividad actual (representada por el contenido del registro contador de programa y por otros registros del procesador) Pila del proceso (stack) con datos temporales Sección de datos con variables estáticas Información de control del proceso
Bloque de Control del Proceso (PCB) Definición Estructura de datos mantenida por el S.O. en la que se almacenan los datos necesarios para el control del proceso Contenido del PCB Estado del proceso Contador de programa Registros de la CPU Información de planificación de la CPU Información de gestión de memoria Información contable Información de estado de la E/S
PCB Concepto de Proceso Objetivo Servir como depósito de cualquier información de gestión que pueda variar de un proceso a otro El S.O. Mantiene una lista de PCBs correspondientes a los procesos que controla en un momento dado Estructura de un PCB
Cambio de Contexto Definición Cuando la CPU va a pasar a ejecutar un nuevo proceso, el sistema debe guardar el contexto del proceso que se estaba ejecutando y recuperar el contexto del nuevo proceso El tiempo empleado para el cambio de contexto se considera una sobrecarga El sistema no realiza ningún trabajo útil mientras está realizando el cambio El tiempo necesario depende muy directamente del hardware
Cambio de Contexto (cont.) Definición Intercambio del proceso que en un momento determinado está usando el procesador por otro Fases de un cambio de contexto Planificación: Determinar qué proceso debe pasar a usar el procesador Activación: Si el proceso elegido es distinto del actual, guardar el estado del proceso actual y permitir que el proceso elegido pase a usar el procesador
El scheduler Definición Parte del S.O. que se ocupa de seleccionar el proceso que debe pasar a usar el procesador Modo de operación El scheduler usará algún criterio de asignación de prioridad para determinar cuál es el proceso preferente En próximas sesiones en este mismo tema estudiaremos diversas alternativas posibles
El dispatcher Definición Parte del S.O. que se ocupa de realizar el cambio del proceso que usa el procesador por el determinado por el scheduler Tareas a realizar Cambio de proceso Paso a modo usuario Salto a la posición adecuada para la reanudación de la ejecución del proceso de usuario Latencia de activación (dispatcher latency) Tiempo que gasta el dispatcher para parar la ejecución de un proceso y reanudar la ejecución de otro
Esquema de un Cambio de Contexto Operaciones necesarias en un cambio de contexto
Estados de un Proceso Diagrama de estados de un proceso
Suspensión de Procesos Grado de multiprogramación Número de procesos que se encuentran en estado de Preparado, Esperando o Ejecutando Control del grado de multiprogramación Puede necesitarse suspender procesos para liberar recursos en ciertos momentos y reanudar más tarde los procesos suspendidos Suelen ser candidatos preferentes Los que están en estado Esperando Los que están en estado Preparado
Estados de un Proceso (ampliación) Diagrama ampliado de estados de un proceso
Operaciones básicas con procesos Creación de procesos Terminación de procesos
Creación de Procesos Un proceso puede crear varios procesos nuevos Proceso creador: Padre Procesos nuevos: Hijos del proceso padre Los procesos hijos pueden crear nuevos procesos Se forma un árbol de procesos (ver sig. transparencia) Consideraciones: Asignación de recursos a los hijos para realizar su tarea Ejecución de los hijos Asignación de espacio de direcciones de memoria para los hijos
Árbol de Procesos Ejemplo de un árbol de procesos
Creación de Procesos (cont.) Alternativas para la asignación de recursos Padre e hijo comparten todos los recursos El hijo comparte un subconjunto de los recursos del padre Padre e hijo no comparten recursos
Creación de Procesos (cont.) Alternativas para la ejecución El padre sigue ejecutándose de forma concurrente con sus hijos El padre espera hasta que algunos de sus hijos, o todos, hayan terminado
Creación de Procesos (cont.) Alternativas para la definición del espacio de direcciones El proceso hijo es un duplicado del proceso padre El proceso hijo carga un nuevo programa
Terminación de Procesos (cont.) Causas de terminación Finalización de la tarea que debía ejecutarse Petición del proceso al S.O. para que lo elimine Un hijo pude devolver datos al padre El padre puede, explícitamente, recoger los datos enviados por un hijo
Terminación de Procesos (cont.) Otras causas de terminación Un proceso puede causar la finalización de otro Normalmente el causante es el proceso padre Razones El hijo se ha excedido en la utilización de los recursos La tarea asignada al hijo ya no es necesaria El padre va a terminar y el S.O. no permite que continúe la ejecución un hijo tras la finalización del padre (finalización en cascada)
Procesos multihilo Concurrencia interna en un proceso Un proceso puede ejecutar un programa con más de un hilo de control (multithreaded) En este caso cada hilo usa una pila de proceso independiente de las de los otros hilos Los demás recursos asignados al proceso en general se comparten Los diferentes hilos de control del proceso se ejecutan concurrentemente durante el tiempo en que el proceso tiene asignada la CPU
Resumen Concepto de Proceso Resumen Lecturas Recomendadas En esta sesión hemos visto Concepto de proceso Información que el S.O. mantiene para controlar los procesos Gestión de los procesos por parte del S.O.
Lecturas Recomendadas Resumen Lecturas Recomendadas Lecturas recomendadas A. Silberschatz, P. Galvin. Sistemas Operativos. 5 a ed. Addison Wesley. Capítulo 4: Procesos. Secciones 4.1, 4.2, 4.3. 4.4 y 4.5