Title: Sistemas Operativos
1Sistemas Operativos
- Unidad II
- Administración del proceso
2Definición de un proceso
El concepto central de cualquier Sistema
Operativo es el de proceso una abstracción de un
programa en ejecución también llamada tarea.
- Un proceso es
- Un programa en ejecución que necesita ciertos
recursos (como tiempo del CPU, memoria, archivo,
y dispositivos de e/s) para realizar su tarea. - El lugar de control de un procedimiento en
ejecución. - Lo que se manifiesta en el bloque de control de
proceso (PCB) dentro de un sistema operativo. - La entidad a la que se le asignan procesadores.
3El S.O como Administrador de Recursos
- Administrador de recursos
- Asignación
- A los programas en ejecución (procesos)
- En función de la disponibilidad de recursos y
ciertas - caracterÃsticas de los procesos
- Debe poder recuperarlos cuando ya no se
necesiten - Protección
- Debe garantizar la no interferencia entre
procesos en el uso de recursos. - Debe impedir que un proceso acceda a recursos de
otro - Para todo lo anterior utilizará una serie de
estructuras de datos que registrarán el estado de
los recursos
4- El modelo de procesos posee las siguientes
caracterÃsticas  - Todo el software ejecutable, inclusive el Sistema
Operativo, se organiza en varios procesos
secuenciales o procesos. - Un proceso incluye al programa en ejecución y a
los valores activos del contador, registros y
variables del mismo. - Conceptualmente cada proceso tiene su propia cpu
virtual. - Si la cpu alterna entre los procesos, la
velocidad a la que ejecuta un proceso no será
uniforme, por lo que es necesario aclarar lo
siguiente - Que los procesos no deben programarse con
hipótesis implÃcitas acerca del tiempo. - Que normalmente la mayorÃa de los procesos no son
afectados por la multiprogramación subyacente de
la cpu o las velocidades relativas de procesos
distintos. - Un proceso es una actividad de un cierto tipo,
que tiene un programa, entrada, salida y estado. - Un solo procesador puede ser compartido entre
varios procesos con cierto algoritmo de
planificación, el cual determina cuándo detener
el trabajo en un proceso y dar servicio a otro
distinto.
5CaracterÃstica de los procesos (continuación)
- Un proceso es una actividad de un cierto tipo,
que tiene un programa, entrada, salida y estado. - Un solo procesador puede ser compartido entre
varios procesos con cierto algoritmo de
planificación, el cual determina cuándo detener
el trabajo en un proceso y dar servicio a otro
distinto
6Cada proceso es una entidad independiente pero
frecuentemente debe interactuar con otros
procesos (ver Figura 2.2 23, Tanenbaum).
7- Manifestación fÃsica del
- proceso
- Texto (código), datos y pila
- Contexto de ejecución del proceso
- Información que el SO necesita para administrar
el proceso. - Información que la CPU necesita para ejecutar
correctamente el proceso -
8Ejecución de procesos
- La ejecución de un proceso consiste en
desarrollar las instrucciones, almacenadas en
memoria. - En su forma más simple, el procesamiento de una
instrucción consiste en - No posibilita la intercalación de instrucciones
de diferentes programas (multiprogramación y/o
tiempo compartido) - No hay gestión de interrupciones
- La E/S tiene que ser por programa.
9E/S por programa
- E/S por programa
- El módulo de E/S del SO realiza la operación.
- Dialoga con el dispositivo
- Comprueba constantemente el estado del
dispositivo hasta que detecta que se ha
completado la operación
10Los estados 23, Tanenbaum que puede tener un
proceso son (ver Figura 2.3 23, Tanenbaum)
- En ejecución Se esta haciendo uso del
procesador ejecutando instrucciones. - Listo En espera de que se le asigne el
procesador o también se detiene en forma temporal
para que se ejecute otro proceso. - Bloqueado no se puede ejecutar debido a la
ocurrencia de algún evento externo, por ejemplo,
cuando se ejecuta una operación de e/s.
11Son posibles cuatro transiciones entre estos
estados.
12- Descripción de procesos
- Estructuras de control del sistema operativo
- El bloque de control de procesos
13Descripción de procesosEstructuras de control
del SO
- Si el SO tiene que gestionar procesos y recursos,
- debe mantener información actualizada del estado
de - cada proceso y cada recurso
- Tablas de memoria
- Permiten al SO controlar el uso de memoria
principal - (incluso también secundaria) por los procesos.
- Tablas de entrada/salida
- Usadas por el SO para gestionar los
dispositivos de E/S - Información sobre los archivos que existen, su
ubicación - en memoria secundaria, etc.
- Tabla de Archivo
- Información sobre los archivos que existen, su
ubicación - en memoria secundaria, etc.
- Tablas de procesos bloque de control de
procesos
14Descripción de procesosEstructuras de control
del SO
15Descripción de procesosEl bloque de control de
procesos
- Estructura de datos que contiene información
diversa y necesaria para que el SO gestione y
controle un proceso - Denominada también PCB ( Process Control Block)
- Un proceso existe, en tanto en cuanto tiene un
PCB - Cada SO le da una implementación diferente
- Todas las operaciones que el SO realiza sobre un
proceso implican la manipulación de su PCB - Todos los PCB se organizan en la tabla de
procesos - El contenido de un PCB es, realmente, el contexto
de ejecución del proceso
16Descripción de procesosEl bloque de control de
procesos
- Elementos básicos de un PCB
- Identificación del proceso
- Identificador numérico único de proceso
- Puede ser usado en otras tablas como referencia
- También para la identificación del proceso cuando
se comunica con otros - Si la tabla de procesos toma la forma de array,
puede - servir para, usándolo como Ãndice, obtener el PCB
del Identificador de su proceso padre - Si los procesos están autorizados a crear otros
procesos - Identificador del usuario responsable del mismo
17Descripción de procesosEl bloque de control de
procesos
- Elementos básicos de un PCB (continuación)
- Información de estado del procesador
- Contenido de los registros del procesador
- Por supuesto, si el proceso está en ejecución
(tiene - asignada la CPU) esta información está en los
registros - Cuando el proceso abandona el uso del procesador,
toda - la información de los registros se guarda (salva)
en el - PCB de forma que pueda restaurarse en el
procesador - cuando pase de nuevo a ejecutarse (en el futuro)
- Registros visibles por el usuario (generales)
- Punteros de pila
- Registros de control y estado
- PC, información de estado, códigos de condición,
etc.
18Descripción de procesosEl bloque de control de
procesos
- Elementos básicos de un PCB (continuación)
- Información de control del proceso
- Toda la información adicional necesaria para que
el SO - controle y coordine los procesos activos
- Información de planificación y estado
- Prioridad, estado, información de planificación,
etc. - Pertenencia del proceso a estructuras de datos
- Listas, colas, etc., de (PCBs de) procesos
- Comunicación entre procesos
- Privilegios del proceso
- Ubicación en memoria
- De su código, datos y pila
- Uso y propiedad de recursos
19Descripción de procesosEl bloque de control de
procesos
20Descripción de procesosEl bloque de control de
procesos
21IntroducciónInterrupciones
- Concepto
- Una interrupción es un evento que altera la
secuencia en que el procesador ejecuta las
instrucciones es un hecho generado por el
hardware de la computadora 7, Deitel. - Cuando ocurre una interrupción, el Sistema
Operativo - Obtiene el control.
- Salva el estado del proceso interrumpido,
generalmente en su bloque de control de procesos.
- Analiza la interrupción.
- Transfiere el control a la rutina apropiada para
la manipulación de la interrupción. - Una interrupción puede ser iniciada por un
proceso en estado de ejecución o por un evento
que puede o no estar relacionado con un proceso
en ejecución.
22Tipos de Interrupciones
- SVC (llamada al supervisor)
- es una petición generada por el usuario para un
servicio particular del sistema, por ejemplo,
realización de Entrada / Salida u obtención de
más memoria. - Entrada / Salida
- son iniciadas por el hardware de Entrada /
Salida, indicando a la cpu que ha cambiado el
estado de un canal o dispositivo, por ejemplo,
finalización de Entrada / Salida u ocurrencia de
un error.
23Tipos de Interrupciones (continuación)
- Externas
- son causadas por distintos eventos, por ejemplo,
expiración de un quantum (tiempo) en un reloj de
interrupción o recepción de una señal de otro
procesador en un sistema multiprocesador. - De reinicio
- ocurren al presionar la tecla de reinicio o
cuando llega una instrucción de reinicio de otro
procesador en un sistema multiprocesador. - De verificación de programa
- son causadas por errores producidos durante la
ejecución de algún procesos, por ejemplo Un
intento de dividir por cero, un intento de un
proceso de usuario de ejecutar una instrucción
privilegiada, un intento de ejecutar un código de
operación inválido. - De verificación de máquina
- son ocasionadas por un mal funcionamiento del
hardware.
24Interrupciones
- El Sistema Operativo incluye rutinas llamadas
Manipuladores de Interrupciones (IH) para
procesar cada tipo diferente de interrupción. - Cuando se produce una interrupción el Sistema
Operativo efectúa las siguientes acciones - Salva el estado del proceso interrumpido.
- Dirige el control al manipulador de
interrupciones adecuado. - Se aplica la técnica de Cambio de Contexto .
- Los Sistemas Operativos instrumentan información
de control que puede aparecer como las Palabras
de Estado de Programa (PSW), las cuales
controlan el orden de ejecución de las
instrucciones y contienen información sobre el
estado del proceso.
25Proceso concurrente
- Aquellos que intercalan y/o superponen sus
ejecuciones en el tiempo - Su ejecución provoca interacciones entre ellos y
con el sistema operativo - Se presentan en nuevos problemas
- Que son independientes del número de procesos y
CPUs - Las soluciones a dichos problemas deben
garantizar la corrección de la ejecución de los
procesos concurrentes bajo cualquier secuencia de
intercalado y/o superposición de instrucciones
26Problemas que introduce la concurrencia
- Problemas de sincronización entre procesos
- Dificultad de asignar los recursos de forma
óptima - Posible uso ineficiente de los recursos,
- Ejemplo
- Proceso A consigue un recurso y se bloquea por
alguna razón - Si un proceso B lo solicita, tendrá que esperar
- Dificultad para localizar errores de programación
- Las situaciones no son repetibles
- Compartición de recursos globales no compartibles
- Global x
- Procedimiento echo ()
- Entrada(x) // leer del teclado
- salx
- Salida(sal) // mostrar por pantalla
- End.
- Varios procesos concurrentes invocan echo()
27Interacción entre procesos
- Se pueden clasificar los diferentes tipos de
interacción en función del conocimiento que
tienen unos procesos de la existencia de otros - Desconocimiento de la existencia de otros
- Los procesos compiten por los recursos
- Son independientes entre sà (no trabajan juntos)
- Se conocen indirectamente
- Porque comparten algún recurso
- Cooperan gracias a la compartición
- Se conocen directamente
- Se comunican utilizando sus identificadores de
proceso - Cooperan enviándose mensajes
28Interacción entre procesos
- Competencia entre procesos
- Procesos independientes que necesitan acceder a
un Recurso durante su ejecución - No se deben ver afectadas sus ejecuciones
- Cada proceso debe dejar el recurso tal y como
estaba - Problemas a resolver
- Exclusión mutua al acceder a un recurso no
compartible - Interbloqueo (derivado del anterior)
- Inanición (derivado del primero)
- El control de la competencia es responsabilidad
del SO - Es el que asigna recursos
- Ofrece mecanismos a los procesos para que
expresen la forma de acceso a los recursos - Cooperación entre procesos por comunicación
- Los procesos participan en una labor común
- La comunicación es una forma de sincronizar o
coordinar sus distintas actividades.
29Sección Critica
- La exclusión mutua consiste en asegurar de que
si un proceso esta utilizando una variable o
archivo compartido, los otros procesos no puedan
hacer lo mismo. - Esto se presenta cuando el proceso B comienza a
utilizar una variable compartida antes de que el
proceso A termine con ella. - Un proceso puede estar accesando a memoria o
archivo compartido o bien realizando otras
tareas. Esta parte del programa donde se accesa a
memoria compartida, se llama sección critica.
30El problema de la exclusión mutua
- Problemas derivados de la exclusión mutua
- Interbloqueo o bloqueo mutuo (deadlock)
- Un conjunto de procesos están en interbloqueo
cuando ninguno de ellos puede continuar su
ejecución porque se encuentran esperando un
evento que tiene que producir algún otro proceso
que también pertenece al conjunto. - Inanición
- Un proceso se encuentra en esta situación cuando,
con otros procesos, espera un evento, pero ante
la aparición del evento y su gestión, nunca es el
elegido para continuar su ejecución. - Un proceso espera indefinidamente un recurso que
siempre se concede a algún otro que lo solicita.
Depende de la polÃtica de asignación de recursos
31Semaforo
- Dos o más procesos pueden cooperar por medio de
señales, de forma que se obligue a un proceso a
detenerse en una posición determinada hasta que
reciba una señal especÃfica - Para la señalización se utilizan variables
especiales denominadas semáforos - Para enviar una señal por el semáforo s, un
proceso ejecuta V(s) / signal(s) - Para recibir una señal del semáforo s, un proceso
ejecuta P(s) / wait(s) - Si la señal correspondiente aún no se ha
transmitido, el proceso se bloquea hasta que
llegue aquella
32Definición de semaforo
- Los semáforos pueden ser vistos como variables
que tienen un valor entero y sobre los que se
definen 3 operaciones - Iniciar el semáforo, con un valor no negativo
- La operación P disminuye el valor del semáforo
- Si el valor se hace negativo, el proceso que
ejecuta P se bloquea - La operación V incrementa el valor del semáforo
- Si el valor no es positivo, se desbloquea un
proceso bloqueado anteriormente por una operación
P sobre el mismo semáforo
33Introducción a los monitores
- Los semáforos son una herramienta potente y
flexible para garantizar la exclusión mutua - Pero puede ser difÃcil construir un programa
correcto usando semáforos - Los monitores son construcciones de
sincronización de alto nivel - Ofrecen una funcionalidad equivalente a la de los
semáforos - Son más fáciles de controlar
34Definición de Monitor
- Un monitor es un conjunto de procedimientos,
variables y estructura de datos que se agrupan en
un tipo de especial de módulo o paquete. Los
procesos pueden llamar a procedimientos en un
monitor siempre que lo deseen, pero no pueden
accesar directamente las estructuras de datos
internas del monitor a partir de procedimientos
declarados.
35CaracterÃsticas
- Un monitor es un módulo software que consta de
- Uno o más procedimientos
- Una secuencia de inicio
- Datos locales
- Sus caracterÃsticas básicas son
- Las variables de datos locales sólo están
accesibles para los procedimientos del monitor. - Un proceso entra en el monitor invocando uno de
sus procedimientos. - Sólo un proceso puede estar ejecutando en el
monitor en un instante dado.
36MonitoresVariables de condición
- La construcción monitor garantiza que sólo un
- proceso puede estar activo dentro de él
- A veces no es bastante
- Se necesitan mecanismos de sincronización
adicionales - Variables de condición
- El programador puede declarar variables locales
de tipo condición - Se manipulan únicamente con dos operaciones
- wait(vblecondición)
- signal(vblecondición)
37semaforo
- wait(v)
- El proceso que invoca esta operación se bloquea
hasta que otro proceso invoque signal(v) - signal(v)
- Desbloquea un proceso bloqueado por wait(v)
- Si se desbloquea un proceso, cuál se ejecuta?
38Principios de interbloqueo
- El interbloqueo puede ser definido como el
bloqueo permanente de un conjunto de procesos que
compiten por recursos del sistema o se comunican
unos con otros - En cuanto al uso de recursos
- Puede haber varias unidades del mismo tipo de
recurso - Cuando un proceso pide un recurso, le vale
cualquier unidad de ese tipo - Protocolo de uso de recursos
- Solicitud
- Utilización
- Liberación
39Principio de interbloqueo
40InterbloqueoModelos de representación
- Desde el punto de vista del interbloqueo, en un
sistema se pueden distinguir las siguientes
entidades y relaciones - Un conjunto de procesos
- Un conjunto de recursos
- Cada uno puede tener varias unidades
- Un conjunto de relaciones entre procesos y
recursos que indica qué recursos están asignados
a qué procesos. - Un conjunto de relaciones entre procesos y
recursos que indica qué solicitudes de recursos
están pendientes de ser satisfechas
41Algoritmo de planificación
- La planificación de los procesos se apoya en un
algoritmo de planificación de procesos, basado en
una polÃtica especifica para asignar el
procesador y mover los trabajos por el sistema.
Los algoritmos mas difundido son - Primero en entrar, primero en servirse (FCFS)
- Sigue el Trabajo más corto (SJN)
- Planificación por prioridad
- Tiempo restante más breve (SRT)
- Round Robin
- Colas de múltiples niveles
42Primero en entrar, primero en servirse (FCFS)
- Es un algoritmo de planificación no apropiativa,
que maneja los trabajos de acuerdo al tiempo de
arribo, conformen entran son servidos. Es un
algoritmo muy simple de implementar, porque
utiliza un tipo cola FIFO. Este algoritmo esta
bien para la mayor parte de los sistemas por
lotes, pero es inaceptables para los sistemas
interactivos, porque los usuarios interactivos
deben tener tiempos cortos de respuesta
43Primero en entrar, primero en servirse
(FCFS)continuación
- Con los (FCFS), conforme un nuevo trabajo entra
en el sistema su PCB, queda vinculado con el
final de la cola de listo y es eliminado en la
parte delantera de la cola, cuando el procesador
queda disponible, esto es, después de que ha
procesado todos los trabajos que existÃan en la
cola.