Professional Documents
Culture Documents
GESTION DE PROCESOS
1
El Modelo de Procesos
TEMA II
Procesos
Objetivos
Tener claro lo que es un proceso dentro de un
Sistema Operativo, sus estados y las diferentes
transiciones que le ocurren.
Identificar el porque un proceso puede llegar a
bloquearse, y como puede aplicarse tcnicas
para evitar el bloqueo del mismo.
Cargado de Programas
Que es un Proceso
Procesos
Procesos
Proceso: programa en ejecucin
El computador puede realizar varios
procesos al mismo tiempo
Por ejemplo, mientras se est ejecutando un
programa del usuario, el computador puede
estar leyendo informacin de un disco, o
enviando datos a una impresora.
Proceso (II)
Los
procesos
pueden
ser
cooperantes
o
independientes, en el primer caso se entiende que los
procesos interactan entre s y pertenecen a una misma
aplicacin. En el caso de procesos independientes en
general se debe a que no interactan y un proceso no
requiere informacin de otros o bien porque son
procesos que pertenecen a distintos usuarios.
Los
sistemas
operativos
modernos
(de
multiprogramacin y paralelos) estn estructurados
alrededor del concepto de proceso.
Procesos (III)
Un solo procesador puede ser compartido entre varios
procesos con algoritmo de planificacin , el cual
determina cundo detener el trabajo en un proceso y
dar servicio a otro distinto
Se organizan en varios procesos secuenciales
Un CPU real, varios CPUs virtuales, uno para cada
proceso
Multiprogramacin: cuando el CPU se alterna de
programa en programa
10
Procesos (IV)
11
Procesos (V)
D
C
B
A
Tiempo
Solo un programa est activo en un momento dado
12
Procesos (VI)
Esto implica que no siempre un proceso
va a durar el mismo tiempo de ejecucin
Programa Vs Proceso
El programa es como una receta de cocina
El proceso es la actividad en la que el
cocinero lee la receta, busca los ingredientes
y cocina el pastel
13
Jerarqua de Procesos
..........
Planificador
14
N-2
N-1
Los
procesos
pueden
ser
independientes o interactuar uno con
otro
En ejecucin
2
1
3
Bloqueado
Listo
4
16
Anatoma de un Procesos
En el contexto de varios Sistemas Operativos como Unix, un proceso
consiste de varios segmentos:
Texto (cdigo ejecutable).
Datos.
Pila o Stack.
Libreras compartidas.
Segmentos de Memoria Compartida.
Estos segmentos son una ilusin creada por el Kernel y dependiente
del hardware.
Desde el punto de vista del Kernel, la esencia de un proceso est
contenida en una o dos estructuras de datos:
Linux (task_struct).
Solaris (proc structure y user structure o u_area).
Windows (Un proceso es un Objeto, con atributos y servicios).
Conocidos genricamente como PCB (Process Control Block).
17
Implantacin de Procesos
Implica:
Administracin de procesos
Administracin de memoria
Administracin del sistema de archivos
18
address space
Bibliotecas compartidas
(shared librarires)
brk ptr
heap (via malloc)
Datos no inicializados (.bss)
Datos inicializados (.data)
cdigo (.text)
0
Zona prohibida
19
20
21
filas de
prioridades
22
23
almacenados en
memoria
24
Condiciones de competencia
Ej. Un directorio spooler de impresin
.
.
abc
4
5
Proceso A
prog c
out = 4
out almacena el
prximo archivo
a imprimir
prog n
in = 7
Proceso B
25
.
.
in almacena la
siguiente entrada
libre
Condiciones de competencia
Cola de Impresin
Lista.txt
rol.xls
imagen.jpg
carta.doc
Variables de cerradura
Uso de una variable que indique si algn proceso se encuentra
o no en la regin crtica
Alternancia estricta
Esta solucin requiere que los dos procesos alternen en
forma estricta su entrada a las regiones crticas
respectivas
29
Solucin de Peterson
Cada proceso antes de entrar a su regin crtica
(uso de variables compartidas), llama al
procedimiento enter_region con su propio
nmero de proceso (0 1)
Despus de terminar la regin crtica se llama al
procedimiento leave_region
Casos:
Un solo proceso est interesado
Dos procesos estn interesados
30
Solucin de Peterson
# include prototypes.h
# define FALSE
0
# define TRUE
1
# define N
2
int turn;
int interested [N];
33
Tipos de procesos
Procesos daemon (Disks And Extensions Monitor )
Un demonio es un tipo especial de programa que se
ejecuta en segundo plano en vez de ser controlado
directamente por el usuario (es un proceso no interactivo).
Este tipo de programas se ejecutan de forma continua
(infinita) , vale decir, que funciona sin tener relacin con
una terminal o consola y, consecuentemente, sin
interactuar con un humano.
Bifurcacin (fork)
El mecanismo por el cual un proceso crea otro
proceso se denomina bifurcacin .
El fork, se aplica en el contexto de un lenguaje de
programacin o un sistema operativo, hace referencia a
que un programa crea una copia de s mismo, que
entonces acta como un "proceso hijo" del proceso
originario, ahora llamado "padre". Los procesos
resultantes son idnticos, salvo que tienen distinto
nmero de proceso (PID) y la llamada devuelve el PID
del proceso hijo al padre y un 0 al hijo
En los sistemas operativos multihilo es posible crear
tanto hilos como procesos. La diferencia estriba en que
un proceso solamente puede crear hilos para s mismo y
en que dichos hilos comparten toda la memoria
reservada para el proceso.
35
36
Problemas Clsicos de la
Comunicacin de Procesos
El problema del productor y el consumidor
El problema del productor y el consumidor describe el hecho
de que cuando hay dos o ms procesos interactuando a
travs de un buffer comn habiendo procesos que ponen
informacin o datos y otros que los sacan se pueden llegar a
dar condiciones en las cuales los procesos que ingresan los
datos no puedan hacerlo debido a que el buffer ya se
encuentra lleno y para el caso de los que sacan los datos del
buffer intenten sacar datos cuando ya no hay nada que sacar.
Para evitar estas condiciones se desarrollaron mtodos de
comunicacin/sincronizacin entre procesos en los cuales
se impide que esto suceda haciendo que el proceso
productor "duerma" si el buffer est lleno y una vez que
exista espacio el proceso "consumidor" despierte al
productor para que siga generando o viceversa.
37
38
Semforos
Un semforo es una variable especial protegida (o tipo
abstracto de datos) que constituye el mtodo clsico
para restringir o permitir el acceso a recursos
compartidos
(por
ejemplo,
un
recurso
de
almacenamiento) en un entorno de multiprocesamiento.
Fueron inventados por Edsger Dijkstra (1965) y se
usaron por primera vez en el sistema operativo THEOS.
41
Uso de 3 Semforos
Full : cuenta el nmero de entradas
ocupadas, asegura que el productor detenga
su ejecucin cuando el buffer est lleno
Empty : cuenta el nmero de entradas vacas,
asegura que el consumidor detenga su
ejecucin cuando el buffer est vaco
Mutex : para garantizar que los procesos
productor consumidor no tengan acceso
simultneo al buffer (semforo binario)
42
Monitores
Un monitor es una coleccin de procedimientos,
variables y estructuras de datos que se agrupan
en cierto tipo particular de mdulo o paquete.
Los
procesos
pueden
llamar
a
los
procedimientos de un monitor cuando deseen
pero no tienen acceso directo a las estructuras
de datos internos del monitor.
El compilador tiene la tarea de la exclusin
mutua sobre los datos del monitor liberando de
esta tarea al programador
43
Investigacin- Exposicin
Comunicacin entre procesos (funcionamiento)
Algoritmo de Dekker
Algoritmo de Peterson
Algoritmo del Banquero de Dijkstra
Investigacin- Exposicin
45
Thread
Un Thread es:
Una imagen de los registros del hardware.
Un contador de programa (PC) y una pila.
Todos los dems recursos son compartidos
por todos los threads de ese proceso. Esto
incluye:
Archivos abiertos.
Espacio de direcciones virtuales.
Procesos hijos.
46
Modelo Multithread
47
Uno a Uno
48
Uno a Varios
Si un thread se
bloquea, tambin
el proceso se
bloquea.
49
Muchos a muchos
Ejemplos:
Solaris 2
IRIX
HP-UX
Tru64 UNIX
Windows
NT/2000 con
el ThreadFiber
package.
Windows XP
50
Interrupciones
Es una seal que se origina en un dispositivo hardware
(por ejemplo, un perifrico), para indicar al procesador
que algo requiere su atencin inmediata; se solicita al
procesador que suspenda lo que est haciendo para
atender la peticin.
Las interrupciones juegan un papel fundamental, en
especial en la operacin de dispositivos E/S, ya que les
permite enviar estas peticiones al CPU. Sin ellas el
sistema debera chequear constantemente los
dispositivos para comprobar su actividad, pero las
interrupciones permiten que los dispositivos puedan
permanecer en silencio hasta el momento que requieren
atencin del procesador.
51
Tipos de Interrupciones
53
Interrupcin no enmascarable
(NMI)
Es un tipo especial de interrupcin usada en la mayora
de los microordenadores como el IBM PC y el Apple II.
Una interrupcin no emascarable causa que la CPU deje
lo que esta haciendo, cambie el puntero de instruccin
para que apunte a una direccin particular y contine
ejecutando el cdigo de esa direccin. Se diferencia de
los otros tipos de interrupcin en que los programadores
no pueden hacer que la CPU las ignore, aunque algunos
ordenadores pueden por medios externos bloquear esa
seal, dando un efecto similar al resto de las
interrupciones.
55
56
Int
(hex)
XT: Descripcin
AT: Descripcin
---
Paridad*
Paridad*
08
Temporizador*
Temporizador*
09
Teclado*
Teclado*
IRQ2
0A
Reservado
Interrupciones 8 a 15 (PIC#2)
IRQ3
0B
IRQ4
0C
IRQ5
0D
Disco duro
IRQ6
0E
Disquete
Disquete
IRQ7
0F
70
No aplicable
71
No aplicable
Redirigido a IRQ2*
IRQ10
72
No aplicable
no asignado
IRQ11
73
No aplicable
no asignado
IRQ12
74
No aplicable
Ratn PS2
13
75
No aplicable
Coprocesador 80287*
IRQ14
76
No aplicable
IRQ15
77
No aplicable
57
La Planificacin de Procesos
Planificacin de Procesos
Trabajo ms corto primero (SJF: Shortest Job First)
Algoritmo no expropiativo que al conocer a priori los tiempos de
ejecucin de los procesos, los ordena de acuerdo a su duracin
Objetivos de la Planificacin
Los objetivos de la planificacin de proceso son:
Equidad, todos los procesos deben poder ejecutarse.
Eficacia, mantener ocupada la CPU un 100% del
tiempo.
Tiempo de respuesta, minimizar el tiempo de respuesta
al usuario.
Tiempo de regreso, minimizar el tiempo que deben
esperar los usuarios por lotes para obtener sus
resultados.
Rendimiento, maximizar el nmero de tareas
procesadas por hora.
60
Quantum de Tiempo
Es un pequeo intervalo de tiempo que se asigna a un
proceso para que ejecute sus instrucciones. El cuanto
(Quantum) es determinado por el planificador de procesos
utilizando algn algoritmo de planificacin
Cuando el quantum de tiempo es muy grande, cada
proceso tendr el tiempo necesario para terminar, de manera
que el esquema de planificacin por turno rotatorio degenera
en mtodo FIFO. Si el quantum es muy pequeo, el gasto
extra por cambio de proceso se convierte en el factor
dominante y el rendimiento del sistema se degradar hasta el
punto en que la mayor parte del tiempo se invierte en la
conmutacin del procesador, con muy poco o ningn tiempo
para ejecutar los programas de los usuarios.
61
Quantum de Tiempo
62
Planificacin de Procesos
Los algoritmos de planificacin son los que
definen que poltica se va a seguir para que un
proceso pase al estado de ejecucin.
Tipos de planificacin:
Round Robin
Por prioridad
Colas mltiples
Primero el trabajo ms corto
De dos niveles
63
Round Robin
Cada proceso tiene asignado un intervalo de tiempo
de ejecucin, llamado quantum
Todos los procesos tienen la misma importancia
Se mantiene una lista de procesos ejecutables
La alternancia entre un proceso y otro necesita de
cierta cantidad de tiempo para administracin
(alternancia de contexto)
La administracin implica resguardo y carga de
registros y mapas de memoria, actualizacin de
varias tablas y listas, etc
64
Round Robin
Cul debera ser la longitud del quantum?
Duracin de 5 mseg para administracin por
intercambio de procesos
Si el proceso tiene un quantum de 20 mseg, significa
que el 20 % del tiempo del CPU se desperdicia en el
costo administrativo
Se el quantum es de 500 mseg, el tiempo
desperdiciado sera de un 1%, pero los ltimos
procesos debern esperar mucho tiempo
Un quantum de 100 mseg es razonable
65
Round Robin
Proceso
activo
Siguiente
proceso
Proceso
activo
Siguiente
proceso
G
66
67
Mxima prioridad
Prioridad 4
Prioridad 3
Prioridad 2
Prioridad 1
Mnima prioridad
68
Colas mltiples
Establecimiento de clases de prioridad
Los procesos en la clase de mayor prioridad se
ejecutan en un quantum. Los procesos de la
siguiente clase se ejecutan en dos quantum, los de la
siguiente clase en 4 quantum, etc
Cuando un proceso consumiera todos los quantum
asignados a l, se le mova a la siguiente clase
Si un proceso necesita hacer clculos en 100
quantums, bajo el modelo de Round Robin habran
100 intercambios, pero con colas mltiples se le
aplicara primero 1 quantum, luego 2, 4, 8, 16, 32 y
finalmente 64 (de este solo usa 37), haciendo
solamente 7 intercambios
69
4
B
4
C
4
D
4
B
70
4
C
4
D
8
A
Planificacin de 2 niveles
Si no se dispone de suficiente memoria principal,
habrn procesos que se almacenarn temporalmente
en disco
Tiempo de alternancia entre procesos que estn en
disco es considerable
Primero se carga en memoria cierto subconjunto de
procesos ejecutables. El planificador se restringe
entonces a ese subconjunto durante cierto tiempo.
Luego el planificador toma otro subconjunto de
procesos que han esperado algn tiempo en el disco
71
Planificacin de 2 niveles
a, b,
c, d
e, f,
g, h
b, c,
f, g
Procesos en la
Memoria principal
e, f,
g, h
a, b,
c, d
a, d,
e, h
Procesos en disco
72
Round Robin
Algoritmo de Planificacin Round Robin (RR q=3)
Proceso
Tiempo de
llegada
Tiempo de
Servicio
C
D
Tiempo de
Comienzo
Tiempo de
Finalizacin
Turnaround
0, 12, 21
3, 15, 23
23
15
3, 15
6, 16
16-1=15
11
6, 16, 23
9, 19, 26
26-2=24
15
9, 19
12,21
21-3=18
13
20
13.5
Promedio
73
Tiempo de
Espera
Muchas Gracias
74