Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II....

53
MODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF - 151 Resumen preparado por Miguel Cotaña

Transcript of Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II....

Page 1: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

MODULO II. PROCESOS2.2 Hilos y Micronucleos

5/10/07

Sistemas OperativosINF - 151

Resumen preparado por Miguel Cotaña

Page 2: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

2

El concepto de proceso es más complejo y

sutil de lo que se ha visto hasta este

momento y, de hecho, contiene dos

conceptos diferentes y potencialmente

independientes:

Relativo a la propiedad de recursos

Relativo a la planificación/ejecución

En muchos SO esta distinción ha llevado al

desarrollo de estructuras conocidas como

hilos (threads)

Procesos e hilosProcesos e hilos

Page 3: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

3

Kernel

WebSvr

Browser

Usuario

Browser

Usuario

Browser

Usuario

Browser

Usuario

Browser

Usuario

Proceso principal controla la actividad

de cada hebra

Se instancia un hilo por cada usuario

conectado, además de tener hilos

disponibles para nuevas conexiones

Page 4: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

4

Se refiere a la capacidad de un SO de dar

soporte a múltiples hilos de ejecución en un

solo proceso. Podemos mencionar:

Monohilo: un proceso, un hilo (por

ejemplo: MS-DOS)

Multiproceso con un solo hilo: soportan

múltiples proceso de usuario, pero sólo un

hilo por proceso (por ejemplo, algunos

UNIX)

MultihiloMultihilo

Page 5: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

5

Multihilo con un solo proceso:

soporta un único proceso de usuario,

y múltiples hilos (por ejemplo,

algunos JAVA)

Multihilo con varios procesos:

hace uso de múltiples procesos, cada

uno de los cuales soporta múltiples

hilos (por ejemplo, WINDOWS,

SOLARIS, Mach, OS/2)

Page 6: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

6

Un proceso un hilo Un proceso múltiples hilos

Múltiples procesos, un hilo por proceso Múltiples procesos, múltiples hilos por proceso

Page 7: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

7

En un entorno multihilo, un proceso se

define como la unidad de asignación de

recursos y una unidad de protección. Se

asocian con procesos los siguientes:

Un espacio de direcciones virtuales que

soportan la imagen del proceso

Acceso protegido a procesadores, otros

procesos (comunicación entre procesos),

archivos y recursos de E/S.

Page 8: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

8

Dentro de un proceso puede existir 1 o más

hilos, cada uno con:

Un estado de ejecución por hilo

(ejecutando, listo, etc)

Un contexto de hilo que se almacena

cuando no está en ejecución

Una pila de ejecución

Por cada hilo, espacio de almacenamiento

para variables locales

Acceso a la memoria y recursos de su

proceso, compartido con todos los hilos de

su mismo proceso.

Page 9: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

9

Modelo de proceso con un único hilo y multihiloModelo de proceso con un único hilo y multihilo

Bloque decontrol delproceso

Espacio dedireccionesde usuario

Pila deusuario

Pila denúcleo

Modelo de proceso conun único hilo

Bloque decontrol delproceso

Espacio dedireccionesde usuario

Bloque decontrol del

hilo

Pila delusuario

Pila denúcleo

Bloque decontrol del

hilo

Pila delusuario

Pila delusuario

Bloque decontrol del

hilo

Pila denúcleo

Pila denúcleo

hilohilo hilo

Modelo de procesomultihilo

Page 10: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

10

Los hilos, al igual que los procesos, tienen:

Estados de ejecución. los estados son:

Ejecutando, Listo y Bloqueado. Si se expulsa

un proceso, todos sus hilos se deben

expulsar porque comparten el espacio de

direcciones del proceso. Tiene 4 operaciones

asociadas (creación, bloqueo, desbloqueo,

finalización) con cambios:

Sincronizar entre hilos: interrelaciona las actividades de los hilos, para que no

interfieran entre ellos.

Funcionalidades de los hilosFuncionalidades de los hilos

Page 11: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

11

Hilos de nivel de usuario (user-levelthread, ULT). En un entorno ULT puro, la aplicación gestiona todo el trabajo de los

hilos y el núcleo no es consciente de la

existencia de los mismos.

Hilos a nivel de núcleo (kernel-supported threads, KLT): También

llamado procesos ligeros (lightweight

processes). En este entorno, el núcleo

