Anda di halaman 1dari 127

SISTEMAS OPERATIVOS I

UNIDAD II PROCESOS Y SUBPROCESOS

MC B

CONTENIDO
1. 2. 3. 4. 5.

Procesos Subprocesos Comunicacin entre procesos Problemas clsicos de comunicacin entre procesos Calendarizacin

1. PROCESOS

Pseudoparalelismo Paralelismo en sistemas multiprocesador

a) Multiprogramacin b) Procesos secuenciales independientes c) Slo un programa activo a la vez

1.1. El Modelo de procesos


Multiprogramacin conmutacin entre procesos Priorizado de procesos Calendarizacin de procesos

1.2. Creacin de procesos


a)

Al inicializar el sistema

Win Servicios, Wi S i i Li Linux Demonios D i Ya sea en primer o segundo plano

b) c) d)

En llamadas al sistema Solicitud de usuario para crearlo

Comando o aplicacin p

Inicio de un trabajo por lotes

Ejecucin de trabajos con la creacin de procesos

Se crean con:

Fork + execve CreateProcess

Padre P d e hijo hij ti tienen di distintos ti t espacios i d de memoria Probablemente compartan el cdigo del programa

1.3. Terminacin de procesos


a)

Terminacin normal (voluntaria)

Cuando termina su trabajo

Exit Unix, ExitProcess Win

b) c)

Terminacin por error (voluntaria)

Terminacin por cdigo Instruccin no permitida, divisin por 0, , etc referencia a memoria inexistente,

Error fatal (involuntaria)

d)

Terminado por otro proceso (involuntaria)


Kill de otro proceso en Unix, TerminateProcess en Win. Deben tener autorizacin para hacerlo hacerlo.

1.4. Jerarqua de procesos


En Win no hay jerarqua de procesos E Unix: En U i


Se crea una jerarqua de rbol Los p procesos p padres no p pueden desheredar a los hijos j Ejemplo:

Al iniciar init (imagen de arranque) lee un archivo que le indica cuantas terminales hay, generando un proceso nuevo por cada terminal. Los procesos de las terminales esperan a que alguien inicie sesin. Si a S alguien gu e inicia c a sesin ses el e s shell e espe espera a co comandos a dos pa para a iniciar ca procesos por cada comando, y as sucesivamente.

1.5. Estados de procesos

Estados:
a) b) c) )

En ejecucin Usando la CPU Listo En espera que se desocupe la CPU Bl Bloqueado d En E espera d de que suceda d cierto i t suceso externo
1 1. 2. 3. 4. El proceso se bloquea para esperar entrada El calendarizador escoge otro proceso El calendarizador escoge ste proceso Ya hay entrada disponible

10

Ejemplo: El comando cat file1 file2 file3 | grep finanzas


Se concatenan tres archivos y grep selecciona l entradas las t d que contienen ti l la palabra l b fi finanzas Grep queda bloqueado hasta que cat termina.

El calendarizador y los procesos

11

1.6. Implementacin de procesos

El SO mantiene la tabla de procesos, t bi ll tambin llamada d bl bloques d de control t ld de procesos, la cual contiene:

Estado del proceso Su contador del programa Apuntador de pila Asignacin de memoria Estado de sus archivos abiertos Informacin de calendarizacin

12

Campos de una tabla de procesos:


a)

Administracin de procesos

Registros R i t Contador de programa Palabra del estado del programa Apuntador de pila Estado del p proceso Prioridad Parametros de calendarizacin ID de proceso

Proceso padre Grupo de procesos Seales Hora de inicio del proceso Tiempo de CPU consumido Tiempo de CPU de los hijos Hora de la siguiente alarma

13

Campos de una tabla de procesos:


b)

Administracin de memoria

Apuntador a segmento de texto Apuntador a segmento de datos Apuntador a segmento de pila

c)

Administracin de archivos

Directorio raz Directorio de trabajo Descriptores de archivo ID de usuario ID de grupo

14

Vector de interrupcin

Contiene la direccin del procedimiento de servicio de interrupcin de cada dispositivo de E/S. Las interrupciones de vaciado de pilas, guardar registros, lo hace una pequea rutina en ensamblador bl d

15

Cuando ocurre una interrupcin


