administración de procesos: procesos e...

38
Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia Administración de procesos: Procesos e hilos Gunnar Wolf Facultad de Ingeniería, UNAM 2013-02-08 — 2013-02-11

Upload: others

Post on 28-Aug-2020

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Administración de procesos: Procesos ehilos

Gunnar Wolf

Facultad de Ingeniería, UNAM

2013-02-08 — 2013-02-11

Page 2: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Índice

1 Concepto y estados de un proceso

2 El proceso

3 Hilos

4 Los hilos para el sistema operativo

5 Concurrencia

Page 3: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

¿Cuándo es proceso? ¿Cuando es programa?

Programa Una lista de instrucciones a seguir, una entidadpasiva

Proceso Entidad activa que:Emplea al programaTípicamente opera sobre un conjunto dedatosTiene información de estado que indica,entre otras cosas, en qué punto va laejecución.

Page 4: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

¿Cuando es proceso? ¿Cuándo es tarea?

Tarea Equivalente a un proceso en un sistema por lotes;requiere típicamente menos metainformación.

La distinción proceso-tarea no es del todo clara u objetiva.

Hay textos que emplean uno u otro término indistintamente

Nosotros emplearemos siempre el término proceso.

Page 5: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

La ilusión de la concurrencia

Un sistema actual nos da la ilusión de ejecuciónsimultánea de muchos procesosLa realidad: Casi todos están suspendidos, esperando quelos active el planificadorEn un momento dado sólo puede estarse ejecutando unnúmero de procesos igual o menor al número de CPUsque tenga el sistema.Esa ilusión tiene grandes costos. . . Especialmentepensando con suficiente velocidad

Page 6: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Objetivo de esta sección

En esta sección abordaremos los conceptos de:

ProcesosHilosConcurrencia

Exclusión mutua, bloqueos mutuos e inaniciónSincronización

Mutexes, semáforos, monitores

Page 7: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Índice

1 Concepto y estados de un proceso

2 El proceso

3 Hilos

4 Los hilos para el sistema operativo

5 Concurrencia

Page 8: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Estados de un proceso

Un proceso, a lo largo de su vida, alterna entre diferentesestados de ejecución. Estos son:

Nuevo Se solicitó al sistema la creación de un proceso, ysus recursos y estructuras están siendo creadas

Listo Está listo para ser asignado para su ejecuciónEn ejecución El proceso está siendo ejecutadoBloqueado En espera de algún evento para poder continuar

ejecutándoseTerminado El proceso terminó de ejecutarse; sus estructuras

están a la espera de ser limpiadas por el sistema

Page 9: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Estados de un proceso

Figura: Diagrama de transición entre los estados de un proceso

Page 10: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

El bloque de control del proceso (PCB) (1)

¿Qué información debe mantener el sistema acerca de cadaproceso?

O, ¿Cuánto cuesta un cambio de contexto?

Estado del proceso El estado actual del procesoContador de programa Cuál es la siguiente instrucción a ser

ejecutadaRegistros del CPU Información específica del estado del CPUInformación de planificación (scheduling) La prioridad del

proceso, la cola en que está agendado, y demásinformación que puede ayudar al sistemaoperativo a agendar al proceso

Page 11: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

El bloque de control del proceso (PCB) (2)

Información de administración de memoria Las tablas demapeo de memoria (páginas o segmentos,dependiendo del sistema operativo). Incluye lapila (stack) de llamadas.

Estado de E/S Listado de dispositivos y archivos asignadosque el proceso tiene abiertos en un momentodado.

Información de contabilidad Información de la utilización derecursos que ha tenido este proceso

Tiempo de usuario y de sistemaUso acumulado de memoria y dispositivosetc.

Page 12: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Índice

1 Concepto y estados de un proceso

2 El proceso

3 Hilos

4 Los hilos para el sistema operativo

5 Concurrencia

Page 13: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

El problema con los hilos

