Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 2
Demuestre que si las operaciones signal y wait de un semáforo no
se ejecutan atómicamente, el semáforo no funciona correctamente.
Las operaciones wait y signal son fundamentales para el correcto
funcionamiento de un semáforo, y deben ejecutarse de manera atómica (es decir, sin interrupciones) para asegurar la exclusión mutua en la sección crítica. Si alguna de estas operaciones no es atómica, podrían producirse las siguientes situaciones:
Interrupciones: Si un proceso es interrumpido después de haber
realizado una parte de la operación wait, pero antes de completar la operación, otro proceso podría ejecutar también wait y entrar en la sección crítica. Esto rompería la exclusión mutua, ya que dos procesos estarían accediendo a la sección crítica simultáneamente.
Inconsistencias: Los semáforos utilizan contadores para gestionar los
accesos a los recursos compartidos. Si la operación no es atómica, el valor del contador podría ser inconsistente debido a interrupciones o cambios de contexto entre procesos.
En resumen, sin atomicidad, se pierde el control adecuado sobre el acceso a
los recursos, lo que lleva a errores en la sincronización de los procesos.
Demuestre si el algoritmo proporcionado para resolver el
problema de la sección crítica para N procesos es correcto o no.
El algoritmo proporcionado utiliza una combinación de las variables
eleccion[k] y numero[k] para asegurar que solo un proceso puede entrar en la sección crítica. Vamos a verificar si cumple con los tres requisitos de una solución a la sección crítica:
Exclusión mutua: Se asegura que solo un proceso entra en la sección
crítica porque cada proceso asigna un número a su turno y los demás esperan si otro tiene un número menor. Esto parece cumplir con la exclusión mutua.
Progreso: El algoritmo permite que los procesos decidan cuál entra a
la sección crítica basado en su número asignado, y no intervienen procesos que no están interesados en entrar. Esto garantiza el progreso.
Espera limitada: Al usar el número más bajo disponible para decidir
quién entra, se asegura que ningún proceso espere indefinidamente. Conclusión: El algoritmo es correcto ya que satisface las condiciones de exclusión mutua, progreso, y espera limitada.
¿Por qué se dice que el problema de la sección crítica es un
problema de sincronización entre procesos?
El problema de la sección crítica se refiere a cómo varios procesos pueden
acceder a recursos compartidos (variables, memoria, etc.) sin interferir entre sí. La sincronización entre procesos es necesaria porque cuando varios procesos intentan acceder a la misma sección crítica sin control, puede haber inconsistencias y corrupción de datos. Por lo tanto, el problema de la sección crítica es un problema de sincronización, ya que requiere mecanismos que aseguren que solo un proceso acceda a los recursos compartidos a la vez.
¿Qué es la espera activa dentro de la sincronización de procesos?
¿Por qué es un problema? ¿Cómo se puede resolver?
La espera activa ocurre cuando un proceso intenta entrar a la sección
crítica pero, al no poder hacerlo de inmediato, permanece en un bucle verificando repetidamente si puede acceder. Este método es ineficiente porque consume recursos del procesador sin hacer ningún progreso real.
Problema: La espera activa desperdicia ciclos de CPU, ya que el proceso
sigue verificando si puede entrar en lugar de ceder el control y permitir que otros procesos utilicen la CPU.
Solución: El problema se puede resolver utilizando mecanismos de
sincronización más eficientes, como semáforos, donde un proceso que no puede entrar en la sección crítica es bloqueado hasta que el recurso esté disponible, sin necesidad de consumir ciclos de CPU en la espera.