El hardware mete el contador de programa en la pila pila, etc etc. El hardware carga un nuevo contador de programa tomndolo del vector de interrupcin. Un procedimiento en ensamblador guarda registros Un procedimiento en ensamblador crea la nueva pila Se ejecuta el servicio de interrupcin en C (lee entradas y las pone en un bfer) El calendarizador decide que programa ejecutara ahora Un procedimiento en C regresa al cdigo ensamblador Un procedimiento en ensamblador arranca el nuevo proceso actual

16

2. SUBPROCESOS

Antes en los SO un proceso sola tener:


Un espacio de direcciones Un slo subproceso de control. Varios subprocesos de control en el mismo espacio de direcciones direcciones, operando en forma pseudoparalela como si fueran procesos individuales.

Ah Ahora es comn t tener:

17

2.1. El modelo de subprocesos

Proceso:

Es un agrupamiento E i t d de recursos relacionados, l i d para una mejor administracin.

Espacio de direcciones, variables globales, archivos abiertos, procesos hijos, hijos alarmas pendientes pendientes, seales seales, etc etc.

Subproceso:

Son las entidades que se calendarizan para ejecutarse en el CPU


Tratan de simular paralelismo Elementos: contador de programa, registros, pila, etc.

18

a) Tres procesos c/u con un subproceso b) Un proceso con tres subprocesos.

19

La proteccin entre subprocesos es muy dif il ll difcil llevarla l a cabo b y no es necesaria. i


Un proceso crea subprocesos para colaborar, no para daarse daarse. Los subprocesos se usan para colaborar en una misma tarea en forma paralela.

20

Elementos por proceso que comparten sus subprocesos:


Espacio de direcciones Variables globales g Archivos abiertos Procesos hijos Alarmas pendientes Seales y manejadores de seales Informacin contable

21

Elementos privados de cada subproceso:


Contador de programa Registros Pil Pila Estado

22

Pila del subproceso:

Procedimiento en ejecucin, que todava no se retorna Variables locales Direccin de retorno del procedimiento

23

Cada subproceso tiene su propia pila

Procedimientos de biblioteca de subprocesos: b


Thread_create Thread exit Thread_exit Thread_wait Bloqueado Thread yield Cede el CPU al siguiente Thread_yield

24

2.2. Uso de subprocesos

Objetivos:

Descomponer una aplicacin D li i en mltiples lti l subprocesos b secuenciales que se ejecuten casi en paralelo. Son ms fciles de crear y destruir Mayor desempeo al traslapar actividades Indispensables en sistemas multiprocesador En aplicaciones p q que requieren q mucho CPU y que q casi no se bloquean, no se recomiendan subprocesos

(calcular nmero primos, juego de ajedrez, etc)

25

Ejemplos:
1.

Un procesador de textos:

2.

Un antivirus:

Correccin ortogrfica en segundo plano. Paginacin en segundo plano Respaldo automtico cada cierto tiempo L t Lectura d del lt teclado l d Centinelas en:
E-mail Mensajera Intrusos Unidades extrables Actualizaciones ( (LiveUpdate) p ) Vigencia licencia contrato

26

3.

Servidor Web

W b Cach Web C h

Mantiene en la memoria principal las pginas ms visitadas del sitio.

Ha dos tipos de s Hay subprocesos bprocesos


Despachador b) Trabajador
a)

27

Cuando llega una solicitud el subproceso despachador busca un subproceso trabajador desocupado (bloqueado) para mandarle la peticin, entrando este a estado listo para ser calendarizado. Si el subproceso trabajador encuentra la pgina solicitada en cach la enva. Si no encuentra la pgina hace una operacin read a disco y se bloquea, cediendo el CPU al siguiente subproceso listo.

28

29

30

Despachador

Trabajador

2.3. 2 3 I Implementacin l t i de d subprocesos b en espacio de usuario


Inicialmente as trabajaban los SO L subprocesos Los b se ejecutan j t en modo d d de usuario i Cada proceso requiere su propia tabla de subprocesos La conmutacin entre subprocesos no requiere llamadas al kernel y suele ser ms rpida. Tienen mayor desempeo Cada proceso puede tener su propio algoritmo de calendarizacin

31

En llamadas bloqueantes podra detener a t d l todos los d dems subprocesos. b Si un subproceso empieza a ejecutarse, ningn i otro t subproceso b (d (del l mismo i proceso) ) podr hacerlo a menos que le cedan el CPU. Si un subproceso hace una llamada al sistema y se bloquea, es probable que bloquee a todo el proceso proceso.

