CUESTIONES DE REPASO – CAPÍTULO V 5.1. Enumere cuatro elementos de diseño para los cuales es necesario el concepto de concurrencia. 5.1.1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de los bloques de control de procesos. 5.1.2. El sistema operativo debe asignar y retirar los distintos recursos a cada proceso activo. Entre estos recursos se incluyen: o Tiempo de procesador: es la función de planificación, tratada en la parte Cuatro. o Memoria: la mayoría de los sistemas operativos emplean esquemas de memoria virtual. o Archivos. o Dispositivos de E/S. 5.1.3. El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos. Esto supone emplear técnicas relativas a la memoria, archivos y dispositivos de E/S, que se estudian. 5.1.4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecución de otros procesos concurrentes.
5.2. ¿En qué tres contextos se presenta la concurrencia?
5.2.1. La concurrencia puede presentarse en tres contextos diferentes: o Multiples aplicaciones: la multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varias aplicaciones activas. o Aplicaciones estructuradas: como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. o Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos o hilos.
5.3. ¿Cuáles son los requisitos básicos para la ejecución de procesos
concurrentes? 5.3.1. Tiempo de procesador: es la función de planificación, tratada en la parte cuatro. 5.3.2. Memoria: la mayoría de los sistemas operativos emplean esquemas de memoria virtual. 5.3.3. Archivos. 5.3.4. Dispositivos de E/S. 5.4. Enumere tres niveles de conocimiento entre procesos y defina brevemente cada uno de ellos. 5.4.1. Los procesos no tienen conocimiento de los demás; estos son procesos independientes que no están pensados para operar juntos. Ej: la multiprogramación de varios procesos independientes. Sus posibles problemas de control son la exclusión mutua, interbloqueo (recursos renovables y la inanición). 5.4.2. Los procesos tienen un conocimiento indirecto de los otros los procesos no conocen necesariamente a los otros por sus identificadores de proceso, pero comparten el acceso a algunos objetos, como un buffer de E/S. Estos procesos muestran cooperación para compartir el objeto común. 5.4.3. Los procesos tienen un conocimiento directo de los otros los procesos son capaces de comunicarse con los demás por el identificador de proceso y están diseñados para trabajar conjuntamente en alguna actividad. Estos procesos también muestran cooperación.
5.5. ¿Cuál es la diferencia entre procesos en competencia y procesos en
cooperación? La diferencia entre procesos en competencia y procesos en cooperación es que los procesos concurrentes entran en conflicto cuando compiten por el usos del mismo recurso. No hay intercambio de información entre los procesos en competencia. Sin embargo, la ejecución de un proceso puede influir en el comportamiento de los procesos que compiten. Mientras que el caso de cooperación comprende los procesos que interactúan con otros sin tener conocimiento explícito de ellos.
5.6. Enumere los tres problemas de control asociados a la competencia
entre procesos y defina brevemente cada uno de ellos. 5.6.1. Exclusión mutua: Dos o más procesos quieren acceder a un único recurso no compatible como una impresora. Durante el curso de la ejecución, cada proceso enviara ordenes al dispositivo de E/S, recibiendo información de estado, y enviando o recibiendo datos. 5.6.2. Interbloqueo: Dos procesos P1 y P2 y dos recursos R1 y R2, supóngase que cada proceso necesita acceder a ambos recursos para llevar a cabo una parte de su función. 5.6.3. Inanición: Tres procesos p1, p2 y p3 necesitan acceder periódicamente al recurso R.
5.7. Enumere los requisitos para la exclusión mutua
5.7.1. Los requisitos para la exclusión mutua son: o Debe cumplirse la exclusión mutua: sólo un proceso de entre todos los que poseen secciones críticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado. o Un proceso que se interrumpe en una sección no critica debe hacerlo sin interferir con los otros procesos. o Un proceso no debe poder solicitar acceso a una sección critica para después ser demorado indefinidamente; no puede permitirse el interbloqueo o la inanición. o Cuando ningún proceso está en su sección critica cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilación. o No se deben hacer suposiciones sobre la velocidad relativa de los procesos o el número de procesadores. o Un proceso permanece en su sección crítica sólo por un tiempo finito.
5.8. ¿Qué operaciones se pueden hacer sobre un semáforo?
5.8.1. Las operaciones que se pueden realizar sobre un semáforo son: o Un semáforo puede iniciarse con un valor no negativo. o La operación wait disminuye el valor del semáforo. Si el valor se hace negativo, el proceso que ejecuta el wait se bloquea. o La operación SIGNAL incrementa el valor del semáforo. Si el valor no es positivo, se desbloquea un proceso bloqueado por una operación wait.
5.9. ¿Cuál es la diferencia entre los semáforos generales y los binarios?
La diferencia es que un semáforo binario sólo puede tomar los valores 0 y 1. Son más sencillos de implementar y puede demostrase que tienen la misma potencia de expresión que los semáforos generales.
5.10. ¿Cuál es la diferencia entre los semáforos débiles y los robustos?
La diferencia es que el semáforo débil no especifica el orden en el que se retiran los procesos de la cola. Mientras que el robusto emplea la política FIFO en donde el proceso que ha estado bloqueado durante más tiempo se libera de la cola.
5.11. ¿Qué es un monitor?
Un monitor es son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a la de los semáforos y que son más fáciles de controlar.
5.12. ¿Cuál es la diferencia entre bloqueador y no bloqueador con relación a los
mensajes? 5.12.1. La diferencia es que tanto el emisor como el receptor pueden ser bloqueantes o no bloqueantes: o Bloqueante: tanto el emisor como el receptor se bloquean hasta que se entrega el mensaje; esta técnica se conoce como rendezvous. o No bloqueante: nadie debe esperar el send no bloqueante es la forma más natural para muchas tareas de programación concurrente. Por ejemplo, si se usa para solicitar una operación de salida, le permite al proceso solicitante realizar la solicitud en forma de mensaje y continuar.
5.13. ¿Cuáles son las condiciones asociadas en general asociadas con el
problema de las lecturas/escrituras? 5.13.1. Cualquier número de lectores pueden leer el archivo simultáneamente. 5.13.2. Sólo puede escribir en el archivo un escritor en cada instante. 5.13.3. Si un escritor está accediendo al archivo, ningún lector puede leerlo.