clase 3 ene 8

28
Sistemas Operativos (cont….)

Upload: pepe-lascano

Post on 06-Jul-2015

1.973 views

Category:

Education


0 download

DESCRIPTION

Sistemas Operativos, continuación

TRANSCRIPT

Page 1: Clase 3 ene 8

Sistemas Operativos (cont….)

Page 2: Clase 3 ene 8

PROCESOS COOPERATIVOS Los procesos concurrentes pueden ser: Independientes: No comparten datos con otros procesosCooperativos: Si pueden afectar o verse afectados por otros procesos. Las razones que permiten la cooperación entre procesos son:1.- Compartir información2.- Aceleración de cálculos (subtareas)3.- Modularidad dividir las funciones del sistema4.- Conveniencia

Page 3: Clase 3 ene 8

COMUNICACIÓN ENTRE PROCESOS Requieren buffers, ya sean especificados por el programador y con el apoyo del sistema operativo, el cual proporciona medios para que los procesos se comuniquen entre ellos A través de un servicio IPCcomunicación entre procesos ( IPC ).

Page 4: Clase 3 ene 8

PASO DE MENSAJES

• send (envío) y receive (recibe) mensajes, • Permiten que dos operaciones P y Q se comuniquen

mediante mensajes. Los diferentes métodos para implementar la lógica de enlace son:Comunicación directa o indirectaComunicación simétrica o asimétrica Uso automático o explícito de buffersEnvío por copia o por referenciaMensaje de tamaño fijo o variable.

Page 5: Clase 3 ene 8

COMUNICACIÓN DIRECTA

• Los procesos nombran explícitamente al productor y al consumidor.Las propiedades para este enlace son:

El enlace se establece automáticamenteEl enlace está asociado exactamente con dos procesos.Entre cada par de procesos existe exactamente un

enlace.

Page 6: Clase 3 ene 8

Los esquemas de direccionamiento son: Simetría en el direccionamiento, pues el emisor y el receptor se nombran mutuamente. Send (P,mensaje) Enviar un mensaje al proceso P.Receive (Q,mensaje ) Recibir un mensaje del proceso Q. La Asimetría en el direccionamiento, solo el emisor nombra al receptor. Send (P,mensaje ), Receive (id,mensaje )

Page 7: Clase 3 ene 8

COMUNICACIÓN INDIRECTALos mensajes se reciben en buzones o puertos.

Estos pueden ser propiedad del proceso que los crea (solo puede ser usado por él) o del sistema operativo ( los buzones podrán ser usados por varios procesos), en este caso el sistema operativo debe proporcionar mecanismos para: crear buzones, enviar y recibir mensajes a través del buzón y borrar buzones.El enlace de comunicación, propiedades:* Se establece el enlace entre un par de procesos, solo si tienen un buzón compartido.* Un enlace puede estar asociado con más de dos procesos.* Entre cada par de procesos puede haber enlaces diferentes y cada enlace corresponde a un buzón.

Page 8: Clase 3 ene 8

SINCRONIZACIÓN

El paso de mensajes puede ser: Síncrono: El envío y la recepción es con bloqueo,

es decir el receptor o el emisor se bloquean hasta que el envío o la recepción del mensaje se ejecute.

Asíncrono: El envío y la recepción es sin bloqueo.

Es decir, el emisor o el receptor, envían o reciben el mensaje y continúa su operación.

Page 9: Clase 3 ene 8

USO DE BUFFERS

Para la comunicación directa o indirecta los mensajes aciden en una cola temporal, y pueden ser: Capacidad cero: NO hay mensajes en espera, por tanto, el emisor debe bloquearse hasta que el receptor tome el mensaje. A éste sistema se lo conoce como mensajes sin buffers.Capacidad limitada: El emisor se bloqueará solo cuando no hay espacio disponible en la cola.Capacidad ilimitada: El emisor nunca se bloquea.

Page 10: Clase 3 ene 8

THREADS ( HILOS )Los sistemas operativos modernos permiten que un proceso tenga

más de un hilo de control. • “ Un hilo es una unidad básica de utilización de la CPU “

Constituido por:– ID del hilo– Contador de programa– Conjunto de registros y,– Una pila.

• El hilo comparte con otros hilos, del mismo proceso:

– Su sección de código– Su sección de datos y– Otros recursos del sistema operativo

Page 11: Clase 3 ene 8

Por ejemplo, un procesador de palabras es multihilo,

• Mediante un hilo, lee las pulsaciones desde el teclado, realizadas por el usuario.