gestiona todo el trabajo de gestión de hilos.

Categorias de implementación de hilosCategorias de implementación de hilos

Page 12: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

12

Biblioteca de hilos

P

Espaciode

usuario

Espaciode

núcleo

Espaciode

núcleo

Espaciode

núcleo

PPP

Bibliotecade hilos

Espaciode

usuario

Espaciode

usuario

Nivel de usuario puro

Nivel de núcleo puro combinado

Page 13: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

13

Tradicionalmente, se ha visto a un ordenador

como una máquina secuencial. Los lenguajes de

programación requieren que el programador

especifique algoritmos como una secuencia de

instrucciones. Un procesador ejecuta programas

a través de la ejecución de instrucciones

máquina en secuencia y de una en una. Cada

instrucción se ejecuta como una secuencia de

operaciones (ir a buscar la instrucción, ir a

buscar los operandos, realizar operación,

almacenar resultados)

Multiprocesamiento simétricoMultiprocesamiento simétrico

Page 14: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

14

A medida que a evolucionado la tecnología,

se tiene oportunidades para el paralelismo,

normalmente para mejorar el rendimiento y,

en algunos casos, para mejorar la fiabilidad.

Flyn, propone las siguientes categorías:

Única instrucción, único flujo de datos –Single instruction single data (SISD) stream. Un solo procesador ejecuta una única instrucción que opera sobre datos

almacenados en una sola memoria.

Arquitectura Multiprocesamiento simétrico (SMP)Arquitectura Multiprocesamiento simétrico (SMP)

Page 15: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

15

Única instrucción, múltiples flujos de datos – Single instruction multiple data (SIMD) stream. Una única instrucción de máquina controla la ejecución simultánea de

un número de elementos de proceso.

Múltiples instrucciones, único flujo de datos – Multiple instruction single data (MISD) stream. Se transmite una

secuencia de datos a un conjunto de

procesadores, cada uno de los cuales

ejecuta instrucciones diferentes.

Page 16: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

16

Múltiples instrucciones, múltiples flujos de datos – Multiple instruction multipledata (MIMD) stream. Un conjunto de

procesadores ejecuta simultáneamente

diferentes secuencias de instrucciones en

diferentes conjuntos de datos.

Con la organización MIMD, los procesadores

son de propósito general, porque deben ser

capaces de procesar todas las instrucciones

necesarias para realizar las

transformaciones de datos apropiadas.

Page 17: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

17

MIMD se puede subdividir por la forma en

que se comunican los procesadores. Si cada

procesador tiene una memoria dedicada,

cada elemento de proceso es en sí un

computador. La comunicación entre los

computadores se puede realizar a través de

rutas prefijadas o bien a través de redes.

Page 18: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

18

Este sistema es conocido como un cluster, o multicomputador. Si los procesadores

comparten una memoria común, entonces

cada procesador accede a los programas y

datos almacenados en la memoria

compartida, y los procesadores se

comunican entre sí a través de dicha

memoria; este sistema se conoce como

multiprocesador de memoria compartida.

Page 19: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

19

Procesadores paralelos

SIMD(única instrucción

múltiples flujos de datos)

MIMD(múltiples instruccionesmúltiples flujos de datos)

Memoria compartida(fuertemente acoplados)

Memoria distribuida(débilmente acoplados)

Maestro/esclavo Multiprocesadoressimétricos(SMP)

clusters

Arquitectura de procesos paralelosArquitectura de procesos paralelos

Page 20: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

20

En un multiprocesador simétrico (Symmetric Multiprocessor, SMP), el

núcleo puede ejecutar en cualquier

procesador, y normalmente cada procesador

realiza su propia planificación del conjunto

disponible de procesos e hilos. El núcleo

puede construirse como múltiples procesos o

múltiples hilos, permitiéndose la ejecución

de partes del núcleo en paralelo

Page 21: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

21

El enfoque SMP complica al SO, ya que debe

asegurar que dos procesadores no

seleccionan un mismo proceso y que no se

pierde ningún proceso de la cola. Se deben

emplear técnicas para resolver y sincronizar

el uso de los recursos.

El diseño de SMP y clusters es complejo, e

involucra temas relativos a la organización

física, estructuras de interconexión,

comunicación entre procesadores, diseño del

SO y técnicas de aplicaciones software.

Page 22: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

22

