procesos - sistemas operativos
DESCRIPTION
requerimientos de procesos en sistemas en sistemas operativosTRANSCRIPT
11 /58/58
Administración de Procesos
SISTEMAS OPERATIVOS
22 /58/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
33 /58/58
KERNEL
44 /58/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).
55 /58/58
Descomposición Conceptual
66 /58/58
DESCRIPCION Y CONTROL DE PROCESOS
77 /58/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.
88 /58/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.
99 /58/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.
1010 /58/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
1111 /58/58
Traza de los tres procesos
Invocacióna E/S
1212 /58/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.
1313 /58/58
1414 /58/58
ESTADOS DE UN PROCESO
1515 /58/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.
1616 /58/58
Cola de procesos (2 estados)
1717 /58/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.
1818 /58/58
Terminación de Procesos• Instrucción Halt incluida
en la tarea (bach).• Solicitado por el usuario
(salir de sesión).• Terminación normal.• Salir del programa.• Terminación del padre.• Solicitud del padre.
• Tiempo límite excedido.• No hay memoria
disponible.• Violación de límites.• Error de protección• Error aritmético• Fallo de E/S (máximo de
intentos)• Instrucción invalidad.• Instrucción priviligeada.• Violación de memoria.
1919 /58/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
Modelo de Procesos con 5 Estados
2121 /58/58
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
2222 /58/58
Usando dos colas
2323 /58/58
Varias de colas de bloqueados
2424 /58/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.
2525 /58/58
Un estado suspendido
2626 /58/58
Dos estados suspendidos
2727 /58/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.
2828 /58/58
DESCRIPCION DE PROCESO
2929 /58/58
• 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?
Descripción de Proceso
3030 /58/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.
3131 /58/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.
3232 /58/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
3333 /58/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).
3434 /58/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
3535 /58/58
Estructuras de Control• Para que el SO administre los proceso debe de conocer:
– Ubicación de proceso.
– Atributos.
3636 /58/58
Ubicación de los Procesos
Proceso
Imagen del
Proceso
Memoria RAM
BCP
Programas
Programas
Programas
• Variables locales• Variables globales• Constantes• Pila
• Variables locales• Variables globales• Constantes• Pila
• Variables locales• Variables globales• Constantes• Pila
user
3737 /58/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
3838 /58/58
BLOQUE DE CONTROL DE PROCESO
3939 /58/58
Identificación del proceso• Identifiers
– Identificador del proceso– Identificador del proceso que creó a este proceso
(padre)– Identificador del usuario.
4040 /58/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.
4141 /58/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)
4242 /58/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.
4343 /58/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.
4444 /58/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
4545 /58/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.
4646 /58/58
Imagen de un proceso en Memoria
4747 /58/58
CONTROL DE PROCESOS
4848 /58/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
4949 /58/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.
5050 /58/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.
5151 /58/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
5252 /58/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
5353 /58/58
PREGUNTAS