• Mediante otro hilo exhibe gráficos• Mediante otro hilo verifica ortografía

Page 12: Clase 3 ene 8

Grado de respuesta: una operación multihilos, puede permitir que mientras realiza una operación tardada, se ejecute otra operación en paralelo. Por ej, un navegador web con multihilos, mientras carga una imagen, puede permitir la interacción con el usuario. Compartir recursos. Comparten memoria y los recursos del proceso al que pertenecen. Economía: como los hilos comparten recursos. Utilización de arquitecturas de microprocesadores: Con un procesador, un hilo se ejecuta a la vez, pero se produce la sensación de paralelismo. Con multiprocesadores, se produce paralelismo, pues cada hilo se ejecuta en cada uno.

Beneficios de la programación multihilos

Page 13: Clase 3 ene 8

HILOS DEL USUARIO DEL KERNEL

• Hilos del Usuario: Están por encima del Kermel, son más rápidos de crear y administrar, implementados por una biblioteca de hilos a nivel de usuario. La biblioteca contiene el código para proporcionar apoyo para la creación, programación y administración de hilos, sin soporte del kernel. Significa hilos visibles al programador y desconocidos para el Kernel. Por ejemplo una biblioteca de hilos es POSIX Pthreads de UNIX.

Las ventajas de usar Hilos a nivel de usuario. :• El intercambio de hilos no necesita privilegios de modo núcleo, porque

está en el espacio de direcciones de usuario.• Se puede realizar una planificación específica, se puede realizar un

algoritmo de planificación a medida.• Los hilos a nivel de usuario pueden ejecutarse en cualquier sistema

operativo.

Page 14: Clase 3 ene 8

Existen dos desventajas:

• La mayoría de las llamadas al sistema son bloqueadoras, no solo se bloquea ese hilo, sino todos los hilos del proceso.

• El núcleo asigna un proceso a un solo procesador cada vez, por tanto se aplica la multiprogramación, y no el multiprocesamiento.

Page 15: Clase 3 ene 8

Hilos de Kernel:

• Tiene soporte directo del Sistema Operativo, la creación, programación y administración de hilos las realiza el kernel en su propio espacio. La creación y administración de hilos por parte del kernel es más lenta. Ejemplo Windows NT soporta multihilos.

• La desventaja es que el paso de control de un hilo a otro dentro de un mismo proceso necesita un cambio de modo a modo de núcleo.

• La ventaja: El núcleo puede planificar múltiples hilos del mismo proceso en multiprocesadores

Page 16: Clase 3 ene 8

MODELOS MULTIHILOS

Implica soporta tanto para hilos de usuario como para el Kernel.• Modelo varios a uno: mapea múltiples hilos a nivel de

usuario en un hilo del Kernel.• Modelo uno a uno: mapea un hilo de usuario en un hilo del

kernel. La restricción es el número de hilos que soporta el sistema.

• Modelo de varios a varios: muchos hilos a nivel de usuario con un número igual o menor de hilos a nivel del kernel.

Page 17: Clase 3 ene 8

Al igual que los procesos, los hilos poseen un estado de ejecución y pueden sincronizarse entre ellos:

Los estados de un hilo son:• Creación: cuando se crea un nuevo proceso, se crea un hilo,

posteriormente un hilo de ese proceso puede crear otros hilos de ese proceso. El nuevo hilo tendrá el nuevo contexto y su propio estado de pila.

• Bloqueo: cuando un hilo necesita esperar por un proceso se bloquea. El procesador puede pasar a ejecutar otro hilo listo.

• Desbloqueo: cuando se produce un suceso por el que un hilo se bloqueó, el hilo pasa a la cola de listos.

• Terminación: cuando un hilo finaliza, se liberan su contexto y sus pilas.

El estado de los hilos debe sincronizarse para que no interfieran unos con otros.

FUNCIONALIDAD DE LOS HILOS

Page 18: Clase 3 ene 8

Java proporciona varios APIs para administrar hilos:

• Suspend() suspende la ejecución del hilo que actualmente está en

ejecución.• Sleep(): pone a dormir durante una cantidad específica de tiempo, al hilo

que actualmente está en ejecución.• Resumen( ): reanuda la ejecución del hilo que había sido suspendido.• Stop(): detiene la ejecución de un hilo, una vez que un hilo había sido

detenido, no puede ser reanudado o iniciado.

ADMINISTRACIÓN DE HILOS

Page 19: Clase 3 ene 8

