coordinacion y sincronizacion de procesos

33
REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO PARA EL PODER POPULAR PARA LA EDUCACION SUPERIOR INSTITUTO UNIVERSITARIO DE TECNOLOGIA DE LOS LLANOS VALLE DE LA PASCUA ESTADO GUARICO PROYECTO SOCIOTECNOLOGICO III Presentadores: Clavo Edgar; CI: 18.895.166 Morejón Diego; CI: 20.073.678 Navas Jennifer; Suarez Jessica; CI: 20.954854 Tutor académico: Ing. Miguel Moreno

Upload: jessica-suarez

Post on 09-Jul-2015

301 views

Category:

Software


8 download

DESCRIPTION

semaforos

TRANSCRIPT

Page 1: Coordinacion  Y  Sincronizacion  De  Procesos

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO PARA EL PODER POPULAR PARA LA EDUCACION SUPERIOR

INSTITUTO UNIVERSITARIO DE TECNOLOGIA DE LOS LLANOS

VALLE DE LA PASCUA – ESTADO GUARICO

PROYECTO SOCIOTECNOLOGICO III

Presentadores:

Clavo Edgar; CI: 18.895.166

Morejón Diego; CI: 20.073.678

Navas Jennifer;

Suarez Jessica; CI: 20.954854

Tutor académico:

Ing. Miguel Moreno

Page 2: Coordinacion  Y  Sincronizacion  De  Procesos

En muchos casos, los procesos se reúnen para realizar

tareas en conjunto, a este tipo de relación se le llama procesos

cooperativos. Para lograr la comunicación, los procesos deben

sincronizarse, de no ser así pueden ocurrir problemas no

deseados. La sincronización es la transmisión y recepción de

señales que tiene por objeto llevar a cabo el trabajo de un

grupo de procesos cooperativos.

Page 3: Coordinacion  Y  Sincronizacion  De  Procesos

es el hecho de ponerse de acuerdo entre varios procesos para

llevar a cabo alguna acción. Esta acción puede ser el conseguir el

derecho a entrar en una región crítica en exclusión mutua, o la

elección de un proceso, entre un grupo de procesos, que actúe

como coordinador de las actividades del resto de los procesos del

grupo.

Page 4: Coordinacion  Y  Sincronizacion  De  Procesos
Page 5: Coordinacion  Y  Sincronizacion  De  Procesos

Los semáforos son una herramienta básica, pero potente

y flexible, para hacer cumplir la exclusión mutua y

coordinar procesos. Sin embargo, puede resultar muy

difícil construir un programa correcto por medio de

semáforos. La dificultad está en que las operaciones wait

y signal deben distribuirse por todo el programa y no es

fácil advertir el efecto global de estas operaciones sobre

los semáforos a los que afectan. En los semáforos, tanto

la exclusión mutua como la sincronización son

responsabilidades del programador.

Page 6: Coordinacion  Y  Sincronizacion  De  Procesos

Funcionamiento de los semáforos

Dos o más procesos pueden cooperar por medio de simples

señales, de forma que se pueda obligar a detenerse a un proceso

en una posición determinada hasta que reciba una señal específica.

Cualquier requisito complicado de coordinación puede satisfacerse

por medio de la estructura de señales adecuada. Para la

señalización, se usan variables especiales llamadas semáforos.

Para transmitir una señal por el semáforo, los procesos ejecutan la

primitiva signal(s). Para recibir una señal del semáforo, los procesos

ejecutan la primitiva wait(s); si la señal correspondiente aún no se

ha transmitido, el proceso es suspendido hasta que tenga lugar la

transmisión.

Page 7: Coordinacion  Y  Sincronizacion  De  Procesos

Para lograr el efecto deseado, se pueden contemplar los

semáforos como variables que tienen un valor entero sobre el que

se definen las tres operaciones siguientes:

1. Un semáforo debe inicializarse con un valor no negativo.

2. La operación wait decrementa el valor del semáforo. Si el valor

del semáforo se hace negativo, el proceso que ejecuta el wait se

bloquea.

3. La operación signal incrementa el valor del semáforo. Si el valor

no es positivo, se desbloquea a un proceso bloqueado por una

posición wait.

Page 8: Coordinacion  Y  Sincronizacion  De  Procesos
Page 9: Coordinacion  Y  Sincronizacion  De  Procesos
Page 10: Coordinacion  Y  Sincronizacion  De  Procesos
Page 11: Coordinacion  Y  Sincronizacion  De  Procesos
Page 12: Coordinacion  Y  Sincronizacion  De  Procesos

Una de las funciones básicas que debe implementar un SO es la

Administración de la Memoria para tener un control sobre los

lugares donde están almacenados los procesos y datos que

actualmente se están utilizando.

Realiza distintos métodos y operaciones que se encargan de

obtener la máxima utilidad de la memoria, organizando los

procesos y programas que se ejecutan de manera tal que se

