Actualizado el 21 de Marzo del 2018 (Publicado el 14 de Enero del 2018)
2.786 visualizaciones desde el 14 de Enero del 2018
1.022,9 KB
23 paginas
Creado hace 12a (10/08/2011)
UNIDAD 2 Administración de procesos y del procesador.
La gestión de procesos es la tarea fundamental de cualquier sistema operativo moderno. El sistema operativo
debe asignar recursos a los procesos, permitir el intercambio de información entre los mismos, proteger los
recursos de un proceso del resto y facilitar la sincronización de procesos. Para alcanzar estos objetivos, el
sistema operativo mantiene una estructura de datos para cada proceso que describe su estado y los recursos
que posee y que permite al sistema operativo imponer un control sobre los procesos (PCB Bloque de Control
de Proceso).
En un monoprocesador multiprogramado, debe intercalarse en el tiempo, la ejecución de múltiples procesos.
En un multiprocesador, no sólo puede intercalarse la ejecución sino que los procesos se pueden ejecutar
simultáneamente. Ambos, intercalación y ejecución simultánea, son formas de concurrencia y llevan a una
multitud de problemas complejos, tanto para el programador de aplicaciones como para el sistema operativo.
El sistema operativo debe llevar a cabo la función de planificar y ofrecer mecanismos para compartir y
sincronizar procesos.
2.1 Concepto de proceso.
Programas.- Colección de instrucciones que el procesador interpreta y ejecuta, se almacenan en sistemas no
volátiles necesitando ser cargados en memoria principal para poder ser ejecutados, se considera un ente
estático.
Procesos.-Programa en ejecución, el sistema operativo les asigna recursos, Se consideran un ente dinámico.
El proceso es una abstracción creada por el SO, que se compone de:
Código de Programa: sección texto
Contexto de Ejecución: PC, registros del procesador y una pila para invocación de procedimientos
Sección de Datos, que contiene variables globales
Recursos del sistema.
Características
Permite modularizar y aislar errores de programas durante su ejecución
Soporta concurrencia de actividades, lo que permite un mejor aprovechamiento de los recursos
Denominaremos como procesos tanto a los trabajos (jobs) en sistemas de lotes, como a las tareas (task)
en sistemas de tiempo compartido
Modelo
La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose) es
obvia y crucial para entender el funcionamiento de los SO.
Imaginemos un mecánico de autos en un taller donde se reparan carros con averías complejas en las que se
hace necesario consultar el manual de cada modelo, que contiene las instrucciones para reparar cada posible
avería. Además, se permiten reparaciones rápidas a las que se les da mayor prioridad. Existe un almacén de
refacciones y herramientas suficientes para las reparaciones. Comparando esta situación con un sistema de
cómputo se pueden establecer las siguientes analogías:
El mecánico sería el CPU (procesador) que realizará el trabajo.
El manual de cada reparación sería el programa.
Las herramientas serían los recursos disponibles
Las refacciones serían los datos.
La actividad de usar las herramientas para desmontar las piezas defectuosas sustituyéndolas por otras
nuevas siguiendo las instrucciones del manual equivaldría al proceso.
Suponiendo que en un momento dado el mecánico está realizando una reparación compleja (de las que llevan
tiempo) y aparece un carro que solicita una reparación de las rápidas (ha aparecido una interrupción). El
mecánico suspende momentáneamente la reparación compleja anotando en qué situación se queda dicha
reparación y qué operación estaba realizando en ese momento (guarda el estado del proceso). Asimismo,
sustituye el manual que estaba realizando por el de la nueva reparación que se dispone a realizar (cambio de
programa). Comienza la nueva reparación (cambio de proceso), en la que las herramientas no serán las
mismas que antes (distintos recursos); las indicaciones del usuario, las refacciones (datos) y las indicaciones
del manual (programa) llevarán a feliz término la reparación para que el mecánico regrese a la reparación
inicial.
Con este ejemplo se resalta que un proceso es una actividad que se apoya en datos, recursos, un estado en
cada momento y un programa.
2.2 Estados y transiciones de los procesos
Los PCB’s se almacenan en listas, una para cada posible estado:
1
Cola trabajos en
espera
Cola trabajos
preparados
Administrador de
trabajos
cpu
Completo
Administrador de
procesos
Cola trabajos
bloqueados
Los estados se pueden dividir en: Activos e inactivos
Activos los que compiten por el procesador. Tipos:
Ejecución.- Cuando el proceso tiene el control del cpu
Preparado (Listo).- Tienen las condiciones para ser ejecutados pero no están en ejecución por alguna
causa.
Bloqueado.- No pueden ejecutarse porque necesitan algún recurso no disponible
Inactivos.- No pueden competir por el cpu
Los 3 estados principales pueden no ser suficientes
Justificación:
Si todos los procesos están en bloqueados esperando un suceso y no hay memoria disponible para nuevos
procesos, el procesador estará desocupado, sin uso. La Solución: procesos suspendidos:
• Permitir la ejecución de más procesos
• Ampliar la memoria principal
• Intercambio de procesos entre memoria y disco (swapping)
Surgen 2 nuevos estados de un proceso:
• El sistema operativo puede poner en suspendido un proceso y transferirlo a disco
• El espacio liberado en la memoria principal es usado para traer otro proceso
¿Qué proceso elegir para cargar en memoria?
Uno nuevo
Uno previamente suspendido (debemos elegir los que se encuentran en suspendido listo y no en
suspendido listo: el proceso está suspendido, pero se encuentra listo para ejecutarse
suspendido bloqueado: el proceso está suspendido y además está esperando que suceda un evento
suspendido bloqueado)
Otras razones por las que un proceso puede pasar a estado suspendido:
• El sistema está en riesgo de fallo. El sistema suspende todos los procesos activos para poder corregir errores
y volver a activarlos cuando el sistema funcione correctamente
• Un proceso sospechoso de mal funcionamiento puede ser suspendido hasta verificar su correcto
funcionamiento
• El planificador puede suspender los procesos de baja prioridad en momento de carga excesiva del sistema
2
Listo
Suspende
Reanuda
Susp.
Listo
Termina la operación de e/s
ejecución
suspende
Termina la operación de e/s
Espera por e/s u
otra causa
Bloqueado
Estados activos
Control de procesos
PCB (Bloque de control de procesos)
Conjunto de datos donde se
incluye el estado de un proceso
en cada momento, los recursos
usados, registros, etc.
Objetivos
Que el sistema operativo
información
la
localice
sobre el proceso
Mantener registrados
los
datos del proceso en caso
de
o
reanudación de la ejecución
suspensión
Información contenida:
Estado
SCB
Excepciones
Fallos CPU
Consola
PCB’s
Interrupciones
Susp. bloq.
Estados inactivos
PCB
Puntero
Número de proceso
Estado del proceso
Prioridad
Contador de programa
Límites de memoria
del
proceso.-
Contenido del contador de
programa, estado del cpu en
cuanto a prioridad del
proceso, modo de ejecución, etc. y estado de los registros internos de la computadora.
Registros
Archivos abiertos
Estadísticas de tiempo y ocupación de recursos.- Planificación del CPU
Ocupación de memoria interna y externa.- Swapping
Recursos en uso
Archivos en uso
Privilegios
SCB (Bloque de control del sistema).- Objetivos globales similares al PCB, además enlaza los PCB’s de los
procesos existentes
Cambio de un proceso a
otro suponiendo un solo
cpu,
en
ejecución a la vez y 2
procesos activos (A y B)
compitiendo por el cpu,
ambos
en memoria
principal
Cambio de A por B
1. Deja de ejecutar el
Salva registros
SISTEMA OPERATIVO
Interrupción
Programa A
Programa B
Ejecución
tarea
una
Carga registros
.
.
.
proceso en curso (A)
2. Se salva el estado del
proceso A para su
regreso al punto de
interrupción
3. Cede el control al
kernel
4. Cambio de contexto
(de modo usuario a
modo supervisor)
5. El kernel estudia si el
está
proceso
B
3
Ejecución
Interrupción
Salva registros
.
.
Carga registros
.
Ejecución
preparado para su ejecución
6. Si si, cambio de contexto (de modo supervisor a modo usuario)
7. Repone el estado de B (si es que se había interrumpido antes)
8. Pone en ejecución a B
El cambio de contexto se da en caso de: ejecución de instrucción privilegiada, llamada al sistema operativo o
interrupción
TRANSICIONES DE ESTADO.- Cambio de un estado a otro
Comienzo (Creación).- Un proceso comienza al ser dada la orden de ejecución insertándose en la lista de
listos
Ejecución.- Cuando el CPU está inactivo y en la cola de listos haya un proceso en espera de ser ejecutado.
(Pasa al CPU)
Bloqueado.- Un proceso en ejecución solicita una operación a un dispositivo, durante la espera el proceso se
bloqueará. Su PCB se insertará en la lista de bloqueados.
Preparado.- 4 causas:
1 Orden de ejecución de un programa en espera
2 Si un proceso está bloqueado esperando una operación de entrada/salida y ésta termina.
3 Si un proceso está en ejecución y aparece una interrupción que fuerza al sistema operativo a ejecutar otro
proceso, el 1º pasará a listo y su PCB se inserta en la lista de listos (Quantum, proceso de mayor
prioridad)
4 Activación.- Un proceso suspendido listo pasará a listo al ser reactivado
Suspendido bloqueado.- Un proceso está bloquea
Comentarios de: UNIDAD 2 Administración de procesos y del procesador (0)
No hay comentarios