Existen cuatro estados posibles.

2. Nuevo: un hilo se encuentra en ese estado cuando se crea un objeto para el hilo (new).

3. Ejecutable: el método Star() asigna memoria para el nuevo hilo en la máquina virtual java JVM, llama al método run(), al cual cambia el estado New al estado ejecutable.

4. Bloqueado: el hilo se bloquea si se ejecuta una sentencia de bloqueo, como una operación de E/S , o se invocan ciertos métodos de java, como sleep() o suspend().

5. Muerto: cuando termina su método run(), o se llama a su método stop().

ESTADOS DE UN HILO JAVA

Page 20: Clase 3 ene 8

SINCRONIZACION DE PROCESOS

• El diseño de sistemas operativos está relacionado con la gestión de procesos e hilos

• Los sistemas operativos modernos deben permitir la concurrencia de procesos e hilos.

• Los usuarios no deben preocuparse por que los procesos dañen a otros procesos, el trabajo entre ellos debe ser sincronizado y cooperativo a la vez.

Page 21: Clase 3 ene 8

SECCIÓN CRÍTICA

• El acceso a un recurso compartido, permite declarar a esa sección de código como crítica,

• Por ejemplo si una variable global es compartido por dos procesos Productor y Consumidor, entonces el código que maneja esa variable es declarado como crítica.

• Cada hilo también puede tener secciones críticas.• La característica importante del sistema es que cuando un hilo, se está

ejecutando en su sección crítica , no se debe permitir que otros hilos se ejecuten en esa misma dirección.

Page 22: Clase 3 ene 8

• Exclusión mutua: si un hilo T1 se está ejecutando en su sección crítica, ningún otro hilo puede estar en la misma ejecución.

• Progreso: Si ningún hilo se está ejecutando en su sección crítica y existen algunos hilos que desean entrar en sus secciones críticas, solo ellos participarán en la decisión, es un proceso que no puede posponerse.

• Un hilo que se interrumpe en una sección no crítica debe interrumpirse sin interferir con los otros hilos.

• Un hilo permanece en su sección crítica solo por un tiempo finito. Esto evita la inanición de otros hilos.

Page 23: Clase 3 ene 8

SOLUCIONES POR SOFTWARE

• El algoritmo de Dekker. Controla la restricción de que solo se puede realizar un acceso a una posición de memoria en cada instante.

• Algoritmo de Peterson: al igual que Dekker, este algoritmo desarrolló una solución simple y elegante.

Page 24: Clase 3 ene 8

SOLUCIONES POR HARDWARE

• SEMÁFOROS• MONITORES• PASO DE MENSAJES

Page 25: Clase 3 ene 8

SEMÁFOROS

• Mecanismos del sistema operativo para dar soporte a la concurrencia y permitir la exclusión mutua.

• Dos o más procesos pueden cooperar por medio de simples señales, de forma que se pueda obligar a detener 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 adecuadas.

• Para la señalización se usan variables especiales llamada semáforos. • Para transmitir una señal por el semáforo los procesos ejecutan la

primitiva signal. Para recibir una señal del semáforo los procesos ejecutan la primitiva wait, si la señal correspondiente aun no se ha transmitido, el proceso es suspendido hasta que tenga lugar la transmisión.

Page 26: Clase 3 ene 8

MONITORES

• Son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a la de los semáforos , pero que son más fáciles de controlar.

• Un monitor es un módulo de software que consta de uno o más procedimientos, una secuencia de inicio y unos datos locales.

• Suss características fundamentales:

– Las variables de datos locales están solo accesibles para los procedimientos del monitor y no para los procedimientos externos.

– Un proceso entra en el monitor invocando a uno de sus procedimientos.– Solo un proceso puede estar ejecutando en el monitor en un instante dado,

cualquier otro proceso que haya invocado al monitor quedará suspendido mientras espera a que el monitor esté disponible.

Page 27: Clase 3 ene 8

PASO DE MENSAJES

• Cuando los proceso interactúan unos con otros, se debe satisfacer dos requisitos básicos: la sincronización y la comunicación.

• Los procesos tienen que sincronizarse para cumplir la exclusión mutua, los procesos cooperantes pueden necesitar intercambiar la información.

• Un método posible para cumplir ambas funciones es el paso de mensajes.

Page 28: Clase 3 ene 8

BIBLIOGRAFÍA

• Sistemas Operativos, Diseño e Implementación, Andrew S. Tanenbaum.

• Sistemas Operativos, William Stalling• Material del ISED