32

33

Sistema de subprocesos en el nivel de usuario

2.4. 2 4 I Implementacin l t i de d subprocesos b en el Kernel


El kernel maneja las tablas de procesos y subprocesos Cuando un subproceso se bloquea, el kernel puede ceder el CPU a un subproceso del mismo proceso o de otro proceso proceso. Las llamadas al sistemas son ms costosas Es ms costoso crear y destruir subprocesos p en el kernel.

Se reciclan o reusan las estructuras de los subprocesos. No o se dest destruyen, uye , so solo o se marcan a ca co como o no o ejecutab ejecutables. es

34

35

Sistema de subprocesos en el kernel

2.5. Implementaciones Hbridas

36

Mltiples subprocesos de usuario en un subproceso de kernel

Es una implementacin hbrida de ambas p implementaciones. Trata de usar la funcionalidad de los procesos kernel pero con el desempeo y flexibilidad de los modo usuario Si un subproceso se bloquea con una llamada al sistema, no debiera bloquearse el proceso, sino darle el control a un subproceso del mismo proceso.

37

2.7. Subprocesos emergentes

Subproceso emergente:

Subproceso que se encarga del manejo de mensajes receive para que no quede el proceso en modo bloqueante.

Ventaja de procesos nuevos:


No tienen historial Inician desde cero Esto agiliza su creacin

38

Se generan en cuanto llega un mensaje Es mejor que sea creado en el kernel, para mayor facilidad de acceso a los dispositivos d E/S de E/S. A Aunque podra d causar ms d dao en kernel que en modo usuario. Ejemplos:

Email, virus, intrusos, etc.

39

40

Creacin de un subproceso cuando llega un mensaje.

a) Antes b) Despus

2.8. 2 8 C Convertir ti cdigo di d de un proceso a cdigo de mltiples procesos

Detalles de implementacin que se deben li b analizar para programar subprocesos

41

3. COMUNICACIN ENTRE 3 PROCESOS

Objetivos:

Enviar informacin de un proceso a otro No estorbarse los procesos entre si Od Ordenamiento i t correcto t cuando d un proceso depende de otros

Aplica a procesos y subprocesos

42

3.1. Condiciones de competencia


Se originan cuando se comparten recursos La idea es controlar la concurrencia El almacenamiento compartido puede ser: memoria principal, principal archivos, etc.

43

Dos procesos que quieren tener acceso a la memoria compartida al mismo tiempo

3.2. Regiones crticas


El objetivo es evitar las condiciones de competencia Se requiere exclusin mutua Regin o seccin crtica:

Parte del programa que tiene acceso a recursos compartidos (memoria)

La idea es asegurar que dos o ms procesos nunca estn al mismo tiempo en sus regiones crticas crticas.

44

Condiciones bsicas para evitar condiciones de competencia:


1. 2. 3. 4.

Dos procesos no pueden estar al mismo tiempo dentro de sus regiones crticas. No pueden hacer suposiciones sobre las velocidades ni el nmero de CPUs. Ningn proceso en ejecucin fuera de su regin crtica puede bloquear a otros. Ningn proceso deber tener que esperar de manera indefinida para entrar en su regin crtica.

45

46

3.3. Exclusin mutua con espera activa

Se analizan diversas propuestas:


1. 2. 3. 4. 5 5.

Inhabilitacin de interrupciones Variables de bloqueo Alt Alternancia i estricta ti t Solucin de Peterson La instruccin TSL

Todas las propuestas requieren espera activa


47

1.

Inhabilitacin de interrupciones

Un proceso en cuanto U t entra t a su regin i critica iti inhabilita las interrupciones, para hacer los cambios deseados sin intromisiones No es recomendable para procesos modo usuario.

Por el riesgo g de las interrupciones p

Desventaja:

Podra ya no habilitar las interrupciones En equipos multiprocesador solo inhabilitara su CPU y el resto podran acceder a la memoria compartida.

48

2. Variables de bloqueo

Uso de una variable global con valores de 0 y 1. Si tiene 0:


Un proceso la pone en 1 y entra a su regin critica critica. Al finalizar la pone nuevamente en 0. Qu pasa si dos procesos la leen casi al mismo tiempo?