Aunque los hilos parecen ser un pequeño pasopartiendo del cómputo secuencial, de hecho, son unpaso inmenso. Descartan las propiedades másesenciales y atractivas del cómputo secuencial:Facilidad de comprensión, predictabilidad ydeterminismo. Los hilos, como un modelo decomputación, son salvajemente no-determinísticos, yel trabajo del programador se convierte en podar eseno-determinismo.— El problema con los hilos, Edward A. Lee, UCBerkeley, 2006

Page 14: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

El peso de los procesos

La cantidad de información implicada en un cambio decontexto es muy grandeDesperdicio burocrático de recursosUna respuesta: procesos ligeros (Lightweight processes,LWP)

Diversos hilos de ejecución dentro de un mismo proceso

Page 15: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Extrapolando

Un proceso que no usa hilos es un sólo hiloUn sistema operativo que no ofrece soporte para hilosagendaría a nuestro proceso como a cualquier otro

Page 16: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

La diferencia desde dentro

Entre diferentes procesos, cada uno tiene ilusión deexclusividad virtual sobre la computadora

Espacio de direccionamiento de memoria exclusivoDescriptores de archivos y dispositivos independientes

Los hilos son y deben ser conscientes de su coexistenciaComparten memoria, descriptores de archivos ydispositivosPueden tener variables locales y globales

Page 17: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

¿Qué tanto se aligera el PCB?

Estado del procesoCada hilo se ejecuta de forma aparentemente secuencial

Tiene su propio contador de programaY su propia pila de llamadas (stack)

Conjunto de variables localesPuede ser implementado de forma muy sencillap.ej. con arreglos indexados por ID de hilo

Información de planeación internaPueden llevar información de contabilidadNo requerimos:

Registros del CPUEstado de E/S

Page 18: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Patrones de trabajo: Jefe / trabajador

Un hilo tiene una tarea distinta de todos los demásEl hilo jefe genera o recopila tareasLos hilos trabajadores efectúan el trabajo.Modelo común para procesos servidor, GUIs que procesaneventosEl jefe puede llevar la contabilidad de los trabajosrealizados

Page 19: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Patrones de trabajo: Jefe / trabajador

Figura: Patrón de hilos jefe/trabajador

Page 20: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Patrones de trabajo: Equipo de trabajo

A partir de hilos idénticosRealizarán las mismas tareas sobre diferentes datosMuy frecuentemente utilizado para cálculos matemáticos(p.ej. criptografía, render).Puede combinarse con jefe/trabajador para generarprevisualizaciones (la tarea se realiza progresivamente)

Page 21: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Patrones de trabajo: Equipo de trabajo

Figura: Patrón de hilos Equipo de trabajo

Page 22: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Patrones de trabajo: Línea de ensamblado

Una tarea larga que puede dividirse en pasosCada hilo se enfoca en una sóla tareaPasa los datos a otro hilo conforme va terminandoAyuda a mantener las rutinas simples de comprenderPermite continuar procesando datos cuando hay hilosesperando E/S

Page 23: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Patrones de trabajo: Línea de ensamblado

Figura: Patrón de hilos Línea de ensamblado

Page 24: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Índice

1 Concepto y estados de un proceso

2 El proceso

3 Hilos

4 Los hilos para el sistema operativo

5 Concurrencia

Page 25: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Hilos de usuario (o hilos verdes)

Los hilos pueden implementarse 100% con las facilidadesdel proceso

Caso extremo: Programas multihilos en sistemasoperativos mínimos (o directo sobre el hardware)

Mayor portabilidadA través de alguna biblioteca del lenguaje/entorno deprogramaciónTípicamente multitarea interna cooperativa

Page 26: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Pros y contras de los hilos de usuario

Ganamos:

Espacio de memoria compartido sin intervención delsistema operativoMayor rapidez para realizar trabajos cooperativos omultiagentes

Perdemos:

Cualquier llamada al sistema interrumpe a todos los hilosNo aprovechan el multiprocesamiento

Page 27: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Hilos nativos (o hilos de kernel)

A través de bibliotecas de sistema que informan al sistemaEl núcleo se encarga de la multitarea preventiva entre loshilosEl proceso puede pedir al sistema un mayor número deprocesadores

Logrando ejecución verdaderamente paralela

El sistema puede priorizar de diferente manera a unproceso multihilo

