Está en la página 1de 8

Unidad 2 Administracin de procesos y del procesador. 2.1 Concepto de proceso.

Un proceso es un programa en ejecucin, Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactan entre s y pertenecen a una misma aplicacin. En el caso de procesos independientes en general se debe a que no interactan y un proceso no requiere informacin de otros o bien porque son procesos que pertenecen a distintos usuarios. Losprocesossongestionadosporelsistemaoperativoyestaconstituidosdelasiguien teestructura:

Instrucciones

Informacin general

Proceso
Memoria de trabajo

Estado de ejecucin

2.2 Estados y transiciones de los procesos. Estados de los procesos Un proceso puede estar en cualquiera de los siguientes tres estados: Nuevo: Cuando el proceso se est creando. Ejecucin: Es cuando se estn ejecutando instrucciones. Espera: Es cuando el proceso est esperando que ocurra un evento. Listo: Es cuando un proceso est a la espera de ser asignado a un procesador.

Terminado: Es cuando el proceso ha terminado su ejecucin. Transiciones de los procesos: Cuando un proceso se crea, pasa a la cola de procesos listos. Se dice que existe una transicin de estado cuando un proceso cambia de un estado a otro. Los estados de transicin son los siguientes:

NuevoListo
Ejecucin trminado Listo ejecucin

Transicin
Bloqueolisto Ejecucinlisto

Ejecucin bloqueado

Nuevo-Listo: Este estado indica que ha un proceso recin creado se le permite competir por los recursos del CPU. Listo-Ejecucin: Es cuando a un proceso tiene la CPU a su disposicin, aqu se encuentra en ejecucin. Ejecucin-Listo: Es cuando a un proceso se le expira el intervalo de tiempo asignado para estar en ejecucin aqu existe un cambio de transicin:

Ejecucin

Estado B
Listo

Estado A

Ejecucin-Bloqueado: Esta transicin sucede cuando un proceso realiza una operacin de Entrada/Salida antes de que termine su tiempo de ejecucin. El proceso abandona la CPU y se bloquea as mismo. Bloqueado-Listo: Ocurre cuando se acaba una operacin de Entrada/Salida, terminando en el estado de Listo.

Bloqueado

Estado B
Listo

Estado A

Ejecucin-Terminado: Esta transicin ocurre cuando el proceso se ha terminado de ejecutarse, y pasa a un estado determinado. 2.3 Procesos ligeros (hilos o hebras). Un proceso: Unidad de propiedad de los recursos: el proceso incluye memoria (seccin de cdigo, seccin de datos) y otros recursos como: archivos abiertos, seales,... Unidad de expedicin: sigue un camino de ejecucin que puede ser intercalada con la de otros procesos. (Contador de programa, conjunto de registros, espacio de pila, estado) Estas dos caractersticas puede ser tratadas de manera independiente por el SO, apareciendo el concepto de hebra. Una hebra (o proceso ligero) es la unidad bsica de utilizacin de la CPU (unidad de expedicin). Consta de: Contador de programa. Conjunto de registros. Espacio de pila. Estado Una tarea es la unidad de propiedad de los recursos. Seccin de cdigo. Seccin de datos. Recursos del SO (archivos abiertos, seales,..). Una hebra comparte con sus hebras pares una tarea. Un proceso pesado o tradicional es igual a una tarea con una hebra. Una Hebra posee: Un estado de ejecucin (Ejecucin, Listo, etc.). El contexto del procesador se salva cuando no est ejecutando. Una pila de ejecucin. Almacenamiento esttico para las variables locales.

Acceso a la memoria y a los recursos del proceso, compartidos con todos los hilos del mismo.

Ventajas: Se obtiene un mayor rendimiento y un mejor servicio debido a: Se reduce el tiempo de cambio de contexto, el tiempo de creacin y el tiempo de terminacin. En una tarea con mltiples hebras, mientras una hebra servidora est bloqueada y esperando, una segunda hebra de la misma tarea puede ejecutarse (depende del tipo de hebras) La comunicacin entre hebras de una misma tarea se realiza a travs de la memoria compartida (no necesitan utilizar los mecanismos del ncleo). Las aplicaciones que necesitan compartir memoria se benefician de las hebras.

