tema3 procesos

Download Tema3 procesos

Post on 24-May-2015

153 views

Category:

Software

5 download

Embed Size (px)

DESCRIPTION

GAFITA HERMOSAAAAA...!! ESTUDIALO SIII....DISCULPA LA DEMORA...!!!

TRANSCRIPT

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

2. 2Sistemas Operativos I (00-01) Tema 3: Procesos Tema 3: Procesos ? Introduccin Existen varias razones para permitir la ejecucin concurrente de procesos: ? Compartir recursos fsicos ? Compartir recursos lgicos ? Acelerar los clculos ? Modularidad ? Comodidad ? Objetivos del tema: ? Profundizar en el concepto de proceso ? Dar a conocer la implementacin del modelo de procesos ? Estudiar las diferentes polticas de planificacin del procesador 3. 3Sistemas Operativos I (00-01) Tema 3: Procesos Tema 3: Procesos ? ndice 1.- Concepto de proceso. 2.- Implementacin de procesos. 3.- Hilos de ejecucin (threads). 4.- Conceptos de planificacin. 5.- Criterios de planificacin. 6.- Algoritmos de planificacin. 7.- Evaluacin de algoritmos. 8.- S.O. dirigido por eventos. ? Bibliografa ? A. Silberschatz, P. Galvin. Sistemas Operativos. 5 ed. ?Tema 4 ? W. Stallings. Sistemas Operativos 2 ed. ?Tema 3. 4. 4Sistemas Operativos I (00-01) Tema 3: Procesos Tema 3: Procesos ? ndice 1.- Concepto de proceso. 2.- Implementacin de procesos. 3.- Hilos de ejecucin (threads). 4.- Conceptos de planificacin. 5.- Criterios de planificacin. 6.- Algoritmos de planificacin. 7.- Evaluacin de Algoritmos. 8.- S.O. dirigido por eventos. 5. 5Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Concepto de proceso: Existen diferentes visiones complementarias del concepto de proceso: ? Programa en ejecucin. ? Unidad de asignacin de recursos. ? Proceso como procesador virtual. 6. 6Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Proceso como programa en ejecucin: ? Programa: Lista de instrucciones. Ente pasivo. ? Proceso: Programa en ejecucin. Ente activo. Pasa por una serie de estados ? Un programa reside normalmente en un fichero que se encuentra fsicamente en el disco y es cargado en memoria cuando se crea el proceso para ejecutarlo. ? Puede haber dos o ms procesos asociados a la ejecucin de un mismo programa. Es habitual que un proceso genere ms procesos durante su ejecucin. 7. 7Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Proceso como procesador virtual: ? Proceso: cada una de las actividades paralelas que se ejecutan en la mquina. Da la apariencia de que todas ellas se ejecutan sobre procesadores diferentes en paralelo. ? Ejemplos: ?Procesos de usuario: Un proceso de edicin de un sistema de tiempo compartido. Un trabajo en un sistema por lotes. La compilacin de un programa fuente en Pascal: el programa que ejecuta el proceso es el propio compilador. ?Procesos del sistema: swapper (que decide qu procesos hay que extraer de la memoria o introducir en ella cuando la cantidad de memoria libre no llega o supera ciertos lmites), pagedeamon (es el encargado de utilizar reemplazo para liberar marcos y pasarlos a la reserva). 8. 8Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Proceso como procesador virtual: ? El sistema operativo simula la existencia de N procesadores virtuales (procesos) a partir de una CPU o procesador fsico. ?Cada procesador virtual ejecuta secuencialmente un nico programa. ?Todos los procesos se ejecutan concurrentemente 9. 9Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Ejecucin secuencial y ejecucin concurrente. ? Ejecucin secuencial: La ejecucin de un proceso se dice que es secuencial porque sus operaciones son ejecutadas por la CPU una tras otra, en el orden que dicte el programa. ? Ejecucin concurrente: La ejecucin de dos procesos se dice que es concurrente porque estos se pueden ejecutar en paralelo. ?Concurrencia real: Si cada proceso se ejecuta sobre una CPU. ?Concurrencia virtual: La CPU reparte su tiempo entre los procesos para simular su ejecucin paralela. 10. 10Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Proceso como unidad de asignacin de recursos: ? Para ejecutar un programa se necesita un entorno formado por una serie de recursos: memoria, descriptores de ficheros y otros atributos del proceso. ? Un proceso se puede considerar como la unidad de propiedad de todos esos recursos. Memoria Tiempo de CPU Tabla de descriptores ficheros Otros atributos P1 11. 11Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Estados de un proceso Al ejecutar un proceso ste va cambiando de estado. El estado de un proceso se define como el comportamiento que presenta en un instante dado: ? Activo: El proceso se puede ejecutar. No hay impedimentos en asignarle alguna CPU. ?Ejecucin: El proceso tiene asignada una CPU, las instrucciones se estn ejecutando. ?Preparado: El proceso puede ser ejecutado pero est esperando que se le asigne una CPU libre. Puede haber varios procesos en este estado. ? Suspendido: No puede ser ejecutado porque el proceso se encuentra esperando un evento como: ?la finalizacin de una operacin de E/S (una lectura de teclado) ?la comunicacin con otro proceso, etc. 12. 12Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Estados de un proceso: NUEVO PREPARADO TERMINADO EN EJECUCIN SUSPENDIDO Admitido Esperar E/S o evento Terminacin Expulsin Elegido Planificador Fin E/S o llegada evento ACTIVO Proceso terminado por otro proceso Proceso terminado por otro proceso 13. 13Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Operaciones sobre procesos (1) ? Creacin: Supone asignar todos los recursos que el proceso necesita para su ejecucin, como p.e. memoria. ?Ejemplo en UNIX: fork(). La utiliza el proceso init para crear un proceso que gestione cada terminal y el shell cada vez que recibe una nueva orden del usuario (si sta es externa). ? Terminacin: Supone liberar los recursos previamente asignados al proceso. Esta terminacin puede ser: ?Terminacin normal: El proceso invoca su propia terminacin. Ejemplo en UNIX: exit() ?Terminacin anormal: El proceso termina por iniciativa del sistema operativo al detectar alguna condicin de error (violacin de lmites, errores aritmticos) o por iniciativa de algn otro proceso. Ejemplo en UNIX: kill() y seales. 14. 14Sistemas Operativos I (00-01) Tema 3: Procesos 1.- Concepto de proceso ? Operaciones sobre procesos (2): ? Suspensin: Supone pasar un proceso al estado suspendido para que espere un evento o E/S. ?Ejemplo en UNIX: read() sobre un tubo vaco. ? Activacin: Pasar un proceso al estado activo cuando se produce el evento que esperaba. ?Ejemplo en UNIX: un proceso efecta un write() sobre un tubo en el que haba un lector esperando. El lector se reactiva. 15. 15Sistemas Operativos I (00-01) Tema 3: Procesos inicial parado En ejec. (usuario) En ejec. (ncleo) preparado suspendido zombie Empieza fork() Acaba fork() Cambios de contexto SIGSTOPSIGCONT Espera evento Ocurre evento exit() wait() Interrupcin o llamada al sistema Fin de interrup. o llamada al sist. ESTADOS ACTIVOS 1.- Concepto de proceso ? Estados de un proceso en UNIX 16. 16Sistemas Operativos I (00-01) Tema 3: Procesos Tema 3: Procesos ? ndice 1.- Concepto de proceso. 2.- Implementacin de procesos. 3.- Hilos de ejecucin (threads). 4.- Conceptos de planificacin. 5.- Criterios de planificacin. 6.- Algoritmos de planificacin. 7.- Evaluacin de Algoritmos. 8.- S.O. dirigido por eventos. 17. 17Sistemas Operativos I (00-01) Tema 3: Procesos 2.- Implementacin de procesos Para implementar procesos es conveniente pensar en un proceso como un procesador virtual que ejecuta un programa y que se implementa a partir de un procesador fsico. ? La implementacin de procesos requiere: ? Bloque de control de un proceso PCB (Process Control Block): es una estructura de datos para administrar el proceso. Almacena informacin de un proceso. ? Asignar los recursos necesarios para su ejecucin, fundamentalmente la memoria para almacenar el cdigo, los datos y la pila. ? Multiplexar la CPU entre los procesos: repartir el tiempo de la CPU entre los diferentes procesos para simular la ejecucin paralela (concurrencia virtual). ? Bloque de control del sistema: es una estructura de datos que el sistema utiliza para controlar la ejecucin de los procesos. Almacena informacin de todos los procesos. 18. 18Sistemas Operativos I (00-01) Tema 3: Procesos 2.- Implementacin de procesos ? Bloque de Control de proceso (PCB): Es una estructura de datos donde se almacenan los atributos de un proceso, es decir, la informacin asociada a un proceso. En un sistema de multiprogramacin se requiere un gran cantidad de informacin de cada proceso para su administracin. Esta informacin puede agruparse en tres categoras: ? Identificacin de Proceso: a cada proceso se le asigna un identificador numrico nico (puede ser tan simple como un ndice en la tabla de procesos). ? Informacin de estado del procesador (Contexto): Bsicamente est formada por el contenido de los registros del procesador. Cuando se interrumpe un proceso, el contenido de los registros del procesador debe salvarse de forma que pueda restaurarse cuando el proceso reanude su ejecucin ? Informacin de control del proceso: Informacin necesaria para que el sistema operativo controle y coordine los diferentes procesos. 19. 19Sistemas Operativos I (00-01) Tema 3: Procesos 2.- Implementacin de procesos ? Identificacin de Procesos. El PCB guarda: ? Identificador de este proceso. ? Identificador del proceso que cre a este proceso (proceso padre). ? Identificador del usuario. ? Informacin de estado del procesador ? Registros generales (visibles para el usuario). ? Contador de programa: contiene la direccin de la prxima instruccin a ejecutar. ? Cdigos de condicin: muestran el resultado de la operacin aritmtica o lgica ms reciente (signo, cero, acarreo, desbordamiento). ? Informacin de estado: Indicadores de habilitacin e inhabilitacin de interrupciones. ? Puntero de Pila: Cada proceso tiene una o ms pilas LIFO asociadas, para almacenar parmetros y direcc