Contenidos
Concepto de proceso
Estructuras de datos: BCP y colas de
procesos
Niveles de planificación
Creación y finalización de procesos
Hilos
Estructuras de datos: BCP y colas de
procesos
Niveles de planificación
Creación y finalización de procesos
Hilos
Concepto de 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:
código
datos (variables globales, memoria dinámica)
pila (parámetros y variables locales de subrutinas)
Un proceso necesita recursos para poder
ejecutarse: memoria, dispositivos de E/S, la
CPU, etc.
Áreas típicas de la memoria:
código
datos (variables globales, memoria dinámica)
pila (parámetros y variables locales de subrutinas)
Estados de un proceso
A medida que un proceso se ejecuta, cambia
de estado:
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
de estado:
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
Estados de un proceso
Bloque de control de proceso
(BCP)
Para cada proceso, el S.O. debe guardar suestado y cualquier otra información que debe
mantenerse mientras no está en ejecución.
Bloque de control de proceso:
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.
Planificación de procesos
Objetivo de la multiprogramación:
Maximizar el aprovechamiento de la CPU
Objetivo del tiempo compartido
Conmutar la CPU entre procesos con tal frecuencia
que los usuarios puedan interactuar con cada
programa durante su ejecución
Sistemas con un solo procesador
Los procesos esperan por CPU y por dispositivos de
E/S
Niveles de planificación
Creación de procesos
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:
compartición de recursos: ¿todos, algunos, ninguno?
espacio de memoria
sincronización del padre: ¿espera a que el hijo termine?
terminación
sistema.
El proceso creador se denomina padre, y el
creado, hijo.
Variantes en las relaciones padre/hijo:
compartición de recursos: ¿todos, algunos, ninguno?
espacio de memoria
sincronización del padre: ¿espera a que el hijo termine?
terminación
Ejemplos de llamadas al
sistema
Windows:
CreateProcess: se indica el fichero ejecutable donde
está el código del hijo
está el código del hijo
UNIX:
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)
padre
exec: sustituye el código por un nuevo fichero
ejecutable (no crea un nuevo proceso)
Terminación de procesos
Un proceso termina cuando invoca a unallamada 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
Relaciones de comunicación entre
procesos
Los procesos pueden tener distintas relacionesde comunicación entre sí:
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
Hilos (threads)
Un hilo o proceso ligero es una unidad básica deejecución, con su propio:
contador de programa
registros de CPU
pila (stack)
Los hilos dentro de una misma aplicación
comparten:
código y datos
recursos del S.O. (ficheros, E/S, etc.)
NOTA: thread se pronuncia “zred”, NO “zrid”
Procesos pesados e hilos
Dos niveles de procesos:procesos pesados
procesos ligeros o hilos
Un proceso pesado contiene uno o varios hilos
que comparten la misma memoria y recursos.
¿Quién implementa los hilos?
el sistema operativo
el programa de usuario
No hay comentarios:
Publicar un comentario