Organización SMPOrganización SMP

Procesador

L1 cache

L2 cache

Procesador

L1 cache

L2 cache

Procesador

L1 cache

L2 cache

AdaptadorDe E/S

AdaptadorDe E/S

AdaptadorDe E/S

Memoriaprincipal

SubsistemaDe E/S

Bus del sistema

Page 23: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

23

Un SO SMP gestiona los procesadores y

otros recursos, de manera que el usuario

vea como si fuera un sistema uniprocesador

multiprogramado. Las claves de diseño son:

Procesos o hilos simultáneos concurrentes. Múltiples procesadores

pueden ejecutar la misma o diferentes

partes del código del núcleo, las tablas y la

gestión de las estructuras del núcleo deben

ser gestionadas apropiadamente para

impedir interbloqueos.

Consideraciones de diseño de SO MultiprocesadorConsideraciones de diseño de SO Multiprocesador

Page 24: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

24

Planificación. Se puede realizar por

cualquier procesador, por lo que se deben

evitar conflictos. Si se utiliza multihilo a nivel

de núcleo, existe la posibilidad de planificar

múltiples hilos del mismo proceso

simultáneamente en múltiples procesadores.

Sincronización. Con múltiples procesos

activos, que pueden acceder a espacios de

direcciones compartidas o recursos

compartidos de E/S, se debe tener cuidado

en proporcionar una sincronización eficaz.

Page 25: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

25

Gestión de memoria. Es un

multiprocesador debe tratar con los aspectos

encontrados en las máquinas uniprocesador.

Fiabilidad y tolerancia a fallos. El SO no se debe degradar en caso de fallo de un

procesador. El planificador y otras partes del

SO deben darse cuenta de la pérdida de un

procesador y reestructurar las tablas de

gestión apropiadamente.

Page 26: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

26

Es la pequeña parte central de un SO que

proporciona las bases para extensiones

modulares.

Surgen algunos cuestionamientos, por ejemplo,

cómo de pequeño debe ser un núcleo para

denominarse micronúcleo, cómo diseñar

manejadores de dispositivos para obtener el

mejor rendimiento a la vez que se abstraen sus

funciones del hardware.

En teoría este enfoque proporciona un alto

grado de flexibilidad y modularidad.

MicronúcleosMicronúcleos

Page 27: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

27

Arquitectura del núcleoArquitectura del núcleo

Gestión de primitivas de proceso

Memoria virtual

Gestión de E/S y de dispositivo

Comunicación entre procesos

Sistema de ficheros

usuarios

HARDWARE

Núcleo por capas

Page 28: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

28

Micronúcleo

Proceso cliente

HARDWARE

Micro Núcleo

Manejador de dispositivos

Servidor de ficheros

Servidor de procesos

Memoria virtual

Modo

usuario

Modo

núcleo

Page 29: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

29

Entre las ventajas, podemos mencionar:

Interfaces uniformes

Extensibilidad

Flexibilidad

Portabilidad

Fiabilidad

Soporte de sistemas distribuidos

Soporte de SO OO

Beneficios de una organización micronúcleoBeneficios de una organización micronúcleo

Page 30: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

30

Una desventaja citada a menudo es el

rendimiento. Lleva más tiempo construir y

enviar y enviar mensajes a través del

micronúcleo, y aceptar y decodificar la

respuesta, que hacer una simple llamada a

un servicio.

Una respuesta es hacer el micronúcleo, no

más grande, sino más pequeño, que elimina

pérdidas de rendimiento y mejora la

flexibilidad y la fiabilidad

Rendimiento del microúcleoRendimiento del microúcleo

Page 31: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

31

El micronúcleo de 1ra. Generación tenía 300

Kbytes de código y 140 interfaces de

llamadas al sistema

Un ejemplo de micronúcleo pequeño de 2da.

Generación es el L4, que consiste en 12 Kbytes de código y 7 llamadas al sistema.

Las experimentaciones realizadas en estos

sistemas indican que pueden funcionar tan

bien o mejor que SO por capas como por

ejemplo, UNIX

Page 32: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

32

Lamentablemente, debido a los tamaños de

los micronúcleos, no se pueden facilitar

reglas concernientes a qué funcionalidades y

estructuras a implementarse. Un conjunto

mínimo de funciones y servicios:

