Está en la página 1de 50

3.

Gestión de
Procesos
Facultad de Ciencias de la Ingeniería
Ingeniería Informática y Ciencias de la
Computación

Ing. Jonathan Carrillo


Quito, Noviembre 2017

Operating System Concepts – 9th Edit9on Silberschatz, Galvin and Gagne ©2013
Contenido
 Descripción, estados y control de procesos
 Arquitecturas: Secuencial, Multiprogramación, Multiprocesamiento
 Planificación de Procesos
 Procesos e hilos
 Concurrencia: Semáforos, monitores, mensajes, interbloqueos

Operating System Concepts – 9th Edition 1.2 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 An operating system executes a variety of programs:


 Batch system – jobs
Time-shared systems – user programs or tasks

 Textbook uses the terms job and process almost interchangeably

 Concepto: un proceso es un programa en ejecución. Un proceso


es una unidad de trabajo en un sistema.
 Un programa ejecutable es un conjunto de instrucciones y datos
almacenados en un archivo. Cuando el contenido del programa se
carga en la memoria y se pone en ejecución, se convierte en un
proceso.

Operating System Concepts – 9th Edition 1.3 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 Un programa es una entidad pasiva, una lista de instrucciones;


un proceso es una entidad activa, que –empleando al programa–
define la actuación que tendrá el sistema.
 Execution of program started via GUI mouse clicks, command line
entry of its name, etc
 One program can be several processes
 Ej. Terminal/CLI

Operating System Concepts – 9th Edition 1.4 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 Una analogía: receta de un pastel (el programa), ingredientes (los


datos), cocinero (la CPU), la mesa de cocina (la memoria), cada
pastel (un proceso), el horno (un dispositivo E/S).

Nota: un proceso no tiene por qué estar siempre en ejecución. La vida


de un proceso pasa por varias fases, incluyendo la ejecución, es decir,
nuestro chef puede tener varios pasteles a medio hacer

Operating System Concepts – 9th Edition 1.5 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 Estados de un Proceso
 Un proceso, a lo largo de su vida, alterna entre diferentes
estados de ejecución.

Las interrupciones permiten al SO tomar el control de CPU, por ejemplo, cuando: Se produce algún
tipo de error, existe algún evento externo. P.ej.: finalización de operación E/S. Reloj: se ha agotado
algún tiempo límite. Una interrupción es una solicitud de recursos al sistema operativo para brindar
disponibilidad y continuidad de los servicios
Operating System Concepts – 9th Edition 1.6 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
 Estados de un Proceso
 New: El sistema operativo crea el proceso (recursos y estructuras),
pero aún no ha sido admitido en el grupo de procesos ejecutables
por el sistema operativo.
 Ready: El proceso está esperando ser asignado al procesador para
su ejecución. Los procesos que están preparados para ejecutarse
permanecen en estado listo hasta que se les concede la CPU.
Entonces pasan al estado “Running”.
 Running: El proceso está siendo ejecutado en este momento. Sus
instrucciones están siendo procesadas en algún procesador.
 Waiting: En espera de algún evento para poder continuar su
ejecución (aun si hubiera un procesador disponible, no podría
avanzar).
 Terminated: El proceso terminó de ejecutarse; se liberarán los
recursos utilizados por ese proceso, por ejemplo, la memoria.
Procesos en estado Zombie: El proceso ha finalizado su ejecución, pero el sistema operativo
debe realizar ciertas operaciones de limpieza para poder eliminarlo de la lista. Estas operaciones
pueden incluir notificar al proceso padre, cerrar las conexiones de red que tenía activas, liberar
memoria, etc.
Operating System Concepts – 9th Edition 1.7 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 Estados de un Proceso

S.O claims resource


Signal send from hardware

Call system
FCFS, SJF,
SRT, RR2

Until resources will be Available

Operating System Concepts – 9th Edition 1.8 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 Valores de Interrupción

