2 procesos e hilos

71
7/17/2019 2 Procesos e Hilos http://slidepdf.com/reader/full/2-procesos-e-hilos 1/71 Sistemas Operativos PROCESOS E HILOS

Upload: francisco3456

Post on 07-Jan-2016

15 views

Category:

Documents


0 download

DESCRIPTION

completo

TRANSCRIPT

Page 1: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 1/71

SistemasOperativosPROCESOS E HILOS

Page 2: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 2/71

Definición de ProcesoProceso para un Sistema Operativo no es más que un Programa enejecución.

En cualquier sistema de multiprogramación un CPU conmuta de unproceso a otro con rapidez, ejecutando cada uno durante décimas o

centésimas de milisegundos.

Un CPU solo puede trabajar con un proceso, pero en un segundo trabajacon varios de ellos, aparentando paralelismo o pseudoparalelismo.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS2

Page 3: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 3/71

El modelo del ProcesoMultiprogramación de 4 programas.

Cada uno se ejecuta por separado.

Solo hay un programa activo a la vez.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS3

Page 4: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 4/71

El modelo del ProcesoTodo el Software de la computadora, incluyendo el SistemaOperativo, se organiza en procesos secuenciales.

Cada proceso tiene su propia CPU virtual, es decir, es

atendido exclusivamente durante una fracción demilisegundos.

La conmutación de un proceso a otro se conoce comomultiprogramación.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS4

Page 5: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 5/71

Creación de un ProcesoHay 4 eventos que provocan la creación de procesos:

1. El arranque del sistema.

2. La ejecución, desde un proceso, de una llamada alsistema para creación de procesos.

3. Una petición de usuario para crear un proceso.

4. El inicio de un trabajo por lotes.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS5

Page 6: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 6/71

Creación de un ProcesoProcesos en primer plano: Procesos que están en ejecucióne interactúan con los usuarios (humanos) y realizan trabajospara ellos.

Procesos en segundo plano: Procesos que no estánasociados con usuarios específicos sino con una funciónespecífica.◦ Ejemplo: Proceso que recibe mensajes de correo electrónico, está

inactivo hasta que recibe un mensaje.

◦ Los procesos en segundo plano se llaman demonios (daemons).

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS6

Page 7: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 7/71

Creación de un ProcesoEn sistemas interactivos un proceso se origina cuando elusuario escribe un comando o haciendo doble clic en unicono.

En mainframes los procesos se crean al iniciarse un trabajopor lotes en el sistema.

En UNIX la llamada fork crea un clon exacto del proceso quehizo la llamada, los dos procesos (padre e hijo) tienen la

misma imagen de memoria.En Windows la función Win32 crea procesos.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS7

Page 8: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 8/71

Terminación de ProcesosUn proceso inicia, se ejecuta, realiza el trabajo asignado ytermina en general debido a las siguientes condiciones:

1. Salida normal (voluntaria).

2. Salida por error (voluntaria).

3. Error fatal (involuntaria).

4. Eliminado por otro proceso (involuntaria).

La mayoría de los procesos terminan debido a que hanconcluido su trabajo.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS8

Page 9: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 9/71

Terminación de ProcesosEn UNIX un proceso indica que ha terminado con la llamadaExit mientras que en Windows se usa Exitprocess.

Para terminar un proceso voluntariamente en UNIX se

utiliza la llamada kill y en Windows la función de Win32 esTerminateProcess.

El proceso que termina a otro proceso debe tener lospermisos necesarios para el caso.

En algunos sistemas al terminar un proceso se eliminan losque creó, no en UNIX o Windows.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS9

Page 10: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 10/71

Jerarquía de ProcesosEn algunos sistemas un proceso crea a otros procesos, elproceso hijo a su vez puede crear más, esto forma una jerarquía de procesos.

En UNIX un proceso init lee un archivo que lee lasterminales que hay, luego se usa fork para crear un procesospor terminal. Todos los procesos forman un árbol con init enla raíz.

Windows no tiene jerarquías, un proceso recibe un token(manejador) que utiliza para controlar al proceso hijo.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS10

Page 11: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 11/71

Estados de un ProcesoUn proceso puede pasar por 3 estados:

1. En ejecución (está usando la CPU en ese instante).

2. Listo (ejecutable, se detuvo temporalmente, deja quese ejecute otro proceso).