Gestión de memoria a bajo nivel. El micronúcleo tiene que controlar el concepto

hardware de espacio de direcciones para

hacer posible la implementación de

protección a nivel de proceso

Diseño del micronúcleoDiseño del micronúcleo

Page 33: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

33

Con tal de que el micronúcleo se

responsabilice de la asignación de cada

página virtual a un marco físico, la parte

principal de gestión de memoria, incluyendo

la protección del espacio de memoria entre

procesos, el algoritmo de reemplazo de

página y otra lógica de paginación, pueden

implementarse fuera del núcleo. Por

ejemplo, un módulo de MV fuera del

micronúcleo decide cuándo traer una página

a memoria y qué página presente en

memoria debe reemplazarse.

Page 34: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

34

Funcionamiento del paginador externoFuncionamiento del paginador externo

micronúcleo

aplicación paginador

Llanada afunciónespacio-direcciones

reanudar

Fallo depágina

Procesamiento de fallo de página

Page 35: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

35

Liedtke, recomienda 3 operaciones de

micronúcleo que pueden dar soporte a la

paginación externa y a la gestión de MV:

Conceder (Grant). El propietario de un

espacio de direcciones ( un proceso puede

conceder alguna de sus páginas a otro

proceso). El núcleo borra estas páginas del

espacio de memoria del otorgante y se las

asigna al proceso especificado.

Page 36: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

36

Proyectar (Map). Un proceso puede

proyectar cualquiera de sus páginas en el

espacio de direcciones de otro proceso, de

forma que ambos procesos tienen acceso a

las páginas. Esto genera memoria

compartida entre dos procesos

Limpiar (Flush). Un proceso puede

reclamar cualquier página que fue concedida

o asociada a otro proceso.

Page 37: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

37

La forma básica de comunicarse entre 2

procesos o hilos en un SO con micronúcleo

son los mensajes.Un mensaje incluye una cabecera que

identifica a los procesos remitente y receptor

y un cuerpo que contiene directamente los

datos, un puntero a un bloque de datos, o

alguna información de control del proceso

Comunicación entre procesosComunicación entre procesos

Page 38: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

38

Un puerto es, en esencia una cola de

mensajes destinada a un proceso particular,

un proceso puede tener múltiples puertos.

Asociada a cada puerto existe una lista que

indica qué procesos se pueden comunicar

con éste. Las identidades y funcionalidades

de cada puerto se mantienen en el núcleo.

Un proceso puede conceder nuevas

funcionalidades mandando un mensaje al

núcleo con las nuevas funcionalidades del

puerto.

Page 39: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

39

Con una arquitectura micronúcleo es posible

manejar las interrupciones hardware como

mensajes e incluir los puertos de E/S en los

espacios de direcciones. El micronúcleo

puede reconocer las interrupciones, pero no

las puede manejar. Más bien, genera un

mensaje para el proceso a nivel de usuario

que está actualmente asociado con esa

interrupción

Gestión de E/S e interrupcionesGestión de E/S e interrupciones

Page 40: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

40

De esta forma, cuando se habilita una

interrupción, se asigna un proceso de nivel

de usuario a esa interrupción y el núcleo

mantiene las asociaciones. La

transformación de las interrupciones en

mensajes las debe realizar el micronúcleo,

pero el micronúcleo no está relacionado con

el manejo de interrupciones específico de los

dispositivos.

Page 41: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

41

Liedtke, sugiere ver hardware como un

conjunto de hilos que tienen identificadores

de hilo único y que mandan mensajes

(únicamente con el identificador de hilo) a

hilos asociados en el espacio usuario. El hilo

receptor determina si el mensaje proviene

de una interrupción y determina la

interrupción específica.

Page 42: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

42

La estructura del código a nivel de usuario:

hilo del dispositivo:

do

waitFor(msg, remitente);

if (remitente==mi_interrupción_hardware)

{

leer/escribir puertos E/S;

reanudar interrupción hardware;

}

else……….

while(true);

Page 43: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

43

Las estructuras de los procesos y los servicios

proporcionada por el núcleo de Windows son de

propósito general, permitiendo a cada

subsistema del SO que emule una estructura y

funcionalidad particular del proceso. Algunas

características de los procesos de Windows:

Los procesos Windows están

implementados como objetos

Un proceso ejecutable puede contener uno

o más hilos

Tanto el objeto proceso como el objeto

