You are on page 1of 19

2 de Ingeniera Tcnica Informtica de Gijn

Sistemas Operativos

TEMA 2: GESTIN DE PROCESOS.


1.1. ORIGEN Y EVOLUCIN DEL CONCEPTO DE PROCESO..................................................................................................2
1.2. REQUISITOS DEL SISTEMA OPERATIVO PARA LA GESTIN DE PROCESOS.......................................................................2
1.3. DEFINICIN DE PROCESO (IMAGEN DE PROCESO)......................................................................................................2
1.4. DESCRIPCIN DE PROCESOS.......................................................................................................................................3
1.4.1. Tareas del SO respecto a los Procesos...............................................................................................................3
1.4.2. Estructuras de control del SO............................................................................................................................3
1.4.3. PCB (Bloque de Control de los Procesos).........................................................................................................4
1.5. EJECUCIN DE PROCESOS...........................................................................................................................................5
1.6. INTERRUPCIONES.......................................................................................................................................................6
1.6.1. Llamadas Al Sistema..........................................................................................................................................7
2. Ciclo de Vida de los Procesos.........................................................................................................................................8
2.1. INTRODUCCIN...........................................................................................................................................................8
2.2. MODELO SENCILLO.....................................................................................................................................................8
2.3. MODELO DE 5 ESTADOS..............................................................................................................................................9
2.4. MODELO GENERAL (6 ESTADOS)................................................................................................................................10
2.5. MODELO DE SIETE ESTADOS.....................................................................................................................................11
3. Control de Procesos......................................................................................................................................................12
3.1. CREACIN DE PROCESOS..........................................................................................................................................12
3.2. TERMINACIN DE PROCESOS.....................................................................................................................................13
3.3. CAMBIO DE PROCESO...............................................................................................................................................13
4. API (Llamadas al Sistema) del SO: Gestin de Procesos..........................................................................................15
5. Conceptos Avanzados: Hilos........................................................................................................................................16

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

1. Introduccin.
1.1. Origen y Evolucin del Concepto de Proceso.

PROCESO: instancia de un programa en ejecucin. [Milenkovic pag 32]


Evolucin del concepto de proceso (Stallings pag 63):
- En Sistemas Antiguos haba un solo programa en ejecucin.Con la Evolucin de los sistemas
informticos aparecen nuevos requisitos:
Mejorar rendimiento
Necesidad de interaccin con el usuario
Necesidad de varios usuarios simultneamente
Tiempo real
- Todos estos requisitos dieron lugar a Sistemas Operativos que ampliaron la visin que se tena de un
proceso: multiprogramados, de tiempo compartido, de tiempo real
Necesidad de una abstraccin que represente la ejecucin de un programa que proporcione un mtodo de
supervisin y control de los distintos programas que puedan estar ejecutndose [Stallings 63]

1.2. Requisitos del Sistema Operativo para la Gestin de Procesos.

Sistemas operativos de multiprogramacin construidos en torno al concepto de proceso


Requisitos de diseo que debe satisfacer un sistema operativo relativos a este concepto:
- Intercalar la ejecucin de un conjunto de procesos para maximizar el uso de la CPU garantizando
que el proceso progresa hasta terminar
- Asigna recursos a los procesos que compiten por ellos siguiendo polticas especficas
- Dar soporte a creacin/destruccin de procesos por parte del usuario y a la comunicacin entre ellos.
Creacin Crea la imagen del proceso que vive durante toda la vida del proceso.
Destruccin Libera memoria ocupada por la imagen del proceso.

1.3. Definicin de Proceso (Imagen de Proceso).

Proceso programa en ejecucin.


- Cargado en memoria. Para ejecutar un programa necesito
todos los datos necesarios. Ej: cdigo, constantes, variables
incializadas ...
Considerado por el SO como:
- Unidad mnima planificable por el SO para su ejecucin.
- Unidad de competicin y asignacin de recursos: Los
procesos compiten por los recursos. El SO para repartir los
recursos de los que dispone, mira cuntos procesos hay en
memoria.
Proceso contra Programa
- Entidad Dinmica / Entidad Esttica: El proceso es una
entidad dinmica porque cambia segn voy ejecutando las
instrucciones. El programa es una entidad esttica porque no
varia hasta que compilemos otra vez el programa.
El Proceso est compuesto por un conjunto de zonas de
memoria. Estas zonas son:
- Texto (cdigo), datos y pila.
- PCB: Informacin que el SO necesita para administrar el
proceso.
Contexto de ejecucin del proceso:
- Informacin que el SO necesita para administrar el proceso.

Memoria
Principal

Lista de
Procesos

PC

Proceso
A

B
texto
datos
pila