Page 28: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Índice

1 Concepto y estados de un proceso

2 El proceso

3 Hilos

4 Los hilos para el sistema operativo

5 Concurrencia

Page 29: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Referencia bibliográfica

Para este tema, recomiendo fuertemente revisen «The littlebook of semaphores» de Allen Downey (2008).

Disponible desde el sitio del curso:

http://sistop.gwolf.org/biblio/Little_Book_of_Semaphores−Allen_Downey .pdf

Page 30: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

¿Qué es concurrencia?

Quedó ya claro que (para nosotros) concurrencia nosignifica que dos o más eventos ocurran al mismo tiempoNos referimos a dos o más eventos cuyo órden no esdeterministaNo podemos predecir el órden relativo en que ocurrirán

Page 31: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

¿Cuándo hablamos de concurrencia?

Dos o más hilos del mismo procesoDos o más procesos en la misma computadoraDos o más procesos en computadoras separadasconectadas por redDos o más procesos que ocurran sin conexión alguna yposteriormente requieran sincronización

Page 32: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

La sincronización implica involucramiento delprogramador

El sistema operativo brinda la ilusión a cada proceso de estarejecutando en una computadora dedicada, pero. . .

El proceso puede depender de datos obtenidos en fuentesexternasPuede ser necesario esperar a que otro proceso hayapasado cierto punto en su ejecución

. . . Que tengamos ya los resultados parciales de uncómputo paralelo. . . O que no más de m o menos de n procesos estén endeterminado punto. . . O notificar a otro proceso de nuestro avance. . . O. . .

Page 33: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

La sincronización como comunicación entreprocesos (IPC)

En esta sección veremos ejemplos de primitivas desincronizaciónSon todas ellas comunicación entre procesos (IPC)Nos centraremos principalmente en los semáforos

Page 34: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Problemas clásicos para ir pensando

Problema productor-consumidorProblema lectores-escritoresLa cena de los filósofosLos fumadores compulsivos

. . . Y hay ˜20 problemas más explicados en The little book ofsemaphores. ¡Revísenlo!

Page 35: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Problema productor-consumidor

Pensemos un entorno multihilo como una línea deensamblado

Algunos hilos producen ciertas estructuras (p.ej. eventosen un GUI)Otros hilos las consumen (procesan los eventos)

Los eventos se apilan en un buffer disponible para todoslos hilos¿Cómo podemos asegurar que dos hilos no modifiquen albuffer al mismo tiempo?¿Cómo podemos evitar que los consumidores haganespera activa?

Page 36: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Problema lectores-escritores

Muchos procesos lectores pueden usar simultáneamenteuna estrucura

Si algún proceso escritor la requiere, debemos evitar quecualquier lector esté activo

Requisitos de sincronización:Sin límite en la cantidad de lectores activosLos escritores deben tener acceso exclusivo a la seccióncríticaEvitar inanición de escritores por exceso de lectores

Page 37: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

La cena de los filósofos (Edsger Djikstra, 1965)

Una mesa redondaTazón de arroz al centroCinco platos, cinco filósofos, cinco palillos chinosLos filósofos piensan hasta tener hambre.

Cuando tienen hambre, buscan comerNo hablan entre sí

Sólo un filósofo puede sostener un palillo a la vez¿Qué puede salir mal?

¿Cómo evitarlo con sólo primitivas de sincronización?

Page 38: Administración de procesos: Procesos e hilossistop.gwolf.org/laminas/04-procesos-e-hilos.pdfConcepto y estados de un procesoEl procesoHilosLos hilos para el sistema operativoConcurrencia

Concepto y estados de un proceso El proceso Hilos Los hilos para el sistema operativo Concurrencia

Los fumadores compulsivos (Suhas Patil, 1971)

Tres fumadores empedernidosCon cantidades ilimitadas de uno de tres ingredientescada uno: Tabaco, papel, cerillos

Un agente que consigue ingredientes independientemente¿Cómo asegurarse de que los recursos se utilizan siempre,tan pronto como estén disponibles?

Sin que el agente sepa quién tiene qué ingrediente