You are on page 1of 9

“Inhabilitación de Interrupciones”

García Kuri Karime Casillas Diana Rocío Gómez Luna Juan Esteban Navarro Cruces María Berenice

INTRODUCCIÓN
Interrupción.- Es un evento que altera la secuencia en que el procesador ejecuta las instrucciones; es un hecho generado por el hardware del computador. Una interrupción puede ser iniciada por un proceso en estado de ejecución o por un evento que quede o no estar relacionado con un proceso de ejecución.

• Obtiene el control • Guarda el estado del proceso interrumpido • Analiza la interrupción • Transfiere el control a la rutina

CONCEPTOS
En una máquina monoprocesador, la ejecución de procesos concurrentes no puede superponerse; los procesos solo pueden intercalarse. Es más, un proceso continuará ejecutándose hasta que solicite un servicio el sistema operativo o hasta que sea interrumpido. Esta capacidad puede ofrecerse en forma de primitivas definidas por el núcleo del sistema para habilitar o inhabilitar las interrupciones.

SECCIÓN CRÍTICA
Se denomina sección crítica, a la porción de código de un programa de computador en la cual se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un hilo en ejecución. La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período determinado de tiempo para entrar.

Se necesita un mecanismo de sincronización en la entrada y salida de la sección crítica para asegurar la utilización en exclusiva del recurso, por ejemplo un semáforo.
 La sección crítica se utiliza por lo general cuando un programa multihilo actualiza múltiples variables sin un hilo de ejecución separado que lleve los cambios conflictivos a esos datos.  La manera en cómo se implementan las secciones puede variar dependiendo de los diversos sistemas operativos.  Sólo un proceso puede estar en una sección crítica a la vez.  El método más común para evitar que dos procesos accedan al mismo tiempo a un recurso es el de la exclusión mutua.

SEMAFOROS
Dos o más procesos pueden cooperar por medio de señales simples de forma que se pueda obligar a detener un proceso en una posición determinada hasta que reciba una señal especifica.  Para transmitir una señal por el semáforo se ejecuta la primitiva Signal X  Para recibir una señal de los procesos se ejecuta Wait X

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.

MONITORES
En la programación paralela, los monitores son objetos destinados a ser usados sin peligro por más de un hilo de ejecución. La característica que principalmente los define es que sus métodos son ejecutados con exclusión mutua. Lo que significa, que en cada momento en el tiempo, un hilo como máximo puede estar ejecutando cualquiera de sus métodos. Esta exclusión mutua simplifica el razonamiento de implementar monitores en lugar de código a ser ejecutado en paralelo.
INICIALIZACIÓN •Contiene el código a ser ejecutado cuando el monitor es creado DATOS PRIVADOS •Contiene los procedimientos privados, que sólo pueden ser usados desde el centro del monitor y no son visibles desde afuera. PROCEDIMIENTOS DEL MONITOR •Son los procedimientos que pueden ser llamados desde fuera del monitor COLA DE ENTRADA •Contiene a los threads que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún

MENSAJES
Son una solución del sistema operativo que nos permitirán la sincronización de procesos y la comunicación entre ambos. Es una cadena de texto transmitida de un proceso que envía el mensaje a un receptor (proceso receptor). Un mensaje puede tener código, texto, datos, … Suelen tener dos partes:  Cabecera (obligatoria): IdProcesoEmisor, IdProcesoReceptor, Tipo, Longitud  Cuerpo (optativo): Información adicional Tenemos dos tipos de órdenes para gestionar mensajes (para enviar y recibir):  Enviar: send (destino, mensaje)  Recibir: receive (origen, mensaje)

DIRECCIONAMIENTO
Es necesario disponer de alguna forma de especificar en la primitiva send que proceso va a recibir el mensaje. La mayoría de las implementaciones permiten a los procesos receptores indicar el origen del mensaje que se va a recibir.

Los distintos esquemas para hacer referencia a los procesos en las primitivas send y receive se encuadran dentro de 2 categorías:
 Direccionamiento directo: la primitiva send incluye una identificación específica del proceso de destino.  Direccionamiento indirecto: los mensajes no se envían directamente del emisor al receptor, sino a una estructura de datos compartidos formada por colas, que pueden guardar los mensajes temporalmente, que se denominan BUZONES (mailboxes). Para que 2 procesos se comuniquen, uno envía mensajes al buzón apropiado y el otro los retira. Una ventaja de este tipo de direccionamiento es que se desacopla a emisor y receptor, asegurando mayor flexibilidad en el uso de mensajes.