so: administración de procesos

65
Sistemas Operativos I Administración de procesos Angel Vázquez-Patiño [email protected] Departamento de Ciencias de la Computación Universidad de Cuenca 20 de abril de 2016

Upload: angel-vazquez-patino

Post on 12-Apr-2017

188 views

Category:

Education


2 download

TRANSCRIPT

Page 1: SO: administración de procesos

Sistemas Operativos I

Administración de procesos

Angel Vázquez-Patiñ[email protected]

Departamento de Ciencias de la ComputaciónUniversidad de Cuenca

20 de abril de 2016

Page 2: SO: administración de procesos

Objetivo

Estudiar los conceptos relacionadoscon procesos, hilos, concurrencia y sincronización

Page 3: SO: administración de procesos

Concepto y estados de un procesoProcesos e hilos

ConcurrenciaBloqueos mutuos

Page 4: SO: administración de procesos

Concepto y estados de un procesoProcesos e hilos

ConcurrenciaBloqueos mutuos

Page 5: SO: administración de procesos

Concepto y estados de un proceso

Definición de proceso

Imagen en memoria de un programa, junto con la información relacionada con el estado de su

ejecución● Programa → entidad pasiva (lista de

instrucciones)● Proceso → entidad activa (define la actuación

que tendrá el sistema)

Page 6: SO: administración de procesos

Concepto y estados de un proceso

Sólo se puede estar ejecutando un las instrucciones de un número de procesos igual o menor al número de procesadores que tenga un

sistema

Page 7: SO: administración de procesos

Concepto y estados de un proceso

Estados de un procesoInformación asociada a un proceso

Page 8: SO: administración de procesos

Concepto y estados de un proceso

Estados de un procesoInformación asociada a un proceso

Page 9: SO: administración de procesos

Estados de un procesoSe solicitó al SO la creación de un procesosus recursos están siendo creados

para iniciar o continuar ejecución peroel sistema no le ha asignado un procesador

El proceso está siendo ejecutadoen este momento. Sus instruccionesestán siendo procesadas en algún procesador

En espera de algún evento para podercontinuar su ejecución (aun si hubieraun procesador disponible, no podría avanzar)

El proceso terminó de ejecutarse;sus estructuras están a la esperade ser limpiadas por el sistema operativo

El proceso ha finalizado su ejecución,pero el sistema operativo debe realizarciertas operaciones de limpieza parapoder eliminarlo de la lista

Page 10: SO: administración de procesos

Concepto y estados de un proceso

Estados de un procesoInformación asociada a un proceso

Page 11: SO: administración de procesos

Información asociada a un proceso

Bloque de control de proceso (PCB)● Estado del proceso● Contador de programa: siguiente instrucción a ser ejecutada por el

proceso● Registros del CPU: i de estado del CPU● Información de planificación (scheduling): prioridad, cola donde está

agendado● Información de administración de memoria: i de mapeo de memoria● Información de contabilidad: utilización de recursos● Estado de E/S: dispositivos y archivos asignados, abiertos en cada

momento

Page 12: SO: administración de procesos

Concepto y estados de un procesoProcesos e hilos

ConcurrenciaBloqueos mutuos

Page 13: SO: administración de procesos

Procesos e hilos

● Carga de información es alta por parte del SO (desperdicio burocrático de recursos)

● Hilos de ejecución (LWP, Lightweight processes)● Diferencias

– SO se encarga de que cada proceso tenga virtualmente acceso exclusivo del procesador

– Los hilos comparten un sólo espacio de direccionamiento en memoria y los archivos y dispositivos abiertos

– Ejecución secuencial con su propio contador de programa y pila

Page 14: SO: administración de procesos

Procesos e hilos

Los hilos y el SOPatrones de trabajo con hilos

Page 15: SO: administración de procesos

Procesos e hilos

Los hilos y el SOPatrones de trabajo con hilos

Page 16: SO: administración de procesos

Los hilos y el SO

● Se pueden ejecutar sin involucrar al sistema operativo (espacio de usuario)

● User threads (green threads)● Rendimiento

– No reemplaza PCB activo al intercalar entre hilos

– Más por compartir espacio de memoria sin tener que establecerlo explícitamente a través de mecanismos de comunicación entre procesos (IPC, Inter Process Communications)

Page 17: SO: administración de procesos

Los hilos y el SO

● Kernel threads● pthreads para POSIX● Win32_Thread para Window● Puede beneficiarse de una ejecución

verdaderamente paralela en sistemas multiprocesador

¿Qué es POSIX y Win 32?

Page 18: SO: administración de procesos

Procesos e hilos

Los hilos y el SOPatrones de trabajo con hilos

Page 19: SO: administración de procesos

Patrones de trabajo con hilos

1) Jefe - trabajador

Poco trabajoInvoca trabajadores

Quizá notifican al jefeFinalizan

Page 20: SO: administración de procesos

