Descargar

Los procesos en los sistemas operativos


Partes: 1, 2

  1. Modelo de procesos. Estados de los procesos
  2. Programación Concurrente. Grafos de precedencia
  3. Condiciones de concurrencia y especificación
  4. Jerarquía entre procesos
  5. Bibliografía

Modelo de procesos. Estados de los procesos

Como ya se indicó, el concepto de proceso juega un rol fundamental en la teoría y práctica de los sistemas operativos.

Se señaló que un proceso era simplemente un programa en ejecución, lo que implicaba la tenencia de áreas de memoria, valores de registros, contador de programa, puntero de la pila, etc.

La información acerca de los procesos presentes en un instante de tiempo se conserva en la tabla de procesos, la que permite restaurar un proceso que perdió antes el control de ejecución.

Cada entrada de esta tabla se corresponde con un proceso en el sistema y recibe el nombre de bloque de control del proceso (PCB). Este contiene diferentes grupos de información para un proceso en específico, tales como (Fig 4.8 del Peterson):

  • Estado del proceso.

  • ? Contador de programa.

  • ? Registros del CPU (acumuladores, índice, propósito general, estado).

  • ? Uso de memoria (Dirección, Inicio y longitud de los segmentos, tablas de páginas, etc).

  • ? Información de contabilidad (Cantidad de tiempo real y del CPU utilizado, límites de tiempo, número del proceso, etc).

  • ? Información del estado de E/S (dispositivos asignados, lista de ficheros abiertos, solicitud de E/S, etc).

  • ? Información de planificación del CPU (prioridad, punteros a las colas de planificación, etc).

En el modelo de procesos todo el Software ejecutable, a menudo incluyendo el propio sistema de operación, se organiza como procesos secuenciales. Aparentemente cada proceso tiene su propio procesador central, pero en realidad este cambia de uno a otro de acuerdo con el concepto de multiprogramación (seudoparalelismo).

Los procesos son totalmente aleatorios en el tiempo y el comportamiento de un conjunto de ellos dependerá de las condiciones en un instante dado. Esto implica que los programas no pueden ser elaborados asumiendo lo que pasará en el futuro cuando se están procesando.

Un proceso puede tener diferentes estados durante sus existencia. El número de estados dependerá del diseño del sistema operativo, pero al menos hay tres que siempre estarán presentes:

  • ? En ejecución: El proceso está en posesión del CPU en ese instante.

  • ? Bloqueado: El proceso está esperando hasta que ocurra un evento externo (por ejemplo, una E/S).

  • ? Listo: El proceso está en condiciones de ejecutar, pero está detenido temporalmente para permitir a otro proceso la ejecución.

Si a estos tres estados le agregamos las transiciones entre ellos se obtendría el siguiente grafo.

edu.red

Las cuatro transiciones que aparecen en el grafo dirigido se explican en la forma siguiente:

  • ? La transición 1 implica que el proceso estaba en ejecución y se bloquea debido a que necesita esperar la ocurrencia de un evento externo. Esta transición se logra con la propia ejecución de una llamada al sistema con este fin o forzado por el sistema operativo (se realizó una solicitud que no puede ser satisfecha en ese instante).

  • ? La transición 2 ocurre cuando el planificador del procesador (Scheduler, una parte del sistema operativo) decide que se debe entregar el control del CPU a un proceso, aún cuando el actual estaría en condiciones de continuar. Esta decisión puede estar motivada por el hecho de que el proceso ya consumió el quantum de tiempo asignado o está listo otro que tiene mayor prioridad que el actual.

  • ? La transición 3 también es realizada por el planificador del procesador y consiste en entregar el control de este a un proceso que está listo (debido a que el actual terminó, se bloqueó o se le quitó).

  • ? La transición 4 ocurre cuando el evento externo que el proceso estaba esperando tiene lugar. Si en ese instante no hay otro proceso ejecutando o su prioridad es superior al que está, de inmediato ocurrirá también la transición 3, en caso contrario tendrá que esperar en el estado de listo.

Haciendo uso del modelo de procesos resulta más fácil comprender como puede ser un sistema operativo por dentro. Algunos de los procesos constituyen programas mandados a ejecutar por los usuarios en sus comandos, pero otros son parte del sistema (sistema de ficheros, administrador de memoria y manejadores de dispositivos). Todos estos procesos se bloquean cuando necesitan esperar por algo y al ocurrir el evento pasan a listo, son ilegibles para ejecutarse (por supuesto el evento que espera un manejador de dispositivo es la interrupción correspondiente).

Partes: 1, 2
Página siguiente