so: administración de procesos
Post on 12-Apr-2017
194 Views
Preview:
TRANSCRIPT
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.
top related