3. Bloqueado (no puede ejecutarse sino hasta que ocurracierto evento externo).

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS11

Page 12: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 12/71

Implementación de ProcesosEl Sistema Operativo mantiene una tabla de procesos, conun registro por proceso o bloques de control de procesos.

Cada registro contiene información del proceso:

◦ Contador de programa.◦ Apuntador de pila.

◦ Asignación de memoria.

◦ Estados de sus archivos abiertos.

◦ Información de contabilidad.

◦ Planificación.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS12

Page 13: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 13/71

Implementación de ProcesosContenido de la tabla de procesos:

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS13

Page 14: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 14/71

Implementación de ProcesosExiste un vector de interrupciones que utiliza el S.O. parasaber de los procesos y controlarlos. Ejemplo de un procesoen ejecución:

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS14

Page 15: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 15/71

Modelación de la

MultiprogramaciónUn proceso típico no ocupa la CPU todo el tiempo, por loque pueden ejecutarse otros procesos mientras se usa lamemoria.

Con n procesos en memoria a la vez, la probabilidad de quetodos los n procesos estén esperando la E/S (en cuyo caso laCPU estará inactiva) es pn. Entonces, el uso de la CPU seobtiene mediante la fórmula:

Uso de la CPU = 1 - pn

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS15

Page 16: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 16/71

Modelación de la

MultiprogramaciónGráfica de la multiprogramación, uso de la CPU en función de n:

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS16

Page 17: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 17/71

Modelación de la

MultiprogramaciónEjemplo:◦ Una computadora tiene 512 Mb de memoria, el S.O. ocupa 128 Mb y

cada programa de usuario 128 Mb.

◦ Puede haber 3 programas de usuario a la vez.

◦ Con un promedio de 80% de espera de E/S, la utilización del CPU esde 1  –  0.83 o de 49%.

◦ Si al sistema se el agregan 512 Mb más de memoria, en lugar detener multiprogramación de 3 puede aumentar a multiprogramaciónde 7 con un uso de CPU de 79%.

◦ En resumen, aumentar 512 Mb incrementa el rendimiento 30%.

◦ Con 512 Mb más aumenta de 79% a 91%, solo 12%.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS17

Page 18: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 18/71

HilosEn los S.O. tradicionales cada proceso tiene un espacio dedirecciones y un solo hilo de control.

En ocasiones es conveniente tener varios hilos de control en

el mismo espacio de direcciones que se ejecutan casi enparalelo porque comparten direcciones.

Un hilo es un proceso.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS18

Page 19: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 19/71

Uso de HilosLa razón de tener hilos es porque en muchas aplicaciones sedesarrollan varias actividades a la vez que puedenbloquearse de vez en cuando.

Un hilo es más ligero que un proceso, son fáciles de crear ydestruir, la creación es de 10 a 100 veces más rápida que lade un proceso.

Los hilos no producen aumento en el rendimiento cuando

están ligados a la CPU.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS19

Page 20: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 20/71

Uso de HilosUn documento en un procesador de textos utiliza dos hilos,uno interactúa con el usuario mientras el otro le da formatoa todo el documento.

Un tercer hilo respalda todo el documento mientras elusuario escribe.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS20

Page 21: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 21/71

Uso de HilosEn un servidor Web, un hilo recibe las peticiones de trabajoen red y le envía la solicitud a otro hilo para que las procese,este a su vez despierta a un tercer hilo que revisa si lasolicitud puede satisfacerse desde la memoria caché delservidor.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS21

Page 22: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 22/71

Modelo clásico de HiloUn proceso es un hilo de ejecución.

El hilo tiene un contador de programa que lleva el registrode cuál instrucción se va a ejecutar, registro a sus variables

de trabajo, historial de ejecución en una pila, los valoresutilizados en cada procedimiento llamado.

Los hilos permiten llevar varias ejecuciones en el mismoentorno de proceso.

Los hilos tienen algunas propiedades de los procesos y aveces se llaman procesos ligeros.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS22

Page 23: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 23/71

Modelo clásico de HiloMultihilamiento (multithreading) es la ejecución de varioshilos en el mismo proceso.

Los hilos de un proceso pueden operar en espacios dedirecciones distintos o compartir el mismo espacio dedirecciones.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS23

Page 24: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 24/71