Desventaja:

49

3. Alternancia estricta

Se usa una variable que va cambiando de acuerdo al nmero de procesos Proceso:


Desventaja:

Se inicia en 0 Sl puede Slo d entrar t al la regin i critica iti el l proceso 0 Al finalizar la incrementa a 1, dndole el turno al proceso 1. Este al finalizar la incrementa a 2 y as sucesivamente. Puede tocarle el turno a un proceso que no esta en la regin critica.
Habra desperdicio en el uso del recurso compartido, y Podra bloquear al resto de los procesos

50

4. Solucin de Peterson

Se emplea S l el l algoritmo l it d de P Peterson t Usa variables globales (compartidas)


N Nmero de procesos Turno A quien le toca? Interesado [N] Todos los que quieren entrar. Inicialmente todos en 0 (FALSO).

Si d dos tratan d de entrar al l mismo i tiempo, i se sobrescriben b ib l los valores El while es el que permite entrar a la regin critica.

51

52

5. La instruccin TSL (Test and Set Lock)


Probar Probar y establecer bloqueo bloqueo Es una instruccin en hardware de algunas computadoras multiprocesador P Proceso:

TSL RX, BLOQUEO BLOQUEO=0 Disponible, BLOQUEO<>0 Bloqueado Lee el contenido de la palabra de memoria BLOQUEO, y lo coloca en el registro g RX. Despus guarda un valor distinto de cero en la palabra BLOQUEO. TSL cierra el bus de memoria para impedir que otros CPUs accedan a la memoria. Compara el registro

53

Cuando BLOQUEO ES 0, cualquier proceso la puede poner en 1 con p al terminar la deja j TSL y hacer uso de la memoria compartida, nuevamente en 0. Con el manejo del registro se garantiza que las operaciones son indivisibles

54

3.4. Activar y desactivar


Los mtodos anteriores requeran espera activa ti Estos mtodos se bloquean en lugar de esperar de d manera activa. ti

55

Productor-Consumidor

Dos procesos comparten un buffer de t tamao fij fijo. El productor coloca informacin. El consumidor la extrae. Pueden ser m productores y n consumidores. id

56

Premisas:

Cuando el productor quiere colocar informacin y el buffer esta lleno se debe bloquear. Y desbloquearse hasta que el consumidor extraiga un valor. Cuando el consumidor quiere extraer y el buffer esta t vaco, se bloquea bl hasta h t que el l productor d t coloca algn valor.

57

Se requiere una variable global que lleve la cuenta de cuantos elementos hay en el buffer (cuenta). Cada p proceso determina si el otro debe activarse o no, de ser as lo activa.

58

59

Inconvenientes:

P d quedarse Podan d ambos b suspendidos: did


Cuando el consumidor lea cuenta y antes de sleep sale de ejecucin, cuenta =0. Entonces el productor coloca un valor valor, cuenta =1 =1, y despierta a consumidor, pero como no esta bloqueado se pierde esta llamada. Al tomar el control el consumidor se bloquea porque se qued con un valor de 0. Entonces el productor llena el buffer y se bloquea tambin. El p problema fue la seal de activar q que se p perdi.

60

Solucin:

Aadir un bit de espera para activar.


Cuando se intenta activar un proceso que esta activo, se activa el bit. Cuando el proceso quiere desactivarse se apaga el bit y el proceso sebe seguir activo. No sirve para ms de dos procesos procesos.

61

3.5. Semforos

Es una variable con valores de 0 hasta n. S l i Soluciona l la prdida did d del l d despertar. t Si el semforo = 0

No hay llamadas Wakeup Hay llamadas wakeup pendientes de ejecutarse.

Si es un valor mayor de 0

Sleep = down W k Wakeup = up


62

Down

D t Determina: i
Si el valor es mayor de 0, decrementa el semforo. Si es igual a 0, se bloquea (desactiva).

Verificar valor, modificarlo y desactivarse se realiza en una accin atmica. Incrementa el valor del semforo. No bloquea a ningn proceso.

Up p

63

Si uno o ms procesos estaban inactivos, se escoge uno al azar para que pueda continuar continuar. Ver ejemplo del Productor-Consumidor con semforos.

64

sleep = down wakeup = up

Down: Decrementa semforo 0 se bloquea Up: Incrementa semforo

65