Operating System Concepts – 9th Edition 1.9 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 Por lo general, para iniciar un proceso (NEW) existen cuatro


mecanismos:
 1. Como parte del arranque del sistema operativo.
 2. A partir de un proceso existente, mediante una llamada al
sistema.
 3. Con una petición del usuario mediante un intérprete de
comandos o una interfaz gráfica.
 4. Como parte del procesamiento por lotes en un sistema que
lo realice de manera automática.
 Para tener un proceso en estado READY es necesario:
 1. Reservar los recursos que le serán asignados.
 2. Asignar los elementos en la planificación de procesos para
atenderlo.
 3. Preparar un estado inicial en el procesador y la memoria
que incluya cargar el código del programa a la memoria antes
de llevar a cabo las instrucciones del programa.
Operating System Concepts – 9th Edition 1.10 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 Process Control Block PCB


 Bloque de control de proceso (PCB), Es una estructura de
datos que permite al sistema operativo controlar diferentes
aspectos de la ejecución de un proceso.
 El PCB se organiza en un conjunto de campos en los que se
almacena información de diversos tipos.
 Los campos de un proceso se muestran en la figura siguiente:

Operating System Concepts – 9th Edition 1.11 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos

 Process Control Block PCB

Identificador del proceso (PID), que es un


número que identifica al proceso. Este número
es diferente para todos los procesos que se
encuentran en ejecución.

Conjunto de campos que almacenan


el estado de los registros de la CPU
cuando el proceso es suspendido.

Información que es utilizada por el sistema


operativo para controlar diversos aspectos de
funcionamiento del proceso.

información relativa a la utilización realizada por el


proceso de los recursos del sistema, como por
ejemplo, el % de utilización de la CPU, la cantidad
de memoria usada o los bytes de E/S escritos y
leídos por el proceso.
Información mantenida en el PCB
Operating System Concepts – 9th Edition 1.12 Silberschatz, Galvin and Gagne ©2013
Arquitecturas

 Ejecución de Procesos:

SECUENCIAL

MULTIPROGRAMADO

MULTIPROCESADO

HÍBRIDO

Operating System Concepts – 9th Edition 1.13 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Los sistemas operativos más importantes del mercado actual


(Windows, Linux, Mac OS y todas las versiones de Unix) se
consideran sistemas operativos de tiempo compartido.
 El objetivo prioritario de estos sistemas: Garantizar que el tiempo
de respuesta de los programas se mantiene en unos valores
admisibles para los usuarios.

Operating System Concepts – 9th Edition 1.14 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Cuando un usuario interacciona con un programa y le da una


orden, quiere que el programa responda en un tiempo razonable.
Para conseguir esto hay que hacer que el resto de programas que
se encuentren en ejecución no monopolicen la CPU.
 Para ello, hay que ir repartiendo la CPU entre todos los programas,
y además muy rápidamente, para que cada programa tenga una
fracción del recurso de CPU en un instante.
 Esquema de funcionamiento: A cada proceso en ejecución se le
asigna un quantum, que representa el tiempo máximo que puede
estar ocupando la CPU. Entonces un proceso abandona la CPU, o
bien cuando se bloquea por una operación de E/S (pasando al
estado “en espera/waiting”), o bien cuando expira su quantum
(pasando al estado “listo/ready”.)

Operating System Concepts – 9th Edition 1.15 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Colas de planificación
 Son unas estructuras de datos que organizan los PCB,
Process Control Block, de los procesos que se encuentran
cargados en el sistema en función de su estado.
 El SO planifica los procesos en función de la información
mantenida en estas colas.
 Estas estructuras se forman enlazando los PCB de los
procesos mediante punteros.
 Tipos:
 Cola de procesos listos
 Cola de dispositivo

Operating System Concepts – 9th Edition 1.16 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Cola de procesos listos: Contiene a los procesos que se


