Está en la página 1de 53

SISTEMAS OPERATIVOS

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.

• El planificador de procesos (sched).


• El administrador de memoria (mm).
• El sistema del archivo virtual (vfs).
• La interface de la red (net).
• La comunicación inter-procesos (ipc).

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

100 dirección de inicio


para el programa
distribuidor (dispatcher)

Las áreas sombreadas


indican ejecución del
proceso dispatcher.
La primera y tercera
columna cuenta el ciclo
de instrucción
La segunda y cuarta
columna muestra la
dirección de la que se
está ejecutando.

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.

2. Un nuevo usuario. El usuario entra al sistema iterativo.

3. Creado por el SO para dar un servicio. Ejemplo una


impresión.

4. El proceso crea otro proceso.

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

• El despachador (dispatcher) puede no seleccionar el


proceso que está en la cola más tiempo por que puede
estar bloqueado

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.

• ¿Qué información necesita el SO para controlar los


procesos y administrar los 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

– Atributos necesarios para este administrador.


• Process ID
• Process state
• Location in memory

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

Programas • Variables locales


• Variables globales
user
• Constantes
Programas • Pila
Proceso

Programas • Variables locales


Imagen • Variables globales
del • Constantes
Proces • Pila
o

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

• Modo sistema, modo control o modo kernel


– Modo más privilegiado.
– Kernel del SO

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

También podría gustarte