Está en la página 1de 2

1.

Definir en el contexto de un Sistema Operativo los puntos siguientes:

A. Comunicación de Procesos. - La comunicación entre procesos, en inglés IPC


(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í, normalmente a través de un
sistema de bajo nivel de paso de mensajes que ofrece la red subyacente.

La comunicación se establece siguiendo una serie de reglas (protocolos de


comunicación). Los protocolos desarrollados para internet son los mayormente
usados: IP (capa de red), protocolo de control de transmisión (capa de transporte)
y protocolo de transferencia de archivos, protocolo de transferencia de hipertexto
(capa de aplicación).

Los procesos pueden estar ejecutándose en una o más computadoras conectadas


a una red. Las técnicas de IPC están divididas dentro de métodos para: paso de
mensajes, sincronización, memoria compartida y llamadas de procediemientos
remotos (RPC). El método de IPC usado puede variar dependiendo del ancho de
banda y latencia (el tiempo desde el pedido de información y el comienzo del envío
de la misma) de la comunicación entre procesos, y del tipo de datos que están
siendo comunicados.

B. Condiciones de Carrera. - Una condición de carrera es una situación indeseable


que ocurre cuando un dispositivo o sistema intenta realizar dos o más operaciones
al mismo tiempo, pero debido a la naturaleza del dispositivo o sistema, las
operaciones deben realizarse en la secuencia adecuada para que se realicen
correctamente.

Un ejemplo simple de una condición de carrera es un interruptor de luz. En


algunas casas hay múltiples interruptores de luz conectados a una luz de techo
común. Cuando se utilizan estos tipos de circuitos, la posición del interruptor se
vuelve irrelevante. Si la luz está encendida, mover cualquiera de los interruptores
desde su posición actual apaga la luz. Del mismo modo, si la luz está apagada, al
mover cualquiera de los interruptores desde su posición actual se enciende la luz.
Con eso en mente, imagina lo que sucedería si dos personas intentaran encender
la luz usando dos interruptores diferentes exactamente al mismo tiempo. Una
instrucción puede cancelar la otra o las dos acciones pueden disparar el circuito.

En la memoria o el almacenamiento del ordenador, puede ocurrir una


condición de carrera si se reciben comandos para leer y escribir una gran
cantidad de datos en casi el mismo instante, y la máquina pretende
sobrescribir algunos o todos los datos antiguos cuando aún se están
utilizando esos datos.

C. Regiones Críticas. - Es la parte del proceso en la cual se tiene acceso a un


recurso compartido. Para evitar problemas en situaciones relacionadas con
recursos compartidos, la clave es determinar una forma de prohibir que más de un
proceso lea o escriba en los datos compartidos a la vez, en otras palabras, lo que
se necesita es una forma de garantizar que, si un proceso utiliza una variable o
archivo compartido, los demás procesos no puedan utilizarlos. A esto se le llama
exclusión mutua. Se necesitan 4 condiciones para tener una buena solución. Los
cuales son los siguientes:
- Dos procesos no deben encontrarse al mismo tiempo dentro de sus
secciones críticas.
- No se debe hacer hipótesis sobre la verdad o el número de procesadores.
- Ninguno de los procesos que estén en ejecución fuera de su sección critica
puede bloquear a otros procesos.
- Ningún proceso debe esperar demasiado tiempo para entrar en su sección
critica.
Si los procesos comparten recursos no deben estar en su sección critica al mismo
tiempo, ya que puede provocar un conflicto; pero si ambos procesos son
independientes no de haber problema, si un proceso desea entrar a su secón
critica no deben hacerlo mucho para acceder al recurso compartido.

D. Exclusión Mutua con espera activa. - 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.

En un sistema multiprocesador de memoria compartida, se usa la operación


indivisible test-and-set sobre una bandera, para esperar hasta que el otro
procesador la despeje. La operación test-and-set realiza ambas operaciones sin
liberar el bus de memoria a otro procesador. Así, cuando el código deja la sección
crítica, se despeja la bandera. Esto se conoce como spin lock o espera activa.

Algunos sistemas tienen instrucciones multioperación indivisibles similares a las


anteriormente descritas para manipular las listas enlazadas que se utilizan para las
colas de eventos y otras estructuras de datos que los sistemas operativos usan
comúnmente.

También podría gustarte