You are on page 1of 27

Tema II

Administracin de Procesos

Concepto de Proceso
Un proceso es un programa en memoria principal. Un proceso est compuesto de seis componentes: o Id o Cdigo del programa o Datos o Recursos o Pila o Estado del CPU Un proceso es una entidad activa (realiza las acciones especificadas en un programa).

Un programa es una entidad pasiva (no realiza ninguna accin por s mismo, tiene que ser ejecutado para realizar las acciones especificadas en l).

Concepto de Proceso
Un proceso necesita ciertos satisfactoriamente su tarea:
o o o o

recursos

para

realizar

Tiempo de CPU. Memoria. Archivos. Dispositivos de E/S.

Los recursos se asignan a un proceso:


o o

Cuando se crea. Durante su ejecucin.

Bloque de Control de Proceso


Cada proceso se representa en el SO con un Bloque de Control de Proceso (PCB, Process Control Block), tambin llamado bloque de control de tarea.
Apuntador
Estado del proceso

nmero del proceso contador de programa registros lmites de memoria lista de archivos

Traza de un proceso
o

Disposicin de la memoria de tres procesos. Los tres procesos estn representados por programas que estn cargados por completo en la memoria principal.

Direccin 0 100

Memoria Principal

Contador de programa 8000

Distribuidor

5, 000 Proceso A

8, 000

Proceso B 12, 000

Proceso C

Estados bsicos de un proceso


TRAZAS DE LOS PROCESOS
5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 Traza de Proceso A 8000 8001 8002 8003 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 Traza del Proceso C

Traza del Proceso B

5000 = Direccin de comienzo del programa del Proceso A 8000 = Direccin de comienzo del programa del Proceso B 12000 = Direccin de comienzo del programa del Proceso C

Estados bsicos de un proceso


TRAZAS COMBINADA DE LOS PROCESOS
1 5000 2 5001 3 5002 4 5003 5 5004 6 5005 -------------- Fin de plazo 7 100 8 101 9 102 10 103 11 104 12 105 13 8000 14 8001 15 8002 16 8003 -------------- Solicitud E/S 17 100 18 101 19 102 20 103 21 104 22 105 23 12000 24 12001 25 12002 26 12003 26 12004 27 12005 ---------------- Fin de plazo 29 100 30 101 31 102 32 103 33 104 34 105 35 5006 36 5007 37 5008 38 5009 39 5010 40 5011 --------------- Fin de plazo 41 100 42 101 43 102 44 103 45 104 46 105 47 12006 48 12007 49 12008 50 12009 51 12010 52 12011 ---------------- Fin de plazo

100 = Direccin de comienzo del programa distribuidor.

Las letras de color azul indican


ejecucin del proceso distribuidor.

La primera y tercera columna cuentan


los ciclos de instruccin.

La segunda y cuarta columna muestran


la direccin de la instruccin a ejecutar.

Las trazas intercaladas muestran los


primeros 52 ciclos de instruccin (los cuales enumeran a conveniencia).

Se supone que el Sistema Operativo


(SO) permite a un proceso continuar su ejecucin slo por un mximo de 6 ciclos de instruccin, despus de los cuales es interrumpido; esto impide que un solo proceso monopolice el tiempo de procesador.

Estados bsicos de un proceso


El kernel usa tres funciones fundamentales para controlar los procesos: 1. La planificacin: Seleccionar el proceso que debe ejecutarse enseguida en el CPU. 2. El despacho: Establecer la ejecucin del proceso seleccionado en el CPU. 3. El contexto de salvar: Guardar la informacin relativa a un proceso en curso cuando su ejecucin se suspende. El estado de proceso es un indicador de la naturaleza de la actividad actual en un proceso.

Transicin de estado de un proceso


Una transicin de estado para un proceso es un cambio en su estado, y se debe a la ocurrencia de algn evento en el sistema.

La asignacin del procesador al primer proceso de la lista de procesos de listos se denomina despacho; dicha actividad la realiza una entidad del sistema llamada despachador (dispatcher).
La transicin se puede indicar de la siguiente manera:

despachar (nombre_del_proceso): listo en_ejecucin

Transicin de estado de un proceso


Salir Terminado Nuevo En_ejecucin Admisin Espera operacin e/s u otro evento

Despachar
Expiracin de tiempo

Listo

Bloqueado

Despertar

Transicin de estado de un proceso


Para evitar que un proceso monopolice el sistema (en forma accidental o malintencionada), el Sistema Operativo (SO) utiliza un reloj de interrupcin por hardware (cronmetro de intervalos) para que las tareas de un usuario se ejecuten durante un intervalo especfico de tiempo (quantum). Si el proceso no libera voluntariamente la CPU antes de que expire el intervalo de tiempo, el reloj genera una interrupcin, haciendo que retome el control el SO. El SO transforma entonces el proceso que estaba ejecutndose en un proceso listo y procede a ejecutar el primero de los procesos de la lista de listos. La transicin de estado se indica de la siguiente manera:

tiempo_expirado (nombre_del_proceso): en_ejecucin listo

Transicin de estado de un proceso


Salir Terminado Nuevo En_ejecucin Admisin Espera operacin e/s u otro evento

Despachar
Expiracin de tiempo

Listo

Bloqueado

Despertar

Transicin de estado de un proceso