Registros
Procesador
PCB
texto
Proceso
B

PC

datos
pila

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Informacin que la CPU necesita para ejecutar correctamente el proceso


Para cada proceso tenemos que tener cargado en memoria su Contexto del Proceso (PCB, texto, datos y pila).
El SO debe tener una lista de todos los PCB que tiene, as sabr cuntos procesos tiene (n de PCB) y si
quiere borrar un proceso, borra un PCB.
Carga de un programa:
- Operacin que crea parte de la imagen del proceso copiando informacin almacenada en un fichero
ejecutable en memoria principal.
- Forma parte de la creacin de un proceso.

1.4. Descripcin de Procesos.


1.4.1. Tareas del SO respecto a los Procesos.

El Sistema Operativo se encarga de:


- Controlar los procesos: El SO controla toda la ejecucin de los procesos, es decir, cundo deben
ejecutarse y cundo deben esperar para ejecutarse,...
- Administra el uso que hacen los procesos de los recursos del sistema: El SO decide qu recursos son
asignados a un proceso y cundo.
- Mantiene la informacin de ejecucin de cada proceso en el sistema que utiliza para administrar el
uso que los procesos hacen de los recursos. Para almacenar esta informacin, construye y mantiene
estructuras de control que se denomina Bloque de Control de Procesos o PCB.
- El concepto de proceso se implementa mediante una estructura de datos (PCB) (que es almacenada
dentro de los datos del SO): El SO controla los PCB de todos los procesos.

1.4.2. Estructuras de control del SO

El SO gestiona procesos y recursos, por lo que debe mantener informacin actualizada del estado de
cada proceso y cada recurso.
- Tablas de memoria: Permiten al SO controlar el uso de la memoria principal (incluso tambin
secundaria) por los procesos.
- Tablas de entrada/salida: Usadas por el SO para gestionar los dispositivos de E/S.
- Tablas de ficheros: Informacin sobre los ficheros, su ubicacin en memoria secundaria, etc.
- Tablas de procesos: bloque de control de procesos.

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

1.4.3. PCB (Bloque de Control de los Procesos)

El SO agrupa toda la informacin que necesita para controlar y gestionar a un proceso en su PCB.
- Esta informacin sirve como descripcin en tiempo de ejecucin.
- Un proceso existe en cuanto tiene un PCB
El SO conoce un Proceso slo si hay un PCB asociado a l.
- Si un programa es elegido para competir por los recursos del sistema Hay crear el proceso SO
crea el PCB para ese proceso.
- Cuando llegue el fin de un proceso El SO libera el PCB.
Cada SO le da una implementacin diferente al PCB.
Todas las operaciones que el SO realiza sobre un proceso implican la manipulacin de su PCB.
Todos los PCB se organizan en la tabla de procesos.
El contenido de un PCB es, realmente, el contexto de ejecucin de proceso.
El PCB es:
- Una Estructura de Datos.
- En l se registran diferentes aspectos de la ejecucin de un proceso y del uso de recursos.
- Adems es un repositorio para cualquier informacin que puede variar de proceso en proceso.

El PCB de un proceso contiene bsicamente (Contexto de ejecucin de un proceso):

La Identificacin del Proceso: Identifica al proceso a la hora de comunicarse con otros procesos,
conocer su jerarqua, identificar qu proceso utiliza cada recurso
- Identificador numrico nico del proceso: A cada proceso que se crea el SO le da un nombre (en
realidad le da un n), as el SO puede identificar los procesos. Puede ser usado:
en otras tablas como referencia
para la identificacin del proceso cuando se comunica con otros
si la tabla de procesos es un array, se puede obtener el PCB del proceso usndolo como ndice.
- Identificador de su proceso padre: si los procesos estn autorizados a crear otros procesos.
- Identificador del usuario responsable del trabajo.

Informacin de Estado del Procesador: Contenido de los registros del procesador.


- Mientras el proceso se est ejecutando, est informacin se guarda en los registros fsicos.
- Cuando se interrumpe (abandona el procesador), toda esta informacin se guarda en el PCB de
forma que pueda restaurarse en el procesador cuando el proceso reanude su ejecucin.
- Se guarda:
Registros generales (registros visibles por el usuario) (acumulador)
Puntero de Pila.
Registros de control y estado: registroPC, informacin de estado, cdigos de condicin, etc.

Informacin de Control del Proceso: (Informacin adicional necesaria para que el SO controle y
coordine los diferentes procesos activos). Informacin que el SO necesita para administrar el proceso
- Datos de planificacin y estado: Estado del proceso, prioridad, datos de planificacin, sucesos.
- Pertenencia del proceso a estructuras de datos: Enlaces en Colas, listas, etc. Tiene datos necesarios
para mantener las estructuras.
- Comunicacin entre procesos.
- Privilegios de los procesos.
- Ubicacin en memoria: de su cdigo, datos y pila
- Propiedad y uso de los recursos.

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