3.6. Mutexes

Mutex = Exclusin mutua E una variable Es i bl que puede d estar t slo l en d dos estados: Bloqueado y Desbloqueado. Slo se requiere de un bit para representarlo

0 = Desbloqueado, !0 = Bloqueado mutex_lock Mutex_unlock

Procedimientos:

66

mutex_lock

Si ya esta bloqueado, el proceso invocador se bloquea Si no esta bloqueado, bloqueado la llamada procede y se accede a la regin critica.

Todos los SO ofrecen un rea de memoria compartida a todos los procesos o pueden usar archivos. Incluso puede ser un rea del kernel.

67

68

3.7. Monitores

Evita los detalles de implementacin de los semforos Ver caso pgina 115 Se propone una primitiva de sincronizacin a ms alto nivel, llamada monitor. Monitor:

Coleccin de procedimientos, variables y estructuras de datos que se agrupan en un mdulo especial. especial

69

70

Los procesos pueden invocar a los procedimientos de un monitor, p , pero p no acceden a sus datos ni estructuras. La exclusin mutua la controlan manteniendo slo l un proceso activo ti a la l vez en un monitor it El compilador trata distinto a los procedimientos de monitores que al resto de ellos. Cuando un proceso llama a un procedimientos de monitor, sus primeras lneas del procedimiento verifican ifi si i hay h otro t proceso dentro d t del d l monitor, it de ser as el proceso invocador se bloquea, de lo contrario puede entrar.

71

Basta con convertir las regiones criticas en monitores y el compilador se encarga encarga. Se puede combinar con variables de condicin:

Wait = Bloquear q Signal = Habilita a otro proceso

Para evitar dos procesos en ejecucin que habilite signal saldr del monitor monitor.

72

73

Productor consumidor con monitores

Java maneja monitores: synchronized. C no ti tiene monitores. it Los semforos se programan, los monitores no.

Figura siguiente:

Productor consumidor con Java

74

75

76

3.8. Transferencia de mensajes

Se emplean dos primitivas:


Send(destino, S d(d ti &mensaje) & j ) Receive(origen, &mensaje)

Son llamadas al sistema, , igual g que q monitores y semforos. Pueden ser bloqueantes y no bloqueantes En una red se pueden perder los mensajes. Implementan acuses, nmero de mensaje, timers, etc etc.

77

Otro problema es la autentificacin E procesos d En de una sola l mquina, i son mensajes j pequeos para el uso de registros.

En la figura siguiente: Problema productor-consumidor con N mensajes.

78

79

Para la figura anterior:


Todos los mensajes tiene el mismo tamao El SO tiene un buffer para colocar los mensajes enviados y que no se han recibido. Intercambian el productor-consumidor productor consumidor (uno vaco por uno lleno) La cantidad de mensajes son constantes (por lo anterior) Emisor/receptor p si uno es ms rpido p q que el otro, con el intercambio de paquees se regula el trfico. Los obliga a operar en sincrona. MPI: Ejemplo de transferencia de mensajes.

80

3.9. Barreras

Mecanismo de sincronizacin pensado para grupos de procesos procesos. Cuando un proceso llega a la barrera se bloquea, hasta que todos los procesos hayan llegado a ella. Ver figura 2.30. Ejemplos: Multiplicacin de matrices enormes, hamming para rfagas, etc.

81

82

a) Procesos que se aproximan b) Se bloquean hasta que llegue el ltimo c) Hasta que llega el ltimo se dejen pasar a todos.

4. PROBLEMAS CLSICOS DE 4 COMUNICACIN ENTRE PROCESOS

Revisar los tres problemas:


Ambos son problemas de sincronizacin Solucionan problemas distintos
a) ) b) c)

Cena de los filsofos Lectores Escritores Barbero dormiln

83

4.1. Cena de los filsofos


Modela procesos que compiten para tener acceso exclusivo a un nmero limitado de recursos Cinco filsofos, sentados alrededor de una mesa circular. Cada uno tiene un plato de espagueti Se requieren de dos tenedores para comerlo Entre cada plato slo hay un tenedor. Slo comen y piensan.

84

Al tener hambre:

Trata T t de d tomar t l los tenedores t d (i (izq y d der) ) uno a la l vez en cualquier orden.

Si logra comer, suelta los tenedores y sigue pensando. Primera solucin:


