Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Sistemas Operativos  (cont….)
PROCESOS COOPERATIVOS   Los procesos concurrentes pueden ser:   Independientes :  No  comparten datos con otros procesos C...
COMUNICACIÓN ENTRE PROCESOS   Requieren buffers,  ya sean especificados por el programador y con el apoyo del sistema oper...
PASO DE MENSAJES   send (envío) y receive (recibe)  mensajes ,  Permiten que dos operaciones P y Q se comuniquen mediante ...
COMUNICACIÓN DIRECTA Los procesos nombran explícitamente al productor y al consumidor. Las propiedades para este enlace so...
Los esquemas de direccionamiento son:    Simetría  en el direccionamiento, pues el emisor y el receptor se nombran mutuame...
COMUNICACIÓN INDIRECTA Los mensajes se reciben en buzones o puertos.  Estos pueden ser  propiedad del proceso  que los cre...
SINCRONIZACIÓN   El paso de mensajes puede ser:   Síncrono:  El envío y la recepción es con bloqueo,  es decir el receptor...
USO DE BUFFERS Para la comunicación directa o indirecta los mensajes aciden en una cola temporal, y pueden ser:   Capacida...
THREADS  ( HILOS ) Los sistemas operativos modernos permiten que un proceso tenga más de un hilo de control.   “  Un hilo ...
Por ejemplo, un procesador de palabras es multihilo, Mediante un hilo, lee las pulsaciones desde el teclado,  realizadas  ...
Grado de respuesta:  una operación multihilos, puede permitir que mientras realiza una operación tardada, se ejecute otra ...
HILOS DEL USUARIO DEL KERNEL Hilos del Usuario:  Están por encima del Kermel, son más rápidos de crear y administrar, impl...
Existen dos desventajas: La mayoría de las llamadas al sistema son bloqueadoras, no solo se bloquea ese hilo, sino todos l...
Hilos de Kernel:  Tiene soporte directo del Sistema Operativo, la creación, programación y administración de hilos las rea...
MODELOS  MULTIHILOS  Implica soporta tanto para hilos de usuario como para el Kernel. Modelo varios a uno:  mapea múltiple...
Al igual que los procesos, los hilos poseen un estado de ejecución y pueden sincronizarse entre ellos:   Los estados de un...
Java proporciona varios APIs para administrar hilos:   Suspend()  suspende la ejecución del hilo que actualmente está en e...
  Existen cuatro estados posibles.  Nuevo:  un hilo se encuentra en ese estado cuando se crea un objeto para el hilo ( new...
SINCRONIZACION DE PROCESOS El diseño de sistemas operativos está relacionado con la gestión de procesos e hilos Los sistem...
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 ...
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...
SOLUCIONES POR SOFTWARE El algoritmo de Dekker. Controla la restricción de que solo se puede realizar un acceso a una posi...
SOLUCIONES POR HARDWARE SEMÁFOROS MONITORES PASO DE MENSAJES
SEMÁFOROS Mecanismos del sistema operativo para dar soporte a la concurrencia y permitir la exclusión mutua.  Dos o más pr...
MONITORES Son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a la de los semáforos ,...
PASO DE MENSAJES Cuando los proceso interactúan unos con otros, se debe satisfacer dos requisitos básicos:  la sincronizac...
BIBLIOGRAFÍA Sistemas Operativos, Diseño e Implementación, Andrew S. Tanenbaum. Sistemas Operativos, William Stalling Mate...
Próxima SlideShare
Cargando en…5
×

Clase 3 ene 8

2.271 visualizaciones

Publicado el

Sistemas Operativos, continuación

Publicado en: Educación
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Clase 3 ene 8

  1. 1. Sistemas Operativos (cont….)
  2. 2. PROCESOS COOPERATIVOS   Los procesos concurrentes pueden ser:   Independientes : No comparten datos con otros procesos Cooperativos : Si pueden afectar o verse afectados por otros procesos. Las razones que permiten la cooperación entre procesos son: 1.- Compartir información 2.- Aceleración de cálculos (subtareas) 3.- Modularidad dividir las funciones del sistema 4.- Conveniencia  
  3. 3. 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 IPC comunicación entre procesos ( IPC ).
  4. 4. 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 indirecta Comunicación simétrica o asimétrica Uso automático o explícito de buffers Envío por copia o por referencia Mensaje de tamaño fijo o variable.
  5. 5. COMUNICACIÓN DIRECTA Los procesos nombran explícitamente al productor y al consumidor. Las propiedades para este enlace son: El enlace se establece automáticamente El enlace está asociado exactamente con dos procesos. Entre cada par de procesos existe exactamente un enlace.
  6. 6. 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 )
  7. 7. COMUNICACIÓN INDIRECTA Los 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.
  8. 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.
  9. 9. 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.  
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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.
  14. 14. 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.
  15. 15. 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
  16. 16. 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.
  17. 17. 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
  18. 18. 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
  19. 19.   Existen cuatro estados posibles.  Nuevo: un hilo se encuentra en ese estado cuando se crea un objeto para el hilo ( new ). 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. 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(). Muerto: cuando termina su método run() , o se llama a su método stop(). ESTADOS DE UN HILO JAVA
  20. 20. 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.
  21. 21. 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.
  22. 22. 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.
  23. 23. 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.
  24. 24. SOLUCIONES POR HARDWARE SEMÁFOROS MONITORES PASO DE MENSAJES
  25. 25. 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.
  26. 26. 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.
  27. 27. 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.
  28. 28. BIBLIOGRAFÍA Sistemas Operativos, Diseño e Implementación, Andrew S. Tanenbaum. Sistemas Operativos, William Stalling Material del ISED

×