1.5. Ejecucin de Procesos.

Secuencial [Stallings, pag 5-9]


- La ejecucin de un proceso consiste en la ejecucin de sus instrucciones, almacenadas en memoria.
- En su forma ms simple la ejecucin de una instruccin consiste en

La siguiente instruccin que tiene que ejecutar el Procesador es la que aparezca en el contenido del
registro PC (es decir, la instruccin a la que apunte el PC).
- El PC evoluciona a la siguiente instruccin a la actual (se actualiza para la prxima vez que
tengamos que acceder a l para saber qu instruccin es la siguiente a ejecutar).
- No posibilita la intercalacin de instrucciones de diferentes programas (multiprogramacin y/o
tiempo compartido): No hay gestin de interrupciones, la E/S tiene que ser por programa.
- E/S por programa:
El mdulo del E/S del SO es el que realiza la operacin, dialoga con el dispositivo.
Comprueba constantemente el estado del dispositivo hasta que detecta que se ha completado la
operacin.
SO Multiprogramados
- Un proceso P se ejecuta hasta que debe esperar el fin de una operacin de E/S (completar E/S)
Cuando ocurre esto el S.O. le quita la CPU a P y se la da a Q.
- Para implementar la multiprogramacin es necesario poder intercalar las instrucciones de un
programa con las de otros, con lo que hay que guardar informacin en el PCB. (En los registros del
procesador tenemos la informacin del PCB del proceso que est en ejecucin. Si lo quitamos de la
CPU hay que guardar los datos del procesador en su PCB para que la prxima vez que ejecute tenga
actualizados los datos y hay que poner en los registros del procesador los datos del PCB del nuevo
proceso que se va a ejecutar, para que trabaje con sus datos y no con los del proceso anterior).
- Necesidades
La CPU ya no puede estar constantemente comprobando el estado del dispositivo de E/S para
ver si termin la operacin iniciada para P, pero la operacin de E/S terminar en algn
momento y el SO tendr que saberlo. Se necesita por lo tanto, E/S dirigida por interrupciones.
- E/S dirigida por interrupciones
El mdulo de E/S del SO solicita la realizacin de la operacin al dispositivo
El dispositivo avisar al final de la operacin con una interrupcin.

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Durante la realizacin de la operacin, la CPU puede dedicarse a otras cosas, como ejecutar
otros procesos por ejemplo.
SO de Tiempo compartido
- Un proceso P se ejecuta de forma continuada hasta que finaliza el tiempo que tiene asignado (o bien
tiene que hacer E/S multiprogramacin).
- Consiste en ejecutar otra instruccin de un programa diferente a ste
- Necesidades
Interrupciones de fin de tiempo (reloj) para saber que se ha agotado el tiempo.
Las interrupciones posibilitan que el S.O. recupere el control ante determinados sucesos, sin que el
proceso lo ceda voluntariamente (como s ocurre en las llamadas al sistema). Son la principal
herramienta para sistemas multiprogramados. Cuando hay que cambiar de proceso se produce una
interrupcin.

1.6. Interrupciones.

Permiten interrumpir la ejecucin de un programa ante el acontecimiento de un suceso determinado,


tomando el control el S.O.
El procesador puede ejecutar otras instrucciones mientras se est realizando alguna operacin de E/S.
Ciclo de Ejecucin de Instrucciones con Interrupcin es

Nueva etapa Comprobar Interrupcin dnde se estudia si ha ocurrido alguna interrupcin.


Si no hay interrupcin la CPU pasa a la siguiente instruccin.
El procesador registra la situacin exacta de la ejecucin del trabajo actual (guarda la posicin
de la siguiente instruccin a ejecutar). Si hay una interrupcin pendiente, el procesador detiene la
ejecucin del programa en curso y ejecuta una rutina de tratamiento de la interrupcin.
Procesa la interrupcin segn su naturaleza y, posteriormente, reanuda el mismo u otro trabajo
de usuario. (si reanuda el mismo trabajo, volver al punto que se sucedi la interrupcin. Esto se
puede hacer, ya que el procesador guard en el PC donde estaba situada).
La rutina de tratamiento de la interrupcin forma parte del S.O. Este programa determina la
naturaleza de la interrupcin y ejecuta cuantas acciones sean necesarias.
La ocurrencia de una interrupcin produce una serie de eventos en la CPU (hardware) y en el software.
Los 2 ltimos pasos hacen referencia a un proceso que puede ser distinto al proceso que estaba en
ejecucin cuando se produjo la interrupcin.

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Cmo se trata una interrupcin?:


