Date post: | 16-Feb-2015 |
Category: |
Documents |
Upload: | ramon-pequeno |
View: | 19 times |
Download: | 1 times |
GESTION DE PROCESOS
Que es un Proceso ?
• Definición– Es la ejecución de un programa individual.
• Requisitos– Intercalar la ejecución de procesos para
maximizar la utilización del procesador.– Priorización de tareas y evitar el interbloqueo.– Vigilar la creación, comunicación y cancelación
de procesos.
Estados de un Proceso Modelo con 2
Expedir
NOEjecución
EjecuciónEntrar Salir
Interrumpir
ProcesadorEntrarExpedir Salir
Interrumpir
Cola
Razones para la Creación o Terminación de un Proceso
Solicitud del padre
Terminación del Padre
Intervención del operador o del SO
Mal uso de los Datos
Instrucción Privilegiada
Instrucción Invalida
Fallo de E/S
Tiempo máximo de espera rebasado
Error aritmético
Error de protección
Violación de limitesGenerado por un Proceso Existente
No hay memoria disponibleCreado por S.O. Para dar Servicio
Tiempo Limite excedidoConexión interactiva
Terminación NormalNuevo trabajo por lotes
TerminaciónCreación
Estados de un ProcesoModelo con 5
Nuevo Listo
Bloqueado
Ejecución Terminado
Admitir Pasar
Time out
Liberar
Espera de Suceso
Ocurre Suceso
Modelos de colas para manejo de procesos bloqueados
ProcesadorEntrar
Pasar a ejecución Liberar
Time out
Cola de listos
Esperar Suceso
Cola de bloqueados
OcurreSuceso
Esperar Suceso N
Cola de Sucesos N
OcurreSuceso N
Estados de un ProcesoModelo con 6
Nuevo Listo
Bloqueado
Ejecución Terminado
Admitir Pasar
Time out
Liberar
Espera de Suceso
Ocurre Suceso
Suspendido
Activar
Suspender
Estados de un ProcesoModelo con 7
Nuevo
Listo
Bloqueado
Ejecución TerminadoAdmitir
Pasar
Time out
Liberar
Espera de Suceso
Ocurre Suceso
ListoSuspendido
Activar
Suspender
BloqueadoSuspendido
Admitir
Activar
Ocurre Suceso
Proceso Suspendido
Razones para la Suspensión de un Proceso
• Solicitud del proceso padre
• Por tiempo
• Solicitud del usuario
• Otra razón de SO
• Intercambio de memoria
• Es el que no esta disponible para ejecución.
Estructuras de Control del S.O.
MemoriaDispositivos
ArchivosProcesos
Proceso n
Proceso 3Proceso 2Proceso 1
Tablas de Archivos
Tablas de E/S
Tablas de Memoria P 1
P 2
Imagen delproceso
Imagen del Proceso y el BCP
Datos del Usuario
Programa del Usuario
Pila del Sistema
Bloque de Control de Proceso
Identificación del procesoIdentificador del procesoIdentificador del Proceso PadreIdentificador del Usuario
Información estado del procesadorRegistros visibles para el usuarioRegistros de control y de estadoPunteros de pila
Información de control del procesoPlanificación y estadoEstructuración de datosComunicación entre procesosPrivilegios de los procesosGestión de memoriaPropiedad de recursos y utilización
Control de Procesos
• Existen dos modos en que un procesador ejecuta las instrucciones.– Modo de usuario– Modo de control o
privilegiado
Gestión de procesosCreación y terminaciónPlanificación y expedición Cambio de ProcesosSincronización de procesos y comunicaciónGestión de bloques de control
Gestión de memoriaAsignación de espacio de memoriaIntercambioGestión de pagina y segmentos
Gestión de entrada y salidaGestión de bufferAsignación de canales de E/S y dispositivos
Funciones de soporteTratamiento de InterrupcionesContabilidadSupervisión
Funciones Básicas del
Núcleo del SO
API del Sistema Operativo
El Sistema operativo ofrece una serie de servicios a los programas de usuario referentes a la gestión de procesos.
– Accesibles mediante llamadas al sistema
– Cada sistema operativo ofrece las que quiere.
• Crear (IdProceso, Atributos)
– Crear nuevo proceso con el identificador y los atributos que se pasan como parámetro
– S.O. obtiene nuevo identificador y PCB
– Asigna memoria para el nuevo proceso
– Rellena PCB con atributos proporcionados o predeterminados
– Enlaza proceso con las estructuras del S.O., insertando el PCB delproceso en la lista de listos.
API del Sistema Operativo• Eliminar (IdProceso)
– SO destruye proceso y lo elimina del sistema• Reclama los recursos asignados al proceso• Elimina el PCB de la lista en que está y queda libre
– Un proceso puede eliminarse a sí mismo y a otros– Se invoca como parte de la terminación ordenada de un programa
• Dividir/Unir– Método de creación y terminación de procesos.– Dividir : Divide una secuencia de instrucciones en dos secuencias
ejecutables concurrentemente• Se crea nuevo proceso (hijo) al que se le asigna una copia del
código ejecutable del padre• Devuelve identidad del hijo al padre que lo puede usar para esperar
fin del hijo antes de invocar unir.– Unir : Reúne las secuencias de código divididas y el padre puede usarlo
para sincronizarse con el hijo.
API del Sistema Operativo• Bloquear (IdProceso)
– Proceso IdProceso permanece en el sistema -> bloqueado indefinidamente y estado bloqueado
– Proceso puede suspenderse a sí mismo o a otros dependiendo de su nivel de privilegios.
– El SO responde poniendo el PCB del proceso en la lista de bloqueados y actualizando el estado
• Reanudar(IdProceso)– Reanuda proceso bloqueado– SO pone PCB en listos para ejecución y actualiza estado
• Retardar(IdProceso, tiempo)– Proceso queda bloqueado el tiempo especificado
• Leer_Atributos(IdProceso, grupoatributos)– Consulta a la que el SO responde proporcionando los valores
actuales de los atributos del proceso designado.• Modificar_Atributos(IdProceso, nuevoatributo)
– Ejemplo: modificar la prioridad del proceso
Gestión de ProcesosConcurrencia
• Requisitos a la solución del Problema de la Sección Critica.– Exclusión Mutua– Progreso– Espera limitada
• Métodos implementados para afrontar el problema– Soluciones por software– Soluciones por hardware– Semáforos– Monitores – Mensajes
Gestión de ProcesosConcurrencia
• Multiprogramación
• Multiproceso
• Proceso Distribuido
• Proceso Cooperativo
Gestión de ProcesosSincronización
• Solución Por Software– Algoritmo de Dekker– Algoritmo de Peterson
Solución 1 de software
Proceso 0----While Turno != 0 do FIN<sección critica>Turno := 1; ----
Proceso 1----While Turno != 1 do FIN<sección critica>Turno :=0;----
Var Turno: 0 .. 1;
Inconvenientes :• El tiempo lo determina el proceso mas lento• Si se bloquea un proceso el otro también
Solución 2 de software
Proceso 0
--
--
While señal[1] do FIN;
Señal[0] := verdadero
<sección critica>
Señal[0] := falso
--
Proceso 1----While señal[0] do FIN;
Señal[1] := verdadero<sección critica>Señal[1] := falso
--
Var Señal[0..1] of booleano; # inicializada en falso
Inconvenientes:Porque un proceso cambia el estado después que el otro ha Comprobado pero antes de entrar a su sección crítica.
Gestión de ProcesosSincronización
• Solución por Hardware– Deshabilitar la ocurrencia de interrupciones ( Solo
aplica a mono procesadores ).
– En Multiprocesadores se debe usar una instrucción indivisible de maquina TS donde establece en un ciclo de instrucción si la llave esta disponible y si lo esta la coloca como no disponible.
– Posee problemas de Inanición con muchos procesos por que la competencia por los pocos recursos es aleatoria.
– Espera Activa de los procesos.
Gestión de ProcesosSincronización
Function TS (var i:entero):booleano
Begin
if i = 0 then
begin
i:= 1;
TS:=verdadero;
end
else TS:=falso;
End.
Program exclusión_mutua;Const n= .... (*# de procesos*)Var C:enteroProcedure P(i:entero);begin
repeat repeat FIN until TS ( C ); <sección crítica> C:=0 --forever
endBegin ( *Pma Ppal*)C:=0
beginP(1);P(2);--P(n)
endend
Solución por hardwareTest and Set ( Comparar y Fijar)
• Semáforos– Dos procesos pueden cooperar por medio de simples
señales, deforma que pueda obligar a un proceso detenerse en una posición determinada hasta que reciba una señal específica.
– Es una variable entera no negativa ( s ) utilizada como bandera y que puede ser accesada por medio de dos operaciones :• La operación wait decrementa el valor del s. Si el valor se hace
negativo el proceso que ejecuta el wait se bloquea• La operación signal incrementa el valor de s. Si el valor no es
positivo, se desbloquea a un proceso bloqueado por wait.
– Problema espera activa
Gestión de ProcesosSincronización
Solución por medio de SemáforosProgram exclusión_mutua;Const n= .... (*# de procesos*)Var s: semáforo ( :=1)Procedure P(i:entero);begin
repeat wait(s); <sección crítica> signal(s) --forever
endBegin ( *Pma Ppal*)C:=0
beginP(1);P(2);--P(n)
endend
Solución a Exclusión Mutua por medio de Semáforos
• Casos interesantes Lectores y escritores Modelo de acceso a una base de datos compartida por varios procesos: – Propuesto por Courtois, 1971. – Puede haber varios lectores a la vez. – La escritura ha de hacerse exclusivamente (no puede haber otros
lectores o escritores simultáneamente).
• Una posible solución: – Primer lector: Wait sobre un semáforo. – Siguientes lectores: incrementan un contador. – Los lectores van acabando: decrementan el contador. El último,
Signal al semáforo. – Escritores: Wait sobre el semáforo al comenzar y Signal al
terminar. – Prioridad implícita de lectores sobre escritores...
Monitores
• Es un módulo de software que sirve para manejar procesos concurrentes y distintas condiciones de sincronización y exclusión mutua.
• Esta compuesto por :– Conjunto de datos
– Conjunto de procedimientos
– Variables de Condición.
DATOS
E
1
n
1 2 n
S
Mensajes
• Es el mecanismo mediante el cual los procesos se sincronizan y se comunican. ( Exclusión mutua e intercambio de información)
• Primitivas– Enviar ( Destino, mensaje )– Recibir ( Origen, mensaje )
• Sincronización Bloqueante y No bloqueante– Bloqueante-Bloqueante– No Bloqueante-Bloqueante– No Bloqueante-No Bloqueante
• Direccionamiento– Directo
• Envío
• Recibir
– Explícita
– Implícita
– Indirecto ( Buzón )
• Colas
– Primeros en entrar / primeros en salir