You are on page 1of 2

Analisis de Procesos – Sistemas Operativos

 Acciones Atómicas o Instrucciones Atómicas.


 Demonio.
 Ipc
 Race Conditiions
 Mutex
 Monitores
 Exclusion Mutua
 Region Critica

Nota: Al terminar de desarrollar los temas, guarde el documento en su computador, luego el archivo
guardado en su equipo utilizando el botón Subir este archivo localizado más abajo.

Verificar la fecha límite para subir dicha práctica.

 Las acciones son atómicas si, en lo que respecta a otros procesos, pueden ser consideradas
indivisibles e instantáneas, de forma que los efectos sobre el sistema sean como si estuvieran
entrelazadas y no en concurrencia.
 Demonio o daemon (Disk And Execution Monitor) a un proceso que se ejecuta en segundo plano
del sistema operativo, se ejecuta en todo momento y no posee interacción directa con el usuario,
también se le conoce genéricamente como servicio o proceso, del cual no percibimos su
ejecución. Un demonio realiza una operación especifica en tiempos predefinidos o en respuesta
a ciertos eventos del sistema. El origen del nombre se refiriere a su función de "vigilante" y no a
una connotación negativa como se podría pensar en un principio.
 La comunicación entre procesos (comúnmente IPC, del inglés Inter-Process Communication) es
una función básica de los sistemas operativos. Los procesos pueden comunicarse entre sí a través
de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través de las
herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que permite a los
procesos comunicarse y sincronizarse entre sí.
 Race conditions o condiciones de carrera es cuando la salida o estado de un proceso es
dependiente de una secuencia de eventos que se ejecutan en orden arbitrario y van a trabajar
sobre un mismo recurso compartido, se puede producir un bug cuando dichos eventos no
«llegan» (se ejecutan) en el orden que el programador esperaba. El término se origina por la
similitud de dos procesos «compitiendo» en carrera por llegar antes que el otro, de manera que
el estado y la salida del sistema dependerán de cuál «llegó» antes, pudiendo provocarse
inconsistencias y comportamientos impredecibles y no compatibles con un sistema determinista.
 Mutex. Un mutex es una variable que puede estar en uno de dos estados: abierto (desbloqueado)
o cerrado (bloqueado). En consecuencia, se requiere sólo 1 bit para representarla, pero en la
práctica se utiliza con frecuencia un entero, en donde 0 indica que está abierto y todos los demás
valores indican que está cerrado. Se utilizan dos procedimientos con los mutexes. Cuando un hilo
(o proceso) necesita acceso a una región crítica, llama a mutex_lock. Si el mutex está actualmente
abierto (lo que significa que la región crítica está disponible), la llamada tiene éxito y entonces el
hilo llamador puede entrar a la región crítica. Por otro lado, si el mutex ya se encuentra cerrado,
el hilo que hizo la llamada se bloquea hasta que el hilo que está en la región crítica termine y llame
a mutex_unlock. Si se bloquean varios hilos por el mutex, se selecciona uno de ellos al azar y se
permite que adquiera el mutex.
 Monitores. Los monitores tienen una importante propiedad que los hace útiles para lograr la
exclusión mutua: sólo puede haber un proceso activo en un monitor en cualquier instante. Los
monitores son una construcción del lenguaje de programación, por lo que el compilador sabe que
son especiales y puede manejar las llamadas a los procedimientos del monitor en forma distinta
a las llamadas a otros procedimientos. Por lo general, cuando un proceso llama a un
procedimiento de monitor, las primeras instrucciones del procedimiento comprobarán si hay
algún otro proceso activo en un momento dado dentro del monitor. De ser así, el proceso
invocador se suspenderá hasta que el otro proceso haya dejado el monitor. Si no hay otro proceso
utilizando el monitor, el proceso invocador puede entrar.
 Exclusión Mutua. Consiste en que un solo proceso excluye temporalmente a todos los demás para
usar un recurso compartido de forma que garantice la integridad del sistema. Los algoritmos de
exclusión mutua se usan en programación concurrente para evitar el uso simultáneo de recursos
comunes, como variables globales, por fragmentos de código conocidos como secciones críticas.
La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean
en la comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el
código que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque,
si no se toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones
cualesquiera del código normal y esto puede provocar graves fallos. La técnica que se emplea por
lo común para conseguir la exclusión mutua es inhabilitar las interrupciones durante el conjunto
de instrucciones más pequeño que impedirá la corrupción de la estructura compartida (la sección
crítica). Esto impide que el código de la interrupción se ejecute en mitad de la sección crítica.
 Región Crítica o Sección Crítica. La sección critica es una sección de código en el que se actualizan
datos comunes. Mientras un proceso esté en su sección crítica ningún otro puede entrar. Los
problemas que se dan en la sección critica se pueden solucionar mediante:
o Variables de control compartidas
o Semáforos (con primitivas del sistema operativo)
o Técnicas de programación concurrentes (monitores)

You might also like