Se busca en el vector de interrupciones.
Se pasa el control a travs del vector de interrupciones a una rutina de procesamiento del SO y se
cambia a modo kernel.
El SO examina la instruccin que provoc la interrupcin.
Se determina el tipo de servicio requerido e informacin adicional.
El SO ejecuta la solicitud y devuelve el control a la siguiente instruccin a la interrupcin si no
hay E/S o a otro proceso si la hay, y se cambia a modo usuario.
Tipos de Interrupciones
- Hardware- Generadas por los dispositivos (Las provoca un dispositivo o proceso externo al que se
est ejecutando). Son asncronas
Ejemplos:
Del reloj del procesador
De una controladora de dispositivo para indicar la finalizacin correcta de una operacin o
para indicar que se ha producido algn error.
- Software.- Generadas por el propio proceso en ejecucin. Son sncronas. Hay 2 tipos:
Llamadas al sistema.- Se producen mediante la invocacin de una instruccin especial del
procesador (instruccin Trap al S.O.). Se usan para solicitar servicios al S.O. y se gestionan
como cualquier otra interrupcin.
Excepciones: Eventos que impiden continuar la ejecucin del proceso. Se producen cuando el
proceso produce un error grave que impide continuar con su ejecucin:
Momentneamente, como una falta de pgina
Definitivamente, termina el proceso, por ejemplo divisin por cero, instruccin ilegal,
referencia ilegal a memoria Finaliza proceso y cambiar a otro.
Sucesos (interrupciones hardware y software): Son condiciones necesarias para que se cambie de proceso,
pero no suficientes.

1.6.1. Llamadas Al Sistema


1.6.1.1. Definicin de Llamada Al Sistema

El dar libertad al usuario para ejecutar cualquier cosa implica Riesgos.


7

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Se puede producir degradacin del sistema y Destruccin de datos de otros procesos o del S.O., por
lo que es necesario un mecanismo controlado y seguro de ejecucin de Instrucciones Peligrosas.
Los Peligros deben hacerse siempre bajo control del S.O. El S.O. debe hacer las siguiente tareas:
- Acceso a los recursos (hardware o software).
- Creacin y gestin de procesos.
- Acciones sobre memoria, etc.
Llamadas Al Sistema:
- Proporcionan la interfaz entre el SO y un programa en ejecucin.
- Son el mecanismo por el cual un proceso puede solicitar al SO la realizacin de un servicio.
- Provoca la ejecucin de cdigo del SO que se hace siempre en modo privilegiado.

1.6.1.2. Gestin de una Llamada al Sistema

Muchos procesadores cuentan con una instruccin especial denominada interrupcin software, llamada
al sistema, trap al S.O,
Las llamadas al sistema se implementan con una instruccin especial (trap) que genera una interrupcin.
- Cuando se ejecuta, el hardware la trata como una interrupcin.
- La gestin de la interrupcin es realizada por el SO en modo privilegiado, puede acceder a todos los
recursos.
- El SO examina la instruccin que provoc la interrupcin.
- Determina el tipo de servicio solicitada y obtiene informacin adicional necesaria para realizarlo.
- El sistema operativo ejecuta la solicitud y devuelve el control a algn proceso, que se ejecutar en
modo usuario. El proceso puede ser el mismo que solicit la llamada al sistema u otro.
1.6.1.3. Interfaz de Alto Nivel de Llamadas al Sistema

Los lenguajes de alto nivel permiten hacer llamadas al sistema desde el programa. Estas llamadas al
sistema parecen llamadas a procedimientos o funciones normales.
Cuando se programa en un lenguaje de alto nivel las llamadas al sistema estn ocultas dentro de
procedimientos o funciones de librera
- Tienen una parte inicial que prepara los parmetros del servicio solicitado de acuerdo con la forma
en que los espera el SO
- A continuacin, incluyen la instruccin especial (trap ) que es la verdadera llamada al sistema.
- Una parte final que recupera los valores de resultado del servicio, para devolverlos al proceso que
realiz la invocacin.
Ejemplo: Programa que lee datos de un fichero y los copia a otro. Los parmetros que necesita son:
Nombres de ambos ficheros. Acciones:
- Programa debe abrir el fichero origen y crear el destino.
Cada operacin (abrir el fichero origen y crear el destino) implica una llamada al sistema y trae
consigo la necesidad de gestionar los errores que se produzcan.
- Bucle lectura de datos del origen y escritura en destino (ambas son llamadas al sistema).
- El programador debe cerrar ambos ficheros (tambin es una llamada al sistema).
Uso de las llamadas al sistema:
- Problemas: No tiene portabilidad. (Distintos sistemas operativos tiene distintas llamadas al sistema).
- Solucin: Funciones de mayor nivel de abstraccin proporcionadas por lenguajes de alto nivel.