hilo, tienen sincronización preconstruidas.

Gestión de hilos y SMP en WindowsGestión de hilos y SMP en Windows

Page 44: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

44

Objeto deproceso

Ficha deacceso

Hilo x

Hilo y

Hilo z

Descriptores de direcciones virtuales

Objetos disponibles

Manejador 1

Manejador 2

Manejador 3

Un proceso Windows y sus recursos

Tabla demanejadores

Page 45: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

45

La estructura OO de Windows facilita el

desarrollo de un proceso de propósito

general. Windows hace uso de 2 tipos de

objetos relacionados con los procesos:

procesos e hilos.

Cada proceso Windows se representa por un

objeto. Un proceso se define por una serie

de atrinutos y encapsula una serie de

acciones, o servicios, que puede realizar

Objeto proceso y objeto hiloObjeto proceso y objeto hilo

Page 46: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

46

Crear proceso

Abrir proceso

Solicitar información

Proceso actual

Terminar proceso

Id proceso

Descriptor de seguridad

Prioridad base

Afinidad de procesador

Límite de cuota

Tiempo de ejecución

Contadores de E/S

Puertos de excepción

Estado de salida

Proceso

Crear hilo

Abrir hilo

Solicitar información

Hilo actual

Terminar hilo

Suspender

reanudar

Id hilo

Contexto

Prioridad

Afinidad

Tiempo de ejecución

Estado de alerta

Testigo de personificación

Estado de salida

hiloTipo deobjeto

atributos

servicios

Page 47: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

47

Un hilo de Windows se encuentra en uno de

los siguientes 6 estados:

Listo (ready)

Substituto (standby)

Ejecutando (running)

Esperando (waiting)

Transición (transition)

Terminado (terminated)

Estado de los hilosEstado de los hilos

Page 48: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

48

Windows soporta una configuración

hardware SMP. Los hilos de cualquier

proceso, incluyendo los del ejecutivo,

pueden ejecutar en cualquier procesador.

Por defecto, el micronúcleo utiliza la política

afinidad débil (soft affinity) para asignar

procesadores a los hilos: el planificador

intenta asignar un proceso listo al mismo

procesador que lo ejecutó la última vez. Es

posible restringir la ejecución de sus hilos a

algunos procesadores afinidad fuerte

Soporte para SMPSoporte para SMP

Page 49: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

49

Gestión de hilos y SMP en SolarisGestión de hilos y SMP en Solaris

Arquitectura multihiloArquitectura multihilo

Utiliza 4 conceptos relacionados con hilos:

Procesos. incluye el espacio de direcciones del usuario, la pila y el BCP

Hilos de nivel de usuario. Son la interfaz para las aplicaciones paralelas

Procesos ligeros. Se planifican de forma

independiente por el núcleo.

Hilos de núcleo. Ejecutan en cualquier procesador del sistema

Page 50: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

50

Id usuario

Id proceso

Registros

Pila

…………..

Mascara de

Señales

Prioridad

Id LWP

Tabla de activación de señales

Descriptores de archivos

Mapa de memoria

Registros

Pila

…………..

Mascara de

Señales

Prioridad

Id LWP

Estado del procesador

LWP 1

LWP 2

Estructura de 1 proceso en SolarisEstructura de 1 proceso en Solaris

Page 51: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

51

La ejecución de los hilos a nivel de usuario

se gestiona por la biblioteca de los hilos.

Pueden ocurrir los siguientes sucesos:

Sincronización

Suspensión

Expulsión

Ceder paso

Ejecución de hilosEjecución de hilos

Page 52: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

52

Un proceso, o tarea, en Linux se representa por

una estructura de datos task_struct, que

contiene información de diversas categorías:

Estado

Información de planificación

Identificadores

Comunicación entre procesos

Enlaces

Tiempos y temporizadores

Sistema de archivos

Gestión de procesos e hilos en LinuxGestión de procesos e hilos en Linux

Page 53: Sistemas Operativos INF -151cotana.informatica.edu.bo/downloads/hilos y micronuc.pdfMODULO II. PROCESOS 2.2 Hilos y Micronucleos 5/10/07 Sistemas Operativos INF -151 Resumen preparado

53

Espacio de direcciones

Contexto específico del procesador

Ejecutando

Interrumpible

Ininterrumpible

Detenido

Zombie