Sei sulla pagina 1di 53

Descripcin y control de procesos

Principales requisitos de los sistemas operativos


Intercalar la ejecucin de mltiples procesos para maximizar la utilizacin del procesador ofreciendo a la vez un tiempo de respuesta razonable. Asignar los recursos a los procesos. Dar soporte a la comunicacin entre procesos y la creacin de procesos por parte del usuario.

Proceso
Tambin se llama tarea. Ejecucin de un programa individual. Traza del proceso:
Listado de la secuencia de instrucciones que se ejecutan para dicho proceso.

Direccin 0 100

Memoria principal Distribuidor

Contador de programa Contador de programa


8000

5.000

Proceso A
8.000

Proceso B Proceso B
12.000

Proceso C Proceso C

Figura 3.1. Instantnea de un ejemplo de ejecucin (Figura 3.3) en el ciclo de instruccin 13.

(a) Traza del proceso A

(b) Traza del proceso B

(c) Traza del proceso C

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

Figura 3.2. Trazas de los procesos de la Figura 3.1.

Fin de plazo

Fin de plazo

Fin de plazo Solicitud de E/S

Fin de plazo

100 = Direccin de comienzo del programa distribuidor Las reas sombreadas 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.

Figura 3.3. Traza combinada de los procesos de la Figura 3.1.

Modelo de proceso con dos estados


Un proceso puede estar en uno de dos estados:
Ejecucin. No Ejecucin.
Entrar Expedir

No No ejecucin Ejecucin

Salir

Ejecucin

Pausar

(a) Diagrama de transicin de estados

Proceso en estado de No Ejecucin en una cola


Cola Entrar Expedir Procesador Salida

Pausa

(b) Diagrama de colas

Creacin de procesos
Emisin de un trabajo por lotes. El nuevo usuario intenta conectarse. Se crea para ofrecer un servicio, como por ejemplo la impresin. Permite que un proceso pueda originar la creacin de otro.

Terminacin de procesos
Un trabajo por lotes debe incluir una instruccin de detencin (Halt). El usuario se desconecta. El usuario puede abandonar una aplicacin. Una serie de errores y condiciones de fallo pueden llevarnos a la terminacin de un proceso.

Razones para la terminacin de un proceso


Terminacin normal. Tiempo lmite excedido. No hay memoria disponible. Violacin de lmites. Error de proteccin:

Error aritmtico. Tiempo mximo de espera rebasado:

Por ejemplo: escribir en un archivo que es slo de lectura. El proceso ha esperado ms all del tiempo mximo especificado para que se produzca cierto suceso.

CausasFalloterminacin de un proceso de de E/S.


Instruccin ilegal:
A menudo cuando intenta ejecutar los datos.

Instruccin privilegiada. Mal uso de los datos. Intervencin del operador o del SO:
Por ejemplo, si se produce un bloqueo.

Terminacin del padre, por lo que terminan los procesos de todos sus descendientes. Solicitud del padre.

Procesos
No Ejecucin:
Listos para ejecutarse.

Bloqueado:
Esperan a que termine una operacin de E/S.

El distribuidor podra no seleccionar exactamente el proceso que est en el extremo ms antiguo de la cola porque podra estar bloqueado.

Un modelo de cinco estados


Ejecucin. Listo. Bloqueado. Nuevo. Terminado.

Admitir Nuevo Listo

Expedir Ejecucin Ejecucin Fin del tiempo Ocurre suceso Salir Terminado Terminado

Espera suceso

Bloqueado

Figura 3.5. Modelo de procesos de cinco estados.

Proceso A

Proceso B

Proceso C

Distribuidor

Ejecucin

Listo

Bloqueado

Figura 3.6. Estados de un proceso para la traza de la Figura 3.3.

Dos colas de bloqueados


Cola de listos Admitir Expedir Salir Procesador

Fin de plazo Cola de bloqueados Ocurre suceso Esperar suceso

(a) Una sola cola de bloqueados

Cola de listos Admitir Expedir

Salir Procesador

Fin de plazo

Cola del suceso 1 Ocurre suceso 1 Cola del suceso 2 Ocurre suceso 2 Esperar suceso 2 Esperar suceso 1

Cola del suceso n


Ocurre suceso n Esperar suceso n

(b) Varias colas de bloqueados

El procesador es ms rpido E/S, Procesos suspendidos que que la los por lo que suele ser habitual todos