2. Ciclo de Vida de los Procesos.


2.1. Introduccin.

La principal responsabilidad del SO es controlar la ejecucin de los procesos: sta incluye determinar el
patrn de intercalado de ejecucin de instrucciones y la asignacin de recursos a los procesos.
El Ciclo de Vida de los Procesos se utiliza para describir el comportamiento que se quiere que exhiban
los procesos.
8

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Existen varios modelos dependiendo de la complejidad que el sistema operativo sea capaz de soportar
El Ciclo de Vida de un proceso se representa por estado y transacciones. Las transacciones son
movimientos de un estado a otro.

2.2. Modelo Sencillo.

Modelo Sencillo: Los procesos que tienen la CPU, estn ejecutndose y los que no la tienen estn en el
estado no ejecutndose.
Transaccin

Estado

Cuando el SO crea un proceso, lo coloca en el estado No ejecucin: En algn momento el procesador


quedar libre y el proceso podr pasar al estado En ejecucin
Cuestiones de Diseo:
- Hay que guardar informacin acerca de los procesos para poder restaurarlos luego.
- Dnde ubicar los procesos que no tienen la CPU? En alguna estructura de datos de tipo cola de
PCBs
Lista de los PCB
de los procesos.

Cuando cambio de proceso, para buscar el nuevo proceso voy a la lista de PCB de los procesos, adems
tendr una lista apuntando al primer PCB.
Hay que definir e implementar una rutina del sistema operativo que se encargue de cambiar procesos,
esta es el Despachador (Dispatcher).

2.3. Modelo de 5 Estados.

Es suficiente con tener los estados Ejecucin y No ejecucin?


Problema: Procesos que no pueden ejecutarse (por estar realizando E/S) aunque se les de la CPU. La
Cola de listos tiene los procesos que estn listos para ejecutarse y los que estn bloqueados. El
despachador no puede elegir cualquier proceso de la lista.
Solucin:
- Dividir No ejecucin en dos estados:
Bloqueados esperando un suceso (esperando E/S).
Listo (no est en E/S).
- Se aaden otros dos estados: Nuevo y Finalizado
Es necesario incluir estados

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Listo: Procesos que estn listos para ejecutarse, slo necesitan que se les de la CPU.
Ejecucin: Proceso en Ejecucin.
Bloqueado: Estos procesos no tienen la CPU, pero aunque se la diramos quedaran parados. No pueden
ejecutarse hasta que ocurra algn evento.
Exit: Cuando un proceso termina el SO no libera todos los recursos. El PCB del proceso sigue guardado por
si otro programa necesita alguna de sus funciones. Luego liberara tambin el PCB.
Nuevo: El proceso ha sido creado pero no ha sido admitido an por el SO en el conjunto de procesos
ejecutables. Habitualmente esto es debido a que el proceso an no se ha cargado en memoria.
Finalizado: El proceso ha sido eliminado por el SO del conjunto de procesos ejecutables porque ha
finalizado, o porque se ha cancelado su ejecucin por alguna razn (habitualmente, por alguna excepcin).
Un proceso sale de Ejecucin cuando no puede seguir ejecutndose porque va a hacer una E/S o termina
(exit), o cuando de se le acaba el tiempo.
Si un proceso se est ejecutando y necesita una entrada de datos exterior, pasa el estado Bloqueado hasta que
realiza esa entrada. Pasara entonces al estado Listo.
De Ejecucin pasara a Listo, cuando se le quita la CPU al proceso, por el motivo que sea. Una de las causas
ms habituales es el tiempo compartido. Cuando a un proceso se le acaba el tiempo asignado, se le quita la
CPU y tiene que esperar para ejecutarse.

10

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Cuestiones de diseo:
Son necesarias dos colas:
Cola listos
Cola bloqueados
Cuando ocurre un evento, todos los procesos de la cola de Bloqueado que esperaban por l (hay
que buscarlos) se mueven a la cola de Listos

En el caso de S0s en los que pueden existir muchos procesos bloqueados, puede ser ms eficiente
tener una cola de bloqueados por cada evento.
Cuando ocurra un suceso, el sistema operativo puede pasar a listo la lista entera de procesos de la
cola correspondiente.

Dependiendo de lo que se est esperando se pone un proceso en una cola o en otra.


