Tema 9 Gestin de Procesos Gestin de Procesos

  • Slides: 29
Download presentation
Tema 9: Gestión de Procesos

Tema 9: Gestión de Procesos

Gestión de Procesos n Concepto de proceso n Conmutación de procesos n Hebras n

Gestión de Procesos n Concepto de proceso n Conmutación de procesos n Hebras n Servicios del SO para la gestión de procesos n Planificación n l Definición y conceptos básicos l Tipos de planificadores l Criterios de planificación l Algoritmos de planificación Sincronización de procesos l El problema de la sección crítica l Semáforos l Problemas clásicos en programación concurrente Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 2 Silberschatz, Galvin and Gagne © 2005

Tema 9. 1: Concepto de Proceso

Tema 9. 1: Concepto de Proceso

Concepto de Proceso n Un proceso es un programa en ejecución n Los libros

Concepto de Proceso n Un proceso es un programa en ejecución n Los libros de texto usan los términos proceso y tarea para referirse normalmente a lo mismo n Un proceso es la unidad de ejecución más pequeña planificable n Un proceso incluye: l contador de programa l pila l sección de datos Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 4 Silberschatz, Galvin and Gagne © 2005

Proceso en Memoria Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema

Proceso en Memoria Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 5 Silberschatz, Galvin and Gagne © 2005

Estados de un Proceso n Conforme se ejecuta un proceso cambia su estado l

Estados de un Proceso n Conforme se ejecuta un proceso cambia su estado l nuevo: El proceso se está creando l en ejecución: Se están ejecutando sus instrucciones l en espera: Está esperando que ocurra algún evento (ej. E/S) l listo: Está esperando que le asignen la CPU l terminado: Ha terminado su ejecución Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 6 Silberschatz, Galvin and Gagne © 2005

Diagrama de Estados de un Proceso Fundamentos de los Computadores (ITT, Sist. Electr. ),

Diagrama de Estados de un Proceso Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 7 Silberschatz, Galvin and Gagne © 2005

Bloque de Control de Proceso (PCB) Contiene información asociada con cada proceso n Estado

Bloque de Control de Proceso (PCB) Contiene información asociada con cada proceso n Estado del proceso n Contador de programa n Registros de la CPU n Información de planificación de CPU n Información de gestión de memoria n Información contable n Información de estado de E/S Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 8 Silberschatz, Galvin and Gagne © 2005

Bloque de Control de Proceso (PCB) Fundamentos de los Computadores (ITT, Sist. Electr. ),

Bloque de Control de Proceso (PCB) Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 9 Silberschatz, Galvin and Gagne © 2005

Tema 9. 2: Conmutación de Procesos

Tema 9. 2: Conmutación de Procesos

Colas de Planificación de Procesos n Los procesos se encuentran en colas y se

Colas de Planificación de Procesos n Los procesos se encuentran en colas y se mueven entre ellas n Cola de trabajos: conjunto de todos los procesos en el sistema n Cola de procesos listos: conjunto de procesos que se encuentran en memoria principal, listos y esperando ejecutarse n Colas de dispositivo: conjunto de procesos esperando un dispositivo de E/S Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 11 Silberschatz, Galvin and Gagne © 2005

Colas de Planificación de Procesos Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005

Colas de Planificación de Procesos Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 12 Silberschatz, Galvin and Gagne © 2005

Planificación de Procesos Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema

Planificación de Procesos Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 13 Silberschatz, Galvin and Gagne © 2005

Conmutación de Contexto n Cuando se cambia el proceso que posee la CPU, el

Conmutación de Contexto n Cuando se cambia el proceso que posee la CPU, el sistema debe salvar el estado del viejo proceso y cargar el estado salvado del nuevo proceso n El tiempo que dura una conmutación de contexto es un gasto extra; el sistema no hace nada útil durante la conmutación n El tiempo requerido para la conmutación depende del soporte del procesador Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 14 Silberschatz, Galvin and Gagne © 2005

Conmutación de Procesos Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema

Conmutación de Procesos Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 15 Silberschatz, Galvin and Gagne © 2005

Tema 9. 3: Hebras

Tema 9. 3: Hebras

Definición n Una hebra es una unidad básica de utilización de la CPU consistente

Definición n Una hebra es una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Es también conocido como proceso ligero n Comparte el código, los datos y los recursos con sus hebras pares n Una tarea (o proceso pesado) está formada ahora por una o más hebras n Una hebra sólo puede pertenecer a una tarea Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 17 Silberschatz, Galvin and Gagne © 2005

Tareas con una y varias hebras Fundamentos de los Computadores (ITT, Sist. Electr. ),

Tareas con una y varias hebras Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 18 Silberschatz, Galvin and Gagne © 2005

Características n Se comparten recursos. La compartición de la memoria permite a las hebras

Características n Se comparten recursos. La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO n La conmutación de contexto es más rápida gracias al extenso compartir de recursos n No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 19 Silberschatz, Galvin and Gagne © 2005

Hebras en nivel de usuario n Las gestión de las hebras es realizada por

