TABLA DE CONTENIDO
TABLA DE CONTENIDO ............................................................................................................................... 5
INTRODUCCION A LOS SISTEMAS OPERATIVOS................................................................................ 9
QU ES UN SISTEMA OPERATIVO? ........................................................................................................ 9
HISTORIA DE LOS SISTEMAS OPERATIVOS: GENERACIONES....................................................... 11
Generacin Cero (dcada de 1940): ........................................................................................................ 11
Primera generacin (1945-1955): bulbos y conexiones .......................................................................... 11
Segunda generacin (1955-1965): transistores y sistemas de procesamiento por lotes (batch) ........... 11
Tercera generacin (1965-1980): circuitos integrados y multiprogramacin ....................................... 12
Cuarta generacin (1980-1990): computadoras personales: ................................................................. 13
CONCEPTOS DE LOS SISTEMAS OPERATIVOS ................................................................................... 13
Procesos .................................................................................................................................................... 14
Archivos: ................................................................................................................................................... 14
Llamadas al sistema: ................................................................................................................................ 14
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS ................................................................................ 15
Sistemas monolticos:................................................................................................................................ 15
Sistemas con capas: .................................................................................................................................. 16
Mquinas virtuales: .................................................................................................................................. 18
Modelo cliente - servidor .......................................................................................................................... 18
MS ESTRUCTURAS DE SISTEMAS OPERATIVOS............................................................................. 19
El sistema operativos DOS ....................................................................................................................... 19
El sistema operativo UNIX ....................................................................................................................... 20
EL SISTEMA OPERATIVO OS/2 ................................................................................................................ 20
Arquitectura de Windows NT.................................................................................................................... 21
PLANIFICACION DE PROCESOS 3 ........................................................................................................... 25
CONCEPTOS DE PLANIFICACIN.......................................................................................................... 25
COLAS DE PLANIFICACIN ................................................................................................................. 26
Planificadores ........................................................................................................................................... 28
PLANIFICACIN DE LA UCP ................................................................................................................... 29
Ciclo de rfagas de UCP y de E/S............................................................................................................ 30
Planificador de la ucp............................................................................................................................... 31
Estructura de planificacin ...................................................................................................................... 31
Cambio de contexto................................................................................................................................... 32
Despachador ............................................................................................................................................. 32
ALGORITMOS DE PLANIFICACIN....................................................................................................... 32
Planificacin servicio por orden de llegada........................................................................................ 33
Planificacin Primero el trabajo ms breve........................................................................................ 34
Planificacin por prioridades................................................................................................................... 37
Planificacin circular ............................................................................................................................... 38
Planificacin de colas de mltiples niveles.............................................................................................. 40
Planificacin de colas de mltiples niveles con realimentacin ............................................................. 42
PLANIFICACIN DE PROCESADORES MLTIPLES .......................................................................... 43
Excelencia Acadmica
Excelencia Acadmica
Busca las instrucciones de lenguaje de mquina para ejecutarlas como una serie de
pequeos pasos.
Excelencia Acadmica
Una de las principales funciones del S. O. es ocultar toda esta complejidad y brindar al
programador un conjunto ms conveniente de instrucciones para trabajar.
El S. O. se ejecuta en modocentralomododesupervisin, con mxima prioridad y generalmente
con proteccin por hardware.
Los compiladores, editores y dems programas se ejecutan en modousuario.
El S. O. es la serie de programas, dispuestos ya sea en el software o en la memoria fija
(microcdigo), que hacen al hardware utilizable.
Segn Deitel1 los S. O. ponen el poder computacional bsico del hardware convenientemente a
disposicin del usuario, pero consumen parte de ese poder computacional para funcionar.
Los S. O. son, en primer lugar, administradores de recursos, siendo el recurso primario el
hardware del sistema (ver Figura.1).
Excelencia Acadmica
1
1
Excelencia Acadmica
Almacenamiento.
Dispositivos de e / s.
Datos.
Programadores de aplicaciones.
Programas.
Hardware.
Usuarios.
Carencia total de S. O.
Carencia de S. O.
En los aos cincuenta comienzan como transicin entre trabajos, haciendo la misma ms
simple.
1
2
transistores
sistemas
de
Excelencia Acadmica
Tercera
generacin
multiprogramacin
(1965-1980):
circuitos
integrados
Difusin de la multiprogramacin:
Son sistemas de modos mltiples, es decir que deben soportar sistemas de propsitos
generales; son grandes y complejos pero muy poderosos.
Aparecen los lenguajes de control de trabajos, necesarios para especificar el trabajo y los
recursos requeridos.
Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes,
especialmente para usos industriales o militares.
12
Excelencia Acadmica
El S. O. crea un ambiente de trabajo segn el concepto de mquina virtual, que lo asla del
funcionamiento interno de la mquina.
Tanenbaum A. Sistemas Operativos Modernos. Mexico: Pearson Educacin, Segunda Edicin; 2003.
13
Excelencia Acadmica
Procesos
Consta del programa ejecutable, sus datos y pila, contador y otros registros, adems de la
informacin necesaria para ejecutar el programa.
o Un espacio de direccin.
o Los datos pertinentes de la tabla de procesos.
Un proceso puede crear procesos hijo y estos nuevos procesos hijo, conformando un rbol
de procesos.
Archivos:
Los directorios se estructuran jerrquicamente, por lo que a cada archivo le corresponde una
ruta de acceso.
Llamadas al sistema:
14
Excelencia Acadmica
Sistemas monolticos:
Cada procedimiento tiene una interfaz bien definida en trminos de parmetros y resultados.
15
Excelencia Acadmica
Consiste en organizar el s. o. como una jerarqua de capas, cada una construida sobre la
inmediata inferior.
El primer sistema con este esquema fue el THE (Holanda - Dijkstra -1968)2: (ver Tabla.1).
THE: Technische Hogeschool Eindhoven.
Capa 0:
Capa 1:
o Administra la memoria.
o Asegura que las pginas (porciones de memoria) requeridas de los
procesos lleguen a memoria cuando fueran necesarias.
16
Excelencia Acadmica
5 - Operador
4 - Programas del
Usuario
3 - Control de Entrada Salida
2 - Comunicaciones
Operador - Proceso
1 - Administracin de la
Memoria y del Disco
0 - Asignacin del
Procesador y
Multiprogramacin
Capa 2:
Capa 3:
Capa 4:
Capa 5:
Presenta una estructura en anillos concntricos, siendo los interiores los privilegiados.
17
Excelencia Acadmica
Mquinas virtuales:
Se separan totalmente las funciones de multiprogramacin y de mquina extendida.
Existe un elemento central llamado monitor de la mquina virtual que:
Se ejecuta en el hardware.
Realiza la multiprogramacin.
Las mquinas virtuales instrumentan copias exactas del hardware simple, con su modo ncleo /
usuario, e / s, interrupciones y todo lo dems que posee una mquina real.
Pueden ejecutar cualquier S. O. que se ejecute en forma directa sobre el hardware.
Las distintas mquinas virtuales pueden ejecutar distintos S. O. y en general as lo hacen.
Soportan perifricos virtuales.
Un ejemplo de S. O. representativo de esta estructura (VM/370 de IBM2), se muestra en la
Figura.4.
CMS proporciona las instrucciones de e / s en hardware para la lectura del disco virtual o lo
necesario para efectuar la llamada.
Se fracciona el S. O. en partes, cada una controlando una faceta: servicio a archivos, a procesos,
a terminales, a memoria, etc., cada parte pequea y ms fcilmente controlable.
Los servidores se ejecutan como procesos en modo usuario:
18
Excelencia Acadmica
Algunas funciones del S. O., por ejemplo el cargado de comandos en los registros fsicos del
dispositivo de e / s, presentan problemas especiales y distintas soluciones:
Ejecucin en modo ncleo, con acceso total al hardware y comunicacin con los dems
procesos mediante el mecanismo normal de mensajes.
19
Excelencia Acadmica
bsicas de E/S para grabar directamente en el display o en los discos, por ello el sistema es
vulnerable a estos programas los que pueden provocar el crash del sistema.
La estructura de este sistema puede verse en la Figura.7.
20
Excelencia Acadmica
Arquitectura de Windows NT
La familia de los sistemas operativos Windows NT de Microsoft est constituida por versiones
como Windows Vista, Windows Server 2003, Windows XP, Windows 2000 y Windows NT. Todos
tienen multitarea apropiativa y son sistemas operativos reentrantes que han sido diseados para
trabajar tanto con ordenadores con un slo procesador como ordenadores de multiprocesamiento
simtrico que en ingls es el Symmetrical Multi Processor o SMP. Para procesar las peticiones de
entrada/salida (en ingls Input/Output, I/O) acude a una direccin de paquetes de E/S que utiliza
peticiones (IRPs) y E/S asncrona. A partir de Windows XP, Microsoft comenz a desarrollar
sistemas operativos que soportaban 64-bits. Antes sus sistemas operativos estaban basados en un
modelo de 32-bits.
La arquitectura de Windows NT es altamente modular y se basa en dos capas principales
(Figura.10):
21
Excelencia Acadmica
Modo usuario: Cuyos programas y subsistemas estn limitados a los recursos del sistema a
los que tienen acceso.
Modo ncleo: Tiene acceso total a la memoria del sistema y los dispositivos externos. Los
ncleos de los sistemas operativos de esta lnea son todos conocidos como ncleos hbridos,
aunque hay que aclarar que este trmino est en discusin ya que este ncleo es
esencialmente un ncleo monoltico que est estructurado al estilo de un microncleo. La
arquitectura dentro del modo ncleo se compone de lo siguiente:
Un ncleo hbrido.
Una Capa de Abstraccin de Hardware (HAL).
Drivers.
Executive: Sobre el cual son implementados todos los servicios de alto
nivel.
Excelencia Acadmica
El Executive se relaciona con todos los subsistemas del modo usuario. Se ocupa
de la entrada/salida, la gestin de objetos, la seguridad y la gestin de procesos.
El ncleo se sita entre la Capa de Abstraccin de Hardware y el Executive para
proporcionar sincronizacin multiprocesador, hilos y programacin y envo de
interrupciones, y envo de excepciones.
El ncleo tambin es responsable de la inicializacin de los drivers de dispositivos
al arrancar. Hay tres niveles de drivers en el modo ncleo: drivers de alto nivel,
drivers intermedios y drivers de bajo nivel. El Modelo de Drivers de Windows (en
ingls Windows Driver Model, WDM) se encuentra en la capa intermedia y fue
diseado principalmente para mantener la compatibilidad en binario y en cdigo
fuente entre Windows 98 y Windows 2000. Los drivers de ms bajo nivel tambin
son un legado de los drivers de dispositivos de Windows NT que controlan
directamente un dispositivo o puede ser un bus hardware PnP.
23
Excelencia Acadmica
AUTOEVALUACIN FORMATIVA
1----------------------
Excelencia Acadmica
PLANIFICACION DE PROCESOS 3
Un proceso es un programa que se est ejecutando y hoy en da los sistemas operativos tienen
varios procesos en ejecucin; por lo que se requiere realizar la planificacin de la ejcucin de
estos procesos.
CONCEPTOS DE PLANIFICACIN
El objetivo de la multiprogramacin es que en todo momento se ejecute un proceso para maximizar
la utilizacin de la UCP (Unidad Central de Proceso). En un sistema monoprocesador nunca habr
ms de un proceso en ejecucin. Si hay ms procesos, tendrn que esperar a que la UCP est libre
y pueda volver a planificarse.
El concepto de multiprogramacin es bastante sencillo: un proceso se ejecuta hasta que tenga que
esperar, generalmente a que termine una solicitud de E/S. En un sistema de computacin sencillo,
la UCP permanecera inactiva; todo este tiempo de espera se desperdicia sin efectuar ninguna
actividad til. Con la multiprogramacin tratamos de emplear productivamente este tiempo. Varios
procesos se conservan en memoria a la vez, y cuando uno de ellos tiene que esperar, el sistema
operativo le quita la UCP al proceso y se la da a otro; este modelo contina. Cada vez que un
proceso tiene que esperar, otro puede utilizar la UCP.
Los beneficios de la multiprogramacin son un aumento de la utilizacin de la UCP y una mayor
productividad. La productividad es la cantidad de trabajo desarrollada en un intervalo de tiempo
(por ejemplo, 17 procesos por hora). Como ejemplo extremo, supongamos que tenemos dos
procesos, P0 y P1 por ejecutar (Figura.11). Cada proceso se ejecuta durante un segundo, y luego
espera otro segundo; este modelo se repite 60 veces. Si primero ejecutamos el proceso P0 y
despus el P1 uno tras otro, costara cuatro minutos ejecutar ambos procesos (Figura.12); el
proceso P0 tarda dos minutos en ejecutarse y el proceso P1 otros dos minutos, pero en realidad
slo se efectan clculos durante dos minutos, mientras que los otros dos representan tiempo
inactivo. As, nuestra utilizacin de la UCP es slo del 50%.
25
Excelencia Acadmica
espera, el P0 est listo para la ejecucin. Ahora el tiempo transcurrido para la ejecucin de ambos
procesos es slo dos minutos, y no hay tiempo inactivo de la UCP de manera que hemos
mejorado su utilizacin del 50 al 100%, incrementando tambin la productividad. Observe que el
proceso P0 no termina antes, pero ahora el proceso P1 finaliza en dos minutos.
Este ejemplo es un caso extremo y es poco probable que ocurra en la prctica, pero ilustra el
concepto de la multiprogramacin.
COLAS DE PLANIFICACIN
Conforme los procesos entran en el sistema, se colocan en una cola de trabajos formada por
todos los procesos que residen en almacenamiento secundario esperando la asignacin de la
memoria principal. Los procesos que residen en la memoria principal y que estn listos y esperando
su ejecucin se mantienen en una lista llamada cola de procesos listos; esta lista es generalmente
una lista ligada. Un encabezado de la cola de procesos listos contendr apuntadores al
primer y ltimo PCB de la lista. Cada PCB tiene un campo apuntador que indica el siguiente proceso
en la cola de procesos listos.
Excelencia Acadmica
Figura.14). Si se trata de un dispositivo dedicado, como una unidad de cinta, la cola del dispositivo
nunca tendr ms de un proceso. Si, por el contrario, el dispositivo se puede compartir, como es el
caso de un disco, en la cola del dispositivo puede haber varios procesos.
Una representacin comn para analizar la planificacin de procesos es el diagrama de colas,
como se muestra en la Figura.15. Cada rectngulo representa una cola, y hay dos tipos de colas:
la cola de procesos listos y un conjunto de colas de dispositivo. Los crculos representan los
recursos que dan servicio a las colas y las flechas indican el flujo de los procesos en el sistema.
El proceso podra ser extrado de la UCP por la fuerza, como resultado de una interrupcin, y
colocarse de nuevo en la cola de procesos listos.
En los dos primeros casos, el proceso cambia eventualmente del estado de espera al estado de
listo y se coloca de nuevo en la cola de procesos listos. Un proceso contina con este ciclo hasta
que termina, y es entonces cuando sale del sistema.
27
Excelencia Acadmica
Planificadores
En el transcurso de su vida, un proceso transita entre las distintas colas de planificacin,
y el sistema operativo de alguna manera debe seleccionar procesos de estas colas. Esta
actividad de seleccin es realizada por el planificador correspondiente.
En un sistema por lotes, con frecuencia se presentan ms procesos que los que se
pueden ejecutar de inmediato; estos procesos se envan a un spooler en un dispositivo
de almacenamiento masivo (un disco, normalmente), donde se conservan para su
posterior ejecucin. El planificador a largo plazo (o planificador de trabajos) selecciona
procesos de este depsito y los carga en memoria para su ejecucin. El planificador a
corto plazo (o planificador de la UCP) selecciona uno de los procesos listos para
ejecucin y le asigna la UCP.
La principal diferencia entre estos dos planificadores es la frecuencia de su ejecucin. El
planificador a corto plazo debe seleccionar con mucha frecuencia un nuevo proceso para
la UCP, y el proceso quiz se ejecute nica mente durante unos milisegundos antes de
esperar una solicitud de E/S; en muchos casos, este planificador de la UCP se ejecuta
por lo menos una vez cada 10 milisegundos. Debido al breve lapso de tiempo entre
ejecuciones, el planificador de la UCP debe ser muy rpido. Si cuesta un milisegundo
decidir la ejecucin de un proceso de 10 milisegundos, entonces 1/(10 + 1) = 9% de la
UCP se usa (se desperdicia) simplemente para que la planificacin funcione.
Por otra parte, el planificador a largo plazo se ejecuta con una frecuencia mucho menor.
Pueden transcurrir minutos entre la creacin de nuevos procesos en el sistema. El planificador
a largo plazo controla el grado de multiprogramacin (el nmero de procesos en memoria);
si el grado de multiprogramacin es estable, entonces la tasa promedio de creacin de
procesos debe ser igual a la tasa promedio de salida para los procesos que dejan el
sistema, de modo que slo hay que invocar al planificador a largo plazo cuando un proceso
sale del sistema. Debido al mayor intervalo de tiempo entre ejecuciones, el planificador a
largo plazo puede emplear ms tiempo para decidir qu proceso se debe seleccionar para
su ejecucin.
Tambin puede ser ms importante que el planificador a largo plazo efecte una
seleccin cuidadosa. Por lo general, la mayora de los procesos pueden describirse como
limitados por la UCP o limitados por E/S. Un proceso limitado por E/S es aquel que
28
Excelencia Acadmica
emplea ms tiempo en realizar E/S que en efectuar clculos. Por otra parte, un proceso
limitado por la UCP es el que genera solicitudes de E/S con poca frecuencia, invirtiendo
la mayor parte de su tiempo en efectuar clculos que los procesos limitados por E/S. Es
importante que el planificador a largo plazo seleccione una buena mezcla de procesos
limitados por la UCP y limitados por E/S. Si todos los procesos estn limitados por E/S, la
cola de procesos listos estar casi vaca y el planificador a corto plazo tendr poco que
hacer. Si todos los procesos estn limitados por la UCP, la cola de espera de E/S casi siempre
permanecer vaca, y una vez ms se desequilibrar el sistema. El sistema con el mejor
rendimiento tendr una combinacin de procesos limitados por la UCP y limitados
por E/S. En algunos sistemas es posible que no exista el planificador a largo plazo o
que su funcin sea mnima. Por ejemplo, los sistemas de tiempo compartido muchas
veces no cuentan con un planificador a largo plazo, y colocan cada nuevo proceso
en la memoria para que lo manipule el planificador a corto plazo. La estabilidad de estos
sistemas depende de una limitacin fsica (como el nmero de terminales disponibles) o de
que las caractersticas de los usuarios se ajusten automticamente. Si el rendimiento baja
hasta niveles inaceptables, algunos usuarios abandonarn y se dedicarn a otra cosa.
Algunos sistemas operativos, como los de tiempo compartido, pueden presentar un nivel
intermedio adicional de planificacin. El diagrama de este planificador a mediano plazo se
presenta en la
Figura.16. La idea clave de un planificador a mediano plazo es que en ocasiones puede
ser ventajoso eliminar procesos de la memoria (y reducir la contienda por el uso de la
UCP) y de este modo reducir el grado de multiprogramacin. Ms tarde el proceso se
volver a introducir en la memoria y continuar su ejecucin a partir del punto donde se
qued. A este esquema comnmente se le denomina intercambio (swapping). El
planificador a mediano plazo intercambia el proceso, sacndolo y volvindolo a introducir
ms tarde. Los intercambios pueden ser necesarios para mejorar la mezcla de procesos,
o porque un cambio en los requisitos de memoria ha comprometido en exceso la
memoria disponible, lo que requiere que se libere la memoria. Los intercambios se
analizan con mayor detalle en el captulo de Administracin de memoria.
PLANIFICACIN DE LA UCP
La planificacin es una funcin fundamental del sistema operativo. Casi todos los
recursos de un computador se planifican antes de usarse. Por supuesto, la UCP es uno
de los principales recursos del computador, de modo que su planificacin es parte
medular del diseo de los sistemas operativos.
29
Excelencia Acadmica
30
Excelencia Acadmica
Fi
Figura.18. Histograma de tiempos de rfaga de la UCP.
Planificador de la ucp
Siempre que la UCP queda inactiva, el sistema operativo debe seleccionar para su ejecucin uno
de los procesos de la cola de procesos listos. El proceso de seleccin es realizado por el
planificador a corto plazo (o planificador de la UCP). El planificador selecciona uno de los procesos
en memoria que estn listos para ejecucin y le asigna la UCP.
Observe que la cola de procesos listos no es necesariamente una cola primero que entra, primero
que sale (Fifo, first-in, first-out). Como veremos cuando tratemos los distintos algoritmos de
planificacin, una cola de procesos listos puede implantarse como una cola FIFO, una cola de
prioridades, un rbol o simplemente como una lista ligada desordenada. Sin embargo,
conceptualmente todos los procesos de la cola de procesos listos estn en fila esperando una
oportunidad para ejecutarse en la UCP. Los registros de las 1as suelen ser los PCB de los
procesos.
Estructura de planificacin
Las decisiones de planificacin de la UCP pueden efectuarse en una de las cuatro circunstancias
siguientes:
1. Cuando un proceso cambia del estado de ejecucin a estado de espera (por ejemplo, solicitud
de E/S, peticin de esperar la terminacin de uno de los procesos hijo).
2. Cuando un proceso cambia del estado de ejecucin al estado listo (por ejemplo, cuando ocurre
una interrupcin).
3. Cuando un proceso cambia del estado de espera al estado listo (por ejemplo, al completarse la
E/S)
4. Cuando termina un proceso
Para los casos 1 y 4 no hay opcin en trminos de planificacin: se debe seleccionar un nuevo
proceso para su ejecucin (si existe en la cola de procesos listos). Sin embargo, esto no se aplica
a los casos 2 y 3.
Cuando la planificacin tiene lugar nicamente en las situaciones 1 y 4, decimos que el esquema
de planificacin es no apropiativo; de lo contrario decimos que es apropiativo. En la planificacin
no apropiativa, una vez que la UCP se ha asignado a un proceso, ste la conserva hasta que la
libera, ya sea por terminar o por cambiar al estado de espera.
31
Excelencia Acadmica
Cambio de contexto
Para cambiar la UCP a otro proceso se requiere guardar el estado del proceso anterior y cargar el
estado guardado para el nuevo proceso. Esta tarea se conoce como cambio de contexto. El tiempo
de cambio de contexto es un puro gasto adicional, y vara de una mquina a otra, dependiendo de
la velocidad de la memoria, del nmero de registros y de la existencia de instrucciones especiales
(como una sola instruccin para cargar o almacenar todos los registros). Tpicamente se encuentra
en el intervalo de uno a cien microsegundos.
Los tiempos de cambio de contexto dependen en gran medida del apoyo del hardware; por ejemplo,
algunos procesadores ofrecen varios conjuntos de registros, y un cambio de contexto
implica nicamente cambiar el apuntador al conjunto actual de registros. Por supuesto, si hay ms
procesos activos que conjuntos de registros, el sistema copia los datos usando la memoria, como
se mencion antes. Adems, cuanto ms complejo sea el sistema operativo, ms trabajo hay que
realizar durante un cambio de contexto. Como veremos en captulos posteriores, las tcnicas
avanzadas de administracin de memoria pueden requerir que con cada contexto se cambien
otros datos adicionales.
Despachador
Otro componente que participa en la funcin de planificacin de la UCP es el despachador. El
despachador es el mdulo que realmente entrega el control de la UCP al proceso seleccionado
por el planificador a corto plazo. Esta funcin implica:
Cambiar de contexto
Cambiar a modo usuario
Saltar a la posicin adecuada del programa del usuario para reiniciar el programa
Obviamente, el despachador debe ser lo ms rpido posible.
ALGORITMOS DE PLANIFICACIN
La planificacin de la UCP tiene que ver con el problema de decidir a cul de los procesos que
estn en la cola de procesos listos se le asignar la UCP. Se cuenta con varios algoritmos de
planificacin de la UCP, algunos de los cuales describiremos en esta seccin.
Los distintos algoritmos de planificacin tienen propiedades diferentes y pueden favorecer a un
tipo de proceso en lugar de a otro, as que al elegir qu algoritmo se aplicar en una situacin
determinada debemos considerar las propiedades de los diversos algoritmos.
Para comparar los algoritmos de planificacin de la UCP se han propuesto varios criterios, y las
caractersticas que se utilicen para la comparacin pueden representar diferencias considerables
en la determinacin del mejor algoritmo; los criterios que se emplean incluyen los siguientes:
Utilizacin de la UCP. Queremos que la UCP se mantenga tan ocupada como sea posible.
Su utilizacin puede variar del O al 100% y en un sistema real debe fluctuar entre el 40%
(para un sistema con poca carga) y el 90% (para un sistema con gran carga de trabajo).
32
Excelencia Acadmica
listos, de modo que en vez de tener en cuenta el tiempo de retorno, podemos considerar slo
el tiempo de espera para cada proceso.
Excelencia Acadmica
27)/3 = 17 milisegundos. Sin embargo, si los procesos llegan en el orden P2, P3 y P1, los
resultados sern los que se muestran en la siguiente grfica de Gantt:
34
Excelencia Acadmica
El tiempo de espera es tres milisegundos para el proceso P1, 16 milisegundos para el proceso P2
nueve milisegundos para P3 y 0 para P4. De esta manera, el tiempo promedio de espera es (3 +
16 + 9 + 0)/4 = 7 milisegundos. Si usramos la planificacin FCFS, el tiempo promedio de espera
sera de 10.25 milisegundos.
Aunque el algoritmo SJF es ptimo, no puede implantarse al nivel de la planificacin a corto plazo
de la UCP. No hay manera de conocer la longitud de la siguiente rfaga de UCP, pero se puede
tratar de efectuar una aproximacin a la planificacin SJF. Aunque no conocemos la longitud de la
siguiente rfaga de UCP, podemos predecir su valor, esperando que sea de longitud similar a las
anteriores. As, al calcular una aproximacin de la longitud de la siguiente rfaga de UCP podemos
elegir el proceso con la rfaga de UCP prevista ms breve.
En general, la siguiente rfaga de UCP se predice como un promedio exponencial de las longitudes
medidas de las rfagas de UCP anteriores. Sea tn la longitud de la ensima rfaga de UCP, y n+1
nuestro valor previsto para la siguiente rfaga de UCP. Entonces, para , 0<=<=1, se
define:
n1 t n 1 n
35
Excelencia Acadmica
n 1 t n 1 t n 1
1 j t n 1 1 n 1
0
Puesto que tanto como (1 - ) son menores o iguales a 1, cada trmino sucesivo tiene menor
peso que su predecesor.
El algoritmo SJF puede ser apropiativo o no apropiativo. La alternativa se plantea cuando un nuevo
proceso llega a la cola de procesos listos mientras se est ejecutando otro proceso. El nuevo
proceso puede tener una rfaga de UCP menor que lo que resta del proceso que se ejecuta en ese
momento. Un algoritmo SJF apropiativa desplazar al proceso que se ejecuta, mientras que un
algoritmo SJF no apropiativo permitir que el proceso que se ejecuta termine su rfaga de UCP. La
planificacin SJF apropiativa en ocasiones se denomina planificacin primero el que tenga el
menor tiempo restante (shortest remaining-time-first).
Como ejemplo, considere los cuatro procesos siguientes, donde la longitud de las rfagas de UCP
se proporciona en milisegundos:
36
Excelencia Acadmica
37
Excelencia Acadmica
P3
P4
2
3
9
5
Si los procesos llegan a la cola de procesos listos en los tiempos mostrados y necesitan los tiempos
de rfaga indicados, entonces la planificacin SJF apropiativa que resulta se muestra en la
siguiente grfica de Gantt:
Excelencia Acadmica
Las prioridades pueden definirse interna o externamente. Las prioridades definidas internamente
utilizan alguna cantidad o cantidades mensurables para calcular la prioridad del proceso. Por
ejemplo, para calcular prioridades se han utilizado los lmites de tiempo, requisitos de memoria, el
nmero de archivos abiertos y la tasa de intervalos entre rfagas de E/S y de UCP. Las
prioridades externas se fijan empleando criterios ajenos al sistema operativo, como la importancia
del proceso, el tipo y cantidad de fondos que se pagan por utilizar el computador, el departamento
que patrocina el trabajo y otros factores, con frecuencia de carcter poltico.
La planificacin por prioridades puede ser apropiativa o no apropiativa. Cuando un proceso llega a
la cola de procesos listos, su prioridad se compara con la del proceso en ejecucin. Un algoritmo
apropiativo para la planificacin por prioridades se apropiar de la UCP si la prioridad del proceso
recin llegado es mayor que la del proceso en ejecucin. Un algoritmo no apropiativo para la
planificacin por prioridades nicamente dejar al nuevo proceso al inicio de la cola de procesos
listos.
Un serio problema de los algoritmos para la planificacin por prioridades es el bloqueo indefinido o
inanicin. Un proceso que est listo para ejecutarse pero no obtiene la UCP puede considerarse
como bloqueado, en espera de la UCP. Un algoritmo para la planificacin por prioridades puede
dejar a un proceso de baja prioridad esperando indefinidamente a la UCP. En un sistema de
computacin con gran carga, un flujo constante de procesos de alta prioridad puede evitar que un
proceso de baja prioridad obtenga la UCP. Por lo general suceder una de estas dos cosas: o el
programa finalmente se ejecuta (a las 2 AM del domingo, cuando por fin disminuye la carga del
sistema) o el sistema de computacin falla y pierde todos los procesos de baja prioridad. (Segn
algunos rumores, cuando dieron de baja el computador IBM del MIT en 1973, encontraron un
proceso de baja prioridad que se haba enviado en 1967 y que todava no se haba ejecutado.)
Una solucin para el problema del bloqueo indefinido de los procesos de baja prioridad es el
envejecimiento, tcnica por la cual aumenta gradualmente la prioridad de los procesos que
esperan durante mucho tiempo en el sistema. Por ejemplo, si las prioridades varan entre 0 (baja)
y 127 (alta), podramos incrementar en uno la prioridad de un proceso en espera cada 15 minutos.
Tarde o temprano, incluso un proceso con prioridad inicial 0 podra alcanzar la prioridad ms alta
del sistema y ejecutarse. De hecho, no costara ms de 32 horas que un proceso pasara de
prioridad 0 a prioridad 127.
Planificacin circular
El algoritmo de planificacin circular (RR, round-robin) est diseado especialmente para sistemas
de tiempo compartido. Se define una pequea unidad de tiempo, llamada cuanto de tiempo o
porcin de tiempo, que generalmente vara entre 10 y 100 milisegundos. La cola de procesos listos
se trata como una cola circular, el planificador de la UCP la recorre asignando la UCP a cada
proceso por un intervalo de hasta un cuanto de tiempo.
Para poner en prctica la planificacin mantenemos la cola de procesos listos como una cola
primero que entra, primero que sale (FIF0). Los nuevos procesos se agregan al final de la cola
de procesos listos. El planificador de la UCP toma el primer proceso de la cola, programa un
cronmetro para que interrumpa despus de un cuanto de tiempo y despacha el proceso.
Entonces suceder una de estas dos cosas: el proceso puede tener una rfaga de UCP menor que
un cuanto de tiempo, en cuyo caso el proceso liberar voluntariamente a la UCP y el
planificador continuar con el siguiente proceso de la cola de procesos listos. Por otra parte, si la
rfaga de UCP del pro ceso en ejecucin es mayor que un cuanto de tiempo, el cronmetro se
activar y provocar una interrupcin para el sistema operativo. Se ejecutar un cambio de
contexto y el proceso se colocar al final de la cola de procesos listos. El planificador de la UCP
seleccionar entonces el siguiente proceso de la cola.
Sin embargo, el tiempo promedio de espera es bastante grande en la poltica RR. Considere el
siguiente conjunto de procesos que llegan en el instante 0, donde la longitud de la rfaga de UCP
se expresa en milisegundos:
Excelencia Acadmica
P3
Si usamos un cuanto de tiempo de cuatro milisegundos, el proceso P1 obtiene los primeros cuatro
milisegundos. Puesto que necesita otros 20 milisegundos, se expulsa tras el primer cuanto de
tiempo y la UCP se otorga a P2 el siguiente proceso de la cola. Como el proceso P2 no requiere
cuatro milisegundos, sale antes de que termine el cuanto de tiempo. Entonces se proporciona la
UCP al siguiente proceso, P3 Una vez que cada proceso ha recibido un cuanto de tiempo, se
devuelve la UCP al proceso P1 durante un cuanto de tiempo adicional. El resultado obtenido de la
planificacin RR es:
40
Excelencia Acadmica
Figura Error! No hay texto con el estilo especificado en el documento..21 Un cuanto de tiempo
menor incrementa el nmero de cambios de contexto.
Por lo anterior, queremos que el cuanto de tiempo sea grande respecto al tiempo de cambio de
contexto. Si el tiempo de cambio de contexto es aproximadamente 10% del cuanto, entonces en el
cambio de contexto se invierte cerca de un 10% del tiempo de la UCP.
Por otra parte, si el cuanto de tiempo es demasiado grande, la planificacin RR degenera hasta
convertirse en una poltica FCFS. Una regla emprica es que el 80% de las rfagas de UCP deben
ser menores que el cuanto de tiempo.
41
Excelencia Acadmica
plano (por lotes). Estos dos tipos de procesos tienen requisitos de tiempo de respuesta bastante
diferentes, por que pueden presentar distintas necesidades de planificacin. Adems, los procesos
de primer plano pueden tener una prioridad superior (definida externamente) a la de los procesos
de segundo plano.
Procesos interactivos
42
Excelencia Acadmica
Otra posibilidad es utilizar una porcin de tiempo para las colas. Cada cola recibira cierta porcin
del tiempo de la UCP, la cual se planificara entre los procesos de su cola. Por ejemplo, en el caso
de las colas de primer y segundo planos, la cola de primer plano puede recibir el 80% del tiempo
de la UCP para la planificacin RR de sus procesos, mientras que la cola de segundo plano recibe
el 20% de la UCP para distribuirlo entre sus procesos de manera FCFS.
43
Excelencia Acadmica
El nmero de colas
El mtodo utilizado para determinar cundo promover un proceso a una cola de mayor
prioridad
El mtodo utilizado para determinar cundo degradar un proceso a una cola de menor prioridad
El mtodo utilizado para determinar a cul cola entrar un proceso cuando necesite servicio
La definicin de un planificador de colas de mltiples niveles con realimentacin lo convierte en el
algoritmo de planificacin de la UCP ms general. Se puede configurar para ajustarse a un
sistema especfico que se est diseando, pero por desgracia tambin requiere alguna forma de
seleccin de valores para todos los parmetros que definan el mejor planificador. Aunque las colas
de mltiples niveles con realimentacin son el esquema ms general, tambin son el ms
complejo.
44
Excelencia Acadmica
45
Excelencia Acadmica
PROBLEMA UNO
Considere el siguiente conjunto de procesos, cuyas longitudes de rfaga de UCP se expresan en
milisegundos:
PROBLEMA DOS
Suponga que los procesos siguientes llegan para su ejecucin en los momentos indicados. Cada
proceso se ejecutar en el tiempo indicado. Al responder a estas preguntas, utilice la planificacin
no apropiativa y base todas sus decisiones en la informacin que tenga en el momento de tomar la
decisin.
46