Cuando ocurre un suceso ir a buscar un proceso a la lista de procesos que esperaban ese suceso.
Dispatcher (Despachador): Es el mecanismo del SO que lo que hace es cambiar el proceso que se est
ejecutando, que por algn motivo no continua, por otro. Siempre que se efecte un cambio de proceso en
la CPU, el sistema deber guardar el contexto del proceso que sale y restaurar el contexto del proceso
que entra. Es decir, el despachador realiza todas la operaciones posibles para cambiar de proceso (Ej:
Cambia el valor del PC). Realiza el salvado de los valores del proceso que se va y carga los valores del
proceso que llega.
Cuando le quitamos la CPU a un proceso guardamos en el PCB de ese proceso todos los datos necesarios
para que luego se ejecute bien.

2.4. Modelo General (6 estados)

Problema: Se plantea un problema respecto al modelo anterior: Todos los procesos estn cargados en
memoria, tengan el estado que tengan. El problema es que la Memoria Principal es limitada, y los
procesos ocupan cada vez ms. Tambin hay otro problema, las operaciones de E/S son muy lentas en
comparacin con la velocidad de la CPU, y a pesar de la multiprogramacin, la CPU puede estar ociosa
mucho tiempo.
Soluciones:
- Aumentar cantidad de memoria.
Intercambio (swapping): Llevar un proceso de memoria principal a memoria secundaria
(preferentemente los de estado bloqueados). El proceso pasara a estado suspendido. Se suele
11

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

hacer cuando hay un proceso que hace que la CPU est demasiado tiempo ociosa, y as podemos
cargar otro proceso en memoria que no desperdicie tanto la CPU.
Es una operacin de E/S, pero al usarse el disco como dispositivo, el intercambio suele
mejorar el rendimiento del sistema.

Implicaciones: Aparece un nuevo estado: Suspendido.

Ahora un proceso se carga en Memoria Principal por dos causas:


- El SO trae a Memoria Principal un proceso suspendido.
- El SO atiende peticin de un nuevo proceso.

2.5. Modelo de Siete Estados

Qu pasa cuando se trae a Memoria principal un proceso Suspendido?


Problema: No se sabe si el proceso estaba Listo o Suspendido (esperando por E/S o no
respectivamente).
Adems, puede que no sea buena idea devolver a memoria principal un proceso suspendido que sigue
bloqueado.
Solucin: Dividir Suspendido en dos estados:
- Suspendido Bloqueado esperando un suceso (esperando E/S).
- Suspendido Listo (no est en E/S).
Modelo Definitivo:

En este modelo podemos suspender procesos sin falta de que estn en ejecucin (podemos suspender
procesos que estn bloqueados o listos para ejecucin). Como en el modelo anterior, los procesos
suspendidos esperan en memoria secundaria (disco duro, por ejemplo).
Implementacin del Modelo.
- Para implementar la pertenencia de los procesos a determinado estado, se guardan, asociadas con
cada estado, listas de PCB.
- Cola de Listos
Cola inicial donde se colocan los procesos.
12

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

PCB de aquellos procesos que no tienen el procesador en este momento pero estn esperando
que se lo den para poder ejecutarse.
SO selecciona siguiente a ejecutar de esta cola.
- Cola de Bloqueados
PCB de procesos esperando suceso para poder continuar.
Estructura de colas de PCBs

3. Control de Procesos
3.1. Creacin de Procesos

La lleva a cabo el sistema operativo.


La creacin es transparente al usuario: El usuario no interviene de forma explcita.
El nuevo proceso puede crearse debido a:
- Lectura de un nuevo trabajo de un lote de ellos.
- La solicitud de un servicio por parte de un proceso
- (Un programa en memoria secundaria: Los procesos no tiene relacin entre ellos.)
- A partir de un proceso en ejecucin. Process Spawning: Jerarqua. Aqu s existe una relacin
entre los procesos. Produce una jerarqua de procesos.
Al proceso original se le llama Proceso padre. Al proceso nuevo se le llama Proceso Hijo.
Habitualmente cooperan entre ellos.
Comparticin de Recursos: Los procesos Padre e Hijo pueden compartir todos, parte o ninguno
de los recursos del sistema.
Respecto a la ejecucin existen dos posibilidades:
Los dos procesos se ejecutan concurrentemente y compiten por los recursos.
El Padre espera a que termine el Hijo.
La creacin de procesos consiste en crear la imagen del proceso. Implica:
- Crear estructuras de datos para representar el proceso: Cuando se crea un proceso hay que crear un
PCB para ese proceso.
- Aisgnar el Espacio de Direcciones que necesita y la memoria necesaria para su ejecucin.
- Cargar (si es necesario) el texto y los datos junto con las rutinas del sistema
- Inicializar zona de pila
- Crear e Inicializar PCB

