Tema_IIa

27
Tema II Administración de Procesos

Transcript of Tema_IIa

Page 1: Tema_IIa

Tema II Administración de Procesos

Page 2: Tema_IIa

Un proceso es un programa en memoria principal.

Un proceso está compuesto de seis componentes:

o Id

o Código 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 acción

por sí mismo, tiene que ser ejecutado para realizar las acciones

especificadas en él).

Concepto de Proceso

Page 3: Tema_IIa

Un proceso necesita ciertos recursos para realizar

satisfactoriamente su tarea:

o Tiempo de CPU.

o Memoria.

o Archivos.

o Dispositivos de E/S.

Los recursos se asignan a un proceso:

o Cuando se crea.

o Durante su ejecución.

Concepto de Proceso

Page 4: Tema_IIa

Cada proceso se representa en el SO con un Bloque de Control

de Proceso (PCB, Process Control Block), también llamado

bloque de control de tarea.

Apuntador Estado del

proceso

número del proceso

contador de programa

registros

límites de memoria

lista de archivos

Bloque de Control de Proceso

Page 5: Tema_IIa

o Disposición de la memoria

de tres procesos.

o Los tres procesos están

representados por

programas que están

cargados por completo en la

memoria principal.

Memoria Principal

Distribuidor

Proceso A

Proceso B

Proceso C

Dirección

0

100

5, 000

8, 000

12, 000

8000

Contador de programa

Traza de un proceso

Page 6: Tema_IIa

TRAZAS DE LOS PROCESOS

5000 8000 12000

5001 8001 12001

5002 8002 12002

5003 8003 12003

5004 12004

5005 12005

5006 12006

5007 12007

5008 12008

5009 12009

5010 12010

5011 12011

Traza de Proceso A Traza del Proceso B Traza del Proceso C

5000 = Dirección de comienzo del programa del Proceso A

8000 = Dirección de comienzo del programa del Proceso B

12000 = Dirección de comienzo del programa del Proceso C

Estados básicos de un proceso

Page 7: Tema_IIa

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

100 = Dirección de comienzo del programa distribuidor. • Las letras de color azul indican ejecución del proceso distribuidor.

• La primera y tercera columna cuentan los ciclos de instrucción.

• La segunda y cuarta columna muestran la dirección de la instrucción a ejecutar.

• Las trazas intercaladas muestran los primeros 52 ciclos de instrucción (los cuales enumeran a conveniencia).

• Se supone que el Sistema Operativo (SO) permite a un proceso continuar su ejecución sólo por un máximo de 6 ciclos de instrucción, después de los cuales es interrumpido; esto impide que un solo proceso monopolice el tiempo de procesador.

Estados básicos de un proceso

Page 8: Tema_IIa

El kernel usa tres funciones fundamentales para controlar

los procesos:

1. La planificación: Seleccionar el proceso que debe

ejecutarse enseguida en el CPU.

2. El despacho: Establecer la ejecución del proceso

seleccionado en el CPU.

3. El contexto de salvar: Guardar la información relativa a

un proceso en curso cuando su ejecución se suspende.

El estado de proceso es un indicador de la naturaleza de la

actividad actual en un proceso.

Estados básicos de un proceso

Page 9: Tema_IIa

Una transición de estado para un proceso es un cambio en su

estado, y se debe a la ocurrencia de algún evento en el

sistema.

La asignación 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 transición se puede indicar de la siguiente manera:

despachar (nombre_del_proceso): listo → en_ejecución

Transición de estado de un proceso

Page 10: Tema_IIa

En_ejecución

Terminado

Listo Bloqueado

Nuevo

Despachar

Expiración de tiempo

Despertar

Espera operación e/s u otro evento

Admisión

Salir

Transición de estado de un proceso

Page 11: Tema_IIa

Para evitar que un proceso monopolice el sistema (en forma

accidental o malintencionada), el Sistema Operativo (SO) utiliza un

reloj de interrupción por hardware (cronómetro de intervalos)

para que las tareas de un usuario se ejecuten durante un intervalo

específico de tiempo (quantum).

Si el proceso no libera voluntariamente la CPU antes de que expire

el intervalo de tiempo, el reloj genera una interrupción, haciendo

que retome el control el SO.

El SO transforma entonces el proceso que estaba ejecutándose en

un proceso listo y procede a ejecutar el primero de los procesos de

la lista de listos.

La transición de estado se indica de la siguiente manera:

tiempo_expirado (nombre_del_proceso): en_ejecución → listo

Transición de estado de un proceso

Page 12: Tema_IIa

En_ejecución

Terminado

Listo Bloqueado

Nuevo

Despachar

Expiración de tiempo

Despertar

Espera operación e/s u otro evento

Admisión

Salir

Transición de estado de un proceso

Page 13: Tema_IIa

Si el proceso que se está ejecutando inicia una operación 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 operación de

entrada/salida).

Esta transición de estado se puede representar de dos formas:

