Vous êtes sur la page 1sur 31

Universidad Nacional del Centro del Per

Ingeniera de Sistemas

SISTEMAS OPERATIVOS
Gestin de Procesos

Ing. Jaime Suasnbar Terrel

Temas:
1. Introduccin
1.1. Orgenes del concepto de Proceso
1.2. Aparicin del concepto de Proceso

2. Definicin de Procesos
3. Gestin de procesos
4. Estructura de Control de un SO
4.1. BCP
4.2. Informascin del BCP

5. Conmutacin de Procesos
6. Estados de un proceso
6.1. Modelos de 2 estados
6.2. Modelos de 5 estados
6.3. Modelo suspendido

7. Servicios del sistema operativo para la gestin de procesos


8. Conceptos Avanzados
8.1. Hebras
8.2. Cuestiones de Rendimiento

1. INTRODUCCIN
1.1. Orgenes del Concepto de Proceso
En sistemas antiguos 1 nico programa en ejecucin

Velocidad Microprocesador > Dispositivos E/S


Evolucin de los sistema informticos nuevas necesidades
Mejor rendimiento, interaccin con el usuario, varios usuarios, tiempo real

Nuevos objetivos de diseo para los sistemas operativos

1. INTRODUCCIN
1.2. Aparicin del Concepto de Proceso
Origen de la abstraccin de proceso
Multiprogramacin : Capacidad de ejecutar 2 o ms
programas simultneamente con un solo procesador.
Tiempo compartido: Soporte a varios usuarios

2. Definicin Tradicional de Proceso


Un proceso es una instancia de un programa en ejecucin. La
ejecucin de tal programa es indicada al SO mediante una accin
u orden especializada.
Multiplexacin de procesos

3. Gestin o Administracin de Procesos


Necesidad de Cargar 2 o ms programas
Un programa del SO responde en ese punto creando un nuevo proceso y a
continuacin otros.

La Gestin de procesos consiste en la creacin e inicializacin de


estructuras de datos en la Memoria y SO para monitorizar y
controlar el la multiplexacin de procesos para el uso ptimo de
los recursos del sistema como procesador y los dispositivos I/O.

4. Estructura de Control del SO


Memoria Principal

Proceso
Porcin de un programa en ejecucin
Cargado en memoria

Lista de
Procesos

Proceso

PCB
texto

datos
pila

Proceso
B

PCB
texto
datos

pila

Organizacin
Compuesto por un conjunto de zonas de
memoria llamadas en conjunto contexto
del proceso:
PCB o BCP informacin que el s.o. necesita para
administrar el proceso
Segmentos: Texto, Datos, Pila
PC

Registros Procesador

4.1. Bloque de control de procesos (BCP)


Descriptor de proceso o bloque
de control de proceso (BCP).
agrupa toda la informacin que el
SO necesita conocer respecto a un
proceso particular.
Cada vez que se crea un proceso,
el SO crea uno de estos bloques
para que sirva como descripcin
en tiempo de ejecucin durante
toda la vida del proceso

Dentro de la memoria
asignada al SO tenemos
los BCPs de los procesos.

4.1.B Descripcin de Procesos


Para gestionar procesos y administrar el uso que hacen de los
recursos, el SO construye y mantiene estructuras de control
BCP
Estructura de datos con campos para registrar los diferentes aspectos de la
ejecucin de un proceso y del uso de recursos.
Sirve como repositorio para cualquier informacin que puede variar de
proceso en proceso.
Todas las operaciones que SO realiza sobre procesos las realiza en realidad
sobre los PCB o al menos, implica el uso de los mismos

4.2. La informacin del BCP


1. Identificacin del proceso
a) El identificador del proceso
(PID)
b) El identificador del proceso
padre
c) La identificacin del
usuario.

2. Informacin del estado


del procesador
a) Registros visibles para el
usuario:
b) PC, Registros de control y
estado.

3. Informacin de control y
gestin del proceso
a) Informacin de
planificacin y estado
b) Estructuacin de datos
c) Comunicacin entre
procesos
d) Gestin de memoria
Puntero a PCB

Estado del
Procesador
Identificador del Proceso

Registros (Contador de Programa, palabra de estado


del procesador, reg. Generales)
Informacin de memoria