encuentran en el estado “listo”.
 Debe indicarse una vez más que estos procesos son los que
están preparados para ser asignados a la CPU.
 Cola de dispositivo: Contiene los procesos que están esperando
por un determinado dispositivo. Estos procesos se encuentran en
el estado “En espera”. Cada dispositivo tiene una cola asignada.
 Hay muchos dispositivos, como por ejemplo el disco, que son
intensivamente utilizados por muchos procesos. Los procesos
deben esperar ordenadamente para poder utilizar este recurso.

Operating System Concepts – 9th Edition 1.17 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Algoritmos de Planificación
 First-Come, First-Served (FCFS)
 Shortest-Job-First (SJF)
 Round-Robin (RR)
 Shortest Remaining Time (SRT)
 Priorities

 Tiempos a considerar:
 t: tiempo de ejecución del proceso
 T: Tiempo de respuesta (incluye tiempo inactivo) Fin – T llegada
 E: Tiempo Perdido (en espera) E=T-t
 P: T/t Fracción del tiempo de respuesta la cual el proceso estuvo en
espera

Operating System Concepts – 9th Edition 1.18 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Algoritmos de Planificación
 First-Come, First-Served (FCFS): Cada proceso se ejecuta en el
orden en que fue llegando, y hasta que suelta el control. El
despachador es muy simple, básicamente una cola FIFO.

 FCFS reduce al mínimo la sobrecarga administrativa pero afecta el rendimiento. Tiene


características claramente inadecuadas para trabajo interactivo, sin embargo, al no
requerir de hardware de apoyo (como un temporizador) sigue siendo ampliamente
empleado.
Operating System Concepts – 9th Edition 1.19 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Algoritmos de Planificación
 Shortest-Job-First: Primero el más corto

Operating System Concepts – 9th Edition 1.20 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Algoritmos de Planificación
 Shortest-Job-First:
 es muy difícil contar con el t de ejecución antes de ejecutar
el proceso. Es más frecuente buscar caracterizar las
necesidades del proceso: Ver su historial y marcar una
tendencia actual.
 Para lo anterior es común emplear el promedio exponencial
ep
 Favorece a los procesos cortos. Sin embargo, un proceso
largo puede esperar mucho tiempo antes de ser atendido.
 Un proceso más largo que el promedio está predispuesto a
sufrir inanición.

Operating System Concepts – 9th Edition 1.21 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Algoritmos de Planificación
 Round-Robin RR
 Busca balancear mejores tiempos de respuesta tanto para procesos
largos como para los cortos.
 A los proceso en ejecución se le asigna un número respectivo de
quantum para su ejecución.
 Si un proceso no ha terminado de ejecutar al final de su quantum, será
interrumpido y puesto al final de la lista de procesos listos, para que
espere a su turno nuevamente. Los procesos que sean despertados
por los planificadores a mediano o largo plazo se agregarán también al
final de esta lista.
Proceso llegada t
A time quantum is P1 0 24
generally from 10 P2 4 3
to 100 milliseconds q=4
in length.
P3 7 3

Operating System Concepts – 9th Edition 1.22 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Algoritmos de Planificación
 Round-Robin RR

q=4

Operating System Concepts – 9th Edition 1.23 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Algoritmos de Planificación
 Round-Robin RR
 puede ser ajustada modificando la duración del quantum q.
 Conforme se incrementa q, RR tiende a convertirse en
FCFS.
 Si cada quantum es arbitrariamente grande, todo proceso
terminará su ejecución dentro de su quantum; por otro lado,
conforme decrece q, se tiene una mayor frecuencia de
cambios de contexto; esto llevaría a una mayor ilusión de
tener un procesador dedicado por parte de cada uno de los
procesos, dado que cada proceso sería incapaz de notar
las ráfagas de atención que éste le da (avance rápido
durante un periodo corto seguido de un periodo sin
avance).
 Claro está, el procesador simulado sería cada vez más