Modelo clásico de HiloLa CPU conmuta rápidamente entre un hilo y otroaparentando que se ejecutan en paralelo, esto esmultihilamiento.

Los hilos que comparten el mismo espacio de memoriapueden escribir, leer o borrar la pila de otro hilo.

Por otra parte, si los hilos comparten la memoria puedentrabajar juntos para llevar a cabo una tarea.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS24

Page 25: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 25/71

Modelo clásico de HiloLos procesos no comparten áreas de memoria con otrosprocesos y son propiedad del usuario que los ejecutó.

Un hilo también puede estar en ejecución, listo o

bloqueado.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS25

Page 26: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 26/71

Modelo clásico de HiloCada hilo tiene su propia pila que contiene un conjunto devalores para cada procedimiento llamado.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS26

Page 27: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 27/71

Uso de HilosCuando hay multihilamiento (multithreading), un procesoempieza con un hilo que a su vez puede crear más hilos:◦ thread_create crea hilos mediante la llamada a un procedimiento de

biblioteca.

◦ thread_exit termina un hilo.

◦ thread_join bloquea al hilo llamador hasta que el hilo en ejecuciónhaya terminado.

◦ thread_yield permite que un hilo entregue la CPU para dejar que otrohilo se ejecute.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS27

Page 28: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 28/71

Hilos en POSIXEstándar IEEE 1003.1c donde los hilos son conocidos comoPthreads:

Cada hilo tiene un identificador, un conjunto de registros(incluyendo el contador de programa) y un conjunto deatributos.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS28

Page 29: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 29/71

Implementación de HilosHay dos formas de implementar un paquete de hilos:

1. En espacio de usuario.

2. En el Kernel.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS29

Page 30: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 30/71

Hilos en espacio de usuarioCada proceso necesita su propia tabla de hilos privada quelleva la cuenta de hilos por proceso.

La tabla de hilos contiene información de hilos listos o

bloqueados.El planificador de hilos permite controlarlos localmente,esto para algunas aplicaciones es ventaja porque no serequieren llamadas al kernel.

La desventaja es que un hilo puede bloquear la ejecución deotros y al sistema.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS30

Page 31: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 31/71

Hilos en KernelEl kernel sabe de los hilos y los administra.

No hay una tabla de hilos en cada proceso.

El kernel lleva la cuenta de todos los hilos del sistema,

Para crear o destruir hilos se hace una llamada al kernel.

El kernel según decida puede ejecutar hilos del mismoproceso o de un proceso distinto.

Los hilos a nivel de usuario ejecutan sus propios hilos hastaque el kernel quita la CPU.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS31

Page 32: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 32/71

Implementaciones HíbridasUna forma de tener todas las ventajas es combinar hilos anivel kernel y multiplexar con los hilos a nivel usuario.

El kernel planifica solo sus hilos, que a su vez pueden tener

hilos de usuario que se ejecutan sin capacidad demultihilamiento.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS32

Page 33: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 33/71

Activaciones del PlanificadorLos hilos de kernel son mejores que los de usuario pero sonmás lentos.

El planificador imita las funciones de hilos kernel pero con el

mejor rendimiento y flexibilidad de los hilos de usuario.Con el planificador, cuando un hilo kernel se bloquea debidoa E/S se notifica al proceso en ejecución , a esto se leconoce como llamada ascendente (upcall ).

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS33

Page 34: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 34/71

Activaciones del PlanificadorUna vez notificado, el sistema en ejecución puedereplanificar sus hilos.

Cuando el kernel detecta que el hilo original puede

ejecutarse de nuevo, realiza otra llamada para informar delevento.

El sistema en ejecución puede reiniciar el hilo bloqueado ocolocarlo en la lista de hilos listos para ejecutarlo mástarde.

Al ocurrir otra interrupción de hardware mientras un hilo deusuario se ejecuta, la CPU se interrumpe y pasa a modokernel.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS34

Page 35: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 35/71

Hilos emergentesUn proceso o hilo, que esta bloqueado, recibe un mensajeque desempaqueta y lo procesa.

Un hilo emergente ( pop-up thread ) es un hilo que se creapara manejar el mensaje entrante.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS35

Page 36: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 36/71

Hilos emergentesUn hilo emergente se ejecuta en el kernel en lugar que en elespacio de usuario, puede acceder a las tablas del kernel y alos dispositivos de E/S.