5. Conmutacin de procesos
Es una transicin entre dos procesos residentes en memoria en
un sistema multitarea.

6. Estados de un proceso
6.1. MODELO DE DOS ESTADOS
El modelo ms sencillo que puede construirse tiene en cuenta
que un momento dado un proceso puede estar ejecutndose en
el procesador o no.
Despachar

6.2. Proceso que no tiene la CPU?


Aquellos procesos que no estn en estado de ejecucin debern
almacenarse en algn tipo de estructura de datos mientras esperan que
el sistema operativo les otorgue el control sobre el procesador.
La siguiente figura propone una estructura basada en una cola de
procesos.

Definir e implementar una rutina del sistema operativo que se encargue de


cambiar procesos Dispatcher o despachador

6. Estados de un proceso
6.3. MODELO DE 5 ESTADOS
En este modelo un proceso puede encontrarse en cualquiera de
los siguiente 5 estados: Nuevo, Listo o preparado, Ejecucin,
Bloqueado y Terminado.

6. Estados de un proceso: Transiciones


6.3. MODELO DE 5 ESTADOS
En este modelo un proceso puede encontrarse en cualquiera de
los siguiente 6 TRANSICIONES:
Admitir, despachar, fuera de
tiempo, evento de espera, evento ocurrido y liberacin.

6.4. Proceso que no tiene la CPU?


Este modelo de 5 estados puede implementarse igualmente mediante
estructuras de tipo cola siguiendo un esquema como

Ahora se dispone de dos colas, una para los procesos en situacin de Listos y
otra para los bloqueados. A medida que se admiten procesos nuevos en el
sistema, estos se sitan en la cola de preparados.

6. Estados de un proceso
6.4 MODELO SUSPENDIDO SO atiende peticin de nuevo
proceso
Combinacin suspendido con espera suceso
Varios estados nuevos
Varias colas para cada estado

6.5. Proceso que no tiene la CPU?

7. Servicios del sistema operativo para la


gestin de procesos
los ssoo: diferentes filosofa y objetivos de diseo
Sus capas del ncleo muestran una gran similitud.
Las funciones proporcionadas por la coleccin total de llamadas
al SO son muy parecidas.

7.1. El servicio de creacin de procesos


crear(Id_proceso, atributos):
En respuesta a esta llamada el SO crea un proceso con el identificador y
los atributos especificados o predeterminados por el sistema.
El SO asigna un nuevo BCP en la memoria libre, rellena sus campos con
los parmetros proporcionados y/o predeterminados e inserta el BCP
en la cola de procesos preparados.
De esta manera, el proceso especificado podr ser elegido por el SO
para su ejecucin.
Parmetros o atributos que se define en la creacin:
1. Nivel de privilegios.
2. Nivel de prioridad.
3. Tamao y requisitos de memoria.
4. Informacin sobre acceso a memoria y derechos de acceso a dispositivos de
E/S.
5. Tamao mximo del rea de datos y/o de la pila.

7.2. El servicio de terminacion de procesos


terminar(Id_proceso):
La invocacin de esta llamada hace que el SO destruya el proceso
designado y lo suprima del sistema.
El SO reacciona reclamando todos los recursos asignados al
proceso especificado, cerrando los archivos abiertos por o para el
proceso y efectuando otras operaciones de que pueden
considerarse necesarias y que dependern de la naturaleza del
proceso.
A continuacin el BCP es eliminado de la lista en que resida y
devuelto al conjunto de posiciones libres.
Un proceso puede eliminarse a s mismo pero no puede crearse a
s mismo. Un proceso podr eliminar a otro siempre y cuando
tenga privilegios para ello.

7.3. El servicio para abortar un proceso


abortar(Id_proceso):
Esta orden supone la terminacin forzosa de un proceso. El SO
efecta generalmente muchas de las acciones que conlleva la
orden terminar. Habitualmente se proporciona un volcado de
registros y memoria junto con la informacin relativa a la
identidad del proceso que se aborta y la razn de la accin.
Ejemplo en MS Windows 7
Se produce una operacin invalida y el SO lo aborta.
Aparece una ventana con detalles en donde se ofrece un volcado del
registro y memoria.

7.4. El servicio dividir/unir