Funcionalidad de las hebras: Al igual que los procesos, las hebras poseen un estado de ejecucin y pueden sincronizarse. Estados de las hebras: Ejecucin, Lista y Bloqueada. Operaciones bsicas relacionadas con el cambio de estado en hebras: Creacin Bloqueo Desbloqueo Terminacin Sincronizacin entre hebras. Tipos de hebras: Hebras usuario Todo el trabajo de gestin de hebras lo realiza la aplicacin, el ncleo no es consciente de la existencia de hebras. Se implementan a travs de una biblioteca en el nivel usuario. La biblioteca contiene cdigo para gestionar las hebras: crear hebras, intercambiar datos entre hebras, planificar la ejecucin de las hebras y salvar y restaurar el contexto de las hebras. La unidad de planificacin para el ncleo es el proceso.

Hebras Kernel (Ncleo) Toda la gestin de hebras lo realiza el ncleo. El SO proporciona un conjunto de llamadas al sistema similares a las existentes para los procesos (Mach, OS/2). El ncleo mantiene la informacin de contexto del proceso como un todo y de cada hebra. La unidad de planificacin es la hebra. Las propias funciones del ncleo pueden ser multihebras. Enfoques hbridos Implementan tanto hebras a nivel kernel como usuario (p. ej. Solaris 2). La creacin de hebras, y la mayor parte de la planificacin y sincronizacin se realizan en el espacio de usuario. Las distintas hebras de una aplicacin se asocian con varias hebras del ncleo (mismo o menor nmero), el programador puede ajustar la asociacin para obtener un mejor resultado. Las mltiples hebras de una aplicacin se pueden paralelizar y las llamadas al sistema bloqueadoras no necesitan bloquear todo el proceso. 2.4 Concurrencia y secuenciabilidad. La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la comunicacin entre procesos, comparicin y competencia por los recursos, sincronizacin de la ejecucin de varios procesos y asignacin del tiempo de procesador a los procesos y es fundamental para que existan diseos como Multiprogramacin, Multiproceso y Proceso distribuido Los procesos son concurrentes si existen simultneamente. Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Tipos de procesos concurrentes. Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como: Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperacin de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultnea en un sistema. Procesos son cooperantes: Son aquellos que estn diseados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos.

2.4.1 Exclusin mutua de secciones criticas. La exclusin mutua la podramos definir como una operacin de control que permite la coordinacin de procesos concurrentes, y que tiene la capacidad de prohibir a los dems procesos realizar una accin cuando un proceso haya obtenido el permiso. El control de la competencia involucra al sistema operativo inevitablemente, porque es el sistema operativo el que asigna los recursos. Adems, los procesos deben ser capaces por s mismos de expresar de algn modo los requisitos de exclusin mutua, como puede ser bloqueando los recursos antes de usarlos. Hacer que se cumpla la exclusin mutua crea dos problemas de control adicionales. Interbloqueo. Si se tienen dos procesos P1 y P2 y dos recursos crticos, R1 y R2. Supngase que cada proceso necesita acceder a ambos recursos para llevar a cabo una parte de su funcin. En tal caso, es posible que se presente la siguiente situacin: el sistema operativo asigna R1 a P2 y R2 a P1. Cada proceso est esperando a uno de los dos recursos. Ninguno liberar el recurso que ya posee hasta que adquiera el otro y ejecute su seccin crtica. Ambos procesos estn nterbloqueados. Inanicin. Supngase que tres procesos, P1, P2 y P3, necesitan acceder peridicamente al recurso R. Considrese la situacin en la que P1 est en posesin del recurso y tanto P2 como P3 estn parados, esperando al recurso. Cuando P1 abandona su seccin crtica, tanto P2 como P3 deben poder acceder a R. Supngase que se le concede el acceso a P3 y que, antes de que termine su seccin crtica, P1 solicita acceso de nuevo. Si se le concede el acceso a P1 despus de que P3 termine y si P1 y P3 se conceden el acceso repetidamente el uno al otro, se puede negar definidamente a P2 el acceso al recurso.