Un hilo de kernel con errores puede hacer más daño queun hilo en espacio de usuario, por ejemplo, si se ejecuta pordemasiado tiempo y no puede quitarse, los datos entrantesde un dispositivo se perderán.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS36

Page 37: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 37/71

Conversión a multihilamientoUn proceso que contiene un solo hilo puede trabajar conmás hilos, es decir, convertirse a multihilamiento.

Hay variables locales que usa cada hilo, pero hay variables

globales que utilizan varios.En UNIX la variable errno es global y puede crear conflictos.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS37

Page 38: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 38/71

Conversión a multihilamientoHay varias posibles soluciones paraevitar conflictos con las variablesglobales.

Una solución es tener variableslocales y otros elementos paracada hilo, el problema ahora esque los datos no pueden serusados por otros hilos para

trabajar en conjunto.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS38

Page 39: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 39/71

Conversión a multihilamientoUna solución es poner un bit para marcar que las variablesestán en uso y bloquear a los hilos que tratan de utilizarlas.

Otra solución es usar señales pero el problema es dirigir

cada una al hilo correspondiente sobre todo cuando elkernel no sabe de la existencia de hilos de usuario.

Un problema adicional es la administración de las pilas porcada hilo, un proceso con varios hilos maneja varias pilas.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS39

Page 40: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 40/71

Comunicación entre ProcesosDos procesos que solicitan imprimir un archivo lo registranen la fila o directorio de spooler  en la misma posición.

Al proceso A y al proceso B se les asigna el mismo lugar para

imprimir.Cuando el control regresa al proceso B, pone el nombre delarchivo en el spooler .

Más adelante el proceso A hace lo mismo y coloca su

archivo a imprimir en la misma posición del spooler sobre eldel proceso B.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS40

Page 41: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 41/71

Comunicación entre Procesos

El demonio de impresiónimprime el archivo delproceso A, el del proceso B

se pierde.El uso de datos compartidosy dependencias se conocecomo condiciones de carrera.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS41

Page 42: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 42/71

Regiones críticasPara solucionar problemas de condiciones de carrera sepuede hacer exclusión mutua.

La memoria compartida por dos procesos se conoce como

región o sección crítica.Para que los procesos cooperen deben:

1. No puede haber dos procesos de manera simultánea dentro deregiones críticas.

2. No puede haber suposiciones sobre velocidades o número de

CPUs.

3. Ningún proceso ejecutado fuera de la región crítica debebloquear a otros procesos.

4. Ningún proceso debe esperar por siempre para entrar a la regióncrítica.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS42

Page 43: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 43/71

Regiones críticasExclusión mutua mediante regiones críticas:

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS43

Page 44: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 44/71

Exclusión con espera ocupadaMientras un proceso está actualizando la memoriacompartida en su región crítica, ningún otro puede entrar ydar problemas:◦ Deshabilitando interrupciones: En un sistema con un CPU un

proceso deshabilita todas las interrupciones al entrar a su regióncrítica y las habilitar al salir.

◦ Variables de candado: En el software se habilita un candado cuandoel proceso entra a la región crítica y se deshabilita cuando sale.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS44

Page 45: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 45/71

Exclusión con espera ocupada◦ Alternancia estricta: Mediante programación se crea una variable

turno, con valor 0 el proceso entra a la región crítica, el valor cambiaa 1. El evaluar el cambio en la variable se le conoce como esperaocupada y al candado se le llama candado de giro.

Solución de Peterson: Es una mezcla de candado y alternancia. Unproceso solicita entrar a la región crítica y obtiene un turno. Al estardisponible se asigna la región y se pone el candado. Cuando elproceso sale de la región, se quita el candado y se asigna al siguienteproceso en turno.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS45

Page 46: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 46/71

Dormir y despertarLa solución de Peterson es correcta pero se requiere de unaespera ocupada.

Se desperdicia CPU al esperar turno y se complica cuando

los procesos tienen prioridades.Un proceso con prioridad que entra en la región crítica y nosale de ahí porque hay procesos en ejecución en el CPU,detiene a los demás, esto se llama problema de inversión deprioridades.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS46

Page 47: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 47/71

Dormir y despertarLa solución es una llamada al sistema sleep que hace queun proceso sea bloqueado hasta que otro proceso lodespierta con una llamada wakeup .

El problema del productor – 