Hebras en nivel de usuario n Las gestión de las hebras es realizada por bibliotecas en el nivel de usuario n El SO no sabe nada de la existencia de las hebras n Ejemplos de bibliotecas de hebras: l POSIX Pthreads l Hebras Win 32 l Hebras Java n Características: l Las hebras a nivel de usuario realizan la conmutación de contexto más rápidamente Todas las hebras de un proceso se bloquean cuando una de ellas realiza una operación bloqueante (ej. E/S) l Tiempo de CPU diferente para hebras de distintas tareas l Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 20 Silberschatz, Galvin and Gagne © 2005

Hebras apoyadas por el núcleo n El SO es consciente de la existencia de

Hebras apoyadas por el núcleo n El SO es consciente de la existencia de hebras y controla su ejecución n Ejemplos l Windows XP/2000 l Solaris l Linux l Tru 64 UNIX l Mac OS X n Características: l La conmutación de contexto entre hebras es más lenta l Si una hebra se bloquea las hebras pares pueden continuar l Todas las hebras reciben el mismo tiempo de CPU Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 21 Silberschatz, Galvin and Gagne © 2005

Tema 9. 4: Servicios del SO para la Gestión de Procesos

Tema 9. 4: Servicios del SO para la Gestión de Procesos

Creación de Procesos n Un proceso crea procesos hijos, los cuales pueden crean otros

Creación de Procesos n Un proceso crea procesos hijos, los cuales pueden crean otros procesos, formando un árbol de procesos n Un proceso puede tener muchos hijos pero sólo un padre El padre puede pasar al hijo datos de inicialización Compartición de recursos l Padre e hijo comparten todos los recursos l El hijo comparte un subconjunto de los recursos del padre l Padre e hijo no comparten recursos Ejecución l El padre y el hijo se ejecutan concurrentemente l El padre espera hasta que el hijo termina Espacio de direcciones l El hijo es un duplicado del padre l Se carga un programa en el hijo n n Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 23 Silberschatz, Galvin and Gagne © 2005

Árbol de Procesos Típico en Solaris Fundamentos de los Computadores (ITT, Sist. Electr. ),

Árbol de Procesos Típico en Solaris Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 24 Silberschatz, Galvin and Gagne © 2005

Creación de Procesos n Ejemplos en UNIX y Linux l fork crea un nuevo

Creación de Procesos n Ejemplos en UNIX y Linux l fork crea un nuevo proceso duplicado del actual l exec se usa normalmente detrás de fork para cargar un programa l wait espera a que el proceso hijo termine n Ejemplos en Windows NT l Create. Process crea un nuevo proceso a partir de un programa l Wait. For. Single. Object espera a que el proceso hijo termine Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 25 Silberschatz, Galvin and Gagne © 2005

Código de Ejemplo int main() { Pid_t pid; /* fork another process */ pid

Código de Ejemplo int main() { Pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); } } Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 26 Silberschatz, Galvin and Gagne © 2005

Terminación de Procesos n La última operación de un proceso es una llamada al

Terminación de Procesos n La última operación de un proceso es una llamada al SO indicando que lo elimine (exit) l Se envía al padre información de salida (via wait) l Los recursos usados por el proceso son liberados n Un proceso padre puede terminar la ejecución de sus hijos (abort) l El hijo se ha excedido en el uso de recursos asignados l La tarea que realiza el hijo no es ya necesaria l El padre va a terminar 4 Algunos SOs no permiten que un hijo siga si su padre termina. Consecuencia: – Todos los hijos son terminados – terminación en cascada Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 27 Silberschatz, Galvin and Gagne © 2005

Suspender, Dormir y Reanudar n Un proceso suspendido deja de ser planificado hasta que

Suspender, Dormir y Reanudar n Un proceso suspendido deja de ser planificado hasta que se reanude n La operación suspender no tiene efecto sobre procesos ya suspendidos excepto en los SOs donde se lleve una cuenta de la profundidad de la suspensión n Un proceso puede suspenderse él mismo, pero no reanudarse n La operación dormir suspende a un proceso durante un tiempo especificado. Transcurrido el tiempo el proceso se reanuda automáticamente n Ejemplos en Windows NT l Suspend. Thread l Resume. Thread l Sleep Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 28 Silberschatz, Galvin and Gagne © 2005

Consultar y Establecer Atributos n La operación de consulta es la única forma que

Consultar y Establecer Atributos n La operación de consulta es la única forma que tiene un proceso para conocer sus atributos, ya que dicha información se encuentra en la zona de memoria del SO n La información a la que se puede acceder en una consulta puede ser: l información de mantenimiento uso de recursos l prioridad l. . . n Los atributos de un proceso no pueden modificarse con total libertad en general l n La operación de establecimiento de atributos suele usarse para modificar la prioridad de planificación de un proceso n Ejemplo en Windows NT l Set. Thread. Priority Fundamentos de los Computadores (ITT, Sist. Electr. ), 2005 -2006 Tema 9: 29 Silberschatz, Galvin and Gagne © 2005