SO: administración de procesos

Post on 12-Apr-2017

192 views 2 download

Transcript of SO: administración de procesos

Sistemas Operativos I

Administración de procesos

Angel Vázquez-Patiñoangel.vazquezp@ucuenca.edu.ec

Departamento de Ciencias de la ComputaciónUniversidad de Cuenca

20 de abril de 2016

Objetivo

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

Concepto y estados de un procesoProcesos e hilos

ConcurrenciaBloqueos mutuos

Concepto y estados de un procesoProcesos e hilos

ConcurrenciaBloqueos mutuos

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)

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

Concepto y estados de un proceso

Estados de un procesoInformación asociada a un proceso

Concepto y estados de un proceso

Estados de un procesoInformación asociada a un proceso

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

Concepto y estados de un proceso

Estados de un procesoInformación asociada a un proceso

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

Concepto y estados de un procesoProcesos e hilos

ConcurrenciaBloqueos mutuos

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

Procesos e hilos

Los hilos y el SOPatrones de trabajo con hilos

Procesos e hilos

Los hilos y el SOPatrones de trabajo con hilos

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)

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?

Procesos e hilos

Los hilos y el SOPatrones de trabajo con hilos

Patrones de trabajo con hilos

1) Jefe - trabajador

Poco trabajoInvoca trabajadores

Quizá notifican al jefeFinalizan

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

Patrones de trabajo con hilos

2) Equipo de trabajo

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

Concepto y estados de un procesoProcesos e hilosConcurrencia

Bloqueos mutuos

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

Concurrencia

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

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

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

Problema: el jardín ornamental

Visitantes¿?

Problema: el jardín ornamental

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

Problema: el jardín ornamental

Problema: el jardín ornamental

Problema: el jardín ornamental

quantum

Problema de las actualizaciones múltiples

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é

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)

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).

Problema: el jardín ornamental

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

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)

Problema: el jardín ornamental

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

Problema: el jardín ornamental

¡recurso compartido!

Problema: el jardín ornamental

● Funcionaría se pudiera garantizar atomicidad

Problema: el jardín ornamental

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

atómica

Problema: el jardín ornamental

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

– Mucho tiempo repitiendo

¡Espera activa o espera ocupada!

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

Problema: el jardín ornamental

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

corresponde avanzar en todo momento

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

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: 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

1

2

3

4

5

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

13

246

5

7

8

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

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

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

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

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

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

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

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

Concepto y estados de un procesoProcesos e hilos

ConcurrenciaBloqueos mutuos

Términos importantes

● PBC

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.

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

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.