consumidor o problema debúfer limitado se produce cuando se comparte un búfercomún de tamaño fijo.

Un proceso (productor) coloca información en el búfer yotro proceso (consumidor) la saca.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS47

Page 48: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 48/71

Dormir y despertarEl problema se hace mayor al haber m productores y n

consumidores.

Cuando un productor desea colocar un nuevo elemento en

el búfer que está lleno, se pone a dormir (se desactiva) y sedespierte hasta que un consumidor vacía el búfer.

Un consumidor que desea sacar algo del búfer que seencuentra vacío se pone a dormir, cuando se llena el búferse despierta.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS48

Page 49: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 49/71

SemáforosUn semáforo funciona con el mismo principio de dormir ydespertar.

En este caso, cuando el semáforo está en down un proceso

se pone a dormir hasta que la operación se hayacompletado o bloqueado.

El proceso dormido es despertado y el semáforo se pone enup, los procesos en espera a ser seleccionados tienensemáforos en down.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS49

Page 50: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 50/71

Semáforos productor-consumidorLos semáforos resuelven el problema de pérdidas deseñales de despertar.

Para que funcionen los semáforos se deben deshabilitar

todas las interrupciones mientras se evalúan los semáforos.Es posible usar varios semáforos y lograr la sincronizaciónpara que no existen procesos bloqueados para siempre.

En este caso el productor deja de ejecutarse con búfer lleno

y el consumidor con búfer vacío.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS50

Page 51: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 51/71

MútexUn mútex es una variable que puede estar en dos estados:abierto (desbloqueado) o cerrado (bloqueado).

El código mutex_lock se genera cuando un proceso entra a

la región crítica, mutex_unlock cuando sale de esta.Cuando un hilo no puede entrar a la región y adquirir unmutex_lock , llama a thread_yield para entregar el CPU aotro hilo.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS51

Page 52: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 52/71

Mutex en PthreadsPthreads proporciona varias funciones para sincronizarhilos:

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS52

Page 53: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 53/71

Mutex en PthreadsAdemás de los mutexes, Pthreads ofrece otro mecanismode sincronización con variables de condición:

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS53

Page 54: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 54/71

MonitoresPara evitar la complicación del uso de semáforos y mútexesse creó el monitor.

Un monitor es una colección de procedimientos, variables y

estructuras de datos que se agrupan en un tipo especial demódulo o paquete.

Los monitores sirven para hacer la exclusión mutua de hilos.

Las variables de condición wait y signal permiten que un

proceso sea bloqueado o no.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS54

Page 55: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 55/71

Pasaje de mensajesEste método de comunicación entre procesos utiliza send yreceive como llamadas al sistema.

El problema con los mensajes es que pueden perderse

ocasionando que un proceso esté bloqueado esperandorecibir uno.

Un proceso puede recibir mensajes sin datos o enviarmensajes que no sean recibidos.

Los mensajes tienen más desventajas que usar semáforos omonitores.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS55

Page 56: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 56/71

Pasaje de mensajes

En un sistema productor  –  consumidor, si el productor trabajamás rápido que el consumidor todos los mensajes se enviarán alconsumidor hasta que el productor sea bloqueado.

Por otra parte, si el consumidor trabaja más rápido que elproductor, los mensajes estarán vacíos esperando que elproductor los llene, el consumidor se bloquea.

El pasaje de mensajes se utiliza en sistemas de programación en

paralelo como MPI (Message Passing Interface).

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS56

Page 57: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 57/71

BarrerasLas barreras sincronizan grupos de procesos en lugar de solodos procesos.

Ningún proceso puede continuar a la siguiente fase hasta

que todos los procesos estén listos para hacerlo.La barrera se coloca al final de cada fase.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS57

Page 58: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 58/71

PlanificaciónCuando una computadora tiene multiprogramación, variosprocesos o hilos compiten por la CPU al mismo tiempo.

La parte del S.O. que decide que proceso pasa a la CPU es el

planificador de procesos utilizando un algoritmo deplanificación.

Además de elegir el proceso correcto que se va a ejecutar,el planificador tiene que preocuparse por hacer usoeficiente de la CPU.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS58

Page 59: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 59/71

Comportamiento de unProcesoLos procesos alternan uso de la CPU con peticiones de E/S.

Algunos procesos hacen más cálculos que otros y usan mástiempo a la CPU, otros procesos pasan más tiempo