13

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

3.2. Terminacin de Procesos

Un proceso puede terminar por diversas razones:


- Ejecuta una instruccin de Finalizacin.
- Llamada Explcita a un servicio del sistema operativo (Exit) (llamada al sistema) para indicar que ha
terminado: El usuario le pide al SO que termine ese proceso.
- Debido a errores de ejecucin del proceso (excepciones): Ej: El SO ve que el proceso intenta acceder
a una zona de memoria que no e suya y por lo tanto el SO lo mata.
- Por intervencin directa del operador o del SO: por ejemplo, si el proceso est en interbloqueo.
- El proceso Padre mata al Hijo (si hay Process Spawning).
- Su proceso padre termina.
El estado Finalizado
- El proceso ya no es elegible para su ejecucin
- El SO mantiene temporalmente las estructuras de datos asociadas al proceso para que programas
auxiliares puedan extraer de ellas cierta informacin
Programa de contabilidad para facturar por uso de recursos
Programa de utilidad que analiza la informacin para estudiar mejoras del rendimiento
- Una vez que los programas auxiliares han hecho su trabajo, el SO elimina definitivamente el proceso
Su imagen (o lo que quedase de ella)

3.3. Cambio de Proceso.

En cualquier momento, el proceso en ejecucin puede ser interrumpido y el SO puede decidir colocar en
el estado Ejecutando a otro proceso: Cambio de proceso
Despachador [Silberschatz, Pg. 108 (4.4.5)]
- Es un mdulo del S.O. encargado de realizar los cambios de proceso, se divide en varias etapas:
1. Salvar el contexto del proceso que abandona la CPU.Guardar datos en su PCB.
Fundamentalmente los registros del procesador y el nuevo estado al que pasa el proceso.
2. Mover al proceso a la cola correspondiente.
3. Restaurar el contexto del proceso que toma la CPU:Recuperar datos desde su PCB.
4. Eliminar a este ltimo proceso de la cola de listos y ponerlo en estado Ejecutndose.
El despachador no elige el proceso que va a tomar el control de la CPU: Lo har el planificador a corto
plazo.
La ocurrencia de una interrupcin no implica un cambio de proceso, aunque s obliga a salvar el contexto
del proceso en ejecucin para que se pueda ejecutar la rutina de tratamiento de la interrupcin y que el
mismo proceso pueda continuar despus.
Las tareas de Salvar y Restaurar contexto nos asegura que los procesos continan ejecutndose en el
punto donde lo dejaron por ltima vez y en las mismas condiciones.
Problema: sobrecarga (OVERHEAD). Todas las tareas del sistema operativo son pura sobrecarga
(consumen tiempo de CPU no til para el usuario) pero son necesarias para que todo funcione bien.
- Cambio proceso Costosa, compleja y frecuente
Afecta significativamente al rendimiento de SO de multiprogramacin.
14

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Es costoso por ser muy frecuente: depende tambin de la velocidad de la memoria, el nmero de
registros a copiar y de la existencia o no de instrucciones especiales para copiar todos los
registros.
Solucin: Eficiencia del cambio de proceso mejora con ayuda hardware.
Esquema hardware empleado para acelerar la conmutacin de procesos
- Disponer de mltiples conjuntos estructuralmente idnticos de registros del procesador.
- Cambio proceso cambiar puntero al conjunto de registros actual.
- Si existen ms procesos activos que conjuntos de registros, el sistema copia los datos de los registros
desde y hacia memoria.

15

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

16

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

4. API (Llamadas al Sistema) del SO: Gestin de Procesos.