Tomar tenedor izquierdo y despus el derecho derecho, o esperar a que se desocupe el derecho. Podra llevar a un BI, si todos toman el izquierdo.

85

Segunda solucin:

Al tomar el tenedor izquierdo, izquierdo verificar si el tenedor derecho esta libre, si no lo est debe dejar el izquierdo, esperar cierto tiempo y repetir el proceso. Esto p podra causar inanicin, , podran p coincidir al volver a tomarlo. Proteger con un semforo binario. Antes de comenzar a tomar tenedores, el filosofo ejecuta down en mutex; al regresar los tenedores hara un up a mutex. Inconveniente: Slo un filosofo podra comer.

Tercera solucin:

86

Cuarta solucin:

Se usa un arreglo S l d de estados t d para registrar i t el l estatus t t de cada filosfo en todo momento (comiendo, pensando y hambriento). U fil Un filsofo f comer solo l cuando d ninguno i d de sus vecinos i lo este haciendo. Se emplea un semforo para cada filsofo.

87

4.2. Lectores - Escritores


Modela el acceso a una base de datos Podra haber varios lectores al mismo tiempo tiempo. Pero si un escritor esta en la base de datos, ningn otro proceso (escritor o lector) podr ingresar. L escritores Los it requieren i acceso exclusivo l i al la BD BD. Si un lector esta usando la BD y llega otro u otros lectores, estos podran ingresar. Si un lector esta en la BD y llega un escritor este se suspende hasta que salga el ltimo lector. Si llega otro lector se formara atrs del escritor. Esto merma la conc rrencia concurrencia.

89

4.3. Barbero dormiln


Modela el manejo de colas, con un mostrador de atencin, y un nmero de clientes limitado. Es una barbera (peluquera) El establecimiento tiene un barbero, una silla para atencin, y varias sillas para clientes en espera espera. Si no hay clientes presentes, el barbero se sienta y se duerme. Al ll llegar un cliente li t d debe b d despertar t al lb barbero. b Si llegan clientes mientras atiende a alguno de ellos, estos se sentarn en una silla vaca (si las hay) o abandonarn el establecimiento establecimiento.

91

92

Utiliza tres semforos:


Clientes. Cli t Clientes Cli t en espera. Barberos. Nmero de peluqueros (0 y 1). Mutex. Controla la exclusin mutua.

Usa una variable (espera) para tener una copia de clientes (no hay manera de leer el valor actual de un semforo) semforo). Una vez terminado el corte, el cliente sale, no hay ciclo como los problemas anteriores (excepto el barbero).

93

5. CALENDARIZACIN

95

5.1. Introduccin a la Calendarizacin


En procesamiento por lotes:

No hay calendarizacin o es muy simple. Requiere algoritmos complejos Hay pocos procesos candidatos H did t ( (pocas aplicaciones) Las CPUs son rpidas rpidas, ya no es recurso escaso escaso.

En sistemas de tiempo compartido:

Con las PCs:


96

Hay procesos devoradores de CPUs en PC:

G Generacin i de d video id NTSC o PAL PAL. Varios p procesos compiten p p por CPU Objetivos:
Prioridad de procesos Eficientar el uso de la CPU La carga/descarga de procesos es costosa.

En estaciones de trabajo y servidores:


97

Rfagas de CPU alternadas con periodos de espera de E/S. a) Proceso dedicado a la CPU b) Proceso dedicado a E/S

98

Hay procesos que se la pasan computando, mientras otros dedican ms a E/S. Cundo calendarizar?
1. 2.

Al crear un proceso

Decidir si entra el padre o el hijo Antes de agotar su tiempo. Se debe escoger otro listo o un inactivo (virtual)

Al terminar un proceso

3. 4.

Al bloquearse un proceso Al recibir una interrupcin

Debe decidir cual sacar/meter una vez terminada la interrupcin

99

Tipos de calendarizacin
a)

Expropiativa

Le da un tiempo a cada proceso, si agota el tiempo y no acaba se suspende, p , y se toma otro listo. Requiere interrupciones de reloj. El proceso acapara el l CPU h hasta t que se bl bloquea, acaba o lo ceda voluntariamente. No requiere interrupciones de reloj.

b)

No expropiativa

100

Categoras de algoritmos de calendarizacin


1. 2.

P l Por lotes t