Soluciones a la exclusin mutua Hay varias formas de satisfacer los requisitos de exclusin mutua: Soluciones por Software: Una manera es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente, de esta manera los procesos deben coordinarse unos con otros para cumplir la exclusin mutua sin ayuda alguna, aunque estas soluciones son propensas a

errores y a una fuerte carga de proceso (Algunos ejemplos de estas son: Algoritmo de Dekker y Algoritmo de Peterson). Soluciones por Hardware: Propone el uso de instrucciones de la mquina a tal efecto, estas tienen la ventaja de reducir la sobrecarga.

2.4.2 Sincronizacin de procesos en S.C. Un proceso cooperativo es aquel que puede afectar o verse afectado por otros procesos que estn ejecutndose en el sistema. Estos pueden compartir directamente un espacio de direcciones lgico (cdigo o datos) o compartir los datos solo a travs de archivos o mensajes. Alternativas de sincronizacin Semforos: Un semforo binario es un indicador (S) de condicin que registra si un recurso est disponible o no. Un semforo binario slo puede tomar dos valores: 0 y 1. Si, para un semforo binario, S = 1 entonces el recurso est disponible y la tarea lo puede utilizar; si S = 0 el recurso no est disponible y el proceso debe esperar. Los semforos se implementan con una cola de tareas o de condicin a la cual se aaden los procesos que estn en espera del recurso. Slo se permiten tres operaciones sobre un semforo - Inicializar - Espera (wait) - Seal (signal) En algunos textos, se utilizan las notaciones P y V para las operaciones de espera y seal respectivamente, ya que sta fue la notacin empleada originalmente por Dijkstra para referirse a las operaciones. As pues, un semforo binario se puede definir como un tipo de datos especial que slo puede tomar los valores 0 y 1, con una cola de tareas asociada y con slo tres operaciones para actuar sobre l. Monitores Un monitor es un tipo de datos abstracto que contiene un conjunto de procedimientos de control de los cuales solamente un subconjunto es

visible desde fuera un conjunto de datos privados, es decir, no visibles desde fuera El acceso al monitor est permitido solamente a travs de los procedimientos pblicos y el compilador garantiza exclusin mutua para todos los procedimientos. La implementacin del monitor controla la exclusin mutua con colas de entrada que contengan todos los procesos bloqueados. Pueden existir varias colas y el controlador del monitor elige de cual cola se va a escoger el siguiente proceso para actuar sobre los datos. Un monitor no tiene acceso a variables exteriores con el resultado de que su comportamiento no puede depender de ellos. Una desventaja de los monitores es la exclusividad de su uso, es decir, la concurrencia est limitada si muchos procesos hacen uso del mismo monitor. Paso de mensajes El paso de mensajes es una tcnica empleada en programacin concurrente para aportar sincronizacin entre procesos y permitir la exclusin mutua, de manera similar a como se hace con los semforos, monitores, etc. Su principal caracterstica es que no precisa de memoria compartida, por lo que es muy importante en la programacin de sistemas distribuidos. Los elementos principales que intervienen en el paso de mensajes son el proceso que enva, el que recibe y el mensaje. Dependiendo de si el proceso que enva el mensaje espera a que el mensaje sea recibido, se puede hablar de paso de mensajes sncrono o asncrono. En el paso de mensajes asncrono, el proceso que enva, no espera a que el mensaje sea recibido, y contina su ejecucin, siendo posible que vuelva a generar un nuevo mensaje y a enviarlo antes de que se haya recibido el anterior. Por este motivo se suelen emplear buzones, en los que se almacenan los mensajes a espera de que un proceso los reciba. Generalmente empleando este sistema, el proceso que enva mensajes slo se bloquea o para, cuando finaliza su ejecucin, o si el buzn est lleno. En el paso de mensajes sncrono, el proceso que enva el mensaje espera a que un proceso lo reciba para continuar su ejecucin. Por esto se suele llamar a esta tcnica encuentro, o rendezvous. Dentro del paso de mensajes sncrono se engloba a la llamada a procedimiento remoto, muy popular en las arquitecturas cliente/servidor.

También podría gustarte