Hilos, SMP y micronúcleos
Proceso
• Unidad de propiedad de los recursos: el
proceso incluye un espacio de direcciones
virtuales para mantener la imagen del
proceso.
• Unidad de expedición: sigue un camino de
ejecución que puede ser intercalada con la
de otros procesos.
• Estas dos características son tratadas de
manera independiente por el sistema
operativo.
Proceso
• La unidad de expedición se conoce como
hilo.
• La unidad de propiedad de los recursos
se conoce como proceso o tarea.
Multihilo
• Sistema operativo que mantiene varios
hilos de ejecución dentro de un mismo
proceso.
• MS-DOS soporta un solo hilo.
• UNIX soporta múltiples procesos de
usuarios, pero sólo un hilo por proceso.
• Windows 2000, Solaris, Linux, Mach, y
OS/2 soportan múltiples hilos.
Un proceso,
un hilo
Un proceso,
múltiples hilos
Múltiples procesos,
un hilo por proceso
Múltiples procesos,
múltiples hilos por proceso
Flujo de instrucciones
Figura 4.1. Procesos e hilos [ANDE97].
Proceso
• Tiene un espacio de direcciones
virtuales, que contiene la imagen del
proceso.
• Acceso protegido a los procesadores, a
otros procesos, archivos y a recursos de
E/S.
Hilo
• Posee un estado de ejecución (Ejecución,
Listo, etc.).
• El contexto del procesador se salva cuando
no está ejecutando.
• Tiene una pila de ejecución.
• Almacenamiento estático para las variables
locales.
• Acceso a la memoria y a los recursos del
proceso, compartidos con todos los hilos
del mismo.
Modelo de proceso
monohilo
Bloque de
control de
proceso
Espacio de
direcciones
de usuario
Bloque de
control de
proceso
Espacio de
direcciones
de usuario
Pila de
usuario
Pila de
usuario
Pila de
usuario
Pila de
usuarioPila del
núcleo
Pila del
núcleo
Pila del
núcleo
Pila del
núcleo
Bloque
de control
de hilo
Bloque
de control
de hilo
Bloque
de control
de hilo
Modelo de proceso
multihilo
Hilo Hilo Hilo
Figura 4.2. Modelos de proceso monohilo y multihilo.
Beneficios de los hilos
• Se tarda menos tiempo en crear un nuevo hilo
en un proceso existente.
• Se tarda menos tiempo en terminar un hilo que
un proceso.
• Se tarda menos tiempo en cambiar entre dos
hilos de un mismo proceso.
• Puesto que los hilos de un mismo proceso
comparten memoria y archivos, pueden
comunicarse entre sí sin invocar al núcleo.
Usos de los hilos en un sistema
monousuario y multiproceso
• Trabajo interactivo y en segundo plano.
• Procesamiento asíncrono.
• Aceleración de la ejecución.
• Estructuración modular de los
programas.
Hilos
• La suspensión de un proceso implica la
la suspensión de todos los hilos de un
proceso, puesto que todos comparten el
mismo espacio de direcciones.
• La terminación de un proceso supone
terminar con todos los hilos dentro de
dicho proceso.
Estados de un hilo
• Hay cuatro operaciones básicas
relacionadas con el cambio de estado en
hilos:
– Creación:
• Se crea un nuevo hilo.
– Bloqueo.
– Desbloqueo.
– Terminación:
• Se liberan el contexto y las pilas.
Llamadas a Procedimiento
Remoto (RPC) utilizando hilos
Tiempo
Proceso 1
Llamada
a RPC
Llamada
a RPC
Servidor
(a) RPC utilizando un solo hilo
Bloqueado, esperando respuesta de una RPC
Bloqueado, esperando al procesador que está siendo usado por el hilo B
Ejecutando
Figura 4.3. Llamadas a Procedimiento Remoto (RPC) utilizando hilos.
Servidor
Llamadas a Procedimiento
Remoto (RPC) utilizando hilos
ServidorLlamada
a RPC
Llamada
a RPC
Hilo A (proceso 1)
Hilo B (proceso 1)
(b) RPC utilizando un hilo por servidor (en un monoprocesador)
Bloqueado, esperando respuesta de una RPC
Bloqueado, esperando al procesador que está siendo usado por el hilo B
Ejecutando
Figura 4.3. Llamadas a Procedimiento Remoto (RPC) utilizando hilos.
Servidor
Hilos a nivel de usuario
• La aplicación realiza todo el trabajo de
gestión de hilos.
• El núcleo no tiene conocimiento de la
existencia de hilos.
Hilos a nivel de núcleo
• W2K, Linux y OS/2 son ejemplos de
este tipo de aplicación.
• El núcleo mantiene la información de
contexto del proceso y de los hilos.
• La planificación se realiza en función de
los hilos.
Aproximaciones combinadas
• Un ejemplo es Solaris.
• La creación de hilos se realiza en el
espacio de usuario.
• La planificación y sincronización de los
hilos se realiza en el espacio de usuario.
Biblioteca
de hilos
Bibliotec
a
de hilos
Espacio
de usuario
Espacio
de usuario
Espacio
de
usuario
Espacio
de núcleo
Espacio
de núcleo
Espacio
de núcleo
(a) Nivel de usuario puro (b) Nivel de núcleo puro (c) Combinado
Hilo a nivel de
usuario
Hilo a nivel de núcleo Proceso
Figura 4.6. Hilos a nivel de usuario y a nivel de núcleo.
Relación entre hilos y
procesos
Hilos : Procesos Descripción Sistemas de ejemplo
1 : 1 Cada hilo de ejecución es un
único proceso con sus propios
recursos y espacio de
direcciones.
Implementaciones UNIX
clásicas
M : 1 Un proceso define un espacio de
direcciones y unos recursos
dinámicos propios. Pueden
crearse varios hilos que ejecuten
en dicho proceso.
Windows NT, Solaris, OS/2,
OS/390, MACH
Relación entre hilos y
procesos
Hilos : Procesos Descripción Sistemas de ejemplo
1 : M Un hilo puede emigrar del entorno
de un proceso a otro. Esto permite
que un hilo se pueda mover
fácilmente entre sistemas distintos.
Ra (Clouds), Emerald
M : N Combina los atributos de los casos
M : 1 y 1 : M
TRIX
Categorías de sistemas
informáticos
• Instrucción simple/dato simple (SISD):
– Un único procesador ejecuta un único flujo
de instrucciones para operar sobre datos
almacenados en una única memoria.
• Instrucción simple/datos múltiples
(SIMD):
– Cada instrucción se ejecuta sobre un
conjunto de datos diferente por medio de
distintos procesadores.
Categorías de sistemas
informáticos
• Instrucción múltiple/dato simple (MISD):
– Se transmite una secuencia de datos a un
conjunto de procesadores, cada uno de los
cuales ejecuta una instrucción de la secuencia.
No se ha implementado nunca.
• Instrucción múltiple/datos múltiples
(MIMD):
– Un conjunto de procesadores ejecuta
simultáneamente varias secuencias de
instrucciones sobre distintos conjuntos de
datos.
Procesadores paralelos
SIMD
(flujo de instrucción
simple/datos múltiples)
MIMD
(flujo de instrucción
múltiple/datos múltiples)
Memoria compartida
(fuertemente acoplados)
Memoria distribuida
(débilmente acoplados)
Multiproceso
simétrico
(SMP)
Maestro/esclavo Agrupaciones
Figura 4.8. Arquitecturas de procesadores paralelos.
Multiproceso simétrico
• El núcleo puede ejecutar en cualquier
procesador.
• Normalmente, cada procesador se
autoplanifica a partir de una cola de
procesos o hilos libres.
Procesador Procesador Procesador
Cache L1 Cache L1Cache L1
Cache L2 Cache L2Cache L2
Memoria
principal
Subsistema
de E/S
Adaptador
de E/S
Adaptador
de E/S
Adaptador
de E/S
Figura 4.9. Organización de un multiprocesador simétrico.
Consideraciones de diseño de un
sistema operativo multiprocesador
• Procesos o hilos concurrentes.
• Planificación.
• Sincronización.
• Gestión de memoria.
• Fiabilidad y tolerancia a los fallos.
Micronúcleos
• Pequeño núcleo del sistema operativo.
• Sólo contiene las funciones esenciales del
sistema operativo.
• Muchos de los servicios que tradicionalmente
se incluían en el sistema operativo son ahora
subsistemas externos:
– Controladores de dispositivos.
– Sistemas de archivos.
– Gestores de memoria virtual.
– Sistemas de ventanas.
– Servicios de seguridad.
Ventajas de la organización
micronúcleo
• Interfaz uniforme para las solicitudes
realizadas por los procesos:
– Todos los servicios se utilizan mediante
paso de mensajes.
• Extensibilidad:
– Permite añadir nuevos servicios.
• Flexibilidad:
– Permite añadir nuevas características.
– Permite reducir las características actuales.
Ventajas de la organización
micronúcleo
• Portabilidad:
– En el micronúcleo (y no en los demás
servicios) se realizan los cambios
necesarios para portar el sistema a un nuevo
procesador.
• Fiabilidad:
– Diseño modular.
– Un pequeño micronúcleo puede probarse de
un modo muy riguroso.
Ventajas de la organización
micronúcleo
• Soporte a sistemas distribuidos:
– Se puede enviar un mensaje sin saber en
qué máquina reside el destinatario.
• Sistema operativo orientado a objetos:
– Los componentes son objetos con interfaces
claramente definidas que se pueden
interconectar para formar un software.
Diseño de micronúcleo
• Gestión de memoria a bajo nivel:
– Traduce cada página virtual en un marco de
página físico.
• Comunicación entre procesos.
• Gestión de interrupciones y E/S.
Señal de
acceso
Proceso
Descripción del espacio de direcciones virtuales
Tabla de objetos
Objetos
disponibles
Descriptor1
Descriptor2
Descriptor3
Hilo x
Archivo y
Sección z
Figura 4.12. Un proceso de Windows 2000 y sus recursos [CUST93].
Objeto proceso en Windows
2000
Proceso
ID del proceso
Descriptor de seguridad
Prioridad de base
Afinidad por omisión con el procesador
Límites de cuota
Tiempo de ejecución
Contadores de E/S
Contadores de operación de la MV
Puertos de excepciones y depuración
Estado de terminación
Crear proceso
Abrir proceso
Consultar información del proceso
Cambiar información del proceso
Proceso actual
Terminar proceso
Tipo de objeto
Atributos
del cuerpo
del objeto
Servicios
(a) Objeto proceso
Objeto hilo en
Windows 2000
Tipo de objeto
Atributos
del cuerpo
del objeto
Servicios
Hilo
ID del hilo
Contexto del hilo
Prioridad dinámica
Prioridad de base
Afinidad del hilo con el procesador
Tiempo de ejecución del hilo
Estado de alerta
Contador de suspensión
Señal de imitación
Puerto de terminación
Estado de terminación del hilo
Crear hilo
Abrir hilo
Consultar información del hilo
Cambiar información del hilo
Hilo actual
Terminar hilo
Coger contexto
Poner contexto
Suspender
Reanudar
Alertar hilo
Consultar alerta del hilo
Registrar puerto de terminación
(b) Objeto hilo
Estados de un hilo en
Windows 2000
• Listo.
• Standby.
• Ejecución.
• Espera.
• Transición.
• Terminado.
Solaris
• El proceso incluye el espacio de
direcciones de usuario, la pila y el
bloque de control de proceso.
• Hilos a nivel de usuario.
• Procesos ligeros.
• Hilos de núcleo.
Proceso 1 Proceso 2 Proceso 3 Proceso 4 Proceso 5
Usuario
Núcleo
Hardware
Biblioteca
de hilos
Hilo a nivel de usuario Hilo del núcleo Proceso ligero Procesador
Figura 4.15. Ejemplo de la arquitectura multihilo de Solaris.
Estructura de un proceso
en UNIX
Estructura de un proceso
en Solaris 2.x
ID de proceso ID de proceso
ID de usuario ID de usuario
Tabla de expedición
de señales
Tabla de expedición
de señales
Descriptores
de archivo
Descriptores
de archivo
Mapa de
memoria
Mapa de
memoria
Estado del
procesador
Prioridad
Máscara de
señales
Registros
PILA
ID de LWP
Prioridad
Máscara de
señales
Registros
PILA
ID de LWP
Prioridad
Máscara de
señales
Registros
PILA
Figura 4.16. Estructura de un proceso en UNIX clásico y Solaris 2.x [LEWI96].
LWP 1 LWP 1
Ejecución de hilos en Solaris
• Sincronización.
• Suspensión.
• Apropiación.
• Cesión.
Parar
Continuar Despertar
Apropiar
Parar
Expedir
DormirParar
Hilos a nivel de usuario
Procesos ligeros
Expedir Despertar
Despertar
Parar
Continuar
Llamada
al sistema
bloqueante
Expulsar o
fracción
de tiempo
Ejecutable
Parado
Activo
Dormido
Ejecución
Ejecutable
Bloqueado
Parado
Figura 4.17. Estados de LWP e hilos a nivel de usuario en Solaris.
Parar
Procesos en Linux
• Estado.
• Información de planificación.
• Identificadores.
• Comunicación entre procesos.
• Vínculos.
• Tiempos y temporizadores.
• Sistema de archivos.
• Memoria virtual.
• Contexto específico del procesador.
Estados de un proceso en
Linux
• Ejecución.
• Interrumpible.
• No interrumpible.
• Parado.
• Zombie.
Señal Señal
Creación Terminación
Estado de
ejecución
Planificación
SucesoSeñal
o
suceso
Parada
Interrumpible
No interrumpible
Listo Ejecutando Zombie
Figura 4.18. Modelo de procesos/hilos en Linux.