lento, dada la fuerte penalización que iría agregando la
sobrecarga administrativa.
Operating System Concepts – 9th Edition 1.24 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos

 Algoritmos de Planificación
 Investigación:
 Shortest Remaining Time - SRT
 Priorities (prioridades)

– Base teórica, cálculo de tiempos, ventajas, desventajas


– Por lo menos 3 ejemplos de cada uno

Operating System Concepts – 9th Edition 1.25 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

Estructura y servivios de un S.O

Operating System Concepts – 9th Edition 1.26 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 Cuando se necesita que un programa haga varias cosas a la


vez, existen dos formas diferentes de implementarlo, mediante
procesos y mediante hilos.

Operating System Concepts – 9th Edition 1.27 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
 Un hilo (o proceso ligero) puede definirse como una unidad más
pequeña que un proceso, que puede planificarse y ejecutarse. Su
creación hilo es mucho más rápida que la creación de un proceso
 Los procesos son totalmente independientes unos de otros
mientras que un hilo no. Un proceso puede tener varios hilos en
ejecución y cada hilo realizará una tarea diferente o igual según
como haya sido programado.

Operating System Concepts – 9th Edition 1.28 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 Un hilo es una entidad más reducida capaz de convivir junto a otros


hilos bajo el contexto de un único proceso, permitiendo compartir: la
información de estado, memoria, código del programa, archivos,
dispositivos de entrada y salida asignados, etc.

La principal
diferencia entre un
proceso y un hilo es
que los procesos
tienen su propia
zona de memoria
mientras que los
hilos de un proceso
comparten la misma
zona de memoria.

Operating System Concepts – 9th Edition 1.29 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 Al usar esta técnica, el proceso pesado, que es propietario de los


recursos, se vuelve un elemento más pasivo, mientras un hilo
(proceso ligero) se convierte en el elemento que usa la CPU y
es planificado para su ejecución

Operating System Concepts – 9th Edition 1.30 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 Por temas de seguridad, los procesos pueden ser mejores


puesto que si un programa se “cuelga”, se cuelga solo él, mientras
que si un programa tiene varios hilos en ejecución y se cuelga
algún hilo, todos los demás hilos se verán afectados.
 Por el contrario, en cuanto al rendimiento es mejor utilizar hilos
puesto que es más ágil para el sistema gestionar hilos que
procesos al no tener que asignar recursos diferentes a cada hilo.
 Otro aspecto es la complejidad, los hilos al compartir memoria
tienen que programarse de forma más cuidadosa puesto que un
hilo puede afectar el trabajo de otro hilo o hacer que se cuelgue.
Siempre que los hilos compartan datos hay que tener este punto
en cuenta.

Con la tecnología Hyper-Threading el procesador puede ejecutar más de un


hilo al mismo tiempo y de esa forma se mejora el rendimiento y se aprovechan
los tiempos en los que el procesador no realiza ninguna tarea.

Operating System Concepts – 9th Edition 1.31 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 La manipulación de hilos consume menos tiempo que la


manipulación de procesos.
 Algunos sistemas operativos atienden procesos múltiples en un
solo hilo, mientras otros lo hacen con multihilos.

Operating System Concepts – 9th Edition 1.32 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 Multicore or multiprocessor systems putting pressure


on programmers, challenges include:
 Dividing activities
 Balance
 Data splitting
 Data dependency
 Testing and debugging
 Parallelism implies a system can perform more than one
task simultaneously
 Concurrency supports more than one task making
progress
 Single processor / core, scheduler providing
concurrency

Operating System Concepts – 9th Edition 1.33 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 Concurrent execution on single-core system:

 Parallelism on a multi-core system:

Operating System Concepts – 9th Edition 1.34 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 La programación basada en hilos puede hacerse completamente y de


