1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de...
-
Upload
lucio-parras -
Category
Documents
-
view
219 -
download
0
Transcript of 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de...
![Page 1: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/1.jpg)
1
Hebras, SMP, y Microkernels
Capítulo 4
![Page 2: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/2.jpg)
2
Dos características de un proceso
• Propietario de Recursos – un proceso incluye un espacio virtual de direcciones donde se
almacena la imagen del proceso.
– En un momento dado el SO puede asignar recursos al proceso
• Es planificado/ejecutado – sigue un camino de ejecución que puede intercalarse con la ejecución de otros procesos. Así un proceso puede estar Running, Ready, etc.
• Estas dos características son tratadas independientemente por el SO– Entidad que se ejecuta/despacha es llamada hebra
– Entidad dueña de recursos es llamado proceso
![Page 3: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/3.jpg)
3
Procesamiento Multihebra
• La capacidad del SO de soportar múltiples hebras de ejecución dentro de un proceso
• MS-DOS soporta sólo una hebra (y sólo un proceso)
• UNIX soporta múltiples procesos de usuario, pero sólo una hebra por proceso
• Windows, Solaris, Linux, Mach, y OS/2 soportan múltiples hebra
• En este caso, el proceso es asociado con– Un espacio virtual de direcciones que contiene la imagen del proceso
– Acceso protegido al procesador, otros procesos, archivos, etc.
![Page 4: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/4.jpg)
4
![Page 5: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/5.jpg)
5
Una hebra posee
• Un estado de ejecución (running, ready, etc.)
• Un contexto de hebra, cuando no está ejecutándose
• Un stack de ejecución
• Almacenamiento estático de memoria para variables locales
• Derecho a acceder la memoria y recursos del proceso al que pertenece– Todas la hebras de un proceso comparten esta propiedad
![Page 6: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/6.jpg)
6
• Todas la hebras de un proceso comparten los recursos de un proceso
• Cada hebra puede tener su propio estado, pero cuando el proceso se suspende, todas las hebras se suspenden. Cuando el proceso termina, todas la hebras terminan
• Cuando una hebra modifica un dato en memoria global, las otras hebras ven el resultado de la modificación
![Page 7: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/7.jpg)
7
Beneficios de las hebras
• Demora menos crear y eleminar una hebra que un proceso
• Demora menos hacer cambio de contexto entre hebras de un mismo proceso que entre dos procesos
• Ya que las hebras de un proceso comparten memoria y archivos, ellas se pueden comunicar sin necesidad de invocar rutinas del kernel
![Page 8: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/8.jpg)
8
Ejemplo de uso de hebras en un sistema mono usuario multiprogramado
• Ejecución concurrente de tareas background y foreground: – Ej cómputo y manejo de interface
• Procesamiento asíncrono – Ej: Guarar periódicamente contenidos de editor de texto
• Aumento velociad de ejecución– Intercalar procesamiento con lectura de próximo job
• Estructura modular del programa
![Page 9: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/9.jpg)
9
Estados de una hebra
• Los estados típico son Running, Ready, y Blocked• Cuando un proceso es suspendido (swap-out), todas las hebras
son suspendiadas• Si una hebra es bloqueada (estado Blocked), ¿qué pasa con las
otras hebras del mismo proceso? (ver ejemplo que sigue)• Operaciones típicas que involucran estados
– Spawn• Un proceso• Una hebra
– Block.• Por ejemplo debido a I/O
– Unblock– Término
![Page 10: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/10.jpg)
10
• RPC monohebra.
• RPC multihebra.
![Page 11: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/11.jpg)
11
Multi hebras en mono procesador
![Page 12: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/12.jpg)
12
Hebras nivel usuario versus nivel kernel
• Existen dos categorías generales de implementación de hebras: nivel de usuario y nivel de kernel
• Nivel de usuario– Toda la administración de las hebras la realiza la aplicación misma
(proceso) o por librerías de manejo de hebras
– El kernel no sabe que el proceso tiene varias hebras y planifica (scheduled) el proceso no las hebras
– El kernel podría ser mono hebrado
![Page 13: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/13.jpg)
13
![Page 14: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/14.jpg)
14
Hebras a nivel de usuario
• Ventajas– Cambio de contexto no necesita privilegios del kernel y es más rápido
– Scheduling puede depender y ser específico a la aplicación
– Pueden ser implementadas en cualquier SO, y no requieren cambios al kernel
• Desventajas– Cuando una hebra se boquea, el proceso entero se bloquea
– Aunque exista varios procesadores, la hebras no podrían hacer uso de ellos en forma paralela
![Page 15: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/15.jpg)
15
Hebras a nivel de kernel
• Toda la administración de hebras la realiza el kernel (sistema puro)
• Windows es un ejemplo de este modo • El kernel mantiene información de contexto por el
proceso y por la hebras del proceso• Scheduling es al nivel de hebra• Ventajas:
– Se puede explotar múltiples procesadores– Si una hebra se bloquea, el control de la CPU puede pasar a otra hebra
• Desventaja: cambio de contexto entre hebras requiere la intervención del kernel
![Page 16: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/16.jpg)
16
VAX Running UNIX-Like Operating System
![Page 17: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/17.jpg)
17
Sistemas híbridos• La creación de hebras se hace a nivel de usuario
• Parte de la sincronización y scheduling tambien se hace a nivel de usuario
• Ejemplo es Solaris
• La hebras a nivel de usuario se mapean (corren) sobre un número variable de hebras de kernel
![Page 18: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/18.jpg)
18
Otros modelos
![Page 19: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/19.jpg)
19
Multiprocesamiento simétrico (SMP)
![Page 20: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/20.jpg)
20
Modelos de computación
• Single Instruction Single Data (SISD) stream– Un flujo simple de instrucciones operan sobre una sequencia simple de
datos almacenados en memoria
• Single Instruction Multiple Data (SIMD) stream– Un mismo flujo de instrucciones opera sobre conjuntos diferentes de
datos por diferentes unidades de procesamiento (procesadores vectoriales)
• Multiple Instruction Single Data (MISD) stream– Una secuencia de datos se transmite a un conjunto de procesadores, los
cuales ejecutan un operación distinta sobre ellos (nunca implementada)
• Multiple Instruction Multiple Data (MIMD) stream– Un conjunto de procesadores ejecutan instrucciones diferentes sobre
conjuntos de datos diferentes simultáneamente
![Page 21: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/21.jpg)
21
![Page 22: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/22.jpg)
22
Modelos de asignación de procesos
• Maestro/esclavo : El kernel del SO siempre corre en un procesador dado (maestro). El maestro envia procesos usuarios a los esclavos– Ventajas: simple,– Desventajas: Si se cae el maestro, todo el sistema se cae. También, el
maestro puede ser un cuello de botella
• Simétrico (SMP): El kernel se puede ejecutar en cualquier procesador– El kernel se puede construir como múltiples procesos o hebras– Cada procesador puede planifica sus propios procesos desde un pool de
procesos disponibles– Desventaja: complicado
![Page 23: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/23.jpg)
23
![Page 24: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/24.jpg)
24
Consideraciones de diseño de SO SMP
• Ejecución simultánea de procesos o hebras – El código del kernel debe ser reentrante
• Scheduling– Cualquier procesador puede realizar su propio scheduling
• Sincronización– Se debe controlar el acceso simultáneo a la memoria compartida y
dispositivos de I/O compartidos
• Administración de memoria – Además de todos los problemas típicos asociados con la administración
de memoria, el SO debe explotar el paralelismo que el hardware le provee, como por ejemplo las memorias multipuerto
• Confiabilidad y tolerancia a fallas– El SO debe estar preparado por si un procesador falla
![Page 25: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/25.jpg)
25
Microkernels
• Núcleo pequeño del sistema operativo que provee sólo las funciones escenciales
• Muchos servicios que tradicionalmente son incluidos en el SO son dejados fuera del microkernel– Drivers de los dispositivos
– Sistemas de archivos
– Administrador de memoria virtual
– Sistema de ventanas
– Servicios de seguridad
![Page 26: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/26.jpg)
26
• En un microkernel, los componentes externos a él son implementados como procesos servidores, los cuales se comunican con paso de mensajes a través del microkernel
![Page 27: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/27.jpg)
27
Beneficios de una organizacion microkernel
• Interface uniforme para pedir servicios por los procesos – No hay distincion entre servicios a nivel de kernel o nivel de usuario – Todos los servicios se proveen mediante paso de mensajes
• Extensibilidad– Facilita la adición de nuevos servicios– Sólo los servidores involucrados son modificados– El microkernel no se modifica
• Flexibilidad– Facilita la adición de nuevas características– Facilita la eliminación características obsoletas
• Portabilidad– Cambios para portar el SO a una nueva arquitectura se realizan sólo en el
microkernel, no servicios
• Confiabilidad– Diseño modular– Es más facil depurar un microkernel pequeño que un gran SO monolítico
![Page 28: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/28.jpg)
28
Diseño de Microkernel
• Un microkernel debe incluir funciones:– que dependen directamente del hardware– de apoyo a los servidores operando en modo usuario
• Estas funciones caen en la siguientes categorias generales:– Administración de bajo nivel de memoria– Comunicación entre procesos– I/O– Administración de interrupciones
![Page 29: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/29.jpg)
29
Windows Processes
• Implemented as objects
• An executable process may contain one or more threads
• Both processes and thread objects have built-in synchronization capabilities
![Page 30: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/30.jpg)
30
![Page 31: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/31.jpg)
31
Windows Process Object
![Page 32: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/32.jpg)
32
Windows Thread Object
![Page 33: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/33.jpg)
33
Windows 2000Thread States
• Ready
• Standby
• Running
• Waiting
• Transition
• Terminated
![Page 34: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/34.jpg)
34
![Page 35: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/35.jpg)
35
Solaris
• Process includes the user’s address space, stack, and process control block
• User-level threads
• Lightweight processes (LWP)
• Kernel threads
![Page 36: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/36.jpg)
36
![Page 37: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/37.jpg)
37
![Page 38: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/38.jpg)
38
Solaris Lightweight Data Structure
• Identifier
• Priority
• Signal mask
• Saved values of user-level registers
• Kernel stack
• Resource usage and profiling data
• Pointer to the corresponding kernel thread
• Pointer to the process structure
![Page 39: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/39.jpg)
39
![Page 40: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/40.jpg)
40
Linux Task Data Structure
• State
• Scheduling information
• Identifiers
• Interprocess communication
• Links
• Times and timers
• File system
• Address space
• Processor-specific context
![Page 41: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/41.jpg)
41
Linux States of a Process
• Running
• Interruptable
• Uninterruptable
• Stopped
• Zombie
![Page 42: 1 Hebras, SMP, y Microkernels Capítulo 4. 2 Dos características de un proceso Propietario de Recursos –un proceso incluye un espacio virtual de direcciones.](https://reader035.fdocumento.com/reader035/viewer/2022062519/5665b4641a28abb57c9126ec/html5/thumbnails/42.jpg)
42