procesos de memoria estn esperando por E/S. Intercambiar una parte del proceso o todo el proceso al disco para liberar la memoria principal. Cuando los procesos de la memoria principal estn en el estado Bloqueado, el sistema operativo puede suspender un proceso ponindolo en estado Suspendido. Dos nuevos estados:
Bloqueado y suspendido. Listo y suspendido.

Un estado de suspensin
Nuevo Nuevo
Admitir Expedir

Salir

Listo Listo
Fin de plazo

Ejecucin Ejecucin

Terminado Terminado

Suspender

Suspendido Suspendido

Bloqueado Bloqueado

(a) Con un estado de suspensin

suceso

Dos estados de suspensin


Nuevo Nuevo

Listo/ suspendido
Suspender suceso

Expedir

Listo
Fin de plazo suceso

Ejecucin Ejecucin

Salir

Terminado Terminado

Bloqueado/ suspendido Suspender

Bloqueado Bloqueado

(b) Con dos estados de suspensin

Razones para la suspensin de procesos


Intercambio Otra razn del SO Solicitud de un usuario interactivo

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 causan te de un problema. Un usuario puede querer suspender la ejecucin de un programa con fines de depuracin o en conexin con el uso

Temporizacin

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.

Solicitud del proceso padre

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.

Memoria
virtual Recursos del computador Procesador E/S E/S E/S Memoria principal

Figura 3.9. Procesos y recursos (asignacin de recursos en un instante de tiempo).

Estructuras de control del sistema operativo


Informacin sobre el estado actual de cada proceso y de cada recurso. El sistema operativo construye tablas de informacin sobre cada entidad que est administrando.

de memoria TablasLa asignacin de memoria principal a

los procesos. La asignacin de memoria secundaria a los procesos. Cualesquiera atributos de proteccin de bloques de memoria principal o virtual, como qu procesos pueden acceder a ciertas regiones compartidas de memoria. Cualquier informacin necesaria para gestionar la memoria virtual.

de E/S TablasUn dispositivo de E/S puede estar

disponible o estar asignado a un proceso en particular. Estado de la operacin de E/S. Posicin de memoria principal que se est utilizando como origen o destino de la transferencia de E/S.

Tablas de archivos
Ofrecen informacin sobre la existencia de los archivos. Su posicin en la memoria secundaria. Su estado actual. Otros atributos. A veces esta informacin es mantenida por un sistema de gestin de archivos.

Tablas de procesos
Dnde est ubicado el proceso? Atributos del proceso necesarios para su administracin:
ID del proceso. Estado del proceso. Ubicacin en la memoria.

Un proceso incluye un programa Ubicacin de los procesos o un


conjunto de programas a ejecutar:
Conjunto de ubicaciones de datos para las variables locales y globales. Constantes definidas. Pila.

Bloque de control del proceso:


Coleccin de atributos.

Imagen del proceso:


Coleccin de programa, datos, pila y atributos.

Tablas de memoria Memoria Dispositivos Archivos Procesos

Imagen de proceso

Tablas de E/S
Tablas de archivo

Proceso 1

Tabla de procesos principal

Proceso 1 Proceso 2 Proceso 3


Imagen de proceso

Proceso n

Proceso n

Figura 3.10. Estructura general de las tablas de control del sistema operativo.

Bloque de control de proceso


Identificacin de proceso
Identificadores:
Los identificadores numricos que se pueden guardar en el bloque de control de proceso son: Identificador de este proceso. Identificador del proceso que cre a este proceso (el proceso padre). Identificador del usuario.

Bloque de control de proceso


Informacin de estado del procesador
Registros visibles para el usuario:
Un registro visible para el usuario es aqul al que puede hacerse referencia por medio del lenguaje de mquina que ejecuta el procesador. Normalmente, existen de 8 a 32 de estos registros, aunque algunas implementaciones RISC tienen ms de 100.

Bloque de control de proceso


Informacin de estado del procesador
Registros de control y de estado:
Hay varios registros del procesador que se emplean para controlar su funcionamiento. Entre stos se incluyen: Contador de programa: contiene la direccin de la prxima instruccin a leer. Cdigos de condicin: muestran el resultado de la operacin aritmtica o lgica ms reciente (signo, cero, acarreo, igualdad, desbordamiento). Information de estado: incluye los indicadores de habilitacin o inhabilitacin de interrupciones y de modo de ejecucin.

Bloque de control de proceso