Si el proceso que se est ejecutando inicia una operacin de E/S antes de que expire su cuanto (quantum), libera voluntariamente la CPU (es decir, el proceso se bloquea a s mismo esperando a que se complete una operacin de entrada/salida).
Esta transicin de estado se puede representar de dos formas:

bloquear (nombre_del_proceso): en_ejecucin bloqueado


o

operacin_e/s (nombre_del_proceso): en_ejecucin bloqueado

Transicin de estado de un proceso


Las cinco causas principales de bloqueo son:
o o o

o o

El proceso solicita una operacin de e/s. El proceso solicita memoria o cualquier otro recurso. El proceso desea esperar durante un intervalo especfico de tiempo. El proceso espera el mensaje de otro proceso. El proceso desea esperar alguna otra accin de otro proceso.

Transicin de estado de un proceso


Salir Terminado Nuevo En_ejecucin Admisin Espera operacin e/s u otro evento

Despachar
Expiracin de tiempo

Listo

Bloqueado

Despertar

Transicin de estado de un proceso


Cuando se completa una operacin de E/S o algn otro evento que espere un proceso. El proceso realiza la transicin del estado bloqueado al estado listo. La transicin es:

despertar (nombre_del_proceso): bloqueado listo

Transicin de estado de un proceso


Salir Terminado Nuevo En_ejecucin Admisin Espera operacin e/s u otro evento

Despachar
Expiracin de tiempo

Listo

Bloqueado

Despertar

Transicin de estado de un proceso


La ejecucin del proceso se completa o se termina.

La transicin es:
terminado(nombre_del_proceso): en_ejecucin terminado

Las siguientes son cinco terminacin del proceso:


o

razones

principales

para

la

o
o o

Autoterminacin. Terminacin por un padre. Utilizacin excesiva de recursos. Condiciones anormales durante la ejecucin. La interaccin incorrecta con otros procesos.

Transicin de estado de un proceso


Salir Terminado Nuevo En_ejecucin Admisin Despachar Expiracin de tiempo Espera operacin e/s u otro evento

Listo

Bloqueado

Despertar

Transicin de estado de un proceso


Se han definido las siguientes transiciones de estado:
despachar (nombre_del_proceso): listo en_ejecucin tiempo_expirado (nombre_del_proceso): en_ejecucin listo operacin_e/s(nombre_del_proceso): en_ejecucin bloqueado

despertar (nombre_del_proceso): bloqueado listo


terminado (nombre_del_proceso): en_ejecucin terminado

NOTA:

La nica transicin de estado iniciada por el proceso de usuario es el bloqueo; las otras tres transiciones son iniciadas por entidades externas al proceso.

Cinco estados de un proceso


Se tienen dos conceptos independientes:
o

Si un proceso est esperando un suceso (bloqueado o no) Si un proceso ha sido expulsado de la memoria principal (suspendido o no).

Cinco estados de un proceso


El estado de suspensin difiere del estado bloqueado en que la razn de la suspensin es externa a la actividad durante el proceso, mientras que la razn para bloqueo es interna a su propia actividad.

Dos causas tpicas de suspensin son:


o o

Un proceso sale de la memoria, es decir, se intercambia. El usuario que inici un proceso especifica que el proceso no deber planificarse hasta que se satisfaga alguna condicin.

Cinco estados de un proceso


Despertar

Listo

Bloqueado Despachar

Estados activos
Suspender
Expiracin de tiempo
Espera operacin e/s u otro evento

Reanudar

En_ejecucin
Reanudar Suspender

Suspendido_ listo

Suspender

Suspendido_ bloqueado

Estados de suspensin

Despertar

Cinco estados de un proceso


Nuevos estados y transiciones: Suspendido_listo: El proceso est en memoria secundaria pero est disponible para su ejecucin tan pronto como se cargue en la memoria principal.
suspender (nombre_del_proceso): en_ejecucin suspendido_listo suspender (nombre_del_proceso): listo suspendido_listo

reanudar (nombre_del_proceso): suspendido_listo listo

Cinco estados de un proceso


Suspendido_bloqueado: El proceso est en la memoria secundaria esperando un suceso.
suspender (nombre_del_proceso): bloqueado suspendido_bloqueado
reanudar (nombre_del_proceso): suspendido_bloqueado bloqueado despertar(nombre_del_proceso): suspendido_bloqueado suspendido_listo

Cinco estados de un proceso


Las razones por la cuales un proceso se puede suspender son:
Intercambio
El sistema operativo necesita liberar suficiente memoria principal para cargar un proceso que est listo para ejecutarse.
El sistema operativo puede suspender a un proceso subordinado o de utilidad, o a un proceso que se sospecha que sea el causante de un problema. Un usuario puede querer suspender la ejecucin de un programa con fines de depuracin o en conexin con el uso de un recurso. Un proceso puede ejecutarse peridicamente (por ejemplo, un proceso de contabilidad o de supervisin del sistema) y puede ser suspendido mientras espera el siguiente intervalo de tiempo. Un proceso padre puede querer suspender la ejecucin de un descendiente para examinar o modificar el proceso suspendido o para coordinar la actividad de varios descendientes.

Otra razn del SO Solicitud de un usuario interactivo Temporizacin

Solicitud del proceso padre

Ing. Yesenia Carrera Fournier sofiunam at gmail.com

Semestre 2013-II

You might also like