Gestión de procesos. Sistemas operativos





Monografias.com
1 Introducción Procesos Visión abstracta Esbozo de implementación Threads (Procesos ligeros) Comunicación entre procesos Condición de carrera Exclusión mutua y región crítica Implementación de la exclusión mutua Paso de mensajes Planificación de procesos Criterios Políticas Sistemas multiprocesador

Monografias.com
2 INTRODUCCIÓN Interesa tener máquinas que ejecuten varios procesos al mismo tiempo (Gp:) 18 (Gp:) T1 (Gp:) T2 (Gp:) T3 (Gp:) t Aprovechar tiempos muertos E/S Soluciones elegantes concurrentes Más rapidez con más de una CPU (Gp:) T1 (Gp:) T2 (Gp:) T3 (Gp:) t (Gp:) 13 (Gp:) CPU1 (Gp:) CPU2 Con multiprocesadores también interesa multiplexar las CPU's pseudoparalelismo

Monografias.com
3 PROCESOS (Visión abstracta: Recordar sus llamadas) Dos relaciones típicas entre proceso Padre y proceso Hijo: (Gp:) Procesos independientes: La "shell" crea un proceso para ejecutar un programa de usuario "ls" (Gp:) ls.exe (Gp:) shell (Gp:) P (Gp:) Debe cargarse el ejecutable en memoria (Gp:) ls (Gp:) Dotarle de registros, pila, etc. (Gp:) H El código ya está en memoria (Gp:) Procesos cooperantes: Un servidor Web crea un proceso para atender una petición de un cliente (Gp:) web (Gp:) P (Gp:) Dotarle de registros, pila, etc. (Gp:) H Parecido a Threads ¿fork + exec? ¿fork?

Monografias.com
4 PROCESOS (Visión abstracta: Recordar sus llamadas) Proceso de arranque y grupos de procesos (Gp:) P1 (Gp:) P2 (Gp:) P3 (Gp:) P4 (Gp:) P5 (Gp:) P6 (Gp:) P7 init (Gp:) id:rlevel:action:process (Gp:) /etc/inittab (Gp:) xinetd (Gp:) /etc/rc5.d (Gp:) /etc/rc.d/rc 5 (Gp:) login (Gp:) login (Gp:) login as: Password: (Gp:) bash (Gp:) pcarazo:........:/bin/bash (Gp:) /etc/passwd PC1> (Gp:) grupo de procesos (Gp:) Red (Gp:) putty (Gp:) ? (Gp:) gdm (Gp:) 0 Halt 1 Monousuario 2 MultiSinRed 3 MultiConRed 5 X11 6 Reboot (Gp:) rlevel

Monografias.com
5 PROCESOS (Visión abstracta: Recordar sus llamadas)

Monografias.com
6 Esbozo de implementación (Gp:) ¿Cómo es el ciclo de vida de un proceso? (Gp:) CPU (Gp:) Creación (Gp:) P1 (Gp:) P2 P3 (Gp:) P1 (Gp:) P2 (Gp:) P3 (Gp:) P2 (Gp:) P3 P4 (Gp:) Expulsión (Gp:) P3 (Gp:) P4 (Gp:) P3 (Gp:) P1 (Gp:) P4 (Gp:) P3 (Gp:) P1 (Gp:) Terminación (Gp:) P1 (Gp:) P2 (Gp:) P4 ¿Estados de un proceso? (Gp:) EnEjecución Preparado EnEspera o Bloqueado (Gp:) Activo (Gp:) Ejecu. (Gp:) Prep. (Gp:) Espera

Monografias.com
7 Diagrama de transición de estados de un Proceso (Gp:) Preparado (Gp:) EnEjecución (Gp:) EnEspera (Gp:) forkh (Gp:) forkp (Gp:) exit (Gp:) exit (Gp:) exit (Gp:) wait wait wait sleep sleep F.R. F.R. F.R. F.R. (Gp:) ¿forkp? (Gp:) ¿forkh?

Monografias.com
8 (Gp:) El contexto de un proceso está distribuido en varias zonas (Gp:) CPU (Gp:) MP (Gp:) MSec (Gp:) S.O. Esbozo de implementación en términos más informáticos (Gp:) Contexto de memoria (Código y Datos) MP/MSec (Gp:) Bloque de control (descriptor) del Proceso MP (S.O.) (Gp:) Contexto del procesador Reg/MP/MSec (Gp:) Ejecutándose (Gp:) Bloqueado (Gp:) pila

Monografias.com
9 Esbozo de implementación ( ¿Cuántos procesos? ) ¿#Procesos ilimitado o un máximo predeterminado? maxProcesos: constant:=100; type idProceso is NATURAL range 0..maxProcesos; Reservado (Gp:) procesos : array[1..maxProcesos] of descriptorProceso; (Gp:) 1 (Gp:) 2 (Gp:) 3 (Gp:) 4 (Gp:) 97 (Gp:) 98 (Gp:) 99 (Gp:) 100 (Gp:) 50 (Gp:) type descriptorProceso is record pid: ----------; --------------- end record; (Gp:) 584 ejecutandose : idProceso; ¿Correcto?

Monografias.com
10 Esbozo de implementación ( ¿Cómo dar los PID's? ) type descriptorProceso is record pid: idProceso; --------------- end record; (Gp:) 1 (Gp:) 2 (Gp:) 3 (Gp:) 4 (Gp:) 97 (Gp:) 98 (Gp:) 99 (Gp:) 100 (Gp:) 50 (Gp:) 1..100 ¿Problemas? 99 procesos en el sistema Hago ps y veo un proceso mío (57) Me dispongo a kill -9 57 Mi proceso termina antes del kill y se crea otro proceso con el código 57 ¡ Mato a otro proceso ! (Gp:) Mejor espaciar más los códigos (Gp:) pid: NATURAL; (Gp:) 1..65535... (Gp:) Algo más complejo dar PID's (Gp:) 0 ? Descriptor libre ¿ejecutandose?

Monografias.com
11 Esbozo de implementación ( ¿Estados y su gestión? ) type unEstado is (ejecutandose, preparado, espLapso, espFinHijo, zombie);

Monografias.com
12 Esbozo de implementación ( ¿Estados y su gestión? ) type unEstado is (ejecutandose, preparado, espLapso, espFinHijo, zombie); (Gp:) type descriptorProceso is record pid: NATURAL; estado: unEstado; end record; (Gp:) 1 (Gp:) 2 (Gp:) 3 (Gp:) 4 (Gp:) 97 (Gp:) 98 (Gp:) 99 (Gp:) 100 (Gp:) 50 CPU queda libre. ¿A qué Pi se la doy? Recorro procesos buscando uno que esté preparado Lento e injusto Si decido elegir al Pi que lleva más tiempo preparado, lo mejor cola FIFO (Gp:) type unaCola is record primero: idProceso := 0; ultimo: idProceso:= 0; end record; (Gp:) preparados: unaCola; (Gp:) sig: IdProceso; (Gp:) ejecutandose: idProceso;