forma transparente en espacio de usuario (sin involucrar al sistema
operativo). Estos hilos se llaman hilos de usuario (user threads), y
muchos lenguajes de programación los denominan hilos verdes (green
threads). P. ej dispositivos embebidos capaces de ejecutar una máquina
virtual
 Three primary thread libraries:
 POSIX Pthreads
 Windows threads
 Java threads

Operating System Concepts – 9th Edition 1.35 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 Continuando con el desarrollo histórico de este mecanismo, el siguiente


paso fue la creación de hilos informando al sistema operativo,
típicamente denominados hilos de kernel (kernel threads).
 Esto se hace a través de bibliotecas de sistema que los implementan
de forma estándar para los diferentes sistemas operativos o
arquitecturas (p. ej. Pthreads para POSIX o Win32_Thread para
Windows).
 Estas bibliotecas aprovechan la comunicación con el sistema operativo
tanto para solicitudes de recursos (p. ej. un proceso basado en hilos
puede beneficiarse de una ejecución verdaderamente paralela en
sistemas multiprocesador) como para una gestión de recursos más
comparable con una situación de multiproceso estándar.
 Windows
 Solaris
 Linux
 Tru64 UNIX
 Mac OS X
Operating System Concepts – 9th Edition 1.36 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 hilos de kernel (kernel threads) e híbridos.


Operating System Concepts – 9th Edition 1.37 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 El término multihilo hace referencia a la capacidad de un SO para


mantener varios hilos de ejecución dentro del mismo proceso.

 Los estados de los hilos son iguales a la de los procesos (new, ready,
running, waiting, terminated)
Operating System Concepts – 9th Edition 1.38 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)

 El término multihilo hace referencia a la capacidad de un SO para


mantener varios hilos de ejecución dentro del mismo proceso.

Operating System Concepts – 9th Edition 1.39 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Definición de diccionario: coincidir en el espacio o en el tiempo dos o


más personas o cosas.
 En Informática, se habla de concurrencia cuando hay una existencia
simultánea de varios procesos en ejecución
 Ojo…….. concurrencia implica existencia simultánea; esto NO quiere
decir ejecución simultánea
 . Proceso 1 Proceso 2

Operating System Concepts – 9th Edition 1.40 Silberschatz, Galvin and Gagne ©2013
Concurrencia

Proceso 1 Proceso 2

Operating System Concepts – 9th Edition 1.41 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 El paralelismo es un caso particular de la concurrencia. Se habla de


paralelismo cuando ocurre la ejecución simultánea de instrucciones
 Para solucionar los problemas de concurrencia los S.O han
implementado técnicas de sincronización y comunicación de procesos.
A. Basadas en memoria compartida
 Inhibición de Interrupciones
 Espera activa
 Semáforos
 Regiones críticas
 Monitores
B. Basadas en el paso de mensajes
 Canales
 Buzones

Las primitivas de sincronización: semáforos, Mutex y monitores


Operating System Concepts – 9th Edition 1.42 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Semáforos
 Edsger Dijkstra, 1965
 Objetivo: herramienta universal para sincronizar procesos, que sirva
como componente básico para construir algoritmos concurrentes
 Definición: Un semáforo se utiliza en sistemas operativos
multiprocesamiento para restringir el acceso a un recurso. Los
semáforos según sean inicializados permitirán que más o menos
procesos utilicen un recurso de forma simultánea.
P(s) = wait(s) V(s) = signal(s)
 Algoritmos clásicos de sincronización
 Problema del búfer limitado
 Problema de los lectores y escritores
o 1er problema: prioridad para los lectores
o 2º problema: prioridad para los escritores
 Problema de los filósofos comensales

Operating System Concepts – 9th Edition 1.43 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Semáforos
 Mutex: la exclusión mutua, que es necesario para evitar que haya dos
operaciones que intenten ejecutarse al mismo tiempo. En la literatura,
el nombre tradicionalmente otorgado a este semáforo es mutex, que
significa MUTual EXclusion (exclusión mutua)
 Mutex o llamado también candado (lock): es una condición que
