Semana10 - Sincronizacion de Procesos
Semana10 - Sincronizacion de Procesos
Semana10 - Sincronizacion de Procesos
SISTEMAS OPERATIVOS
DOCENTE:
TEMA:
SINCRONIZACIÓN DE PROCESOS
INTEGRANTES:
CICLO
VI
CHIMBOTE - PERÚ
2023
INTRODUCCIÓN
Uno de los objetivos del sistema operativo es la representación de los procesos y el soporte de
los cambios de contexto entre procesos, que posibilitan la compartición del recurso CPU. El
acceso a otros recursos compartidos y la comunicación entre procesos relacionados (por
ejemplo, de una misma aplicación) hacen necesaria la utilización de mecanismos de
sincronización dentro del sistema operativo. Típicamente, un proceso requiere la CPU durante
un periodo de tiempo, realiza alguna operación de E/S, y vuelve a requerir la CPU, repitiéndose
este ciclo hasta la finalización del programa. Cada vez que un proceso pasa al estado preparado,
está compitiendo por el recurso CPU. El segundo objetivo del sistema operativo
multiprogramado es la planificación del uso del (de los) recurso(s) de proceso. (1)
REPRESENTACIÓN DE LOS PROCESOS
Para representar los procesos, un sistema operativo multiprogramado debe almacenar
información en base a la cual: (2)
● Identificar cada proceso: Se utiliza un identificador del proceso, que suele ser un entero.
● Representar el estado de cada proceso para mantener el grado de transición de estados.
Normalmente los estados se representan mediante colas de procesos.
● Planificar el siguiente proceso que entre en la CPU (scheduling). Se requiere
información que permita aplicar los criterios de planificación (prioridad, quantum, etc).
● Contabilizar el uso de recursos por el proceso (tiempo consumido de CPU, tiempo de
ejecución del proceso, tiempos máximos asignados, identificador de usuario).
● Gestionar el contexto de los procesos: Por cada proceso hay que almacenar el estado
del procesador, de la pila y de los otros recursos (memoria y entrada/salida).
● Gestionar la memoria.
● Soportar la entrada/salida. Peticiones pendientes, dispositivos asignados, tabla de
canales, etc.
HILOS DE EJECUCIÓN O THREAD
Un hilo de ejecución o thread, en sistemas operativos, es una característica que permite a una
aplicación realizar varias tareas concurrentemente. Los distintos hilos de ejecución comparten
una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de
autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar
a cabo distintas funciones simultáneamente.(3)
Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en
conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo
proceso comparten los recursos hace que cualquiera de estos hilos pueda modificar éstos.
Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado
inmediatamente a en la siguiente figura podemos observar un ejemplo de un hilo de ejecución.
(3)
- Modelo de sincronización.
- Almacenamiento y estructura de mensajes.
Los buzones establecen un vínculo que pueden utilizar más de dos procesos y permiten que un
proceso se comunique con otro a través de diferentes buzones.
Modelos de sincronización
b) Asíncrona. El proceso que envió el mensaje continúa ejecutándose sin preocuparse por
recibir el mensaje. En el modelo asíncrono, el sistema operativo se encarga de recoger el
mensaje del remitente y almacenarlo, a la espera de la operación de recepción para recibirlo.
c) Invocación remota. El proceso que envió el mensaje no continuará hasta que reciba una
respuesta del receptor. La invocación remota también se conoce como encuentro extendido
porque el receptor puede ejecutar un número de cálculos antes de enviar la respuesta.
Estas desventajas son precisamente las ventajas de la transferencia por referencia, que tiene
como desventaja, requerir mecanismos de seguridad adicionales para compartir información
entre procesos. Teniendo en cuenta la estructura de los mensajes, estos mensajes se pueden
dividir en tres tipos: (8)
a) Longitud fija. Son la implementación física que admite una asignación eficaz y sencilla
en las “transferencias por valor”.
b) Longitud variable. Son adecuados en los sistemas cuya transferencia se efectúa por
punteros, debido a que el tamaño del mensaje puede ser parte de la misma información
transferida.
c) De tipo definido. Son apropiados en la comunicación con buzones. A cada buzón que
utilice un proceso se le puede asignar el tipo de dato adecuado para dicho mensaje y sólo
mensajes con esa estructura pueden ser enviados por ese enlace.
PROBLEMAS DE SINCRONIZACIÓN
En los sesentas Edsger Dijkstra y cinco de sus colegas desarrollaron uno de los primeros
sistemas operativos que soportaban la multiprogramación. El sistema fue diseñado en la
Universidad Tecnológica de Eindhoven en Holanda, y fue llamado sistema multiprogramación
THE. Una de las principales aportaciones de este sistema fue la incorporación del concepto de
semáforos, como herramienta para implementación de la exclusión mutua. (9)
Por ese mismo tiempo Dijkstra escribió un artículo sobre la cooperación de procesos.
Demostraba como utilizar los semáforos para resolver una variedad de problemas de
sincronización, como el de los productores/consumidores, los filósofos que cenan y el del
barbero dormilón. (9)
INTERBLOQUEO
El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que
compiten por los recursos del sistema o bien se comunican unos con otros. Un proceso está
interbloqueado si se está esperando por un evento determinado que nunca va a ocurrir. No
existe una solución eficiente para el caso general. (10)
El bloqueo es permanente hasta que el sistema realice una operación extraordinaria, como
puede ser matar a uno o más procesos u obligar a uno o más procesos a retrasar su ejecución.
SOLUCION - CODIFICACIÓN
.
REFERENCIAS BIBLIOGRAFICAS:
ANEXO – TURNITIN