855

  • 1.
    Hilos, SMP ymicronúcleos
  • 2.
    Proceso • Unidad depropiedad de los recursos: el proceso incluye un espacio de direcciones virtuales para mantener la imagen del proceso. • Unidad de expedición: sigue un camino de ejecución que puede ser intercalada con la de otros procesos. • Estas dos características son tratadas de manera independiente por el sistema operativo.
  • 3.
    Proceso • La unidadde expedición se conoce como hilo. • La unidad de propiedad de los recursos se conoce como proceso o tarea.
  • 4.
    Multihilo • Sistema operativoque mantiene varios hilos de ejecución dentro de un mismo proceso. • MS-DOS soporta un solo hilo. • UNIX soporta múltiples procesos de usuarios, pero sólo un hilo por proceso. • Windows 2000, Solaris, Linux, Mach, y OS/2 soportan múltiples hilos.
  • 5.
    Un proceso, un hilo Unproceso, múltiples hilos Múltiples procesos, un hilo por proceso Múltiples procesos, múltiples hilos por proceso Flujo de instrucciones Figura 4.1. Procesos e hilos [ANDE97].
  • 6.
    Proceso • Tiene unespacio de direcciones virtuales, que contiene la imagen del proceso. • Acceso protegido a los procesadores, a otros procesos, archivos y a recursos de E/S.
  • 7.
    Hilo • Posee unestado de ejecución (Ejecución, Listo, etc.). • El contexto del procesador se salva cuando no está ejecutando. • Tiene una pila de ejecución. • Almacenamiento estático para las variables locales. • Acceso a la memoria y a los recursos del proceso, compartidos con todos los hilos del mismo.
  • 8.
    Modelo de proceso monohilo Bloquede control de proceso Espacio de direcciones de usuario Bloque de control de proceso Espacio de direcciones de usuario Pila de usuario Pila de usuario Pila de usuario Pila de usuarioPila del núcleo Pila del núcleo Pila del núcleo Pila del núcleo Bloque de control de hilo Bloque de control de hilo Bloque de control de hilo Modelo de proceso multihilo Hilo Hilo Hilo Figura 4.2. Modelos de proceso monohilo y multihilo.
  • 9.
    Beneficios de loshilos • Se tarda menos tiempo en crear un nuevo hilo en un proceso existente. • Se tarda menos tiempo en terminar un hilo que un proceso. • Se tarda menos tiempo en cambiar entre dos hilos de un mismo proceso. • Puesto que los hilos de un mismo proceso comparten memoria y archivos, pueden comunicarse entre sí sin invocar al núcleo.
  • 10.
    Usos de loshilos en un sistema monousuario y multiproceso • Trabajo interactivo y en segundo plano. • Procesamiento asíncrono. • Aceleración de la ejecución. • Estructuración modular de los programas.
  • 11.
    Hilos • La suspensiónde un proceso implica la la suspensión de todos los hilos de un proceso, puesto que todos comparten el mismo espacio de direcciones. • La terminación de un proceso supone terminar con todos los hilos dentro de dicho proceso.
  • 12.
    Estados de unhilo • Hay cuatro operaciones básicas relacionadas con el cambio de estado en hilos: – Creación: • Se crea un nuevo hilo. – Bloqueo. – Desbloqueo. – Terminación: • Se liberan el contexto y las pilas.
  • 13.
    Llamadas a Procedimiento Remoto(RPC) utilizando hilos Tiempo Proceso 1 Llamada a RPC Llamada a RPC Servidor (a) RPC utilizando un solo hilo Bloqueado, esperando respuesta de una RPC Bloqueado, esperando al procesador que está siendo usado por el hilo B Ejecutando Figura 4.3. Llamadas a Procedimiento Remoto (RPC) utilizando hilos. Servidor
  • 14.
    Llamadas a Procedimiento Remoto(RPC) utilizando hilos ServidorLlamada a RPC Llamada a RPC Hilo A (proceso 1) Hilo B (proceso 1) (b) RPC utilizando un hilo por servidor (en un monoprocesador) Bloqueado, esperando respuesta de una RPC Bloqueado, esperando al procesador que está siendo usado por el hilo B Ejecutando Figura 4.3. Llamadas a Procedimiento Remoto (RPC) utilizando hilos. Servidor
  • 15.
    Hilos a nivelde usuario • La aplicación realiza todo el trabajo de gestión de hilos. • El núcleo no tiene conocimiento de la existencia de hilos.
  • 16.
    Hilos a nivelde núcleo • W2K, Linux y OS/2 son ejemplos de este tipo de aplicación. • El núcleo mantiene la información de contexto del proceso y de los hilos. • La planificación se realiza en función de los hilos.
  • 17.
    Aproximaciones combinadas • Unejemplo es Solaris. • La creación de hilos se realiza en el espacio de usuario. • La planificación y sincronización de los hilos se realiza en el espacio de usuario.
  • 18.
    Biblioteca de hilos Bibliotec a de hilos Espacio deusuario Espacio de usuario Espacio de usuario Espacio de núcleo Espacio de núcleo Espacio de núcleo (a) Nivel de usuario puro (b) Nivel de núcleo puro (c) Combinado Hilo a nivel de usuario Hilo a nivel de núcleo Proceso Figura 4.6. Hilos a nivel de usuario y a nivel de núcleo.
  • 19.
    Relación entre hilosy procesos Hilos : Procesos Descripción Sistemas de ejemplo 1 : 1 Cada hilo de ejecución es un único proceso con sus propios recursos y espacio de direcciones. Implementaciones UNIX clásicas M : 1 Un proceso define un espacio de direcciones y unos recursos dinámicos propios. Pueden crearse varios hilos que ejecuten en dicho proceso. Windows NT, Solaris, OS/2, OS/390, MACH
  • 20.
    Relación entre hilosy procesos Hilos : Procesos Descripción Sistemas de ejemplo 1 : M Un hilo puede emigrar del entorno de un proceso a otro. Esto permite que un hilo se pueda mover fácilmente entre sistemas distintos. Ra (Clouds), Emerald M : N Combina los atributos de los casos M : 1 y 1 : M TRIX
  • 21.
    Categorías de sistemas informáticos •Instrucción simple/dato simple (SISD): – Un único procesador ejecuta un único flujo de instrucciones para operar sobre datos almacenados en una única memoria. • Instrucción simple/datos múltiples (SIMD): – Cada instrucción se ejecuta sobre un conjunto de datos diferente por medio de distintos procesadores.
  • 22.
    Categorías de sistemas informáticos •Instrucción múltiple/dato simple (MISD): – Se transmite una secuencia de datos a un conjunto de procesadores, cada uno de los cuales ejecuta una instrucción de la secuencia. No se ha implementado nunca. • Instrucción múltiple/datos múltiples (MIMD): – Un conjunto de procesadores ejecuta simultáneamente varias secuencias de instrucciones sobre distintos conjuntos de datos.
  • 23.
    Procesadores paralelos SIMD (flujo deinstrucción simple/datos múltiples) MIMD (flujo de instrucción múltiple/datos múltiples) Memoria compartida (fuertemente acoplados) Memoria distribuida (débilmente acoplados) Multiproceso simétrico (SMP) Maestro/esclavo Agrupaciones Figura 4.8. Arquitecturas de procesadores paralelos.
  • 24.
    Multiproceso simétrico • Elnúcleo puede ejecutar en cualquier procesador. • Normalmente, cada procesador se autoplanifica a partir de una cola de procesos o hilos libres.
  • 25.
    Procesador Procesador Procesador CacheL1 Cache L1Cache L1 Cache L2 Cache L2Cache L2 Memoria principal Subsistema de E/S Adaptador de E/S Adaptador de E/S Adaptador de E/S Figura 4.9. Organización de un multiprocesador simétrico.
  • 26.
    Consideraciones de diseñode un sistema operativo multiprocesador • Procesos o hilos concurrentes. • Planificación. • Sincronización. • Gestión de memoria. • Fiabilidad y tolerancia a los fallos.
  • 27.
    Micronúcleos • Pequeño núcleodel sistema operativo. • Sólo contiene las funciones esenciales del sistema operativo. • Muchos de los servicios que tradicionalmente se incluían en el sistema operativo son ahora subsistemas externos: – Controladores de dispositivos. – Sistemas de archivos. – Gestores de memoria virtual. – Sistemas de ventanas. – Servicios de seguridad.
  • 28.
    Ventajas de laorganización micronúcleo • Interfaz uniforme para las solicitudes realizadas por los procesos: – Todos los servicios se utilizan mediante paso de mensajes. • Extensibilidad: – Permite añadir nuevos servicios. • Flexibilidad: – Permite añadir nuevas características. – Permite reducir las características actuales.
  • 29.
    Ventajas de laorganización micronúcleo • Portabilidad: – En el micronúcleo (y no en los demás servicios) se realizan los cambios necesarios para portar el sistema a un nuevo procesador. • Fiabilidad: – Diseño modular. – Un pequeño micronúcleo puede probarse de un modo muy riguroso.
  • 30.
    Ventajas de laorganización micronúcleo • Soporte a sistemas distribuidos: – Se puede enviar un mensaje sin saber en qué máquina reside el destinatario. • Sistema operativo orientado a objetos: – Los componentes son objetos con interfaces claramente definidas que se pueden interconectar para formar un software.
  • 31.
    Diseño de micronúcleo •Gestión de memoria a bajo nivel: – Traduce cada página virtual en un marco de página físico. • Comunicación entre procesos. • Gestión de interrupciones y E/S.
  • 32.
    Señal de acceso Proceso Descripción delespacio de direcciones virtuales Tabla de objetos Objetos disponibles Descriptor1 Descriptor2 Descriptor3 Hilo x Archivo y Sección z Figura 4.12. Un proceso de Windows 2000 y sus recursos [CUST93].
  • 33.
    Objeto proceso enWindows 2000 Proceso ID del proceso Descriptor de seguridad Prioridad de base Afinidad por omisión con el procesador Límites de cuota Tiempo de ejecución Contadores de E/S Contadores de operación de la MV Puertos de excepciones y depuración Estado de terminación Crear proceso Abrir proceso Consultar información del proceso Cambiar información del proceso Proceso actual Terminar proceso Tipo de objeto Atributos del cuerpo del objeto Servicios (a) Objeto proceso
  • 34.
    Objeto hilo en Windows2000 Tipo de objeto Atributos del cuerpo del objeto Servicios Hilo ID del hilo Contexto del hilo Prioridad dinámica Prioridad de base Afinidad del hilo con el procesador Tiempo de ejecución del hilo Estado de alerta Contador de suspensión Señal de imitación Puerto de terminación Estado de terminación del hilo Crear hilo Abrir hilo Consultar información del hilo Cambiar información del hilo Hilo actual Terminar hilo Coger contexto Poner contexto Suspender Reanudar Alertar hilo Consultar alerta del hilo Registrar puerto de terminación (b) Objeto hilo
  • 35.
    Estados de unhilo en Windows 2000 • Listo. • Standby. • Ejecución. • Espera. • Transición. • Terminado.
  • 37.
    Solaris • El procesoincluye el espacio de direcciones de usuario, la pila y el bloque de control de proceso. • Hilos a nivel de usuario. • Procesos ligeros. • Hilos de núcleo.
  • 38.
    Proceso 1 Proceso2 Proceso 3 Proceso 4 Proceso 5 Usuario Núcleo Hardware Biblioteca de hilos Hilo a nivel de usuario Hilo del núcleo Proceso ligero Procesador Figura 4.15. Ejemplo de la arquitectura multihilo de Solaris.
  • 39.
    Estructura de unproceso en UNIX Estructura de un proceso en Solaris 2.x ID de proceso ID de proceso ID de usuario ID de usuario Tabla de expedición de señales Tabla de expedición de señales Descriptores de archivo Descriptores de archivo Mapa de memoria Mapa de memoria Estado del procesador Prioridad Máscara de señales Registros PILA ID de LWP Prioridad Máscara de señales Registros PILA ID de LWP Prioridad Máscara de señales Registros PILA Figura 4.16. Estructura de un proceso en UNIX clásico y Solaris 2.x [LEWI96]. LWP 1 LWP 1
  • 40.
    Ejecución de hilosen Solaris • Sincronización. • Suspensión. • Apropiación. • Cesión.
  • 41.
    Parar Continuar Despertar Apropiar Parar Expedir DormirParar Hilos anivel de usuario Procesos ligeros Expedir Despertar Despertar Parar Continuar Llamada al sistema bloqueante Expulsar o fracción de tiempo Ejecutable Parado Activo Dormido Ejecución Ejecutable Bloqueado Parado Figura 4.17. Estados de LWP e hilos a nivel de usuario en Solaris. Parar
  • 42.
    Procesos en Linux •Estado. • Información de planificación. • Identificadores. • Comunicación entre procesos. • Vínculos. • Tiempos y temporizadores. • Sistema de archivos. • Memoria virtual. • Contexto específico del procesador.
  • 43.
    Estados de unproceso en Linux • Ejecución. • Interrumpible. • No interrumpible. • Parado. • Zombie.
  • 44.
    Señal Señal Creación Terminación Estadode ejecución Planificación SucesoSeñal o suceso Parada Interrumpible No interrumpible Listo Ejecutando Zombie Figura 4.18. Modelo de procesos/hilos en Linux.