Se recomienda la calendarizacin no expropiativa Se requiere la expropiativa, para que no acaparen el CPU (ni procesos maliciosos lo hagan) Casi no se requiere la expropiacin, porque son procesos que actan sobre una sola aplicacin, y pueden tardar mucho algunos procesos.

Interactivos

3.

Tiempo real

101

Metas de los algoritmos:

Todos los sistemas


Sistemas p por lotes


Equidad dar a cada proceso una porcin equitativa del tiempo de CPU. Cumplimiento de polticas Que se ponga en prctica la poltica establecida. Equilibrio mantener ocupadas todas las partes del sistema, CPU y E/S. Rendimiento procesar el mximo de trabajos por hora. Tiempo de retorno reducir al mnimo el lapso entre la presentacin y la terminacin de un trabajo. Utilizacin de CPU mantener ocupada todo el tiempo a la CPU. Tiempo de respuesta responder rpido a las solicitudes. Proporcionalidad satisfacer las expectativas de los usuarios en tiempo. Cumplir los plazos evitar la prdida de datos. Predecibilidad evitar la degradacin de la calidad en sistemas multimedia.

Sistemas interactivos

Sistemas en tiempo p real


102

5.2. 5 2 C Calendarizacin l d i i en sistemas i t por Lotes


1. 2. 3. 4.

FIFO Trabajo ms corto primero Tiempo restante ms corto primero Calendarizacin de tres niveles

103

1.

FIFO

FIFO: Primero en llegar primero en ser atendido Es no expropiativo H una sola Hay l d de cola l d de li listos t Es equitativo No recomendable para procesos muy heterogneos en tiempo de CPU requerido.

104

2.

Trabajo ms corto primero


No expropiativo Requiere saber los tiempos de ejecucin por anticipacin Slo funciona si estn todos los trabajos disponibles.

105

Tiempos de retorno: A=8, B=12, C=16 y D=20 Promedio: 14

Tiempos de retorno: A=4, B=8, C=12 y D=20 Promedio: 11

106

a) Ejecucin de orden original b) Ejecucin trabajo ms corto primero

3.

Tiempo restante ms corto primero


Requiere conocer con anticipacin los tiempos de ejecucin. Es la versin expropiativa del mtodo anterior anterior. Trabajos cortos reciben buen servicio. Ejemplo: j p Caja j rpida p de un banco.

107

4.

Calendarizacin de tres niveles

108

a)

Calendarizador de admisin

Decide que trabajos admitir

b) )

Calendarizador de memoria

Podra ser equilibrada de trabajos a CPU y a E/S. Podra ser los trabajos ms cortos primero. Etc

Cuando no caben los procesos en memoria principal se llevan a disco. Decide que procesos se quedan en memoria principal y cuales se van a disco. Determina el grado de multiprogramacin (cuantos procesos en memoria) Ejemplo: Si un proceso consume el 20% de CPU se podran tener 5.

109

c)

Calendarizador de CPU

Determina D t i cual ld de l los procesos que estn t en memoria i principal se ejecutar. Aqu se puede emplear cualquier algoritmo de calendarizacin. l d i i

110

5.3. 5 3 C Calendarizacin l d i i en sistemas i t interactivos


1. 2. 3. 4. 5. 6. 7.
111

Calendarizacin por turno circular Calendarizacin por prioridades Mltiples colas Proceso ms corto primero Calendarizacin garantizada Calendarizacin por lotera Calendarizacin p por p porcin equitativa q

1.

Calendarizacin por turno circular


Llamado Ll d R Round-Robin d R bi A cada proceso se le asigna un cuanto


Cuanto = Intervalo de tiempo p

Es una lista simple de procesos en ejecucin Al agotrsele el cuanto pasan al final de la lista A el Aqu ld detalle t ll es el lt tamao d del l cuanto: t

La conmutacin de paquetes requiere un gasto administrativo

112

Ejemplo:

Cuanto C t d de 4 ms Gasto administrativo de 1 ms Estara consumiendo el 20% en gastos administrativos.

En cuantos grandes podra haber mucha espera. Cuanto aceptable sera entre 20 a 50 ms.

113

a) Lista de procesos ejecutables b) Lista de procesos despus de que B gasta su cuanto

2.

Calendarizacin por prioridades