Patrones de trabajo con hilos

2) Equipo de trabajo● Hilos idénticos● Mismas tareas● Cálculos matemáticos● Diferencia con jefe-trabajador: división de trabajo a priori

● Datos parte de un mismo cálculo

Page 21: SO: administración de procesos

Patrones de trabajo con hilos

2) Equipo de trabajo

Page 22: SO: administración de procesos

Patrones de trabajo con hilos

3) Línea de ensamblado● Hilos completamente distintos● Ventaja

● Los hilos trabajan en secuencia pueden ejecutarse en paralelo sobre los bloques de información asignados

Page 23: SO: administración de procesos

Concepto y estados de un procesoProcesos e hilosConcurrencia

Bloqueos mutuos

Page 24: SO: administración de procesos

Concurrencia

La concurrencia no se refiere a dos o más eventos que ocurren a la vez sino a dos o más

eventos cuyo orden es no determinista: eventos acerca de los cuales no se puede predecir el

orden relativo en que ocurrirán

Ejecución vinculada entre procesos

Page 25: SO: administración de procesos

Concurrencia

Downey, A., 2008. The little book of semaphores, 2nd ed. SoHoBooks, USA.

Page 26: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronización

Problema productor-consumidorBloqueos mutuos e inanición

Problema de los lectores y los escritoresLa cena de los filósofos

Los fumadores compulsivosOtros mecanismos

Page 27: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronización

Problema productor-consumidorBloqueos mutuos e inanición

Problema de los lectores y los escritoresLa cena de los filósofos

Los fumadores compulsivosOtros mecanismos

Page 28: SO: administración de procesos

Problema: el jardín ornamental

Visitantes¿?

Page 29: SO: administración de procesos

Problema: el jardín ornamental

● Simulación: 20 visitantes/torniquete● Contador: 40● Primera solución

Page 30: SO: administración de procesos
Page 31: SO: administración de procesos

Problema: el jardín ornamental

Page 32: SO: administración de procesos

Problema: el jardín ornamental

Page 33: SO: administración de procesos

Problema: el jardín ornamental

quantum

Problema de las actualizaciones múltiples

Page 34: SO: administración de procesos

Problema: el jardín ornamental

● Esto parece muy específico: reserva de vuelos● ¿Pero no es muy poco probable?: problemas

de concurrencia difíciles de detectar y más aún de corregir

● ¿Vale la pena preocuparse?: Resultados Pascal-FC 25, 29, 31, 20, 21, 26, 27, 18, 31, 35

● Pero tenemos muchos núcleos: lo empeora, coherencia de caché

Page 35: SO: administración de procesos

Problema: el jardín ornamental

Algunos conceptos de concurrencia● Operación atómica: efecto de retiro de flujo no influye● Condición de carrera: categoría de errores de

programación, comunicación de estado mutuo● Región crítica: código protegido de accesos

simultáneos, modificación de datos compartidos● Recurso compartido: desde más de un proceso

(cuenta)

Page 36: SO: administración de procesos

Problema: el jardín ornamentalHay un recurso compartido que es cuenta, por tanto, el código que modifica cuenta constituye una sección crítica y la operación cuenta = cuenta + 1 debe ser una operación atómica.

La secuencia de eventos mostrada es una condición de carrera: torniquete2 presume un estado (cuenta = 0) que no es el mismo que conoce el torniquete1 (cuenta = 1).

Page 37: SO: administración de procesos

Problema: el jardín ornamental

Intento 1: no utilizar multitarea● Sin mucha gente que haga cola● E.g., Reserva de pasajes aéreos

Page 38: SO: administración de procesos

Problema: el jardín ornamental

Intento 2: Suspender la multitarea durante la sección crítica

● Inusable– Problema de seguridad (suspender el SO)

– Interrupciones se deshabilitan en un solo núcleo (hacerlo en todos es costoso)

– Mal funcionamiento de algún periférico (demasiado tiempo en sección crítica)

Page 39: SO: administración de procesos

Problema: el jardín ornamental

Intento 3: Utilizar una bandera● Se indica si hay un proceso en la región crítica

Page 40: SO: administración de procesos

Problema: el jardín ornamental

¡recurso compartido!

Page 41: SO: administración de procesos

Problema: el jardín ornamental

● Funcionaría se pudiera garantizar atomicidad

Page 42: SO: administración de procesos

Problema: el jardín ornamental

Intento 4: Manejar la bandera con instrucciones atómicas: VAX, test_and_set; I386, INC

atómica

Page 43: SO: administración de procesos

Problema: el jardín ornamental

Intento 4: Manejar la bandera con instrucciones atómicas● Dos problemas

– Mucho tiempo repitiendo

¡Espera activa o espera ocupada!

Page 44: SO: administración de procesos

Problema: el jardín ornamental

Intento 4: Manejar la bandera con instrucciones atómicas● Dos problemas

