6
PROCESO Un proceso es un conjunto de actividades mutuamente relacionadas o que al interactuar transforman elementos de entrada y los convierten en resultados. Algoritmo Semáforos Gerardo Durón Orta. Geovanni Francisco Granados Medina

IUEM_Duron_Gerardo_Procesos exp. .pptx

Embed Size (px)

Citation preview

PROCESOUnprocesoes un conjunto de actividades mutuamente relacionadas o que al interactuar transforman elementos de entrada y los convierten en resultados.Algoritmo Semforos

Gerardo Durn Orta.Geovanni Francisco Granados Medina

Un semforoes una variableespecial (o tipo abstracto de datos) que constituye el mtodo clsico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del cdigo fuente) en un entorno de multiprocesamiento (en el que se ejecutarn varios procesos concurrentemente). Fue creado por Edsger Dijkstras y se usaron por primera vez en el sistema operativo THEOS.Semforos es un algoritmo de control de procesos, que tiene solo dos operaciones bsicas, las cuales son:

Wait.- Pregunta a los procesos si su contador es > = que cero, en caso de no ser as, los decrementa. El proceso que cambia en este caso a negativo (1) desde la cola de procesos Listos a ser ejecutados es el que automticamente toma el control del procesador.Signal.- A partir de un tiempo t definido por el despachador se ejecuta, y pregunta a los procesos si su contador es < que cero en caso de que sea afirmativa la respuesta, saca a este proceso de su ejecucin y depende de su estado.sta era la situacin en 1965, cuando E. W. Dijkstra (1965) sugiri usar una variable entera para contar elNmero de seales de despertar guardadas para uso futuro. En esta propuesta se introdujo un nuevo tipo de Variable, llamada semforo. Un semforo poda tener el valor O, indicando que no haba seales de despertar guardadas, o algn valor positivo si haba una o ms seales de despertar pendientes.

Dijkstra propuso tener dos operaciones, DOWN y UP (generalizaciones de SLEEP y WAKEUP, respectivamente). La operacin DOWN (abajo) aplicada a un semforo verifica si el valor es mayor que 0; de ser as, decremento el valor (esto es, gasta una seal de despertar almacenada) y contina. Si el valor Es 0, el proceso se pone a dormir sin completar la operacin DOWN por el momento. La verificacin del valor, su modificacin y la accin de dormirse, si es necesaria, se realizan como una sola accin atmica indivisible. Se garantiza que una vez que una operacin de semforo se ha iniciado, ningn otro proceso podr acceder al semforo hasta que la operacin se haya completado o bloqueado. Esta atomicidad es absolutamente indispensable para resolver los problemas de sincronizacin y evitar condiciones de competencia.

La operacin UP incrementa el valor del semforo direccionado. Si uno o ms procesos estn durmiendo en espera de ese semforo, imposibilitados de completar una operacin DOWN previa, el sistema escoge uno de ellos y le permite completar su DOWN. As, despus de un up con un semforo que tiene procesos durmiendo esperando, el semforo seguir siendo 0, pero habr un proceso menos que se halle en fase de durmiendo esperando