fork()/join():
La operacin dividir fork() se utiliza para dividir una secuencia de
instrucciones en dos secuencias que se ejecutan concurrentemente.
Se crea as un nuevo proceso (proceso hijo) que ejecuta una rama del cdigo
dividido mientras el proceso padre continua ejecutando la otra.
Esta llamada proporciona al proceso padre el identificador del proceso hijo y lo
utiliza para asignarle una rama de cdigo.

La operacin unir join() se utiliza para reunir las dos secuencias de


cdigos divididos y puede ser empleada por un proceso padre para
sincronizarse con un proceso hijo.
Ejemplo Esto se utilizo mucho en servidores de archivos.
Existe un proceso llamado listener que se mantiene a la escucha. Cuando
recibe la peticin de un cliente (identificado por una direccin IP, etc). Listener
realiza un fork() y al nuevo proceso le proporciona la direccin IP del cliente
mientras el proceso Padre sigue a la escucha.

7.5. El servicio para bloquear un proceso


bloquear(Id_proceso):
Como respuesta a esta llamada, el proceso designado queda
bloqueado indefinidamente y pasa a este estado.
Un proceso puede bloquearse asmismo o puede bloquear a otro
proceso cuando esta autorizado para ello en virtud de su nivel de
privilegio, prioridad o pertenencia a una familia.

7.6. Otros servicios


Servicio para reanudar un proceso reanudar(Id_proceso)
Servicio para retardar un proceso retardar(Id_proceso, tiempo)
Servicio para leer los atributos de un proceso
leer_Atributos(Id_proceso,atributos)
Servicio para modificar la prioridad de un proceso
modificar_Prioridad(Id_proceso, nuevo_valor_prioridad)

6. Conceptos avanzados: hilos


Hebras o hilos o procesos ligeros (LWP)
Unidad bsica de uso de la CPU
Consiste en: Contador de programa + Conjunto de registros + Espacio para
la pila
Comparte con sus iguales la seccin de cdigo, datos y recursos del
sistema operativo, conocido como task.

Un proceso tradicional = task con un hilo.

6. Conceptos avanzados: hilos


Hilos de usuario
Libreras
Cambio de hilo no necesita llamada al sistema que causa interrupciones al
kernel, por tanto, es muy rpido.

Hilos kernel
Llamadas al sistema.
HILOS
PC
Segmento de texto

Segmento de datos

TASK

6. Conceptos avanzados
Similitudes entre procesos e hilos:
Hilos varios estados: listo, bloqueado, ejecutndose o terminado
Comparten CPU y slo hay un hilo activo al tiempo
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:
Hilos comparten espacio de direcciones de una task

No son independientes unos de otros


Un hilo puede leer o escribir la pila de otros hilos.
No hay proteccin entre hilos.
Sera necesaria?.

Fin
Ing. Jaime Suasnabar Terrel

main(int argc, char *argv[]) {


procesador.reloj=0; /* Inicializar el reloj*/
while (hay_algo_que_ejecutar()) {
/* Simulacin ciclo ejecucin instrucciones */
busca_instruccin(...);
decodifica&ejecutainstruccion(...);
comprobarinterrupciones();
procesador.reloj++;
} /* fin while */
}
void decodifica&ejecutainstruccion(...)
/* Simulacin del procesador */
{
switch (instruccin_a_ejecutar)
/* Instrucciones varias del procesador */
case 'T': /* Trap al sistema operativo */
/* Poner en el registro adecuado el valor 1 para indicar que hay
interrupcin */
/* Poner en el registro adecuado el valor que indique el tipo de
interrupcin */
}

void llamadaalsistema() /* Ejecucin del trap */


{
switch(numsyscall) {
case E/S : elegirprocesoaejecutar();
}
}
void comprobarinterrupciones() {
/* Aqu se comprueban las interrupciones de fin de E/S y las de
llamada al sistema ... */
/* Comprobar si hay llamada al sistema */
if (procesador.hayllamadaalsistema) {
llamadaalsistema();
procesador.hayllamadaalsistema=0;
}
/* Comprobar si hay interrupcion de fin de E/S */
if(proceso[i].finalentradasalida)
proceso[i].estado=LISTO;
}

Tcnica propuesta para la ejecucin concurrente de


programas
aumento del rendimiento, mejor uso de recursos y mejor
velocidad de respuesta del sistema informtico.

Vous aimerez peut-être aussi