aproveche de la mejor manera posible el espacio disponible.

Actualmente esta administración se conoce como Memoria Virtual

ya que no es la memoria física del procesador sino una memoria

virtual que la representa.

Page 13: Coordinacion  Y  Sincronizacion  De  Procesos
Page 14: Coordinacion  Y  Sincronizacion  De  Procesos
Page 15: Coordinacion  Y  Sincronizacion  De  Procesos
Page 16: Coordinacion  Y  Sincronizacion  De  Procesos

Si se tiene el esquema hardware del registro base, para

lograr la protección de las zonas de memoria basta con añadir

un nuevo registro, denominado registro límite. Este registro

guarda la última dirección de la partición, y forma también parte

del PCB del proceso. El hardware, después de sumar el

registro base a la dirección relativa, comprueba que la dirección

obtenida no supere el valor del registro límite. Si se supera el

valor, se está intentando acceder a una zona que no

corresponde al proceso; en esta situación, el hardware genera

una interrupción

Page 17: Coordinacion  Y  Sincronizacion  De  Procesos

En este método se va asignando la memoria dinámicamente a los procesos,

conforme se introducen en la memoria. A cada proceso se le asigna

exactamente la memoria que necesita.

Page 18: Coordinacion  Y  Sincronizacion  De  Procesos

El esquema de los registro base y límite sigue siendo válido

para la reasignación y la protección. Otro tema a tener en cuenta es

la cantidad de memoria por asignar a un proceso recién creado. Si

los procesos se crean con un tamaño fijo invariante, la asignación

es muy sencilla, se asigna exactamente lo que se necesite.

Si, por el contrario, los segmentos de datos de los procesos

pueden crecer, como es el caso de la asignación dinámica de

memoria a partir de una pila, que ocurre en muchos lenguajes de

programación, aparece un problema cuando un proceso intenta

crecer.

Si es de esperar que la mayoría de los procesos crezcan

conforme se ejecuten, sería una buena idea asignar un poco de

memoria adicional siempre que un proceso pase a la memoria, con

el fin de reducir el gasto excesivo asociado con el traslado de

procesos que ya no caben en su memoria asignada

Si los procesos pueden tener dos segmentos de crecimiento,

como por ejemplo, el segmento de datos, que se utiliza como una

pila, y el stack, se sugiere un método alternativo.

Page 19: Coordinacion  Y  Sincronizacion  De  Procesos

La fragmentación es la memoria que queda

desperdiciada al usar los métodos de gestión de memoria

que se vieron en los métodos anteriores. Tanto el primer

ajuste, como el mejor y el peor producen fragmentación

externa. La fragmentación es generada cuando durante el

reemplazo de procesos quedan huecos entre dos o más

procesos de manera no contigua y cada hueco no es capaz

de soportar ningún proceso de la lista de espera.

Page 20: Coordinacion  Y  Sincronizacion  De  Procesos

Fragmentación Externa

Existe el espacio total de memoria para satisfacer un

requerimiento, pero no es contigua.

Page 21: Coordinacion  Y  Sincronizacion  De  Procesos

Fragmentación Interna:

La memoria asignada puede ser ligeramente mayor que la

requerida; esta referencia es interna a la partición, pero no se

utiliza.

La fragmentación externa se puede reducir mediante la

compactación para colocar toda la memoria libre en un solo gran

bloque, pero esta sólo es posible si la relocalización es dinámica

y se hace en tiempo de ejecución.

Page 22: Coordinacion  Y  Sincronizacion  De  Procesos
Page 23: Coordinacion  Y  Sincronizacion  De  Procesos

Una solución para el problema de la

fragmentación externa es la

compactación. El objetivo consiste en

desplazar el contenido de la memoria

para colocar junta toda la memoria libre

en un solo bloque de gran tamaño.

• Técnica que consiste en trasladar todas

las áreas ocupadas del almacenamiento

hacia algún extremo de la memoria.

• Es una solución de la fragmentación

externa.

• El objetivo consiste en desplazar el

contenido de la memoria libre en un sólo

bloque de gran tamaño.

• La compactación no siempre es posible,

sólo es posible si la relocalización es

dinámica y se efectúa en el momento de

la ejecución.

• Este esquema puede ser bastante

costoso.

Page 24: Coordinacion  Y  Sincronizacion  De  Procesos

Permiten determinar en qué lugar de la memoria principal se deben

colocar los programas y datos entrantes.

Tipos:

Mejor Ajuste: Colocar el trabajo en el menor bloque en el que

quepa.

¨ Primer Ajuste. Colocar el trabajo en el primer hueco de la lista

de almacenamiento libre en el que quepa.

Peor Ajuste: Colocar el trabajo en el menor bloque en el que quepa.

Page 25: Coordinacion  Y  Sincronizacion  De  Procesos

Es un método mediante el cual, un sistema operativo simula tener