Todos los Sistemas Operativos ofrecen una serie de Servicios a los programas de usuario referentes a
la gestin de procesos.
Estos servicios son accesibles mediante Llamadas al sistema.
Cada sistema operativo ofrece un conjunto diferente: hay un subconjunto de ellas comn.
Categoras principales:
- Creacin y eliminacin de procesos.
- Control de procesos.
- Informacin de procesos.
Idproceso = CrearProceso (Atributos)
- Crear nuevo con los atributos que se pasan como parmetros.
- El valor de retorno es el identificador del nuevo proceso.
- El S.O. obtiene un identificador que no est en uso y el PCB para el nuevo proceso.
- Asigna memoria para el nuevo proceso (texto, datos y pila).
- Crea y Rellena el PCB con atributos proporcionados, valores por defecto y valores resultantes de
alguna de las operaciones anteriores.
- Enlaza el proceso con las estructuras del S.O, insertando el PCB del proceso en la lista de listos.
Finalizar (IdProceso)
- El SO coloca al proceso en el estado Finalizado, adems reclama algunos de los recursos
asignados al proceso, habitualmente todos excepto el PCB
- Se suele invocar como parte de la terminacin ordenada de un proceso
- La finalizacin de un proceso est sujeta a ciertas restricciones, por ejemplo, slo los procesos de
un determinado usuario pueden hacer terminar procesos de l mismo.
- Un proceso puede eliminarse a s mismo y a otros (el hijo).
- Es posible que no se elimine el PCB inmediatamente, sino ms adelante, ya que es posible que
otros procesos necesiten datos del que se quiere eliminar.
idProceso =Dividir(), Unir(IdProceso): Crear un nuevo proceso para que se ejecute una instruccin
mientras el padre ejecuta otras.
- Es un mtodo de creacin y terminacin de procesos.
- Divide una secuencia de instrucciones en otras dos ejecutables concurrentemente, con lo que:
Se crea un nuevo proceso (hijo) que ejecuta parte del cdigo y el padre ejecuta la otra.
Habitualmente tambin usa una copia de los datos que estaba manipulando el padre.
Se devuelve la identidad del hijo al padre que lo puede usar para esperar el fin del hijo antes
de invocar la operacin Unir.
- Unir: Rene las secuencias de cdigo divididas y el padre puede usarlo para sincronizarse con el
hijo. El padre espera por la terminacin del hijo.
Bloquear (IdProceso): Pararse indefinidamente.
- El proceso IdProceso permanece en el sistema bloqueado indefinidamente y por lo tanto pasa al
estado Bloqueado.
- El proceso puede bloquearse a s mismo o a otros dependiendo de ciertas restricciones.
- El SO responde poniendo el PCB del proceso en la lista de Bloqueados y actualizando el estado.
Reanudar (IdProceso)
- Reanuda el proceso bloqueado.
- El SO pone el PCB en la lista de Listos para Ejecucin y actualiza el estado del proceso.
Retardar (IdProceso, tiempo)
- El proceso queda bloqueado el tiempo especificado.
- El SO ser el responsable de pasar a Listo al proceso cuando haya transcurrido dicho tiempo.
- El control del paso del tiempo ser realizado con ayuda de las interrupciones de reloj.
LeerAtributos (IdProceso, &cjtoAtributos)

17

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Consulta a la que el SO responde proporcionando los valores actuales de los atributos del proceso
designado y dejndolos en la estructura de datos cjtoAtributos
- En general, dichos valores estn almacenados en el PCB del proceso.
ModificarAtributos (IdProceso, cjtoAtributos)
- Operacin inversa a la anterior.
- Ejemplo: Modificar la prioridad de un proceso

5. Conceptos Avanzados: Hilos.

No todos los SO soportan hilos.


Hebras o hilos o procesos ligeros (LWP)
- Un hilo es la unidad bsica de uso de la CPU.
- Consiste en: Un Contador de Programa + Conjunto de Registros + Espacio para la Pila. Para
representar un hilo no se necesitan texto y datos como con los procesos, ya que el texto y los datos
los comparten todos los hilos. Los hilos ejecutan programas, pero puedes estar ejecutando
distintas partes del programa a la vez, utilizando el mismo texto.
- Comparten con sus iguales la seccin de cdigo, datos y recursos del sistema operativo, conocido
como task.
Un proceso tradicional = task (o tarea) con un hilo. (Una tarea que contuviese un nico hilo sera lo
que llamamos proceso).
Hilos de usuario
- Libreras.
- El Cambio de hilo no necesita llamada al sistema que causa interrupciones al kernel, por tanto, es
muy rpido.
Hilos kernel (hilos que el SO conoce)
HILOS
- Llamadas al sistema.

P
C

TASK

Segmento de
texto

Segmento de
datos

Similitudes entre procesos e hilos:


- Los Hilos tienen varios estados: listo, bloqueado, ejecutndose o terminado.
- Comparten CPU y slo hay un hilo activo al tiempo.
- El Hilo en ejecucin dentro de un proceso tiene su propia pila y contador de programa.
- Pueden crear hilos hijos, bloquearse en llamadas al sistema Otros hilos siguen su ejecucin
normal.
Diferencias:
- Los Hilos comparte espacio de direcciones de una task, por lo que:
No son independientes unos de otros. Los hilos acceden a los mismo datos, si uno modifica
algo el otro lo ve.
Un hilo puede leer o escribir la pila de otros hilos.
No hay proteccin entre hilos.

18

2 de Ingeniera Tcnica Informtica de Gijn


Sistemas Operativos

Overhead
- Todas las tareas del sistema operativo son puro overhead, pero son necesarias para que todo
funcione bien.

19

You might also like