bloquear (nombre_del_proceso): en_ejecución → bloqueado

o

operación_e/s (nombre_del_proceso): en_ejecución → bloqueado

Transición de estado de un proceso

Page 14: Tema_IIa

Las cinco causas principales de bloqueo son:

o El proceso solicita una operación de e/s.

o El proceso solicita memoria o cualquier otro recurso.

o El proceso desea esperar durante un intervalo específico de

tiempo.

o El proceso espera el mensaje de otro proceso.

o El proceso desea esperar alguna otra acción de otro

proceso.

Transición de estado de un proceso

Page 15: Tema_IIa

En_ejecución

Terminado

Listo Bloqueado

Nuevo

Despachar

Expiración de tiempo

Despertar

Espera operación e/s u otro evento

Admisión

Salir

Transición de estado de un proceso

Page 16: Tema_IIa

Cuando se completa una operación de E/S o algún otro

evento que espere un proceso. El proceso realiza la transición

del estado bloqueado al estado listo.

La transición es:

despertar (nombre_del_proceso): bloqueado → listo

Transición de estado de un proceso

Page 17: Tema_IIa

En_ejecución

Terminado

Listo Bloqueado

Nuevo

Despachar

Expiración de tiempo

Despertar

Espera operación e/s u otro evento

Admisión

Salir

Transición de estado de un proceso

Page 18: Tema_IIa

La ejecución del proceso se completa o se termina.

La transición es:

terminado(nombre_del_proceso): en_ejecución→ terminado

Las siguientes son cinco razones principales para la

terminación del proceso:

o Autoterminación.

o Terminación por un padre.

o Utilización excesiva de recursos.

o Condiciones anormales durante la ejecución.

o La interacción incorrecta con otros procesos.

Transición de estado de un proceso

Page 19: Tema_IIa

En_ejecución

Terminado

Listo Bloqueado

Nuevo

Despachar

Expiración de tiempo

Despertar

Espera operación e/s u otro evento

Admisión

Salir

Transición de estado de un proceso

Page 20: Tema_IIa

Se han definido las siguientes transiciones de estado:

despachar (nombre_del_proceso): listo → en_ejecución

tiempo_expirado (nombre_del_proceso): en_ejecución → listo

operación_e/s(nombre_del_proceso): en_ejecución → bloqueado

despertar (nombre_del_proceso): bloqueado → listo

terminado (nombre_del_proceso): en_ejecución→ terminado

NOTA:

La única transición de estado iniciada por el proceso de

usuario es el bloqueo; las otras tres transiciones son iniciadas

por entidades externas al proceso.

Transición de estado de un proceso

Page 21: Tema_IIa

Se tienen dos conceptos independientes:

o Si un proceso está esperando un suceso (bloqueado o

no)

o Si un proceso ha sido expulsado de la memoria principal

(suspendido o no).

Cinco estados de un proceso

Page 22: Tema_IIa

El estado de suspensión difiere del estado bloqueado en que

la razón de la suspensión es externa a la actividad durante el

proceso, mientras que la razón para bloqueo es interna a su

propia actividad.

Dos causas típicas de suspensión son:

o Un proceso sale de la memoria, es decir, se intercambia.

o El usuario que inició un proceso especifica que el proceso

no deberá planificarse hasta que se satisfaga alguna

condición.

Cinco estados de un proceso

Page 23: Tema_IIa

En_ejecución

Listo Bloqueado

Suspendido_listo

Suspendido_bloqueado

Estados activos

Estados de suspensión

Suspender

Suspender

Reanudar Suspender

Reanudar

Despachar

Expiración de tiempo

Despertar

Despertar

Espera operación e/s u otro evento

Cinco estados de un proceso

Page 24: Tema_IIa

Nuevos estados y transiciones:

Suspendido_listo: El proceso está en memoria secundaria

pero está disponible para su ejecución tan pronto como se

cargue en la memoria principal.

suspender (nombre_del_proceso): en_ejecución → suspendido_listo

suspender (nombre_del_proceso): listo → suspendido_listo

reanudar (nombre_del_proceso): suspendido_listo → listo

Cinco estados de un proceso

Page 25: Tema_IIa

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

Page 26: Tema_IIa

Las razones por la cuales un proceso se puede suspender son:

Intercambio

Otra razón del SO

Solicitud de un usuario interactivo

Temporización

Solicitud del proceso padre

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 ejecución de un programa con fines de depuración o en conexión con el uso de un recurso.

Un proceso puede ejecutarse periódicamente (por ejemplo, un proceso de contabilidad o de supervisión del sistema) y puede ser suspendido mientras espera el siguiente intervalo de tiempo.

Un proceso padre puede querer suspender la ejecución de un descendiente para examinar o modificar el proceso suspendido o para coordinar la actividad de varios descendientes.

Cinco estados de un proceso

Page 27: Tema_IIa

Ing. Yesenia Carrera Fournier

sofiunam at gmail.com

Semestre 2013-II