más memoria principal que la que existe físicamente. Para implementar la

memoria virtual se utiliza un medio de almacenamiento secundario de alta

velocidad de acceso, generalmente en disco duro de la maquina. Un

sistema de memoria virtual se implementa utilizando paginación como

método de administración de memoria básica y algún mecanismo de

intercambio (para descargar paginas de la memoria principal hacia el

disco duro y para cargar esas páginas de nuevo a la memoria).

Page 26: Coordinacion  Y  Sincronizacion  De  Procesos

El término memoria virtual se asocia normalmente con

sistemas que emplean paginación, aunque también se puede

usar memoria virtual basada en la segmentación, que se tratará

después. El uso de la paginación en la memoria virtual fue

presentado por primera vez en el computador Atlas [KILB62] y

pronto alcanzó un uso comercial muy extendido.

En el estudio de la paginación simple se indicó que cada

proceso tiene su propia tabla de páginas y que, cuando carga

todas sus páginas en memoria principal, se crea y carga en

memoria principal una tabla de páginas. Cada entrada de la tabla

de páginas contiene el número de marco de la página

correspondiente en memoria principal. Cuando se considera un

esquema de memoria virtual basado en la paginación se necesita

la misma estructura, una tabla de páginas. Nuevamente, es

normal asociar una única tabla de páginas con cada proceso.

Page 27: Coordinacion  Y  Sincronizacion  De  Procesos
Page 28: Coordinacion  Y  Sincronizacion  De  Procesos

La segmentación permite al

programador contemplar la

memoria como si constara de

varios espacios de direcciones o

segmentos. Con memoria virtual, el

programador no necesita

preocuparse de las limitaciones de

memoria impuestas por la memoria

principal. Los segmentos pueden

ser de distintos tamaños, incluso de

forma dinámica. Las referencias a

memoria constan de una dirección

de la forma (número de segmento,

desplazamiento).

Page 29: Coordinacion  Y  Sincronizacion  De  Procesos

Un fallo de página es la secuencia de eventos que ocurren cuando un

programa intenta acceder a datos (o código) que está en su espacio

de direcciones, pero que no está actualmente ubicado en la RAM del

sistema. El sistema operativo debe manejar los fallos de página

haciendo residentes en memoria los datos accedidos, permitiendo de

esta manera que el programa continúe la operación como que si el

fallo de página nunca ocurrió.

Page 30: Coordinacion  Y  Sincronizacion  De  Procesos

Paginación y segmentación son técnicas diferentes, cada una de las cuales busca

brindar las ventajas enunciadas anteriormente.

Para la segmentación se necesita que estén cargadas en memoria, áreas de tamaños

variables. Si se requiere cargar un segmento en memoria; que antes estuvo en ella y fue

removido a memoria secundaria; se necesita encontrar una región de la memoria lo

suficientemente grande para contenerlo, lo cual no es siempre factible; en cambio "recargar"

una página implica solo encontrar un merco de pagina disponible.

A nivel de paginación, si quiere referenciar en forma cíclicas n paginas, estas deberán

ser cargadas una a una generándose varias interrupciones por fallas de paginas; bajo

segmentación, esta página podría conformar un solo segmento, ocurriendo una sola

interrupción, por falla de segmento. No obstante, si bajo segmentación, se desea acceder un

área muy pequeña dentro de un segmento muy grande, este deberá cargarse completamente

en memoria, desperdiciándose memoria; bajo paginación solo se cargara la página que

contiene los ítems referenciados.

Puede hacerse una combinación de segmentación y paginación para obtener las

ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este puede

dividirse en páginas. Cada segmento puede ser descrito por su propia tabla de páginas.

Los segmentos son usualmente múltiplos de páginas en tamaño, y no es necesario que

todas las páginas se encuentren en memoria principal a la vez; además las páginas de un

mismo segmento, aunque se encuentren contiguas en memoria virtual; no necesitan estarlo en

memoria real.

Page 31: Coordinacion  Y  Sincronizacion  De  Procesos

Espacio de direcciones físicas.

Las direcciones de memoria del tipo físico son las que

referencian algún espacio de memoria del tipo físico.

Como puede ser la memoria total del sistema.

las direcciones de memoria del tipo lógico son las

creadas por y utilizadas por los procesos en el sistema,

estas a cambios de la físicas pueden sufrir una serie de

cambios o transformaciones realizadas por el cpu (MMU)

antes de que sean convertidas .

Page 32: Coordinacion  Y  Sincronizacion  De  Procesos

Espacio de direcciones lógicos.

Cada proceso cargado en la memoria tiene su espacio de

memoria asignado en el sistema Se divide en 2:

De usuarios:

•especifico de cada usuario

•diferente tipo de regiones.

Del S.O:

•común a todos los procesos.

•accesible cuando se ejecuta dentro del sistema.

Page 33: Coordinacion  Y  Sincronizacion  De  Procesos