1 Sistemas Operativos Tema 5. Procesos

Anuncio
Contenidos
Sistemas Operativos
Tema 5. Procesos
n 
n 
n 
n 
n 
Concepto de proceso
Estructuras de datos: BCP y colas de
procesos
Niveles de planificación
Creación y finalización de procesos
Hilos
© 1998-2012 José Miguel Santos – Alexis Quesada – Francisco Santana
1
Concepto de proceso
n 
n 
n 
Estados de un proceso
Un proceso es un programa en ejecución
Un proceso necesita recursos para poder
ejecutarse: memoria, dispositivos de E/S, la
CPU, etc.
Áreas típicas de la memoria:
q 
q 
q 
2
n 
A medida que un proceso se ejecuta, cambia
de estado:
n 
n 
n 
n 
código
datos (variables globales, memoria dinámica)
pila (parámetros y variables locales de subrutinas)
n 
nuevo: recién creado por el S.O.
en ejecución: está en la CPU ejecutando instrucciones
bloqueado: esperando a que ocurra algún evento (ej.
una operación de E/S)
preparado: esperando a que le asignen un procesador
terminado: no ejecutará más instrucciones y el S.O. le
retirará los recursos que consume
3
Estados de un proceso
nuevo
Bloque de control de proceso
(BCP)
llamada al sist.
o excepción
admitido
4
planificador
n 
terminado
n 
preparado
ejecución
Para cada proceso, el S.O. debe guardar su
estado y cualquier otra información que debe
mantenerse mientras no está en ejecución.
Bloque de control de proceso:
n 
n 
interrupción
n 
n 
finaliza la operación u
ocurre el evento
llamada al sist. de E/S o
espera por un evento
n 
n 
bloqueado
n 
5
estado actual (preparado, en espera...)
registros de la CPU (contador de programa, otros registros)
información del planificador (id, prioridad, etc.)
apuntadores a las zonas de memoria del proceso
info. de contabilidad (tiempo consumido, etc.)
info. de E/S (dispositivos por los que espera, lista de archivos
abiertos, etc.)
etc.
6
1
Planificación de procesos
n 
n 
Maximizar el aprovechamiento de la CPU
Objetivo del tiempo compartido
q 
n 
n 
Objetivo de la multiprogramación:
q 
n 
Cola de planificación
Conmutar la CPU entre procesos con tal frecuencia
que los usuarios puedan interactuar con cada
programa durante su ejecución
n 
Conjunto de procesos esperando por la utilización de un
determinado recurso
Generalmente se implementa mediante una lista encadenada,
donde cada elemento es una estructura de control que
representa la petición a servir
Su administración se lleva a cabo de acuerdo con la política de
planificación ejecutada por el planificador del recurso
PLANIFICADOR
(política de
planificación)
Sistemas con un solo procesador
q 
Los procesos esperan por CPU y por dispositivos de
E/S
cola de planificación
recurso
estructura de control (petición)
7
Colas de procesos
n 
8
Procesos: ubicación en memoria
El S.O. organiza los BCP en colas de espera por el procesador
o por los dispositivos de E/S. (colas de planificación: cola de
procesos, colas de dispositivos)
cola de preparados
SO
Espacio
del núcleo
BCPPA
BCPPB
BCPPN
.
.
.
BCPPA
CPU
código
Proceso
de
usuario A
datos
E/S
cola de espera por E/S
pila
..
.
BCPPB
Espacio de
usuario
código
E/S
Proceso
de
usuario B
datos
cola de espera por E/S
pila
.
.
.
9
Niveles de planificación
n 
n 
n 
n 
10
Niveles de planificación
En los sistemas por lotes, existe un planificador de
largo plazo (PLP) o de alto nivel, que suministra
procesos a la cola de preparados.
El planificador de corto plazo o de bajo nivel es el que
asigna y desasigna la CPU.
El PLP trata de conseguir una mezcla adecuada de
trabajos intensivos en CPU y en E/S. Se ejecuta con
poca frecuencia.
Planificador de medio plazo. Envía al disco procesos
bloqueados, para liberar memoria principal a los otros
procesos => Intercambio (swapping).
11
cola de
trabajos
PCP
PLP
cola de preparados
E/S
CPU
cola de espera por E/S
PMP
memoria secundaria
12
2
Cambio de contexto
(context switch)
n 
n 
n 
n 
Cambio de contexto
proceso P0
Es la operación que consiste en desalojar a un proceso
de la CPU y reanudar otro.
Hay que guardar el estado del proceso que sale en su
BCP, y recuperar los registros del proceso que entra.
Cada contexto se encuentra en cada BCP.
El cambio de contexto es tiempo perdido, así que debe
ser lo más rápido posible.
Para minimizar ese tiempo perdido:
n 
n 
sistema operativo
proceso P1
interrupción o llamada al sistema
guardar estado en BCP0
..
.
en ejecución
ocioso
recuperar estado en BCP1
ocioso
interrupción o llamada al sistema
en ejecución
guardar estado en BCP1
..
.
El hardware a veces tiene instrucciones para facilitar el cambio de
contexto (ej. PUSHA = guardar todos los registros)
Hilos (threads)
ocioso
recuperar estado en BCP0
en ejecución
13
Creación de procesos
n 
n 
n 
Ejemplos de llamadas al
sistema
Un proceso se crea mediante una llamada al
sistema.
El proceso creador se denomina padre, y el
creado, hijo.
Variantes en las relaciones padre/hijo:
n 
n 
n 
n 
14
n 
Windows:
q 
n 
UNIX:
q 
compartición de recursos: ¿todos, algunos, ninguno?
espacio de memoria
sincronización del padre: ¿espera a que el hijo termine?
terminación
CreateProcess: se indica el fichero ejecutable donde
está el código del hijo
q 
fork: crea un proceso hijo que es un duplicado del
padre
exec: sustituye el código por un nuevo fichero
ejecutable (no crea un nuevo proceso)
15
Terminación de procesos
n 
n 
n 
n 
16
Relaciones de comunicación entre
procesos
Un proceso termina cuando invoca a una
llamada al sistema específica (ej. exit)
También si se genera una excepción y el S.O.
decide abortarlo
En UNIX, cuando un proceso termina, con él
muere su descendencia (genocidio)
Podría existir una llamada al sistema para
abortar otro proceso
n 
Los procesos pueden tener distintas relaciones
de comunicación entre sí:
q 
q 
n 
n 
17
independientes/competidores
cooperantes
Los procesos independientes compiten por el
uso de recursos escasos (ej. CPU, E/S)
Los procesos cooperantes colaboran entre sí
para llevar a cabo un objetivo común
18
3
Hilos (threads)
n 
Un hilo o proceso ligero es una unidad básica de
ejecución, con su propio:
n 
n 
n 
n 
contador de programa
registros de CPU
pila (stack)
n 
n 
Dos niveles de procesos:
n 
n 
n 
Los hilos dentro de una misma aplicación
comparten:
n 
n 
Procesos pesados e hilos
n 
Un proceso pesado contiene uno o varios hilos
que comparten la misma memoria y recursos.
¿Quién implementa los hilos?
n 
código y datos
recursos del S.O. (ficheros, E/S, etc.)
procesos pesados
procesos ligeros o hilos
n 
el sistema operativo
el programa de usuario
NOTA: thread se pronuncia “zred”, NO “zrid”
19
Procesos pesados e hilos
código
20
¿Por qué los hilos?
datos
n 
El objetivo es facilitar la escritura de
aplicaciones concurrentes cooperativas:
n 
n 
hilo1
hilo2
hilo3
pila1
pila2
pila3
n 
Dado que todos los hilos comparten los recursos, un proceso
pesado puede contener decenas de hilos sin mucho coste
adicional (sólo los pequeños BCP de sus hilos)
La comunicación entre los hilos del proceso es más sencilla
(usando la memoria que comparten)
El cambio de contexto entre hilos de un mismo proceso
pesado es menos costoso
Proceso pesado
21
22
4
Descargar