1. Concepto de Concurrencia
La concurrencia entre los procesos se logra porque las hebras de diferentes procesos se pueden ejecutar concurrentemente. Si se dispone de varias CPUs, se pueden asignar distintos procesadores a hebras del mismo proceso. Las hebras del mismo proceso pueden intercambiar información entre ellas a través de la memoria compartida y tener acceso a los recursos compartidos del proceso.
2. Problema de la Sección Crítica
Cada proceso tiene un segmento de código, llamado sección crítica, en el cual el proceso puede estar modificando variables comunes, actualizando una tabla, escribiendo en un archivo, etc.
3. Requisitos de la Solución de la Sección Crítica
- Exclusión mutua: Si un proceso se está ejecutando en su sección crítica, entonces ningún otro proceso se puede estar ejecutando en la suya.
- Progreso: Si ningún proceso se está ejecutando en su sección crítica y hay otros procesos que desean entrar en las suyas, entonces sólo aquellos procesos que no se están ejecutando en su sección restante pueden participar en la decisión de cuál será el siguiente en ingresar en la sección crítica.
- Espera limitada: Debe haber un límite en el número de veces que se permite que los demás procesos entren en su sección crítica después de que un proceso haya efectuado una solicitud para entrar en la suya y antes de que se conceda esa solicitud.
4. Objetivo de la Operación Lock
La operación Lock tiene por objetivo bloquear la entrada a cierta área a los demás procesos; la operación Unlock anula el efecto de Lock.
5. Características de los Algoritmos de Dekker y Peterson
Algoritmo de Peterson: Permite resolver el problema de la exclusión mutua y garantiza que ambos procesos usarán de forma consecutiva el recurso.
Algoritmo de Dekker: El proceso se queda permanentemente comprobando una variable.
6. Ayuda del Hardware en la Solución de la Sección Crítica
El problema de la sección crítica puede solucionarse simplemente evitando que ocurran interrupciones mientras se modifica una variable compartida, pero por desgracia no siempre es factible esta solución.
7. Funcionamiento e Implementación de Semáforos
Funcionamiento: Los semáforos se implementan con una cola de tareas o de condición a la cual se añaden los procesos que están en espera del recurso.
Implementación: Los semáforos pueden utilizarse para tratar el problema de la sección crítica para n procesos y también pueden usarse para resolver varios problemas de sincronización.
8. Ejemplos de Sistemas Complementarios de Comunicación
- Sistemas de memoria compartida: Están orientados básicamente a las aplicaciones y requieren que los procesos comunicantes compartan algunas variables.
- Sistemas de transmisión de mensajes: La función de un sistema de mensajes es permitir que los procesos se comuniquen entre sí sin tener que recurrir a variables compartidas.
9. Requisitos de un Mensaje Completo en la Comunicación entre Procesos
- Una identificación del proceso emisor.
- Una identificación del proceso receptor.
- Una descripción de los datos involucrados o mensaje.
10. Métodos para Implementar la Comunicación entre Procesos
- Sistema Maestro-Sirviente: El maestro asigna trabajo al sirviente, y será su responsabilidad si lo confunde enviándole más de un comando a la vez.
- Sistema de diálogo: Un sistema de diálogo es similar a la facilidad del servicio proporcionado por un teléfono.
- Sistema de correo: En un sistema de correos los mensajes son enviados, sean o no sean procesados en forma inmediata por los receptores.
11. Definición de Monitor
Un monitor es un conjunto de procedimientos que proporciona el acceso con exclusión mutua a un recurso o conjunto de recursos compartidos por un grupo de procesos. Los procedimientos van encapsulados dentro de un módulo que tiene la propiedad especial de que sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor.
12. Definición de Deadlock
Deadlock, también conocido como estancamiento o interbloqueo, es un posible estado de un proceso. Se dice que un proceso está en estado de deadlock si se encuentra esperando la ocurrencia de un evento que se sabe nunca habrá de ocurrir.
13. Condiciones para una Situación de Interbloqueo
- Exclusión mutua
- Retención y espera (solicita). Los procesos retienen los recursos que han adquirido mientras esperan para adquirir otros.
- No existencia de expropiación
- Espera circular: Cadena circular de procesos en la que cada uno retiene al menos un recurso que se solicita por el siguiente.
14. Formas de Tratar el Problema de la Espera Circular
Formas de tratar el problema:
- Evitar que se llegue al interbloqueo.
- Prevención de los interbloqueos.
- Evitación de los interbloqueos.
15. Algoritmo del Banquero e Inconvenientes
En el algoritmo del banquero:
- Se permiten las condiciones de exclusión mutua, retención y espera y de no existencia de expropiación.
- Los procesos solicitan el uso exclusivo de los recursos que necesitan. Mientras esperan alguno, se les permite mantener los recursos de que disponen sin que se les puedan expropiar.
- Los procesos piden los recursos al sistema operativo de uno en uno.
- El sistema puede conceder o rechazar cada petición.
Inconvenientes:
- La gestión de los recursos suele ser conservadora, ya que los estados inseguros constituyen un conjunto grande de estados dentro del cual se encuentra el subconjunto de los estados que realmente producen interbloqueos.
- El algoritmo requiere que los procesos conozcan por adelantado sus necesidades máximas.
16. Inconvenientes para la Detección de Interbloqueos
- Sobrecarga del sistema operativo para mantener la información necesaria y el algoritmo de detección.
- Posibles pérdidas en el intento de recuperar el sistema.
17. Opciones para la Recuperación de Interbloqueos
- Reiniciar uno o más de los procesos bloqueados. Se debe tener en cuenta una serie de factores.
- Quitar los recursos de algunos de los procesos bloqueados de forma sucesiva hasta que se consiga salir del interbloqueo.
18. Componente que Gestiona la Memoria
(Sin respuesta en el texto original)
19. Condiciones para la Concurrencia y Paralelismo
Para concurrencia: Se dice que los procesos son concurrentes si existen en un mismo intervalo de tiempo.
Para paralelismo: Se dice que los procesos son paralelos si existen en un mismo instante.
20. Mecanismos para Sincronizar Procesos
Para los procesos concurrentes dependientes deben crearse mecanismos de comunicación y coordinación entre ellos.