Академический Документы
Профессиональный Документы
Культура Документы
Gestin de Procesos
Sistemas Informticos I.E.S. Virgen de la Paloma
Introduccin (I)
2
Programa:
Algo esttico, un conjunto de instrucciones que, una vez ejecutadas, resuelven un determinado problema .
Proceso:
Algo dinmico, es una parte de un programa que se est ejecutando con todo lo que ello conlleva: valores de registros, de variables, contenido del contador de programa, etc. De un programa suelen surgir varios procesos.
Introduccin (II)
3
Componentes de un proceso:
Adems de las lneas de cdigo, un proceso precisa la imagen del proceso que podr residir en memoria secundaria, pero debe cargarse en memoria principal a la hora de ejecutarlo:
Ubicacin de variables y constantes definidas por el proceso. Pila asociada a cada proceso para gestionar las llamadas a funciones. Atributos del proceso guardados en el BCP: Bloque de control del proceso, que contiene:
Identificacin del proceso. Informacin sobre el estado del procesador. Informacin de control del proceso. Se guardan en la TBCP: Tabla de bloques de control del proceso.
Cambios de contexto: La concurrencia de procesos implica que stos entrarn y saldrn de la CPU constantemente sin haber terminado de ejecutarse.
Introduccin (III)
4
Cambios de contexto.
Se produce cuando un proceso no puede seguir ejecutndose, el S.O. lo detecta e intenta resolver la situacin, bien para volver a reanudar el mismo proceso o para cambiar a otro. Conlleva las siguientes acciones:
Salvar el contexto del proceso que abandona la ejecucin (registros del procesador). Cambiar el estado del proceso que abandona, que ya no ser en ejecucin sino que, dependiendo del motivo del cambio pasar a listo, bloqueado, terminado, etc. modificando su BCP. Mover el BCP a la cola que corresponda (dependiendo de su estado). Solicitar otro proceso para la ejecucin. Actualizar el BCP del proceso que ahora entrar en ejecucin. Actualizar las estructuras de datos necesarias para la gestin de memoria. Volcar en el procesador el contexto del proceso que ahora pasa a ejecutarse.
Procesos e Hilos
7
En los sistemas multiproceso, la Concurrencia entre procesos es una tarea compleja. El objetivo de la concurrencia es garantizar la Sincronizacin entre procesos.
Sincronizacin en el acceso a recursos compartidos Asignar los recursos de forma ptima (evitar Bloqueos)
La solucin a estos problemas es proteger a los recursos compartidos controlando el cdigo que accede a cada uno.
Para poder lograr una sincronizacin de los procesos, el sistema deber ser capaz de cumplir con la exclusin mutua adems de satisfacer los siguientes objetivos :
Si un proceso se interrumpe en una seccin no crtica, no debe estorbar al resto de los procesos. Deben controlarse el interbloqueo y la inanicin. Un proceso podr poder entrar en su seccin crtica si no hay otros procesos que estn en la suya. Un proceso no puede permanecer de forma indefinida en su seccin crtica.
10
11
Semforos :
Un mecanismo semforo consta bsicamente de dos operaciones primitivas Signal(S) y Wait(S) que operan sobre un tipo especial de variable semforo S, que slo puede tomar valores enteros.
El semforo se inicializa a 1. El primer proceso que entra, ejecuta Wait(S) y lo baja a 0. Un proceso se bloquea si deja el semforo en <0. El segundo proceso que entra, ejecuta Wait(S) y lo baja a -1. Se bloquea. Si llegan ms, se sigue decrementando. El valor absoluto nos dice cuntos procesos estn esperando. Cuando el primer proceso termina, ejecuta Signal(S), subiendo 1 el valor y desbloqueando el segundo proceso.
Monitores :
Estructuras de lenguajes de programacin que permiten exclusin mutua y sincronizacin de procesos . No los realiza el programador como los semforos.
CWAIT(C): el proceso que efecte un CWAIT sobre una variable de condicin, C, se suspende, se encola sobre la cola de procesos de dicha variable y libera el monitor, es decir, aunque no se haya completado un procedimiento, el proceso deja de estar activo dentro del monitor y por lo tanto otro proceso podr entrar. CSIGNAL(C): sobre una variable condicin C, activa un proceso de los situados en la cola de dicha variable, si hay varios elegir uno. En el caso de que no haya procesos encolados, CSIGNAL(C) no har nada.
13
Paso de mensajes :
Las primitivas vistas hasta ahora tienen cada una sus limitaciones:
los semforos son de un nivel muy bajo. los monitores slo los permiten unos pocos lenguajes de programacin. ninguno de ellos sirve para el intercambio de informacin entre ordenadores.
La tcnica de paso de mensajes permite la sincronizacin de procesos y facilita la comunicacin entre ellos. Existen dos operaciones bsicas para el paso de mensajes:
SEND (destino, mensaje): la utilizan los procesos para enviar un mensaje a un proceso destino. RECEIVE (origen, mensaje): la utilizan los procesos para recibir un mensaje desde otro proceso origen.
14
Exclusin mutua :
Un conjunto de procesos concurrentes comparte un buzn (exmut) que contiene inicialmente un nico mensaje de contenido nulo.
Cuando un proceso pretende entrar en su seccin crtica primero intenta recibir un mensaje, y si encuentra el buzn vaco el proceso se bloquea. Cuando el proceso logra el mensaje entra a ejecutar su seccin crtica y al terminar devuelve el mensaje al buzn . El mensaje acta como testigo o token. Cuando existen varios procesos ejecutando la orden receive concurrentemente se entrega el mensaje, si lo hubiera, a uno de los procesos y los dems se bloquean y si no hubiera mensaje todos quedaran bloqueados.
15
Interbloqueo (I)
16
16
Interbloqueo (II)
17
17
La planificacin de procesos no slo abarca la decisin del proceso que entrar en ejecucin inmediatamente, sino que tambin abarca otro tipo de decisiones:
Planificacin a largo plazo: el S.O. decide crear un proceso nuevo y lo aade al grupo de procesos a ejecutar, controlando as el grado de multiprogramacin. Planificacin a medio plazo: afecta a los programas que podrn pasar a memoria principal pera entrar en ejecucin, teniendo en cuenta las necesidades de memoria del proceso. Planificacin a corto plazo: qu proceso (listo) deber lanzarse a continuacin.
18
19
Todos los procesos alternan entre una fase de ejecucin de CPU y otra de espera por E/S.
Intensivos en E/S (I/O-bound) Intensivos en CPU (CPU-bound)
Prioridades. Cada proceso tiene asignada una prioridad y siempre tendr preferencia un proceso de prioridad ms alta sobre uno de prioridad menor Transiciones entre estados de un proceso:
a) Ejecucin a bloqueado. b) Ejecucin a terminado. c) Ejecucin a listo. d) Bloqueado a listo.
20
FCFS (First come, first server): El primero que llega se atiende primero.
Atencin por orden de llegada. Justo. Simula el mundo real (cola del supermercado). Tpicamente no apropiativo Ejemplo: P1 24ms, P2 3ms, P3 3ms
Orden de llegada: P1, P2 y P3 Tiempo de espera: P1 = 0; P2 = 24; P3 = 27
Ventajas:
Ningn proceso espera indefinidamente
Desventajas:
El tiempo de espera promedio suele ser alto Puede producir baja utilizacin de recursos
21
22
No apropiativo
23
Ventajas:
Parece perfecto. Consigue mejor tiempo de respuesta que FCFS.
Desventajas:
Puede producir alguna espera indefinida si llegan trabajos muy cortos. Cmo puedo estimar el tiempo de ejecucin del prximo proceso?.
24
RR: Carrusel o Round Robin: como FCFS, pero con expropiacin. Despus de un tiempo se pasa al siguiente.
La cola de proceso se trata como una FIFO circular. A cada proceso se le entrega la CPU por un espacio de tiempo llamado quantum. Un proceso se ejecuta hasta que acaba o hasta que termina su quantum. Ejemplo de procesos anteriores, con un quantum de 4ms
Ventajas:
Perfecto para procesos interactivos (Sist. Tiempo Compartido)
25
Ejemplo:
quantum = 20
Proceso P1 P2 P3 P4
T. Ejecucin 53 17 68 24
26
Por Prioridad:
Se ejecuta el proceso de mayor prioridad Si hay procesos con igual prioridad, aplicar FCFS En SJF la prioridad es el tiempo de ejecucin Ejemplo: Cmo se ejecutaran los siguientes procesos siguiendo una planificacin por prioridad?
Proceso P1 P2 P3 P4 P5 Tiempo Ejecucin 10 1 2 1 5 Prioridad 3 1 4 5 2
27
Suelen aumentar la prioridad por edad del proceso, para que no haya inanicin por prioridad baja (Envejecimiento).
28
30
Planificacin por prioridad entre distintas colas y RR dentro de cada cola. Los procesos cambian su prioridad dinmicamente
Se incrementa la prioridad si el proceso hace E/S antes de terminar su quantum. Se decrementa si el proceso utiliza todo su quantum.
31
32
33