Documente Academic
Documente Profesional
Documente Cultură
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
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. Las operaciones pueden describirse como sigue:
La operacin inicializa se debe llevar a cabo antes de que comience la ejecucin concurrente de los procesos ya que su funcin exclusiva es dar un valor inicial al semforo.
Observacin
Un proceso que corre la operacin espera y encuentra el semforo a 1, lo pone a 0 y prosigue su ejecucin. Si el semforo est a 0 el proceso queda en estado de espera hasta que el semforo se libera. Dicho estado se debe considerar como uno ms de los posibles de un proceso. Esto es as debido a que un proceso en espera de un semforo no est en ejecucin ni listo para pasar a dicho estado puesto que no tiene la CPU ni puede pasar a tenerla mientras que no se lo indique el semforo. Tampoco es vlido el estado suspendido, ya que este estado est pensado para que lo utilicen llamadas al sistema operativo para suspender o reactivar un proceso que no tiene por qu tener una conexin con los semforos. El diagrama de transicin de estados de la figura se puede ampliar con un nuevo estado que denominamos de espera
Un monitor es una estructura formada por una cabecera que los identifica, un conjunto de variables globales a todos los procedimientos del monitor, un conjunto de procedimientos y un bloque de inicializacin, el cual se ejecuta una nica vez, cuando se crea el monitor.
nombre variables globales accesibles desde todos los procedimientos procedimiento A procedimiento B
El recurso que queremos compartir .Se declara como monitor y en l se incluyen todas las operaciones que afecten a dicho recurso. Los procesos que usan el monitor se sitan de forma independiente y cuando deseen usar el recurso, llamarn al procedimiento del monitor que implemente la operacin que desea ejecutar. Para resolver la sincronizacin se utilizan dos instrucciones, wait (bloquea siempre) y signal, y actan sobre variables condicin que son colas y adems no tienen valor. wait (c): suspende la ejecucin del proceso que llama bajo la condicin c. El monitor est ahora disponible para ser usado por otros procesos. signal(c): reanuda la ejecucin de algn proceso suspendido despus de un cwait bajo la misma condicin. Si hay varios procesos, se elige uno de ellos; si no hay ninguno, no hace nada.
Las colas son un tipo de variables que son el lugar donde almacenaremos los procesos que hayan quedado suspendidos bajo un .wait. y estn a la espera de ser "despertados".
En el caso de que dentro de un monitor un proceso se quede bloqueado con un wait por lo cual se bloquea y no dejara ejecutarse a otro proceso, el SO despierta a otro proceso cuya ltima instruccin haya sido un signal y adems vale la condicin que hace que se bloqueen los procesos.
Habr algunos casos en los que nos apoyemos en una variable booleana para garantizar la exclusin mutua sobre una variable con una sola instancia. Tambin habr casos en los que utilicemos un contador.
Son una solucin del sistema operativo que nos permitirn la sincronizacin de procesos y la comunicacin entre ambos. Es una cadena de texto transmitida de un proceso que enva el mensaje a un receptor (proceso receptor). Un mensaje puede tener cdigo, texto, datos,
La comunicacin mediante mensajes necesita siempre de un proceso emisor y de uno receptor as como de informacin que intercambiarse. Por ello, las operaciones bsicas para comunicacin mediante mensajes que proporciona todo sistema operativo son: Enviar(mensaje) y recibir(mensaje). Las acciones de transmisin de informacin y de sincronizacin se ven como actividades inseparables. La comunicacin por mensajes requiere que se establezca un enlace entre el receptor y el emisor, la forma del cual puede variar grandemente de sistema a sistema. Aspectos importantes a tener en cuenta en los enlaces son: como y cuantos enlaces se pueden establecer entre los procesos, la capacidad de mensajes del enlace y tipo de los mensajes.
En la comunicacin indirecta los mensajes se envan y reciben a travs de una entidad intermedia que recibe el nombre de buzn o puerto. Como su nombre indica, un buzn es un objeto en el que los procesos dejan mensajes y del cual pueden ser tomados por otros procesos. Ofrecen una mayor versatilidad que en el caso de nombramiento directo, ya que permiten comunicacin de uno a uno, de uno a muchos, de muchos a uno y de muchos a muchos. Cada buzn tiene un identificador que lo distingue. En este caso las operaciones bsicas de comunicacin toman la forma: enviar(buznA, mensaje): enva un mensaje al buzn A recibir(buznA, mensaje): recibe un mensaje del buzn A.