Download Requerimientos principales de un sistema operativo

Document related concepts

Bloque de control del proceso wikipedia , lookup

Proceso (informática) wikipedia , lookup

Hilo de ejecución wikipedia , lookup

Planificador wikipedia , lookup

Llamada al sistema wikipedia , lookup

Transcript
Descripción y control de procesos
Requerimientos principales de
un sistema operativo
• Intercalar la ejecución de varios
procesos para maximizar el uso del
procesador proporcionando un tiempo de
respuesta razonable
• Asignar recursos a procesos
• Soportar comunicación entre procesos y
la creación de procesos por los usuarios
1
Proceso
• También es llamado tarea
• Ejecución de un programa individual
• Puede ser rastreado
– enlistar la secuencia de instrucciones que se
ejecutan
2
3
Modelo de procesos de dos
estados
• Los procesos pueden estar en dos
estados
– Corriendo
– No corriendo
Cola de procesos que no están
en ejecución
4
Creación de procesos
• Envío de una tarea
• El usuario entra al sistema (login)
• Creado para proveer un servicio tal y
como el de la impresión
• Un proceso crea otro proceso
Terminación de procesos
• Una tarea envía la instrucción de detener
proceso (halt)
• El usuario sale del sistema (logoff)
• Se sale de la aplicación
• Errores y fallas
5
Motivos para la terminación
de procesos
•
•
•
•
Terminó su ejecución normalmente
Se excedió su tiempo limite
No hay memoria disponible
Error de protección
– Ejemplo: tratar de escribir en un archivo de
solo lectura
• Error aritmético
• Proceso esperando mas que el tiempo
especificado para un evento
Motivos para la terminación
de procesos
• Fallas en dispositivos de E/S
• Instrucción invalida
– sucede cuando se tratan de ejecutar datos
•
•
•
•
Instrucción privilegiada
Mal uso de datos
Intervención del sistema operativo
El proceso padre termina por lo tanto el hijo
también debe de terminar
• Petición del proceso padre
6
Procesos
• No corriendo
– listos para ejecutarse
• Bloqueado
– esperando algún dispositivo de E/S
• El despachador del S/O no puede solo
seleccionar al proceso que tiene más
tiempo en la cola porque quizás el
proceso esté bloqueado
Modelo de cinco estados
•
•
•
•
•
Corriendo
Listo
Bloqueado
Nuevo
Terminado (de salida)
7
8
Utilizando dos colas
9
Procesos suspendidos
• El procesador es más rápido que E/S por lo
tanto todos los procesos pudieran estar
esperando respuesta de E/S
• Pasar estos procesos a disco para liberar más
memoria
• El estado bloqueado se convierte en
suspendido al pasar el proceso a disco
• Dos nuevos estados
– Bloqueado, suspendido
– Listo, suspendido
Un estado suspendido
10
Dos estados suspendido
Razones para suspender
procesos
Liberar memoria
El sistema operativo requiere liberar memoria para traer un
proceso que está listo para ejecutarse
Otra razón del SO
El sistema operativo puede suspender un proceso de transfondo o
de utilería que pudiera estar causando problemas
Petición interactiva del
usuario
Un usuario puede suspender la ejecución de un programa para
efectos de depuración o en conexión con el uso de algún recurso
Temporización
Un proceso puede ejecutarse periódicamente (ejemplo: sistema
de monitoreo de procesos) y puede ser suspendido para que
espere la siguiente llegada
Petición del proceso padre
Un proceso padre puede suspender la ejecución de un
descendiente para examinar o modificar el proceso suspendido o
para coordinar su actividad con otros descendientes
11
Estructuras de Control del
Sistema Operativo
• Contienen información acerca del estatus
actual de cada proceso y cada recurso
• Se construyen tablas para cada entidad
que el sistema operativo administra
Tablas de memoria
• Reservación de memoria principal para
los procesos
• Reservación de memoria secundaria para
los procesos
• Atributos de protección para los accesos
hacia regiones compartidas de memoria
• Información necesaria para administrar
memoria virtual
12
Tablas de E/S
• Indican si el dispositivo de E/S está
disponible o está ocupado
• Estatus de la operación de E/S
• Ubicación en la memoria principal que
está siendo utilizada como la fuente o el
destino de la transferencia a E/S
Tablas de archivos
•
•
•
•
•
Existencia de archivos
Ubicación en memoria secundaria
Estatus actual
Atributos
En ocasiones esta información es
mantenida por un sistema de
administración de archivos
13
Tabla de procesos
• Dónde está ubicado el proceso
• Atributos necesarios para su
administración
– ID de proceso
– Estado del proceso
– Ubicación en memoria
Ubicación de proceso
• El proceso incluye un conjunto de programas a
ser ejecutados
– Ubicación de los datos para variables locales y
globales
– Constantes definidas
– Pila
• Bloque de control del proceso
– Colección de atributos
• Imagen de proceso
– Colección del programa, datos, pila y atributos
14
Bloque de Control del Proceso
• Identificación del proceso
– Identificadores
• Algunos identificadores numéricos pueden
almacenarse en el bloque de control del proceso
e incluyen:
• Identificador de este proceso
• Identificador del proceso que creó este proceso
(proceso padre)
• Identificador de usuario
15
Bloque de Control del Proceso
• Información del estado del proceso
– Registros visibles al usuario
• Un registro visible al usuario es aquel que
puede ser referenciado por medio del lenguaje
maquina que el procesador ejecuta.
Típicamente, hay entre 8 y 32 de estos registros
aunque algunas arquitecturas RISC cuentan con
más de 100.
Bloque de Control del Proceso
• Información del estado del procesador
– Registros de estatus y control
Existe una variedad de registros del procesador que son
empleados para controlar su operación. Estos incluyen:
• Contador de programa: Contiene la dirección de la
siguiente instrucción a ser ejecutada
• Códigos de condición: Resultado de las mas reciente
operación aritmética o lógica (por ejemplo: sign, zero,
carry, equal, overflow)
• Información de estatus: Incluye las banderas de
habilitar/deshabilitar interrupciones, modo de ejecución
16
Bloque de Control del Proceso
• Información del estado del procesador
– Apuntadores a la pila
• Cada proceso tiene una o más pilas (LIFO)
asociadas a él. Una pila es utilizada para
almacenar parámetros y direcciones de llamadas
a procedimientos y sistema. El apuntador apunta
a la cima de la pila.
Bloque de Control del Proceso
• Información de Control del Proceso
– Información de calendarización y de estado
Esta es información que es necesitada por el sistema
operativo para desempeñar la función de calendarización. Se
pueden encontrar:
•Estado del proceso: define si esta listo el proceso para ser
programada su ejecución (por ejemplo: corriendo, listo,
esperando, trabado).
•Prioridad: Uno o más campos pueden utilizarse para
describir la prioridad de los procesos. En algunos sistemas se
requieren varios valores
•Información relacionada con la calendarización: Esta
dependerá del algoritmo de calendarización utilizado. Como
ejemplo se puede mencionar el tiempo que un proceso ha
esperado o el tiempo que un proceso ha estado ejecutándose.
•Evento: Identidad del evento que el proceso está esperando
para reanudar su ejecución
17
Bloque de Control del Proceso
• Información de Control del Proceso
– Estructuras de los datos
• Un proceso puede estar ligado a otro en una
cola, anillo o alguna otra estructura. Por
ejemplo, todos los procesos en estado de espera
para un determinado nivel de prioridad pueden
estar ligados en una cola. Un proceso puede
tener una relación padre-hijo con otro proceso.
El bloque de control del proceso puede contener
apuntadores a otros procesos para dar soporte a
estas estructuras.
Bloque de Control del Proceso
• Información de Control del Proceso
– Comunicación Interprocesos (IPC)
• Varias banderas, señales y mensajes pueden estar
asociados con la comunicación entre dos procesos
independientes. Alguna o toda esta información puede ser
mantenida en el bloque de control del proceso.
– Privilegios de procesos
• Los procesos tienen privilegios en relación a la memoria
que pueden accesar y los tipos de instrucciones que
pueden ejecutar. También los privilegios pueden aplicarse
al uso de servicios y utilerías del sistema.
18
Bloque de Control del Proceso
• Información de Control del Proceso
– Administración de memoria
• Esta sección puede incluir apuntadores a segmentos y/o
paginas que describen la memoria virtual asignada al
proceso.
– Propiedad y utilización de recursos
• Los recursos controlados por el proceso pueden estar
enlistados, tal como archivos abiertos. Un historial acerca
del uso del procesador y otros recursos también puede
incluirse; esta información puede ser requerida por el
calendarizador de tareas.
19
Información de estado del
proceso
• Contenido de los registros del
procesador
– Registros visibles al usuario
– Registro de estatus y control
– Apuntadores a la pila
• Palabra de estatus del programa (PSW)
– Contiene información del estatus
– Ejemplo: el registro EFLAGS en
computadoras Pentium
Registro EFLAGS
20
Modos de ejecucion
• Modo usuario
– Modo de menor privilegio
– Programas de usuario típicamente se
ejecutan en este modo
• Modo sistema, modo control o modo
kernel
– Modo más privilegiado
– Núcleo del sistema operativo
Creación de procesos
•
•
•
•
Asignar identificador de proceso único
Reservar espacio para el proceso
Inicializar el bloque de control del proceso
Establecer ligas apropiadas
– Ejemplo: agregar el nuevo proceso a la lista ligada
utilizada en la cola de calendarización
• Crear o expander otras estructuras de datos
– Ejemplo: mantener un archivo
21
Cuándo cambiar de proceso
• Interrupción de reloj
– El proceso se ha ejecutado el tiempo
máximo permitido
• Interrupción de E/S
• Falla de memoria
– La dirección de memoria se encuentra en
memoria virtual y debe de ser traída hacia
memoria principal
Cuándo cambiar de proceso
• Trampa
– Ocurre un error
– Puede ocasionar que el proceso se vaya al
estado de Salida (Exit)
• Llamada de supervisor
– Tal como el abrir un archivo
22
Cambio del estado del proceso
• Guardar el contexto del procesador incluyendo
el contador del programa y otros registros
• Actualizar el bloque de control del proceso
que esta corriendo actualmente
• Mover el bloque de control del proceso hacia
la cola apropiada – listos, bloqueados
• Seleccionar otro proceso para su ejecución
Cambio de estado del proceso
• Actualizar el bloque de control del
proceso seleccionado
• Actualizar las estructuras de datos de
administracion de memoria
• Restaurar contexto del proceso
seleccionado
23
Ejecución del sistema
operativo
• Kernel puro
– Ejecutar kernel fuera de cualquier proceso
– El código del sistema operativo es ejecutado
como una entidad independiente que opera
en modo privilegiado
• Ejecución dentro de procesos de usuario
– El software de sistema operativo dentro del
contexto de un proceso de usuario
– El Proceso se ejecuta en modo privilegiado
cuando ejecuta código del sistema operativo
24
Ejecución del sistema
operativo
• Sistema operativo basado en procesos
– Funciones grandes del kernel son procesos
separados
– Utiles en ambientes multi-procesadores o
multi-computadoras
Administración de procesos
en UNIX SVR4
• La mayor parte del sistema operativo se
ejecuta dentro del ámbito de un proceso
de usuario
25
Estados de procesos en UNIX
26