Informacin de estado del procesador
Punteros de pila:
Cada proceso tiene una o ms pilas LIFO del sistema asociadas. Las pilas se utilizan para almacenar los parmetros y las direcciones de retorno de los procedimientos y de las llamadas al sistema. El puntero de pila siempre apunta a la cima de la pila.

Informacin de control del proceso Bloque de control dey proceso Informacin de planificacin de estado:

sta es la informacin que necesita el sistema operativo para llevar a cabo sus funciones de planificacin. Los elementos tpicos de esta informacin son los siguientes: Estado del proceso: define la disposicin del proceso para ser planificado para ejecutar (en ejecucin, listo, esperando, detenido). Prioridad: se puede usar uno o ms campos para describir la prioridad de planificacin de los procesos. En algunos sistemas se necesitan varios valores (por omisin, actual, la ms alta permitida). Informacin de planificacin: sta depender del algoritmo de planificacin utilizado. Como ejemplos se tienen la cantidad de tiempo que el proceso ha estado esperando y la cantidad de tiempo que el proceso ejecut la ltima vez. Suceso: la identidad del suceso que el proceso est esperando antes de poder reanudarse.

Bloque de control de proceso


Informacin de control del proceso:
Estructuracin de datos:
Un proceso puede estar enlazado con otros procesos en una cola, un anillo o alguna otra estructura. Por ejemplo, todos los procesos que estn en estado de espera de un nivel determinado de prioridad pueden estar enlazados en una cola. Un proceso puede mostrar una relacin padre-hijo (creador-creado) con otro proceso. El bloque de control de proceso puede contener punteros a otros procesos para dar soporte a estas estructuras.

Bloque de control de proceso


Informacin de control del proceso:
Comunicacin entre procesos:
Puede haber varios indicadores, seales y mensajes asociados con la comunicacin entre dos procesos independientes. Una parte de esta informacin o toda ella se puede guardar en el bloque de control de proceso.

Privilegios de los procesos:


A los procesos se les otorgan privilegios en trminos de la memoria a la que pueden acceder y el tipo de instrucciones que pueden ejecutar. Adems, tambin se pueden aplicar privilegios al uso de los servicios y utilidades del sistema.

Bloque de control de proceso


Informacin de control del proceso:
Gestin de memoria:
Esta seccin puede incluir punteros a las tablas de pginas o segmentos que describen la memoria virtual asignada al proceso.

Propiedad de los recursos y utilizacin:


Se pueden indicar los recursos controlados por el proceso, como los archivos abiertos. Tambin puede incluir un historial de la utilizacin del procesador o de otros recursos ; esta informacin puede ser necesaria para el planificador.

Identificacin del proceso


Informacin de estado del procesador

Identificacin del proceso


Informacin de estado del procesador

Identificacin del proceso


Informacin de estado del procesador

Bloque de control del proceso

Informacin de control del proceso Pila de usuario

Informacin de control del proceso Pila de usuario

Informacin de control del proceso Pila de usuario

Espacio privado de direcciones de usuario (programas, datos)

Espacio privado de direcciones de usuario (programas, datos)

Espacio privado de direcciones de usuario (programas, datos)

Espacio de direcciones compartido

Espacio de direcciones compartido

Espacio de direcciones compartido

Proceso 1

Proceso 2

Proceso n

Figura 3.12. Procesos de usuario en memoria virtual.

Informacin de estado del procesador


Formada por el contenido de los registros del procesador:
Registros visibles para el usuario. Registros de control y de estado. Punteros de pila.

Palabra de estado del programa (PSW):


Contiene informacin de estado. Por ejemplo: el registro EFLAGS de las mquinas Pentium.

Registro EFLAGS del Pentium II


ID VIP VIF AC VM RF NT IOPL OF = = = = = = = = = Marca de identificacin Interrupcin virtual pendiente Marca de interrupcin virtual Comprobacin de alineacin Modo 8086 virtual Marca de continuacin Marca de tarea anidada Nivel de privilegio de E/S Marca de desbordamiento DF IF TF SF ZF AF PF CF = = = = = = = = Marca de direccin Marca de inhabilitacin de interrupciones Marca de cepo Marca de signo Marca de cero Marca de acarreo auxiliar Marca de paridad Marca de acarreo

Figura 3.11. Registro EFLAGS del Pentium II.

Modos de ejecucin
Modo de usuario:
Es el modo menos privilegiado. Los programas de usuarios ejecutan normalmente en ese modo.

Modo del sistema, modo de control o modo del ncleo:


