Procesos e hilos

Solo disponible en BuenasTareas
  • Páginas : 7 (1583 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de noviembre de 2010
Leer documento completo
Vista previa del texto
Procesos e hilos

Contenidos

(T4)

Procesos y sistema operativo Estructura de un proceso en UNIX Bloque de control de procesos Hilos (Threads) Estructura de una tarea con n hilos Hilos vs procesos Hilos en espacio de usuario Hilos soportados por el SO Hilos y procesos en Linux Imagen de un proceso sobre i80x86 Diagrama de estados Información de la task_struct Hilos y procesos en W2K Imagende un proceso sobre i80x86

Process block Thread block

Diagrama de estados (threads)
Procesos e hilos
2

1

Procesos y sistema operativo
Programa: entidad estática Proceso: programa en ejecución El sistema operativo proporciona:
Espacio de memoria independiente: código, datos, pila, … Tiempo de procesador propio Recursos propios

Objetivo del multiprocesamiento:
Mejoraprovechamiento de los recursos físicos Compartición de recursos lógicos Aumento del rendimiento del procesador Conveniencia (incluso en sistemas monousuario)

Procesos e hilos

3

Estructura de un proceso en UNIX (i)
Contexto de usuario Texto (código) Datos iniciados de sólo lectura Datos iniciados de lectura-escritura Datos no iniciados Área dinámica (heap) Contexto del núcleo Datos del núcleoPila

Ejemplo: Llamadas al sistema fork y exec
Procesos e hilos
4

2

Estructura de un proceso en UNIX (ii)
Bloque de control de procesos
Es la manifestación de que existe un proceso Estructura del SO para controlar a todos los procesos que existen en el sistema Almacena:
Estado actual del proceso Identificación unívoca del proceso Prioridad del proceso Puntero a la zona de memoriaasignada Puntero a los archivos abiertos Punteros a los recursos asociados Área de salvaguarda de registros Un puntero al siguiente PCB
Procesos e hilos
5

Hilos (Threads) (i)
Objetivo: compartir recursos entre procesos cooperantes Hilo = unidad fundamental de uso de procesador
Se compone de: CP, una serie de registros y área de pila Comparte con otros hilos cooperantes (de una tarea) código,datos y recursos del SO

Una tarea (task):
No tiene capacidad de ejecución Posee el código, los datos y los recursos compartidos que comparten varios hilos Cada hilo sólo puede pertenecer a una tarea

Un proceso tradicional (pesado) se compone de una tarea con un hilo de ejecución
Procesos e hilos
6

3

Hilos (Threads) (ii)
La mayoría de los SS.OO. modernos soportan threads (OS/2, Mach,W2K, Chorus, Linux, etc). ¿Cómo programar con hilos? Bibliotecas estándar “DCE Threads”, POSIX Threads, Sun threads, etc. Los threads son adecuados en sistemas distribuidos y sistemas multiprocesador

Procesos e hilos

7

Hilos (Threads) (iii)

Estructura de una tarea con n hilos
Contexto de usuario Texto (código) Datos iniciados de sólo lectura Datos iniciados de lectura-escritura Datosno iniciados Área dinámica (heap)
Registros máquina sp Registros máquina sp

Contexto del núcleo Datos del núcleo

pc Pila 1 Pila 2 pc

pc Registros máquina sp



Pila n

Procesos e hilos

8

4

Hilos (Threads) (iv)
Hilos vs procesos
Se crean y destruyen más rápidamente que los procesos No es necesario asignar recursos, los posee la tarea La conmutación (en la misma tarea)requiere de menor coste que la conmutación de procesos, sólo es necesario salvar los registros y conmutar la pila Los hilos de una tarea comparten el mismo espacio de direccionamiento virtual Existe menor sobrecarga de comunicaciones, todos los hilos de una tarea comparten memoria

Procesos e hilos

9

Hilos (Threads) (v)

Hilos en espacio de usuario / soportados por el SO
Los hilos puedenser implementados en espacio de usuario o ser soportados por el núcleo T1 T2 T3

S.O T1 T2 T3

En espacio de usuario

Soportados por el núcleo S.O
Procesos e hilos
10

5

Hilos (Threads) (vi)

Hilos en espacio de usuario
Los hilos son soportados por una biblioteca El SO no sabe que existen hilos Ventajas:
La conmutación entre hilos se puede realizar rápidamente sin ayuda del SO...
tracking img