Sistemas Operativos – 2º año – I.S.I.

UNIDAD II - PROCESOS DESCRIPCIÓN Y CONTROL DE PROCESOS

El diseño de un S.O. debe reflejar los requisitos que se pretende que el mismo cumpla. Todos los S.O de multiprogramación, desde los sistemas monousuarios como Windows hasta los sistemas de grandes computadoras como MVS, que puede dar soporte a miles de usuarios, están construidos en torno al concepto de proceso. Por ello, los principales requisitos que debe satisfacer un S.O. están expresados en referencia a procesos: • • El S.O. debe intercalar la ejecución de un conjunto de procesos para maximizar la utilización del procesador ofreciendo a la vez un tiempo de respuesta razonable. El S.O. debe asignar los recursos a los procesos en conformidad con una política específica (por ejemplo, ciertas funciones o aplicaciones son de más alta prioridad), evitado, al mismo tiempo, el interbloqueo (también denominado Deadlock – Abrazo Mortal – Bloqueo). • El S.O. podría tener que dar soporte a la comunicación entre procesos y la creación de procesos por parte del usuario, tareas que pueden ser de ayuda en la estructuración de las aplicaciones.

Autores consultados: William STALLINGS PETERSON, SILBERSATSZ y GALVIN Andrew TANNEMBAUM

Pág. 1

1. ESTADOS DE UN PROCESO

1. Estados de un Proceso
La principal función del procesador es ejecutar las instrucciones de la máquina que residen en Memoria principal. Estas instrucciones se dan en forma de programas que contienen secuencias de instrucciones. Como ya vimos, por razones de eficiencia un procesador puede intercalar la ejecución de un conjunto de programas en el tiempo. De este modo, desde el punto de vista del procesador , éste ejecutará instrucciones de entre un repertorio en una secuencia dictada por los valores del registro Contador de Programa (Program Counter) – PC o CP. A lo largo del tiempo este registro puede apuntar a códigos de programas diferentes que son parte de aplicaciones diferentes. Desde el punto de vista de un programa individual su ejecución involucra una secuencia de instrucciones del programa. La ejecución de un programa individual se conoce como Proceso o tarea. El comportamiento de un proceso individual puede caracterizarse por el listado de la secuencia de instrucciones que se ejecutan para dicho proceso. Dicho listado se denomina traza (trace) del proceso. Veamos un ejemplo: supongamos que 3 procesos se encuentran en memoria. Para simplificar el ejemplo diremos que no se dispone de Memoria Virtual, es decir que los procesos están representados por programas cargados por completo en Memoria Principal. Además hay un pequeño Proceso distribuidor que asigna el procesador de un proceso a otro.

Pág. 2

UNIDAD II - PROCESOS

0 20 35 50 Código S.O Distribuidor Código S.O Proceso A 80 Proceso B

Contador de Programa

130 Proceso C

180 Supongamos que el S.O. permite a cada proceso utilizar el procesador durante 6 ciclos de instrucción, como máximo. Luego lo interrumpirá y asignará este recurso a otro proceso. Esto impide que un solo proceso monopolice al procesador. Analizaremos las 12 primeras instrucciones de los Procesos A y C. El proceso B ejecuta 4 instrucciones e invoca una operación de E/S por lo que el proceso debe esperar. En primer lugar se ejecutarán las primeras 6 instrucciones del proceso A. Luego este proceso será interrumpido y el S.O. asignará el procesador al proceso B. Luego de ejecutar 4 instrucciones este proceso debe efectuar una operación de E/S. En este punto el S.O. detiene la ejecución del proceso B y asigna el procesador al proceso C. Transcurridos los 6 ciclos de instrucción el procesador es asignado nuevamente al proceso A. Cuando A consume su tiempo, B aún espera por la terminación de la E/S así que el SO avanza nuevamente hacia el proceso C. A continuación se mostrarán las trazas (traces) intercaladas durante los primeros 52 ciclos de memoria. Pág. 3

UNIDAD II - PROCESOS

En el trace interviene la actividad del proceso distribuidor. Dirección de inicio del proceso distribuidor: 20 Dirección de inicio del proceso A: 50 Dirección de inicio del proceso B: 80 Dirección de inicio del proceso C: 130 20 + 0 20 + 1 20 + 2 Distr 20 + 3 20 + 4 20 + 5 50 + 0 50+1 50+2 50+3 50+4 50+5 80 + 0 80 + 1 80 + 2 80 + 3 B 20 + 0 20 + 1 20 + 2 Distr 20 + 3 20 + 4 20 + 5 50 + 0 50 + 1 50 + 2 A 50 + 3 50 + 4 50 + 5 20 + 0 20 + 1 20 + 2 Distr 20 + 3 20 + 4 20 + 5