esperando E/S.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS59

Page 60: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 60/71

Cuando planificar ProcesosHay una variedad de situaciones que necesitanplanificación.

Cuando se crea un nuevo proceso se debe decidir que se

ejecute el proceso padre o el proceso hijo.Cuando un proceso termina se debe elegir a uno de losprocesos listos.

Si un proceso depende de otro, el planificador a veces no

tiene la información para tomar en cuenta la dependencia.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS60

Page 61: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 61/71

Cuando planificar ProcesosAl liberarse un dispositivo de E/S el proceso que lo ocupabapasa a listo, el planificador debe decir si ejecuta este o sipasa a la CPU otro que estaba listo previamente.

El algoritmo de planificación selecciona un proceso y deja

que se ejecute por un máximo tiempo fijo, si sigue enejecución el proceso se suspende y el planificadorselecciona otro para ejecutarlo.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS61

Page 62: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 62/71

Algoritmos de PlanificaciónHay 3 entornos que se deben planificar:

1. Procesamiento por lotes.

2. Interactivo.

3. De tiempo real.

En procesamiento por lotes (cálculo de una nómina) noexiste alternancia y el proceso se deja hasta quetermina.

En entornos interactivos se limita el uso de la CPU paraque de servicio a otros procesos.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS62

Page 63: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 63/71

Algoritmos de PlanificaciónEn sistemas de tiempo real, los procesos trabajan paralograr un trabajo común, por lo que se bloqueanrápidamente.

En un buen algoritmo de planificación, debe existir equidad,la CPU debe dar servicio a todos los procesos.

Otra meta es mantener a la CPU y a los dispositivos de E/Ssiempre ocupados.

El rendimiento es el número de trabajos por hora quecompleta un sistema.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS63

Page 64: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 64/71

Algoritmos de PlanificaciónMetas del algoritmo de planificación:

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS64

Page 65: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 65/71

Planificación de sistema lotesPrimero en entrar, primero en ser atendido.

El trabajo por lotes más corto va primero.

El menor tiempo restante va a continuación.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS65

Pl ifi ió i

Page 66: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 66/71

Planificación sistemasinteractivosProcesos en turno circular (round robin), a cada proceso sele asigna un tiempo conocido como quántum.

Una vez que un proceso utiliza su quántum aunque no haya

terminado, la CPU pasa al siguiente.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS66

Pl ifi ió i

Page 67: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 67/71

Planificación sistemasinteractivosPlanificación por prioridad.

Múltiples filas.

El proceso más corto a continuación.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS67

Pl ifi ió d i t

Page 68: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 68/71

Planificación de sistemasinteractivosPlanificación garantizada según los usuarios conectados.

Planificación por sorteo.

Planificación por partes equitativas, primero el usuario con

menos procesos.Depende de los objetivos del sistema interactivo, ya sea untiempo de respuesta rápido o atender a mas usuarios, seusa un método de planificación adecuado.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS68

Page 69: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 69/71

Planificación de tiempo real

El tiempo real duro es aquel en que se asigna un tiempo absolutopor cumplir.

El tiempo real suave se puede fallar en ocasiones en cumplir con

un tiempo límite.

Un sistema en tiempo real puede responder a eventos periódicos(que suceden a intervalos regulares) o no periódicos (que ocurrende forma impredecible).

Los algoritmos de planificación estáticos son fijados antes de queel sistema se ejecute y los dinámicos van cambiando durante laejecución.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS69

Page 70: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 70/71

Política contra mecanismo

A menudo sucede que un proceso padre tiene muchos procesoshijo, como en una base de datos.

El padre no puede decidir que proceso hijo es más importante, el

planificador no acepta propuestas de los procesos.Se debe separar el mecanismo de planificación de la política deplanificación.

El kernel puede planificar a los procesos, pero el padre controla a

sus hijos en un proceso de usuario.

PROF. LUIS H. CRUZ A.

SISTEMAS OPERATIVOS70

Page 71: 2 Procesos e Hilos

7/17/2019 2 Procesos e Hilos

http://slidepdf.com/reader/full/2-procesos-e-hilos 71/71

Planificación de hilosEl kernel puede encargarse de planificar procesos que a suvez controlan sus hilos.

El kernel puede seleccionar hilos que se alternan según se

requiera.