SlideShare una empresa de Scribd logo
Sistemas Operativos  (cont….)
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  
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 ).
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.
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.
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 )
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.
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.
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.  
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
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
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
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.
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.
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
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.
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
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
  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
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.
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.
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.
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.
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 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.
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.
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.
BIBLIOGRAFÍA Sistemas Operativos, Diseño e Implementación, Andrew S. Tanenbaum. Sistemas Operativos, William Stalling Material del ISED

Más contenido relacionado

PDF
Programación multihebra en java
PDF
GUIA 1 HILOS Y PROCESOS
PDF
Curso de Sistemas Operativos - Unidad Procesos e Hilos
PPTX
Programación multitarea
PPT
Programación III (Java) - 08 threads
PPTX
2.3 procesos ligeros
PDF
Manual De Instalacion Del Cluster Knoppix
PPT
Programando en java
Programación multihebra en java
GUIA 1 HILOS Y PROCESOS
Curso de Sistemas Operativos - Unidad Procesos e Hilos
Programación multitarea
Programación III (Java) - 08 threads
2.3 procesos ligeros
Manual De Instalacion Del Cluster Knoppix
Programando en java

La actualidad más candente (19)

PDF
Procesos e hilos_parte_3
PPTX
Guia 1 de hilos y procesos posix
PDF
Tema 12 hilos en java por gio
PDF
Sistemas operativos 06 2010
PPT
Programacion Multihilo
PDF
Modelo paso de mensajes
PPT
Gprocesos
PPTX
Procesos e Hilos en los Sistemas Operativos
PDF
Programaci un+concurrente+en+java
DOCX
Programación concurrente
PDF
Guía de trabajos hilos y posix
PDF
Lps 17 hilos
PPTX
Programacion concurrente
PDF
Conceptos de clustering
PDF
Documental de Arquitecturas Avanzadas (Computación)
PPTX
Uso de hilos
PPT
PROGRAMACION CONCURRENTE
PPT
Sincronización entre procesos
PPTX
Procesamiento superescalar
Procesos e hilos_parte_3
Guia 1 de hilos y procesos posix
Tema 12 hilos en java por gio
Sistemas operativos 06 2010
Programacion Multihilo
Modelo paso de mensajes
Gprocesos
Procesos e Hilos en los Sistemas Operativos
Programaci un+concurrente+en+java
Programación concurrente
Guía de trabajos hilos y posix
Lps 17 hilos
Programacion concurrente
Conceptos de clustering
Documental de Arquitecturas Avanzadas (Computación)
Uso de hilos
PROGRAMACION CONCURRENTE
Sincronización entre procesos
Procesamiento superescalar
Publicidad

Destacado (14)

PDF
Procesos Hilos y Planificación
PDF
PPTX
Procesos Ligeros: Hilos o Hebras
 
PPT
Thread
PPTX
Sistemas operativos threads
DOCX
Cuestionario hilos
PPTX
Hilos hebras
PDF
Procesos e Hilos, Sistemas Operativos
PDF
Procesos e Hilos
PPTX
Administración de procesos en el S.O.
PPT
ODP
Procesos y Planificación de la CPU
PDF
Kernel de los sistemas operativos
Procesos Hilos y Planificación
Procesos Ligeros: Hilos o Hebras
 
Thread
Sistemas operativos threads
Cuestionario hilos
Hilos hebras
Procesos e Hilos, Sistemas Operativos
Procesos e Hilos
Administración de procesos en el S.O.
Procesos y Planificación de la CPU
Kernel de los sistemas operativos
Publicidad

Similar a Clase 3 ene 8 (20)

DOCX
hilos informatica
PDF
Implementación de hilos
PDF
Sincronización de Procesos
PPTX
PROCESOS DE HILOS Y SU IMPORTANCIA EN LA RED.pptx
PDF
tecnologías de programación concurrente y manejo de hilos
DOCX
UNIDAD II SISTEMAS OPERATIVOS
DOCX
Administrador de procesos
PPTX
Clase 1. Intro Sistemas Distribuido.pptx
DOCX
Sistemas operativos informe
DOCX
Sistemas Operativos
PPT
Unidad2
PDF
PPT CAP 2 Proceso e hilo.pdf
PPTX
Sistemas Operativos
PPT
Amoeba 100716124109-phpapp01 (1)
PPTX
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
PPTX
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
PPTX
Resumen del primer corte
PPTX
Chap 15apin
PDF
hilos informatica
Implementación de hilos
Sincronización de Procesos
PROCESOS DE HILOS Y SU IMPORTANCIA EN LA RED.pptx
tecnologías de programación concurrente y manejo de hilos
UNIDAD II SISTEMAS OPERATIVOS
Administrador de procesos
Clase 1. Intro Sistemas Distribuido.pptx
Sistemas operativos informe
Sistemas Operativos
Unidad2
PPT CAP 2 Proceso e hilo.pdf
Sistemas Operativos
Amoeba 100716124109-phpapp01 (1)
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Resumen del primer corte
Chap 15apin

Más de Pepe Lascano (20)

PPTX
Auditoria informatica
PDF
5 utilización de flujogramas en el control interno
PPTX
1 Clase
PPT
Aprendizaje
PPT
Aprendizaje
PPTX
Finecua
PPT
Legislación educativa
PPTX
Razonamiento lógico matematico
PPT
Instructivo para ingresar al foro
PPT
Guía del estudiante información del curso
PPTX
Lectura Comprensiva
PPTX
Geometría Generalidades
PPTX
Geometría
PPTX
Física generalidades
PPT
Sistemas Operativos
PPT
Instructivo Para Ingresar Al Foro
PPT
GuíA Del Estudiante InformacióN Del Curso 2
PPT
GuíA Del Estudiante InformacióN Del Curso 2
PPT
Comed2009
PPT
Auditoria informatica
5 utilización de flujogramas en el control interno
1 Clase
Aprendizaje
Aprendizaje
Finecua
Legislación educativa
Razonamiento lógico matematico
Instructivo para ingresar al foro
Guía del estudiante información del curso
Lectura Comprensiva
Geometría Generalidades
Geometría
Física generalidades
Sistemas Operativos
Instructivo Para Ingresar Al Foro
GuíA Del Estudiante InformacióN Del Curso 2
GuíA Del Estudiante InformacióN Del Curso 2
Comed2009

Último (20)

DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
2.0 Introduccion a processing, y como obtenerlo
PPTX
Presentación de la Cetoacidosis diabetica.pptx
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PLANES DE área ciencias naturales y aplicadas
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Tomo 1 de biologia gratis ultra plusenmas
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
2.0 Introduccion a processing, y como obtenerlo
Presentación de la Cetoacidosis diabetica.pptx
V UNIDAD - SEGUNDO GRADO. del mes de agosto
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe

Clase 3 ene 8

  • 1. Sistemas Operativos (cont….)
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.   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. 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. 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. 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. 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. SOLUCIONES POR HARDWARE SEMÁFOROS MONITORES PASO DE MENSAJES
  • 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. 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. 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. BIBLIOGRAFÍA Sistemas Operativos, Diseño e Implementación, Andrew S. Tanenbaum. Sistemas Operativos, William Stalling Material del ISED