Es el modo ms privilegiado. Ncleo del sistema operativo.

Asignar procesos Creacin deun nico identificador al nuevo

proceso. Asignar espacio para el proceso. Iniciar el bloque de control del proceso. Establecer los enlaces apropiados:
Por ejemplo: aadir un proceso nuevo a una lista enlazada que se utiliza como cola de planificacin.
Por ejemplo: mantener un archivo de contabilidad.

Crear o ampliar otras estructuras de datos:

Cundo cambiar de proceso


Interrupcin de reloj:
El proceso en ejecucin ha consumido la fraccin mxima de tiempo permitida.

Interrupcin de E/S. Fallo de memoria:


La direccin de memoria se encuentra en la memoria virtual, por lo tanto debe ser llevada a la memoria principal.

Cundo cambiar de proceso


Cepos:
Se ha producido un error. Puede hacer que el proceso que se estaba ejecutando pase al estado de Terminado.

Llamada del supervisor:


Como la operacin de abrir una archivo.

Salvar estado del los procesos Cambio de el contextode procesador,

incluyendo el contador de programa y otros registros. Actualizar el bloque de control del proceso que est en estado de Ejecucin. Mover el bloque de control del proceso a la cola apropiada (Listos, bloqueados). Seleccionar otro proceso para su ejecucin.

Cambio de estado de los procesos


Actualizar el bloque de control del proceso seleccionado. Actualizar las estructuras de datos de la gestin de memoria. Restaurar el contexto del proceso seleccionado.

Ncleo fuera de todo operativo Ejecucin del sistema proceso:

Ejecucin dentro de los procesos de usuario:

Ejecuta el ncleo del sistema operativo fuera de cualquier proceso. El cdigo del sistema operativo se ejecuta como una entidad separada que opera en modo privilegiado. Software del sistema operativo en el contexto de un proceso de usuario. Un proceso se ejecuta en modo privilegiado cuando se ejecuta el cdigo del sistema operativo.

Identificacin del proceso Informacin de estado del procesador Informacin de control del proceso
Pila de usuario
Espacio privado de direcciones de usuario (programas, datos)

Pila del ncleo

Espacio de direcciones compartido

Figura 3.15. Imagen de un proceso: el sistema operativo se ejecuta dentro del proceso de usuario.

Ejecucin del sistema operativo


Sistema operativo basado en procesos:
Las funciones ms importantes del ncleo se organizan en procesos separados. til en un entorno de multiprocesador o de varios computadores.

Gestin de procesos en UNIX SVR4


La mayora del sistema operativo ejecuta dentro Pn P2 P de un proceso1de usuario.
Funciones del OS Funcio1 nes del OS

Funcio1 nes del OS

Funciones de cambio de proceso


(b) Las funciones del SO se ejecutan dentro de los procesos de usuario

Estados de un proceso en UNIX


Ejecucin en modo de usuario
Ejecucin en modo del ncleo Listo para ejecutar y en memoria Dormido y en memoria Listo para ejecutar y descargado

Ejecutando en modo de usuario.


Ejecutando en modo de ncleo. Listo para ejecutar tan pronto como el ncleo lo planifique. Incapaz de ejecutar hasta que se produzca un suceso; el proceso est en memoria principal. El proceso est listo para ejecutar, pero se debe cargar el proceso en memoria principal antes de que el ncleo pueda planificarlo para la ejecucin.

Dormido y descargado Expulsado

El proceso est esperando un suceso y ha sido expulsado al almacenamiento secundario. El proceso retorna del modo del ncleo al modo de usuario, pero el ncleo lo expulsa y realiza un cambio de contexto

para planificar otro proceso.


Creado Zombie El proceso est recin creado y an no est listo para ejecutar. El proceso ya no existe, pero deja un registro para que lo recoja el proceso padre.

Creado Creado Expulsado Expulsado Sin memoria suficiente (slo sistema de intercambio)

Ejecucin Ejecucin en modo en modo de usuario de usuario

Volcer a planificar el proceso


Ejecucin Ejecucin en modo en modo del ncleo del ncleo

Listo para ejecutar y en memoria

Listo para ejecutar y descargado

Interrupcin, retorno de interrupcin

Dormir Terminar

Despertar

Despertar

Zombie

Dormido Dormido en en memoria memoria

Dormido y descargado

Figura 3.16. Diagrama de transicin de estados de los procesos en UNIX.

Potrebbero piacerti anche