– Mucho tiempo repitiendo

– HW: no todas las arquitecturas permiten lectura y actualización de una única dirección de memoria

Page 45: SO: administración de procesos

Problema: el jardín ornamental

Intento 5: Utilizar turnos (actualización múltiple)● Variable adicional indicando a qué proceso

corresponde avanzar en todo momento

Page 46: SO: administración de procesos

Problema: el jardín ornamental

Intento 5: Utilizar turnos (actualización múltiple)● Variable adicional indicando a qué proceso

corresponde avanzar en todo momento● Restrictivo

– Es como tener un solo torniquete

– Sólo una persona a la vez

Page 47: SO: administración de procesos

Problema: el jardín ornamental

Intento 6: Indicar la intención de entrar a la sección crítica● Indicar si el otro proceso también está

queriendo entrar en la sección crítica

Page 48: SO: administración de procesos
Page 49: SO: administración de procesos

Problema: el jardín ornamental

Intento 6: Indicar la intención de entrar a la sección crítica● Indicar si el otro proceso también está

queriendo entrar en la sección crítica● Problema grave

– Bloqueo mutuo

Si torniquete1 coloca b1 = 1 y luego se cambia el control a torniquete2, el

cual también colocará su b2 = 1

Page 50: SO: administración de procesos

1

2

3

4

5

Page 51: SO: administración de procesos

Problema: el jardín ornamental

Una solución: algoritmo de Peterson (1981)● Banderas para indicar qué proceso puede

entrar● Además, turno para desempatar cuando ambos

procesos busquen entrar a la vez● Algoritmo amable

– Si un proceso detecta que el otro fue el primero en actualizar el turno, entonces lo deja pasar

Page 52: SO: administración de procesos

13

246

5

7

8

Page 53: SO: administración de procesos

Problema: el jardín ornamental

Notas acerca del algoritmo de Peterson● Espera activa● Solución para más procesos

– algoritmo de la panadería

● Solución para equipos multiprocesadores– falla en equipos multiprocesador (coherencia de

caché)

– se necesitan más precauciones

Page 54: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronizaciónProblema productor-consumidor

Bloqueos mutuos e inaniciónProblema de los lectores y los escritores

La cena de los filósofosLos fumadores compulsivos

Otros mecanismos

Page 55: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronización

Problema productor-consumidorBloqueos mutuos e inanición

Problema de los lectores y los escritoresLa cena de los filósofos

Los fumadores compulsivosOtros mecanismos

Page 56: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronización

Problema productor-consumidorBloqueos mutuos e inanición

Problema de los lectores y los escritoresLa cena de los filósofos

Los fumadores compulsivosOtros mecanismos

Page 57: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronización

Problema productor-consumidorBloqueos mutuos e inanición

Problema de los lectores y los escritoresLa cena de los filósofos

Los fumadores compulsivosOtros mecanismos

Page 58: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronización

Problema productor-consumidorBloqueos mutuos e inanición

Problema de los lectores y los escritoresLa cena de los filósofos

Los fumadores compulsivosOtros mecanismos

Page 59: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronización

Problema productor-consumidorBloqueos mutuos e inanición

Problema de los lectores y los escritoresLa cena de los filósofos

Los fumadores compulsivosOtros mecanismos

Page 60: SO: administración de procesos

Concurrencia

Problema: el jardín ornamentalMecanismos de sincronización

Problema productor-consumidorBloqueos mutuos e inanición

Problema de los lectores y los escritoresLa cena de los filósofos

Los fumadores compulsivosOtros mecanismos

Page 61: SO: administración de procesos

Concepto y estados de un procesoProcesos e hilos

ConcurrenciaBloqueos mutuos

Page 62: SO: administración de procesos

Términos importantes

● PBC

Page 63: SO: administración de procesos

Revisar

● Wolf, G., Ruiz, E., Bergero, F., Meza, E., 2015. Fundamentos de Sistemas Operativos, 1st ed. Universidad Nacional Autónoma de México, México D.F., México. Ejercicios del capítulo 3.

Page 64: SO: administración de procesos

Trabajos de investigación

● Escoger un problema (diferente para cada estudiante) de la sección 6 Not-so-classical problems o de la sección 7 Not remotely classical problems del libro de Downey (2008)

● Entender extensamente el problema (y sus soluciones) y explicar los conceptos que se analizan con respecto al manejo de concurrencia

● Se entrega– Documento de máximo tres páginas de texto y, si se desea, una

sección que contenga figuras y/o algoritmos sin límite

– Presentación oral de máximo 20 minutos

50% de la nota del interciclo

Page 65: SO: administración de procesos

Fuente

● Wolf, G., Ruiz, E., Bergero, F., Meza, E., 2015. Fundamentos de Sistemas Operativos, 1st ed. Universidad Nacional Autónoma de México, México D.F., México.