GESTION DE PROCESOS
Procesos y tareas
• Uno de los módulos más importantes de un sistema
operativo es la de administrar los procesos y tareas
del sistema de cómputo.
• El sistema realiza varias actividades simultáneamente
que compiten por la
• utilización de determinados recursos, entre los que
destaca la CPU, estas actividades se
• denominan procesos.
• Un programa, por si solo, es una entidad pasiva
mientras que un proceso es una entidad activa
ya que compite por los recursos máquina.
• El proceso es una unidad de trabajo del
sistema y el sistema operativo es el
responsable de realizar un
• seguimiento de todas las actividades del
sistema en conexión con los procesos
generados.
División implícita y explicita de traerás
• Dependiendo del SO y del entorno objetivo
de ejecución de programas.
• La división de un trabajo en tareas que serán
ejecutadas como procesos independientes así
como la asignación inicial de los atributos de
esos procesos pueden ser efectuadas o bien
por el SO o bien por el desarrollador de la
aplicación
En otras palabras lo que constituirá un proceso
independiente
• 1._ División implícita de tareas definida por el
sistema
• 2._ División explicita de tareas definida por el
desarrollador
Tipos de procesos y relación entre
procesos concurrentes
• En principio podemos realizar una clasificación
muy general de los procesos entre procesos
de usuario y procesos de sistema
• Un proceso de usuario es aquel creado por el
SO.
• Un proceso de sistema es un proceso que
forma parte del propio SO y que desempeña
alguna de sus labores características
El sistema operativo y los procesos
• Todos los SO de multiprogramación están
construidos entorno al concepto de proceso
• Los requerimientos principales que debe
cumplir un SO para con los procesos son los
siguientes:
• 1._ El SO debe intercalar la ejecución de
procesos para optimizar la utilización de l
procesador ofreciendo alavés un tiempo de
respuesta razonable
• 1._ El SO debe asignar los recursos del
sistema a los procesos en conformidad con
una política especifica que evite situaciones
de ínter bloqueo
• 1._ El SO podría tener que dar soporte ala
comunicación entre procesos y ofrecer
mecanismos para su creación
Creación y terminación de procesos
• El sistema de operación debe crear un
mecanismo para la creación y terminación de
procesos.
1._ Creación de procesos
Cuando un nuevo proceso se agrega el sistema
de operación construye las estructuras de datos
que son usadas para administrar los procesos y
le asigna espacio de direcciones. Estas acciones
constituyen la creación de un nuevo proceso.
Los eventos comunes para la creación de
procesos
• - En un ambiente batch, un proceso es creado en
respuesta al sometimiento a ejecución de un
trabajo.
• - En un ambiente interactivo, un proceso es creado
cuando un nuevo usuario entra al sistema.
• - El sistema de operación puede crear un proceso
para que realice una función en respuesta a una
petición de un programa usuario, sin que el usuario
tenga que esperar.
• - Creación de procesos hijos por parte de procesos
usuarios ya existentes el proceso que crea se llama
proceso padre.
2._ Terminación de procesos
• Un proceso termina cuando ejecuta su última
instrucción y pide al sistema operativo que lo
elimine. En este momento, el proceso puede
devolver un valor de estado a su proceso
padre.
• El sistema operativo libera la asignación de
todos los recursos del proceso, incluyendo las
memorias física y virtual, los archivos abiertos
y los búferes de ES.
• La terminación puede producirse también en
otras circunstancias.
• Un proceso puede causar la terminación de
otro proceso a través de la adecuada llamada
al sistema.
• Dicha llamada al sistema al sistema sólo
puede ser invocada por el padre del proceso
que va a terminar.
• En caso contrario, los usuarios podrían
terminar arbitrariamente los trabajos de otros
usuarios.
• Adicionalmente, un número de error o una
condición de fallo puede llevar a la finalización
de un proceso. Las condiciones mas habituales
son las siguientes:
• Finalización normal .
• Limite de tiempo excedido.
• Memoria no disponible.
• Violaciones de frontera .
• Error de protección .
• Limite de tiempo.
• Fallo de E/S.
• Instrucción no válida.
• Instrucción privilegiada.
• Uso inapropiado de datos.
• Intervención del operador por el sistema
operativo.
• Terminación del proceso padre.
• Solicitud del proceso padre.
Estados de un proceso
El SO gestiona los recursos disponibles (memoria, CPU, etc.) entre los procesos que
en ese momento trabajan en el sistema, de tal forma que, para ellos, el sistema se
comporte como si fuera monousuario. Así que, en un sistema monoprocesador, la
CPU se reparte entre los procesos que se tengan en ese momento.
El SO gestiona los recursos disponibles
(memoria, CPU, etc.) entre los procesos que en
ese momento trabajan en el sistema, de tal
forma que, para ellos, el sistema se comporte
como si fuera monousuario. Así que, en un
sistema monoprocesador, la CPU se reparte
entre los procesos que se tengan en ese
momento.
Modelo de dos estados
• Se trata de la utilización de dos archivos, un objeto
ejecutable y una biblioteca del sistema, que después se
colocan en la imagen del proceso dentro de la memoria RAM
y posteriormente también se dan de alta dentro de la tabla
de procesos, bloqueo de control del proceso.
EXPEDIR
ENTRAR SALIR
EJECUCION
NO EJECUCION
PAUSAR
En ese modelo, un proceso puede estar
ejecutándose o no. Cuando se crea un nuevo
proceso, se pone en estado de No ejecución. En
algún momento el proceso que se está ejecutando
pasará al estado No ejecución y otro proceso se
elegirá de la lista de procesos listos para ejecutar
para ponerlo en estado Ejecución. Es necesario q
el SO pueda seguirle la pista a los procesos,
conociendo su estado y el lugar que ocupa en
memoria, y procesos que no se están ejecutando
deben guardarse en algún tipo de cola mientras
esperan su turno para ejecutar.
El modelo anterior de 2 estados funcionaría
bien con una cola FIFO y planificación por
turno rotatorio para los procesos que no están en
ejecución, si los procesos estuvieran siempre listos
para ejecutar, se deba esperar algún suceso
antes de continuar. Es por esto que se necesita un
estado donde los procesos permanezcan esperando
la realización de la operación de Entrada Salida por
parte del Sistema Operativo hasta que puedan
proseguir. Se divide entonces al estado No ejecución
en dos estados: Listo y Espera. Se agregan además un
estado Nuevo y otro Terminado.
Los cinco estados de este diagrama
Nuevo: El proceso recién fue creado y todavía no fue admitido por el SO
. En general los procesos que se encuentran en este estado
Todavía no fueron cargados en la memoria principal.
Listo: el proceso está listo para ser ejecutado, sólo está esperando que
el planificador de corto plazo así lo disponga.
Ejecución: Se encuentra el proceso que tiene el control del procesador.
Dado que en un instante determinado solo un proceso puede
encontrarse en este estado.
Espera: el proceso no puede ejecutar hasta que no se produzca cierto
suceso, como la finalización de una operación de E/S solicitada por una
llamada al SO .
Terminado: El proceso fue expulsado del grupo de procesos
ejecutables, ya sea porque terminó o por algún fallo, como un error de
protección, aritmético, etc.
ESTADOS DE UN PROSESO DE SISTEMAS
• Preparado (R).- Proceso que está listo para ejecutarse
• Ejecutando (O).- Sólo uno de los procesos preparados se está
ejecutando en cada momento
• Suspendido (S).- Se esta suspendido si no entra en el reparto de
CPU, el proceso pasa a formar parte del conjunto de procesos
preparados.
• PARADO (T).- Será cuando pasarán a estar preparados cuando
reciban una señal determinada que les permita continuar.
• Zombie (Z).- Todo proceso al finalizar avisa a su proceso padre . En
vaso de que el padre no lo reciba, el proceso hijo queda en estado
zombie, no está consumiendo CPU, pero sí continua consumiendo
recursos del sistema .
Transiciones de estado de los procesos
• De ejecución á Bloqueado: Se realiza esta transición cuando cuando
queda en espera cuando por la concesión de sus recursos o por la
determinación de un suceso.
• De ejecución á Listo: Cuando el proceso que ocupa la CPU lleva
demasiado tiempo ejecutándose ,el sistema operativo decide que otro
proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado
listo.
• De Listo á en ejecución: Cuando lo requiere el planificador de la CPU.
• De Bloqueado á Listo: Se dispone del recurso por el que se había
bloqueado el proceso.
• De Nuevo a Preparado: Es cuando el SO acepta o admite un proceso mas.
• De Preparado a Terminado: Ocurre cuando cuando el proceso padre
decide finalizar la ejecución del hijo.
• De Bloqueado a Terminado: Ocurre cuándo el proceso supere el tiempo
máximo de espera de un recurso y el SO decida terminarlo.
PROCESOS SUSPENDIDOS
Debido a que el procesador es mucho
mas rápido que los dispositivos de E/S
puede ocurrir que en un momento dado
todos los procesos del sistema se
encuentran bloqueados a al espera de
que se complete alguna operación de
E/S.
Para solucionar este problema existe
dos opciones:
1. Ampliar la memoria en forma quesea
posible y albergar en ella mas procesos y
incrementar asi la posibilidad de que
alguno de ellos haga uso efectivo del
procesador.
2. La otra solución consiste en ampliar una
técnica conocida como INTERCAMBIO
SHAPING: esta técnica consiste que en
cuando todos los procesos que se
encuentran en memoria principal están
bloqueados.
En general se considera suspendido a un proceso que presenta las
características siguientes
1) Un proceso suspendido no esta disponible de
inmediato para su ejecución.
2) Un proceso puede estar esperando o no un suceso.
Si lo esta la condición de bloqueado es
independiente de la condición de suspendido y el
acontecimiento del suceso bloqueante no lo
habilita para ejecución.
3) El proceso fue situado en estado en estado
suspendido por un agente (el SO o el proceso
padre) con el fin de impedir la ejecución
4) El proceso no puede apartarse de estado hasta que
llegue la orden exprese para ello.
LAS TRANSMISIONES QUE INVOLOGRAN A LOS NUEVOS
ESTADOS SON LOS SIGUENTES:
• Transmisión bloqueado y suspendido preparado y
suspendido:
• Transmisión preparado y suspendido-preparado:
• Transmisión preparado-preparado y suspendido:
• Transmisión bloqueado y suspendido – bloqueado:
• Transmisión ejecución – preparado y suspendido:
Entre las razones mas habituales para la suspensión
de procesos podemos podemos citar las siguientes:
1. Intercambio un proceso por otros. El SO nesicita liberar
memoria principal para cargar un proceso que esta
listo para ejecutarse
2. Suspensión de un proceso por el SO por sospechar que
esta causado algún tipo de problemas.
3. Solicitud expresa del usuario.
4. Un proceso puede ejecutarse periódicamente y puede
ser suspendido mientras espera el intervalo de tiempo
antes de una nueva ejecución.
5. Por una petición del proceso padre.
ESTRUCTURA DE CONTROL DEL
SISTEMA OPERATIVO
El s.o. es el controlador de los sucesos que se
producen en un sistema
informático, responsable de las solicitudes
del usuario, administra los procesos y
recursos del sistema, mediante elementos
TABLAS DE MEMORIA DE E/S DE
ARCHIVOS Y DE PROCESOS
Si el SO para administrar los procesos y
recursos mantiene tablas de información
sobre cada entidad que esta administrando e
incluyen lo siguiente.
1. Asignación de memoria principal y secundaria
a los procesos.
2.Información necesaria para la gestión de la
memoria secundaria.
• las tablas de E/S: administra los dispositivos y
canales de E/S puede estar disponible o estar
asignado a un proceso particular.
• tablas de archivos: Sobre su posición y
distribución en la memoria sec
Un ejemplo de estructura para la ubicación de
archivos es la conocida como FAT (File
Allocation Table)
la informacion almacenada para cada
proceso consiste en
1. Datos de usuario.
2. Programa de usuario.
3. Pila de sistema.
4. Bloque de control de proceso.
BLOQUE DE CONTROL DE PROCESOS
(BCP)
Cada vez que se crea un proceso, el SO crea uno
de estos bloques, Cuando el proceso termina, su
BCP es liberado y devuelto al deposito de celdas
libres del cual se extraen nuevos BCPs.
La información del BCP se agrupa
generalmente en las siguientes categorías
1. IDENTIFICACIÓN DEL PROCESO
a) El identificador del proceso (PID): Consiste en
un número entero asignado por el sistema.
b) El identificador del proceso padre
c) La Identificacion del usuario: Es una cadena de
caracteres
2. INFORMACIÓN DEL ESTADO DEL
PROCESADOR
a) Registros visibles para el usuario:
b) Registros de control y estado.
c) Puntero a la pila del proceso:
3. INFORMACIÓN DE CONTROL Y GESTIÓN DEL
PROCESO:
a) Información de planificacion y estado:
b) Estructuración de datos:
c) Comunicación entre procesos:
d) Privilegios de los procesos:
e) Gestión de memoria:
f ) Recursos en propiedad y utilización de los
procesos:
El SO gestiona los recursos disponibles
(memoria, CPU, etc.) entre los procesos que en
ese momento trabajan en el sistema, de tal
forma que, para ellos, el sistema se comporte
como si fuera monousuario. Así que, en un
sistema monoprocesador, la CPU se reparte
entre los procesos que se tengan en ese
momento.
Modelo de dos estados
• Se trata de la utilización de dos archivos, un objeto
ejecutable y una biblioteca del sistema, que después se
colocan en la imagen del proceso dentro de la memoria RAM
y posteriormente también se dan de alta dentro de la tabla
de procesos, bloqueo de control del proceso.
EXPEDIR
ENTRAR SALIR
EJECUCION
NO EJECUCION
PAUSAR
En ese modelo, un proceso puede estar
ejecutándose o no. Cuando se crea un nuevo
proceso, se pone en estado de No ejecución. En
algún momento el proceso que se está ejecutando
pasará al estado No ejecución y otro proceso se
elegirá de la lista de procesos listos para ejecutar
para ponerlo en estado Ejecución. Es necesario q
el SO pueda seguirle la pista a los procesos,
conociendo su estado y el lugar que ocupa en
memoria, y procesos que no se están ejecutando
deben guardarse en algún tipo de cola mientras
esperan su turno para ejecutar.
El modelo anterior de 2 estados funcionaría
bien con una cola FIFO y planificación por
turno rotatorio para los procesos que no están en
ejecución, si los procesos estuvieran siempre listos
para ejecutar, se deba esperar algún suceso
antes de continuar. Es por esto que se necesita un
estado donde los procesos permanezcan esperando
la realización de la operación de Entrada Salida por
parte del Sistema Operativo hasta que puedan
proseguir. Se divide entonces al estado No ejecución
en dos estados: Listo y Espera. Se agregan además un
estado Nuevo y otro Terminado.
Los cinco estados de este diagrama
Nuevo: El proceso recién fue creado y todavía no fue admitido por el SO
. En general los procesos que se encuentran en este estado
Todavía no fueron cargados en la memoria principal.
Listo: el proceso está listo para ser ejecutado, sólo está esperando que
el planificador de corto plazo así lo disponga.
Ejecución: Se encuentra el proceso que tiene el control del procesador.
Dado que en un instante determinado solo un proceso puede
encontrarse en este estado.
Espera: el proceso no puede ejecutar hasta que no se produzca cierto
suceso, como la finalización de una operación de E/S solicitada por una
llamada al SO .
Terminado: El proceso fue expulsado del grupo de procesos
ejecutables, ya sea porque terminó o por algún fallo, como un error de
protección, aritmético, etc.
ESTADOS DE UN PROSESO DE SISTEMAS
• Preparado (R).- Proceso que está listo para ejecutarse
• Ejecutando (O).- Sólo uno de los procesos preparados se está
ejecutando en cada momento
• Suspendido (S).- Se esta suspendido si no entra en el reparto de
CPU, el proceso pasa a formar parte del conjunto de procesos
preparados.
• PARADO (T).- Será cuando pasarán a estar preparados cuando
reciban una señal determinada que les permita continuar.
• Zombie (Z).- Todo proceso al finalizar avisa a su proceso padre . En
vaso de que el padre no lo reciba, el proceso hijo queda en estado
zombie, no está consumiendo CPU, pero sí continua consumiendo
recursos del sistema .
Transiciones de estado de los procesos
• De ejecución á Bloqueado: Se realiza esta transición cuando cuando
queda en espera cuando por la concesión de sus recursos o por la
determinación de un suceso.
• De ejecución á Listo: Cuando el proceso que ocupa la CPU lleva
demasiado tiempo ejecutándose ,el sistema operativo decide que otro
proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado
listo.
• De Listo á en ejecución: Cuando lo requiere el planificador de la CPU.
• De Bloqueado á Listo: Se dispone del recurso por el que se había
bloqueado el proceso.
• De Nuevo a Preparado: Es cuando el SO acepta o admite un proceso mas.
• De Preparado a Terminado: Ocurre cuando cuando el proceso padre
decide finalizar la ejecución del hijo.
• De Bloqueado a Terminado: Ocurre cuándo el proceso supere el tiempo
máximo de espera de un recurso y el SO decida terminarlo.