Actualizado el 24 de Noviembre del 2018 (Publicado el 24 de Enero del 2017)
1.590 visualizaciones desde el 24 de Enero del 2017
2,0 MB
98 paginas
Creado hace 24a (16/10/2000)
Sistemas Operativos I
Tema 3
Procesos
Equipo de Sistemas Operativos DISCA / DSIC
UPV
Tema 3: Procesos
? Introducción
Existen varias razones para permitir la ejecución concurrente de procesos:
? Compartir recursos físicos
? Compartir recursos lógicos
? Acelerar los cálculos
? Modularidad
? Comodidad
? Objetivos del tema:
? Profundizar en el concepto de proceso
? Dar a conocer la implementación del modelo de procesos
? Estudiar las diferentes políticas de planificación del procesador
Sistemas Operativos I (00-01)
Tema 3: Procesos
2
Tema 3: Procesos
? Índice
? Bibliografía
1.- Concepto de proceso.
2.- Implementación de procesos.
3.- Hilos de ejecución (threads).
4.- Conceptos de planificación.
5.- Criterios de planificación.
6.- Algoritmos de planificación.
7.- Evaluación de algoritmos.
8.- S.O. dirigido por eventos.
? A. Silberschatz, P. Galvin.
Sistemas Operativos. 5ª ed.
?Tema 4
? W. Stallings.
Sistemas Operativos 2ª ed.
?Tema 3.
Sistemas Operativos I (00-01)
Tema 3: Procesos
3
Tema 3: Procesos
? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.
3.- Hilos de ejecución (threads).
4.- Conceptos de planificación.
5.- Criterios de planificación.
6.- Algoritmos de planificación.
7.- Evaluación de Algoritmos.
8.- S.O. dirigido por eventos.
Sistemas Operativos I (00-01)
Tema 3: Procesos
4
1.- Concepto de proceso
? Concepto de proceso:
Existen diferentes visiones complementarias del concepto de proceso:
? Programa en ejecución.
? Unidad de asignación de recursos.
? Proceso como procesador virtual.
Sistemas Operativos I (00-01)
Tema 3: Procesos
5
1.- Concepto de proceso
? Proceso como programa en ejecución:
? Programa: Lista de instrucciones. Ente pasivo.
? Proceso: Programa en ejecución. Ente activo. Pasa por una serie de
estados
? Un programa reside normalmente en un fichero que se encuentra
físicamente en el disco y es cargado en memoria cuando se crea el
proceso para ejecutarlo.
? Puede haber dos o más procesos asociados a la ejecución de un mismo
programa. Es habitual que un proceso genere más procesos durante su
ejecución.
Sistemas Operativos I (00-01)
Tema 3: Procesos
6
1.- Concepto de proceso
? Proceso como procesador virtual:
? Proceso: cada una de las actividades paralelas que se ejecutan en la
máquina. Da la apariencia de que todas ellas se ejecutan sobre
procesadores diferentes en paralelo.
? Ejemplos:
?Procesos de usuario: Un proceso de edición de un sistema de tiempo
compartido. Un trabajo en un sistema por lotes. La compilación de un
programa fuente en Pascal: el programa que ejecuta el proceso es el
propio compilador.
?Procesos del sistema: “swapper” (que decide qué procesos hay que
extraer de la memoria o introducir en ella cuando la cantidad de
memoria libre no llega o supera ciertos límites), “pagedeamon” (es el
encargado de utilizar reemplazo para liberar marcos y pasarlos a la
reserva).
Sistemas Operativos I (00-01)
Tema 3: Procesos
7
1.- Concepto de proceso
? Proceso como procesador virtual:
? El sistema operativo simula la existencia de N procesadores virtuales
(procesos) a partir de una CPU o procesador físico.
?Cada procesador virtual ejecuta
secuencialmente
un único
programa.
?Todos los procesos se ejecutan concurrentemente
Sistemas Operativos I (00-01)
Tema 3: Procesos
8
1.- Concepto de proceso
? Ejecución secuencial y ejecución concurrente.
? Ejecución secuencial: La ejecución de un proceso se dice que es
secuencial porque sus operaciones son ejecutadas por la CPU una tras
otra, en el orden que dicte el programa.
? Ejecución concurrente: La ejecución de dos procesos se dice que es
concurrente porque estos se pueden ejecutar en paralelo.
?Concurrencia real: Si cada proceso se ejecuta sobre una CPU.
?Concurrencia virtual: La CPU reparte su tiempo entre los
procesos para simular su ejecución paralela.
Sistemas Operativos I (00-01)
Tema 3: Procesos
9
1.- Concepto de proceso
? Proceso como unidad de asignación de recursos:
? Para ejecutar un programa se necesita un entorno formado por una serie
de recursos: memoria, descriptores de ficheros y otros atributos del
proceso.
? Un proceso se puede considerar como la unidad de propiedad de todos
esos recursos.
P1
Tiempo
de CPU
Memoria
Tabla de
descriptores
ficheros
Otros
atributos
Sistemas Operativos I (00-01)
Tema 3: Procesos
10
1.- Concepto de proceso
? Estados de un proceso
Al ejecutar un proceso éste va cambiando de estado. El estado de un proceso
se define como el comportamiento que presenta en un instante dado:
? Activo: El proceso se puede ejecutar. No hay impedimentos en asignarle
alguna CPU.
?Ejecución: El proceso tiene asignada una CPU, las instrucciones se
están ejecutando.
?Preparado: El proceso puede ser ejecutado pero está esperando que
se le asigne una CPU libre. Puede haber varios procesos en este
estado.
? Suspendido: No puede ser ejecutado porque el proceso se encuentra
esperando un evento como:
?la finalización de una operación de E/S (una lectura de teclado)
?la comunicación con otro proceso, etc.
Sistemas Operativos I (00-01)
Tema 3: Procesos
11
1.- Concepto de proceso
? Estados de un proceso:
Proceso terminado
por otro proceso
ACTIVO
Admitido
Elegido Planificador
Terminación
TERMINADO
NUEVO
PREPARADO
Expulsión
EN
EJECUCIÓN
Fin E/S
o
llegada evento
Esperar E/S
o evento
SUSPENDIDO
Proceso terminado
por otro proceso
Sistemas Operativos I (00-01)
Tema 3: Procesos
12
1.- Concepto de proceso
? Operaciones sobre procesos (1)
? Creación: Supone asignar todos los recursos que el proceso necesita para
su ejecución, como p.e. memoria.
?Ejemplo en UNIX: fork(). La utiliza el proceso init para crear un proceso
que gestione cada terminal y el shell cada vez que recibe una nueva
orden del usuario (si ésta es externa).
? Terminación: Supone
proceso. Esta terminación puede ser:
liberar
los recursos previamente asignados al
?Terminación normal: El proceso invoca su propia terminación.
Ejemplo en UNIX: exit()
?Terminación anormal: El proceso termina por iniciativa del sistema
operativo al detectar alguna condición de error (violación de límites,
errores aritméticos) o por iniciativa de algún otro proceso.
Ejemplo en UNIX: kill() y señales.
Sistemas Operativos I (00-01)
Tema 3: Procesos
13
1.- Concepto de proceso
? Operaciones sobre procesos (2):
? Suspensión: Supone pasar un proceso al estado suspendido para que
espere un evento o E/S.
?Ejemplo en UNIX: read() sobre un tubo vacío.
? Activación: Pasar un proceso al estado activo cuando se produce el
evento que esperaba.
?Ejemplo en UNIX: un proceso efectúa un write() sobre un tubo en el
que había un lector esperando. El lector se reactiva.
Sistemas Operativos I (00-01)
Tema 3: Procesos
14
1.- Concepto de proceso
? Estados de un proceso en UNIX
En ejec.
(usuario)
ESTADOS
ACTIVOS
Empieza
fork()
inicial
Fin de
interrup. o
llamada al sist.
Interrupción o
llamada al sistema
wait()
exit()
zombie
Acaba
fork()
En ejec.
(núcleo)
Cambios
contexto
de
Espera evento
Ocurre evento
suspendido
preparado
SIGCONT
SIGSTOP
parado
Sistemas Operativos I (00-01)
Tema 3: Procesos
15
Tema 3: Procesos
? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.
3.- Hilos de ejecución (threads).
4.- Conceptos de planificación.
5.- Criterios de planificación.
6.- Algoritmos de planificación.
7.- Evaluación de Algoritmos.
8.- S.O. dirigido por eventos.
Sistemas Operativos I (00-01)
Tema 3: Procesos
16
2.- Implementación de procesos
Para implementar procesos es conveniente pensar en un proceso como un procesador
virtual que ejecuta un programa y que se implementa a partir de un procesador físico.
? La implementación de procesos requiere:
? Bloque de control de un proceso PCB (Process Control Block): es una
estructura de datos para administrar el proceso. Almacena información de un
proceso.
? Asignar los recursos necesarios para su ejecución, fundamentalmente la
memoria para almacenar el código, los datos y la pila.
? Multiplexar la CPU entre los procesos: repartir el tiempo de la CPU entre los
diferentes procesos para simular la ejecución paralela (concurrencia virtual).
? Bloque de control del sistema: es una estructura de datos que el sistema utiliza
para controlar la ejecución de los procesos. Almacena información de todos los
procesos.
Sistemas Operativos I (00-01)
Tema 3: Procesos
17
2.- Implementación de procesos
? Bloque de Control de proceso (PCB):
Es una estructura de datos donde se almacenan los atributos de un proceso, es decir,
la información asociada a un proceso. En un sistema de multiprogramación se
requiere un gran cantidad de información de cada proceso para su administración.
Esta información puede agruparse en tres categorías:
? Identificación de Proceso: a cada proceso se le asigna un identificador numérico
único (puede ser tan simple como un índice en la tabla de procesos).
? Información de estado del procesador (Contexto): Básicamente está formada
por el contenido de los registros del procesador. Cuando se interrumpe un
proceso, el contenido de los registros del procesador debe salvarse de forma que
pueda restaurarse cuando el proceso reanude su ejecución
? Información de control del proceso: Información necesaria para que el sistema
operativo controle y coordine los diferentes procesos.
Sistemas Operativos I (00-01)
Tema 3: Procesos
18
2.- Implementación de procesos
? Identificación de Procesos. El PCB guarda:
? Identificador de este proceso.
? Identificador
Comentarios de: Sistemas Operativos I - Tema 3 - Procesos (0)
No hay comentarios