A cada d proceso se l le d da una prioridad i id d De los listos, el de mayor prioridad se ejecuta p primero. A cada proceso se le da un cuanto mximo Al estarse ejecutando su prioridad debe ir decrementandose. decrementandose Comando nice de Unix, baja la prioridad de un proceso.

114

Se debe garantizar que la clase ms baja no muera de inanicin. inanicin

115

3.

Mltiples colas

Se establecen clases de prioridad Los de la clase ms alta se ejecutan durante un cuanto, los de la siguiente clase en 2 cuantos, los de la siguiente clase en 4 cuantos, etc. Cada que un proceso se agota sus cuantos pasan a la clase inferior. Ejemplo:

Proceso q que requiere q un total de 100 cuantos. Se ejecuta: 1, 2, 4, 8, 16, 32, 64 (37), usa 7 intercambios. Al ir avanzando de clase, hara intercambios con menor frecuencia.

116

4.

Proceso ms corto primero


Es dif E difcil il saber b que proceso es el l ms corto t Se pueden estimar tiempos en base a comportamientos anteriores. Se ejecuta primero el proceso con tiempo estimado menor. Se emplea el envejecimiento

Tcnica que consiste en estimar el siguiente valor de una serie, calculando la media ponderada del ltimo valor medio y el estimado anterior

R Requiere i anlisis li i matemtico. t ti

117

5.

Calendarizacin garantizada

Si hay n procesos cada uno debe recibir 1/n uso de CPU. Se requiere saber cuanto tiempo CPU ha recibido.
TD=TC/n TR=Tcon/TD
TD=Tiempo que tiene derecho TC=Tiempo desde su creacin TR=Tiempo recibido TCon=Tiempo consumido

El algoritmo consiste en ejecutar el proceso cuyo cociente es ms bajo(TR), hasta que rebase al de su competidor mas cercano. cercano

TR=0.5 ha recibido la mitad de tiempo que le corresponde. TR=2.0 ha recibido el doble de tiempo que le corresponde.

118

6.

Calendarizacin por lotera


Entrega E t a los l procesos bill billetes t d de l lotera t para los distintos recursos del sistema. Al calendarizar, se escoge g un billete al azar, y quien lo obtiene entra a usar el recurso. A los de mayor prioridad se les dan ms billetes. Al llegar un nuevo proceso se le dan sus billetes, por lo que inmediatamente concursa. Se pueden pasar billetes entre procesos cooperativos. ti

119

7.

Calendarizacin por porcin equitativa


Si hay n usuarios en sesin cada uno debe recibir 1/n la capacidad del CPU. Se reparte el tiempo entre los usuarios usuarios, en lugar de los procesos.

120

5.4. 5 4 C Calendarizacin l d i i en sistemas i t en tiempo real

Sistemas en tiempo real

Deben reaccionar en cierto tiempo

Puede haber sucesos no calendarizables

Lectora de CDs de audio Equipos en hospitales, industrias, aeropuertos, robots, etc.

Hay sistemas en tiempo real:


Estrictos No estrictos

Por falta de tiempo no se pueden realizar

a) b) a) b)

Peridicos N peridicos No idi

121

5.5. Poltica Vs Mecanismo


Poltica

Usuario o proceso En el kernel del SO

Mecanismo

Los calendarizadores deberan tomar informacin de los procesos para tomar la decisin ptima.

122

5.6. Calendarizacin de subprocesos

Si estn en modo usuario


El kernel no sabe de su existencia. La calendarizacin la lleva a cabo el proceso N se cuenta No t con un reloj l j calendarizador l d i d Aqu podran aplicar las polticas de los usuarios, en lugar g del mecanismo del kernel. Si un subproceso se bloquea, bloquear al proceso.

123

Si estn en modo Kernel


Se calendarizan los subprocesos sin importar a que proceso pertenece. Es ms costosa la carga de subprocesos en kernel.

124

Calendarizacin d subprocesos de b en nivel usuario, con cuanto=50 ms, se ejecutan durante 5 ms en cada rfaga de CPU.

125

Calendarizacin d subprocesos de b en modo kernel, con cuanto=50 ms, se ejecutan durante 5 ms en cada rfaga de CPU.

126

REFERENCIA:

Sistemas Operativos Modernos, Segunda Edi i Edicin TANENBAUM Prentice Hall

127

Anda mungkin juga menyukai