gestion de procesos. que es un proceso ? definición –es la ejecución de un programa individual....

27
GESTION DE PROCESOS

Upload: ramon-pequeno

Post on 16-Feb-2015

25 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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

GESTION DE PROCESOS

Page 2: 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

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.

Page 3: 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

Estados de un Proceso Modelo con 2

Expedir

NOEjecución

EjecuciónEntrar Salir

Interrumpir

ProcesadorEntrarExpedir Salir

Interrumpir

Cola

Page 4: 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

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

Page 5: 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

Estados de un ProcesoModelo con 5

Nuevo Listo

Bloqueado

Ejecución Terminado

Admitir Pasar

Time out

Liberar

Espera de Suceso

Ocurre Suceso

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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

Page 9: 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

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.

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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

Page 13: 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

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.

Page 14: 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

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.

Page 15: 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

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

Page 16: 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

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

Page 17: 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

Gestión de ProcesosConcurrencia

• Multiprogramación

• Multiproceso

• Proceso Distribuido

• Proceso Cooperativo

Page 18: 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

Gestión de ProcesosSincronización

• Solución Por Software– Algoritmo de Dekker– Algoritmo de Peterson

Page 19: 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

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

Page 20: 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

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.

Page 21: 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

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.

Page 22: 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

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)

Page 23: 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

• 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

Page 24: 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

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

Page 25: 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

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...

Page 26: 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

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

Page 27: 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

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