Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Administración de Procesos
1 /58
Tabla de contenido
• Kernel
• Descripción y control de procesos
• Descripción de procesos
• Control de procesos
• Bloque de control de procesos
• Modos de ejecución
2 /58
KERNEL
3 /58
Estructura del Kern
El kernell está conformado por 5 grandes subsistemas.
4 /58
Descomposición Conceptual
5 /58
DESCRIPCION Y CONTROL
DE PROCESOS
6 /58
Requerimientos de un S.O en Procesos
• Intercalar la ejecución de un conjunto de procesos para
maximizar el uso del procesado para ofrecer tiempos de
respuesta razonables.
• Asignar recursos a los procesos de conformidad a una
política específica (ejemplo prioridades), evitando el
interbloqueo.
• Soporte a la comunicación entre procesos y la creación
de procesos por parte del usuario.
7 /58
Proceso
• También son llamados tareas.
• Puede ser trazado:
– Lista de la secuencia de instrucciones que ejecuta.
• Los procesos llevan a cabo tareas en el sistema operativo.
• Es un conjunto de instrucciones almacenados en el DD, se
activan cuando se les asigna un espacio de direcciones.
• Es una entidad dinámica que cambia a medida que el
procesador ejecuta las instrucciones.
• Un SO es multi-proceso, en el sentido que pueden
ejecutarse varios procesos a la vez.
• Un SO es multi-proceso, en el sentido que puede correr en
una máquina con varios procesadores.
8 /58
Estado de un Proceso
• Un proceso es una secuencia de instrucciones que se
puede ejecutar en paralelo con otra secuencia de
instrucciones.
• El procesado ejecuta las instrucciones
• Traza de un proceso.
• El comportamiento de un proceso se se caracteriza por
el listado de la secuencia de instrucciones que se
ejecutan para dicho proceso.
• El comportamiento del procesador se puede caracterizar
mostrando la forma en que se intercalan las trazas de
dichos procesos.
9 /58
Ejemplo de Procesos en Memoria
• No hay memoria virtual
• Tres programas cargados
en memoria.
• Cada proceso representa
a un programa.
• Existe un programa que
asigna el procesador de
un proceso a otro.
• Cada proceso tiene un
tiempo de ejecución
luego de lo cual ingresa
el siguiente proceso
10 /58
Traza de los tres procesos
Invocación
a E/S
11 /58
Traza de tres
procesos
12 /58
13 /58
ESTADOS DE UN PROCESO
14 /58
Modelo de Procesos con Dos Estados
• El SO controla la ejecución de los procesos (se necesita
saber en qué estado se encuentra cada uno).
• Cada proceso puede tener dos estados:
– En ejecución.
– No en ejecución.
• Abajo se presenta el diagrama de transición de estados.
15 /58
Cola de procesos (2 estados)
16 /58
Creación de Procesos
1. Nuevo trabajo por lotes. Creación de un nuevo trabajo.
17 /58
Terminación de Procesos
• Instrucción Halt incluida • Tiempo límite excedido.
en la tarea (bach). • No hay memoria
• Solicitado por el usuario disponible.
(salir de sesión). • Violación de límites.
• Terminación normal. • Error de protección
• Salir del programa. • Error aritmético
• Terminación del padre. • Fallo de E/S (máximo de
• Solicitud del padre. intentos)
• Instrucción invalidad.
• Instrucción priviligeada.
• Violación de memoria.
18 /58
Necesidad de nuevos estados
• No corriendo
– Preparado para ser ejecutado.
• Bloqueado
– Esperando por E/S
19 /58
Modelo de Procesos con 5 Estados
Modelo de Procesos con 5 Estados
• Corriendo (Running). Proceso en ejecución.
• Preparado (Ready). Preparado para ser ejecutado,
cuando se le de la oportunidad.
• Bloqueado (Blocked). Esperan hasta que ocurra un
evento o suceso.
• Nuevo (New). Proceso nuevo pero no admitido por el
sistema
• Terminado (Exit). Proceso excluido por el sistema, pero
terminado
21 /58
Usando dos colas
22 /58
Varias de colas de bloqueados
23 /58
Procesos Suspendidos
• El modelo planteado de tres estados (listo, ejecución y
bloqueado) ayuda mucho, pero no es suficiente.
• Dado que para que un proceso se ejecute debe ser
cargado en memoria completamente.
• Por lo que sería conveniente suspenderlos:
– El procesador es más rápido que la E/S así que todos
los procesos tendrían que esperar la E/S.
– Intercambiar esos procesos al disco para liberar más
memoria.
– Dos nuevos estados:
• Bloqueado - suspendido.
• Listo - suspendido.
24 /58
Un estado suspendido
25 /58
Dos estados suspendidos
26 /58
Razones para suspender procesos
• Intercambio (swapping).
– El SO necesita liberar suficiente memoria RAM para cargar un
nuevo proceso.
• Otra razon del SO.
– El SO puede un proceso que se sospecha causa un problema.
• Solicitud del usuario.
• Por tiempo.
– Se ejecuta con cierta frecuencia, entonces mientras no se usa
se suspende.
• Solicitud del proceso padre.
– El padre desea suspenderlo para examinar o modificar el
proceso o para coordinar con otros procesos.
27 /58
DESCRIPCION DE PROCESO
28 /58
Descripción de Proceso
• En un entorno multiprogramado muchos procesos
requieren y están haciendo uso de recursos.
29 /58
Estructuras de Control del SO
• Para administrar
todo lo que pasa
en el sistema el
SO construye y
mantiene tablas
de información
de cada entidad
que esté
administrando.
30 /58
Tablas de Memoria
• Se utiliza para administrar la memoria virtual y la
memoria real.
– Asignación de memoria principal a los procesos.
– Asignación de memoria secundaria a los procesos.
– Atributos de protección para acceso a regiones de
memoria compartida.
– Información necesaria para administrar la memoria
virtual.
31 /58
Tablas de E/S
• Se utiliza para administrar los dispositivos y canales
DES:
– Estado del DES: disponible o asignado.
– Estado de una operación con el DES.
– Ubicación en la memoria principal que ha sido usada
como fuente o destino de una operación de E/S
32 /58
Tabla de Archivos
• Existencia de archivos.
– Ubicación en la memoria secundaria.
– Estado actual
– Atributos.
– A veces esta información es mantenida por el sistema
de administración de archivos (file-management
system).
33 /58
Tabla de Procesos
• Permite administrar la información de cada proceso
– Donde está ubicado - proceso en memoria
- imagen del proceso
34 /58
Estructuras de Control
• Para que el SO administre los proceso debe de conocer:
– Ubicación de proceso.
– Atributos.
35 /58
Ubicación de los Procesos
• Variables locales
BCP • Variables globales
• Constantes
• Pila
Memoria RAM
36 /58
Atributos
• Bloque de Control de Proceso:
– Identificación del proceso.
• Identificadores
– Información del estado del procesador.
• Registros Visibles para el usuario.
• Registro de control y de estado
• Punteros de pila
– Información de control del proceso.
• Información de planificación y de estado
• Estructuración de datos
• Comunicación entre procesos
• Privilegios de los procesos
• Gestión de memoria
• Propiedad de los recursos y utilización
37 /58
BLOQUE DE CONTROL DE
PROCESO
38 /58
Identificación del proceso
• Identifiers
– Identificador del proceso
– Identificador del proceso que creó a este proceso
(padre)
– Identificador del usuario.
39 /58
Información del estado del procesador
• Registros Visibles al usuario
– Un registro visible para el usuario es aquel que puede hacerse
referencia por medio de un lenguaje de máquina que ejecuta el
procesador.
– Normalmente, existen entre 8 a 32 de estos registros, aunque
algunas implementaciones RISC tienen más de 100.
• Registros de Control y de Estado.
Son registros del procesador para controlar su funcionamiento:
– Contador de programa. Siguiente instrucción.
– Códigos de condición. Resultado de la operación aritmética más
reciente (signo, cero, acarreo, igual, desbordamiento)
– Información de estado. Habilitación e inhabilitación de
interrupciones y el modo de ejecución.
– PSW. Palabra de estado de programa. Códigos de condición.
40 /58
Palabra de estado de programa (PSW)
• La PSW o condición de programa almacena información
pertinente sobre el programa que este ejecutándose.
– Códigos de condición.
– Indicadores de habilitación de traps
– Nivel de prioridad de interrupciones
– Modo previo
– Modo actual
– Pila de interrupciones
– Primera parte hecha (donde se quedó)
– Traza pendiente (debug)
41 /58
Información del estado del procesador
• Punteros de Pila.
– Cada proceso tiene una o más pilas FIFO del sistema
asociadas.
– Las pilas se utilizan para almacenar los parámetros y las
direcciones de retorno de los procedimientos y de las llamadas
al sistema.
– El puntero de pila siempre apunta a la cima de la pila.
42 /58
Información del control del procesador
• Información de Planificación y de Estado
– Esta es la información que se necesita por el SO para ejecutar
sus funciones de planificador:
– Estado del proceso. Define la disposición del proceso para ser
planificado para ejecutar (en ejecución, listo, esperando,
suspendido)
– Prioridad. Se puede usar con uno o más campos para describir
la prioridad de planificación de los procesos. (pueden ser
omisión, actual, la más alta permitida)
– Información de planificación. Depende del algoritmo de
planificación utilizado (tiempo de espera, tiempo de ejecución)
– Eventos. Identidad del evento que el proceso esta esperando
antes de reanudarse.
43 /58
Información del control del procesador
• Estructuración de datos
– Un proceso puede estar enlazado con otros procesos en una
cola, un anillo o alguna otra estructura.
– Por ejemplo todos los procesos que están en estado de espera
de un nivel determinado de prioridad pueden estar enlazados en
una cola.
– Un proceso puede mostrar una relación padre-hijo (creador-
creado) con otro proceso.
– El BCP puede contener punteros a otros proceso para dar
soporte a estas estructuras.
• Comunicación entre procesos.
– Puede haber varios indicadores, señales y mensajes asociados
con la comunicación entre dos procesos independientes.
– Una parte de esta información o toda ella se puede guardar en el
BCP
44 /58
Información del control del procesador
• Privilegios de los proceso.
– A los procesos se les otorgan privilegios en términos de la
memoria a la que pueden acceder y el tipo de instrucciones que
pueden ejecutar. Además, tabién se pueden aplicar privilegios
al uso de los servicios y utilidades del sistema.
• Gestión de memoria.
– Esta sección puede incluir punteros a las tables de páginas y/o
segmentos que describen la memoria virtual asignada.
• Propiedad de los recurso y utilización.
– Se pueden incluir los recurso controlados por el proceso, tales
como los archivos abiertos.
– Puede ser el histórico de la utilización del procesador o de otros
recursos.
– Información necesaria para el planificador.
45 /58
Imagen de un proceso en Memoria
46 /58
CONTROL DE PROCESOS
47 /58
Modos de Ejecución
• Se divide en dos modos para proteger al SO y sus
tablas de ser modificadas por el usuario.
• Modo usuario
– Modo de menor privilegio.
– Los programas de usuario se ejecutan en este modo
48 /58
Creación de Procesos
• Cada vez que el SO crea un proceso se procede de la
siguiente manera:
– Asignar un único identificador del proceso.
– Asignar espacio para el proceso. Elementos de la
imagen del proceso. Espacio de direcciones privado,
de la pila
– Inicializar el BCP.
– Establecer los enlaces apropiados. Colocarlo en la
lista de procesos listos o suspendidos.
– Crear otras estructuras de control.
49 /58
¿Cuándo cambiar un proceso?
• Interrupción del reloj.
– Se le acabó el tiempo máximo de ejecución permitido.
• Interrupción de E/S.
– Inicio de E/S o fin de E/S
• Fallo de memoria.
– Cuando existe un fallo de página (página que no está en
memoria)
• Cepos (Trap)
– Determina si el error es fatal.
– Se puede terminar el proceso, reanudar o suspenderlo
• Llamada del Supervisor
– Cuando un programa llama al SO para ejecutar un proceso
– Ejemplo abrir un archivo.
50 /58
Cambio de contexto
• Se ejecuta cada vez que el procesador cambia de
proceso a ser ejecutado. El procesador hace lo
siguiente:
– Salva el contexto del programa que se está ejecutando
(contador de programa y otros registros).
– Modifica el BCP del proceso que se está ejecutando.
– Mueve el BCP de la cola apropiada (preparada, bloqueada)
– Selecciona otro proceso para su ejecución.
– Asigna al contador de programa el valor de la dirección de
comienzo del siguiente programa.
• El contexto corresponde al PSW, que es parte del BCP
51 /58
Cambio de contexto
• Salvar el contexto del procesador.
• Actualizar el BCP actual.
en ejecución otro estado
• Mover el BCP a la cola apropiada (otro estado)
• Seleccionar otro proceso para su ejecución.
• Actualizar el BCP del nuevo
otro estado en ejecución
• Actualizar la estructuras de datos de gestión de
memoria. (registros base)
• Restaurar el contexto del procesador a cómo lo dejo en
el momento en que fue seleccionado la última vez,
cargando los valores previos del contador de programa y
otros registros
52 /58
PREGUNTAS
53 /58