Está en la página 1de 6

UNIVERSIDAD NACIONAL DEL ALTIPLANO

FACULTAD DE INGENIERIA MECANICA


ELECTRICA, ELECTRONICA Y SISTEMAS
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

INFORME

CURSO: SISTEMAS OPERATIVOS


PRESENTADO POR: NESTOR ARMANDO QUISPE QUISPE
DONCENTE: ING. JOSE LUIS JUAREZ RUELAS

PUNO-PERU
2020
1. ¿Qué es concurrencia?
Definición de diccionario: coincidir en el espacio o en el tiempo dos o más personas o
cosas. n En Informática, se habla de concurrencia cuando hay una existencia simultánea
de varios procesos en ejecución. n Ojo, concurrencia existencia simultánea no implica
ejecución simultánea.

1.1. Paralelismo y concurrencia


El paralelismo es un caso particular de la concurrencia. n Se habla de paralelismo
cuando ocurre la ejecución simultánea de instrucciones.

1.2. Procesos cooperativos


Necesidades de sincronización y comunicación Los procesos concurrentes tendrán
necesidad de comunicarse información Además, será necesario en ocasiones detener a
un proceso hasta que se produzca un determinado evento o se den ciertas condiciones à
sincronización

1.3. Técnicas de sincronización


 Basadas en memoria compartida
 Inhibición de Interrupciones
 Espera activa
 Semáforos
 Regiones críticas
 Monitores
 Basadas en el paso de mensajes
 Canales
 Buzones
Ejemplo 1: MODIFICACIÓN CONCURRENTE DE UNA VARIABLE
Ejemplo 2: BUCLES INFINITOS CONCURRENTES

1.4. Problema al modificar datos compartidos


Ambas rutinas son correctas si se ejecutan por separado, pero podrían NO funcionar si
se ejecutan de manera concurrente n Supongamos que contador contiene en un
momento dado el valor 5 y que las instrucciones “contador=contador+1” y
“contador=contador-1” se ejecutan de forma concurrente (¡contador podría ser 4, 5 o 6!)
2. Sección crítica: modelo del sistema
 N procesos intentan acceder a un recurso compartido en un bucle infinito:

loop
Sección_No_Crítica (SNC);
Pre_Protocolo;
Sección_Crítica (SC);
Post_Protocolo;
end loop;

 Sección crítica: Segmento de código donde se accede a datos compartidos con


otros procesos
2.1. Sección crítica: modelo del sistema (2)

 Nunca puede haber más de un proceso en la sección crítica (exclusión mutua)


 Los pre y post protocolos serán algoritmos para garantizar que se cumple la
exclusión mutua

2.2. Requisitos de la solución


a) Exclusión mutua
b) Progreso: si ningún proceso está en sección crítica y hay procesos que desean
entrar en su s.c., sólo estos últimos participarán en la decisión y ésta se tomará
en un tiempo finito.
c) Espera limitada: hay un límite para el número de veces que otros procesos
pueden adelantarse a un proceso que quiere entrar en s.c.

Importante
Suponemos que cada proceso se ejecuta a una velocidad distinta de cero n No
podemos hacer suposiciones acerca de las velocidades relativas de los procesos

2.3. Solución trivial: cortar la multiprogramación


Si suspendemos la multiprogramación, desaparece el problema de acceso a los datos
compartidos…pero perdemos todas las ventajas de la multiprogramación. Hay que
buscar una solución menos radical

2.4. Solución del hardware: inhibir las interrupciones


Antes de que un proceso entre en su sección crítica, se inhiben las interrupciones. Así es
imposible que el proceso sea expulsado de la CPU mientras está accediendo al dato
compartido. Al salir de la SC, se rehabilitan las interrupciones
2.5. Inhibir las interrupciones: problemas
Mientras un proceso está en SC, se suspende toda la concurrencia en el sistema -> no se
le da oportunidad a otros procesos que no están accediendo al recurso compartido. Esta
técnica no se puede implementar en un multiprocesador

2.6. Soluciones con espera activa


La sincronización se basa en que un proceso espera mediante la comprobación continua
de una variable, manteniendo ocupada la CPU.
 Soluciones Software
 Soluciones Hardware

Algoritmo de Peterson - ¡¡FUNCIONA!!


Solución para N procesos: Algoritmo de la panadería (Lamport)

También podría gustarte