Solic E/S 20 + 0 20 + 1 20 + 2 Distr 20 + 3 20 + 4 20 + 5 130 + 0 130 + 1 130 + 2 C 130 + 3 130 + 4 130 + 5

A

53. 130 + 0 54. 130 + 1 55. 130 + 2 C 56. 130 + 3 57. 130 + 4 58. 130 + 5

20 + 0 20 + 1 20 + 2 Distr 20 + 3 20 + 4 20 + 5

Modelo de Proceso con dos estados
La responsabilidad principal del S.O. es el control de la ejecución de los procesos, lo cual incluye la determinación de las pautas de intercalado que se van a seguir y la asignación de recursos a los procesos. Para poder diseñar un S.O. primero es necesario tener un modelo claro del comportamiento de un proceso. El modelo más sencillo que se puede plantear tiene en cuenta que en un momento determinado un proceso puede encontrarse en uno de dos estados posibles: Pág. 4

UNIDAD II - PROCESOS

• •

Ejecutándose en el procesador No ejecutándose en el procesador

Asignar CPU Entrada No Ejecución Pausa Ejecución

Salida

Cuando el S.O. crea un nuevo proceso éste entra en estado de No Ejecución. Con este modelo, el proceso existe, es conocido por el S.O. y está esperando la oportunidad para ejecutarse. De vez en cuando el proceso En Ejecución es interrumpido y vuelve al estado de No Ejecución. El programa distribuidor del Sistema Operativo selecciona otro proceso para ejecutar. Cuando un proceso termina saldrá de este modelo de 2 estados (ya que no necesita competir por CPU). Aún con este modelo tan simple se puede visualizar que cada proceso debe representarse de forma que el S.O pueda seguirle la pista. Esto significa que debe existir información relativa a cada proceso, incluyendo su estado actual y su ubicación en memoria. Los procesos que no están en ejecución deben guardarse en algún tipo de cola para que esperen su turno de ejecución. El comportamiento del distribuidor se puede describir en términos de un diagrama de colas. Cuando un proceso termina, vuelve a la cola de procesos en espera. Si un proceso termina o abandona, se lo descarta del sistema. En cualquier caso el distribuidor selecciona un proceso de la cola para ejecutar.

Pág. 5

UNIDAD II - PROCESOS

Un modelo de cinco estados
Si analizamos el estado de No Ejecución podemos ver que algunos procesos en este estado están listos para ser ejecutados en cuanto obtengan acceso al procesador. Otros, en cambio, están bloqueados en espera de E/S. Esto nos indica que podríamos dividir a este estado en otros dos: Listo y Bloqueado. También podríamos incluir dos estados cuyas construcciones son útiles para la gestión de procesos: Nuevo y Terminado. Los cinco estados definidos son:

Nuevo: proceso que se acaba de crear pero que aun no ha sido admitido por el S.O. en el grupo de procesos ejecutables (en este estado el S.O. debe llevar a cabo algunas tareas antes de pasar al proceso al estado de listo, entre ellas: asociar un identificador al proceso y construir y asignar algunas tablas necesarias para gestionar el proceso).

• • •

Listo: el proceso está preparado para ejecutarse en cuanto se le dé la oportunidad. Ejecución: el proceso que actualmente se ejcuta en la CPU. Bloqueado: proceso que no puede continuar su ejecución hasta que se produzca cierto suceso, como la terminación de una operación de E/S. Terminado: proceso excluido del grupo de procesos ejecutables porque ha terminado (normal o anormalmente). Asignar CPU Listo Fin de plazo Espera Suceso Bloqueado Terminado Ejecución

Admitir Nuevo

Ocurre Suceso

Fin del proceso

Pág. 6

UNIDAD II - PROCESOS

Realizando un análisis más profundo respecto a los estados en que puede encontrarse un proceso, veremos que en algunos casos el S.O. puede decidir sacar momentáneamente de memoria a un proceso. El proceso es mantenido en memoria secundaria hasta que se decida su reingreso a memoria.

Listo: el proceso está en memoria principal y listo para su ejecución

Admitir Nuevo Listo

Asignar CPU Ejecución Fin de plazo Espera Suceso Bloqueado Terminado

Ocurre Suceso

Fin del proceso

Pág. 7

Sign up to vote on this title
UsefulNot useful