especifica que sólo es un proceso que puede actualizar (modificar) un
recurso compartido a la vez para asegurar operación y resultados
correctos.

Operating System Concepts – 9th Edition 1.44 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Semáforos
 El problema con los bloqueos es cuando los procesos llegan a un
estado de interbloqueo. Esto quiere decir que un proceso quede
bloqueado en la espera de un evento que nunca va a ocurrir. Un
ejemplo de interbloqueo, deadlock o abrazo mortal es el siguiente:

Operating System Concepts – 9th Edition 1.45 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Semáforos
 El proceso P1 solicita un recurso R1 y el sistema se lo concede.
 El proceso P2 solicita un recurso R2 y el sistema también se lo
concede.
 El proceso P1 ahora solicita el recurso R2. El proceso se queda a la
espera de que el recurso R2 quede libre.
 El proceso P2 solicita el recurso R1.

Situación de Interbloqueo
Operating System Concepts – 9th Edition 1.46 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Semáforos
Recurso 1

Recurso 2

o Ambos procesos quedan bloqueados a la espera de que el otro


proceso libere el recurso. Como esta circunstancia nunca va a ocurrir
ambos procesos quedarán bloqueados para siempre a no ser que el
sistema operativo intervenga.
o Los sistemas operativos están diseñados para evitar estos
interbloqueos implementando técnicas que prevengan los bloqueos, los
eviten, los detecten o se recuperen de los mismos.

Operating System Concepts – 9th Edition 1.47 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Monitores
 Propuesto por Hoare (1972)
 Los monitores son estructuras provistas por el lenguaje o entorno de
desarrollo que encapsulan tanto a los datos como a las funciones que
los pueden manipular, e impiden el acceso directo a las funciones
potencialmente peligrosas.
 En otras palabras, son tipos de datos abstractos (ADTs), clases de
objetos, y exponen una serie de métodos públicos, además de poseer
métodos privados que emplean internamente.
 Al no presentar al usuario/programador una interfaz que puedan
realizar operaciones, el monitor mantiene todo el código necesario
para asegurar el acceso concurrente a los datos en un sólo lugar.
 Cuando un método sincronizado comienza a ejecutarse a éste se le da
un monitor para el objeto actual, lo que no permite la ejecución de
ningún otro método sincronizado en ese objeto. El monitor es liberado
cuando sale de un método sincronizado, permitiendo la ejecución de
otros métodos sincronizados dentro del mismo objeto.

Operating System Concepts – 9th Edition 1.48 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Mensajes
 Los programas concurrentes necesitan algún tipo de comunicación
entre los procesos. Esto debido a dos razones principales:
1. Los procesos compiten para obtener acceso a recursos
compartidos,
2. Los procesos quieren intercambiar datos
 Es una técnica empleada en programación concurrente para aportar
sincronización entre procesos y permitir la exclusión mutua, de
manera similar a como se hace con los semáforos, monitores, etc.
 No precisa de memoria compartida, por lo que es muy importante en
la programación parasistemas distribuidos.
 Los elementos principales que intervienen en el paso de mensajes son
el proceso que envía, el que recibe y el mensaje.

Operating System Concepts – 9th Edition 1.49 Silberschatz, Galvin and Gagne ©2013
Concurrencia

 Mensajes
 Existen dos tipos de pasos de mensajes:
 Síncrono: El proceso que envía el mensaje, espera a que este sea
recibido, antes de generar y enviar otro mensaje
 Asíncrono: El proceso que envía no espera a que sea recibido el
mensaje enviado. Estos puede que tengan un buzón para mantener
los mensajes que se han enviado previamente y no han sido
recibidos aún.

Operating System Concepts – 9th Edition 1.50 Silberschatz, Galvin and Gagne ©2013

También podría gustarte