Sei sulla pagina 1di 42

Excelencia Acadmica

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

INTRODUCCION A LOS SISTEMAS OPERATIVOS


QU ES UN SISTEMA OPERATIVO?
Una de las definiciones ms comnmente aceptadas expresa:
Un Sistema Operativo (S. O.) es un grupo de programas de proceso con las rutinas de control
necesarias para mantener continuamente operativos dichos programas.
El objetivo primario de un Sistema Operativo es optimizar todos los recursos del sistema para
soportar los requerimientos.
A los efectos de situar a los S. O. en el conjunto del software para computadoras, podemos
clasificar a este de la siguiente manera:
Programas de sistema: Controlan la operacin de la computadora en s.

Programas de aplicacin: Resuelven problemas para los usuarios.

En este contexto, el Sistema Operativo es el programa fundamental de todos los programas de


sistema. El S. O. protege y libera a los programadores de la complejidad del hardware, colocndose
un nivel de software por sobre el hardware para:
Controlar todas las partes del sistema.

Presentar al usuario una interfaz o mquina virtual.

El esquema tpico de un sistema de cmputos incluye:


Programas de aplicacin: Sistema bancario, reservaciones en una lnea area, juegos, etc.

Programas de sistema: Compiladores, editores, intrpretes de comandos y el Sistema


Operativo.

Hardware: Lenguaje de mquina, microprogramacin y los dispositivos fsicos.

Las principales caractersticas del microprograma son:


Se trata de software que generalmente se localiza en la memoria de solo lectura.

Busca las instrucciones de lenguaje de mquina para ejecutarlas como una serie de
pequeos pasos.

El conjunto de instrucciones que interpreta define al lenguaje de mquina.

En ciertas mquinas se implanta en el hardware y no es en realidad una capa distinta.

Respecto del lenguaje de mquina es preciso sealar que:


Generalmente posee entre 50 y 300 instrucciones, sirviendo la mayora para desplazar datos,
hacer operaciones aritmticas y comparar valores.

Los dispositivos de e / s (entrada / salida) se controlan al cargar valores en registros del


dispositivo especiales.

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).

Figura.1. Recursos administrados por el S.O.


Las principales caractersticas de los S. O. son:
Definir la Interfaz del Usuario.

Compartir el hardware entre usuarios.

Permitir a los usuarios compartir los datos entre ellos.

Planificar recursos entre usuarios.

Facilitar la entrada / salida.

Deitel M. Introduccin a los Sistemas Operativos. Espaa: Addison Wesley Iberoamericana,


Segunda Edicin; 1998.
1
0

Excelencia Acadmica

1
1

Excelencia Acadmica

Recuperarse de los errores.

Los principales recursos administrados por los S. O. son:


Procesadores.

Almacenamiento.

Dispositivos de e / s.

Datos.

Los S. O. son una interfaz con:


Operadores.

Programadores de aplicaciones.

Programadores de sistemas (administradores del S. O.).

Programas.

Hardware.

Usuarios.

El S. O. debe presentar al usuario el equivalente de una mquina extendida o mquina virtual


que sea ms fcil de programar que el hardware subyacente.

HISTORIA DE LOS SISTEMAS OPERATIVOS: GENERACIONES


Los S. O. han estado relacionados histricamente con la arquitectura de las computadoras en las
cuales se ejecutan, razn por la cual su historia puede analizarse segn las generaciones y sus
principales caractersticas1.

Generacin Cero (dcada de 1940):

Carencia total de S. O.

Completo acceso al lenguaje de mquina.

Primera generacin (1945-1955): bulbos y conexiones

Carencia de S. O.

En los aos cincuenta comienzan como transicin entre trabajos, haciendo la misma ms
simple.

Segunda generacin (1955-1965):


procesamiento por lotes (batch)

1
2

transistores

En los aos sesenta aparecen los S. O. para sistemas compartidos con:

sistemas

de

Excelencia Acadmica

o Multiprogramacin: varios programas de usuarios se


encuentran al mismo tiempo en el almacenamiento principal,
cambiando el procesador rpidamente de un trabajo a otro.
o Multiprocesamiento: varios procesadores se utilizan en un
mismo sistema para incrementar el poder de procesamiento.

Posteriormente aparece la independencia de dispositivo:

o El programa del usuario especifica las caractersticas de los dispositivos


que requieren los archivos.
o El S. O. asigna los dispositivos correspondientes segn los requerimientos y
las disponibilidades.

Tercera
generacin
multiprogramacin

(1965-1980):

circuitos

integrados

Difusin de la multiprogramacin:

o Particin de la memoria en porciones, con trabajos distintos en cada una


de ellas.
o Aprovechamiento del tiempo de espera consecuencia de operaciones de e
/ s, para utilizar la CPU para otros procesos.

Proteccin por hardware del contenido de cada particin de memoria.

Aparicin de tcnicas de spooling:

o Simultaneous Peripheral Operation On Line: operacin simultnea y en


lnea de perifricos.
o Almacenamiento de trabajos de entrada y de salida en dispositivos
transitorios rpidos (discos), para disminuir el impacto de los perifricos
ms lentos.

Son sistemas de modos mltiples, es decir que deben soportar sistemas de propsitos
generales; son grandes y complejos pero muy poderosos.

Interponen una capa de software entre el usuario y el hardware.

Aparecen los lenguajes de control de trabajos, necesarios para especificar el trabajo y los
recursos requeridos.

Soportan timesharing (tiempo compartido), variante de la multiprogramacin con usuarios


conectados mediante terminales en lnea, permitiendo la operacin en modo interactivo o
conversacional.

Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes,
especialmente para usos industriales o militares.
12

Excelencia Acadmica

Se difunden las computadoras de rango medio.

Cuarta generacin (1980-1990): computadoras personales:

Aparicin de software amigable con el usuario, destinado a usuarios no profesionales y con


una interfase grfica muy desarrollada.

Desarrollo de sistemas operativos de red y sistemas operativos distribuidos.

Sistemas operativos de red:

o Los usuarios estn conscientes de la existencia de varias computadoras


conectadas.
o Cada mquina ejecuta su propio S. O. local.
o Son similares a los S. O. de un solo procesador pero con el agregado de
controlador de interfaz de la red, su software de bajo nivel y el software
para conexin y acceso a archivos remotos, etc.

Sistemas operativos distribuidos:

o Aparece ante los usuarios como un S. O. de un solo procesador, an


cuando de soporte a varios procesadores.
o Los usuarios no son conscientes del lugar donde se ejecutan sus
programas o donde se encuentran sus archivos, ya que lo debe administrar
el S. O. automticamente.
o Deben permitir que un programa se ejecute mediante varios procesadores a
la vez, maximizando el paralelismo.

Aparicin de emuladores de terminal para el acceso a equipos remotos desde computadoras


personales (PC).

Gran nfasis en la seguridad, en especial por el desarrollo de los sistemas de


comunicaciones de datos.

El S. O. crea un ambiente de trabajo segn el concepto de mquina virtual, que lo asla del
funcionamiento interno de la mquina.

Proliferacin de sistemas de bases de datos, accesibles mediante redes de comunicacin.

CONCEPTOS DE LOS SISTEMAS OPERATIVOS


La interfaz entre el S. O. y los programas del usuario se define como el conjunto de
instrucciones ampliadas que proporciona el S. O. y son las llamadas al sistema:2
Crean, eliminan y utilizan objetos del software controlados por el S. O.: Los ms importantes
son procesos y archivos.

Tanenbaum A. Sistemas Operativos Modernos. Mexico: Pearson Educacin, Segunda Edicin; 2003.
13

Excelencia Acadmica

Procesos

Es el concepto central de todos los S. O.

Es bsicamente un programa en ejecucin.

Consta del programa ejecutable, sus datos y pila, contador y otros registros, adems de la
informacin necesaria para ejecutar el programa.

La informacin de control relacionada con los procesos se almacena en la tabla de


procesos:

o Es administrada por el S.O.


o Posee un arreglo de estructuras, una por cada proceso existente en ese
momento.

Un proceso (suspendido) consta de:

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:

Una de las funciones principales del S. O. es brindar independencia de dispositivo.

Muchos S. O. soportan el concepto de directorio como una forma de agrupar archivos.

Los directorios se estructuran jerrquicamente, por lo que a cada archivo le corresponde una
ruta de acceso.

Existen distintos esquemas de seguridad de archivos en los distintos S. O.

Llamadas al sistema:

Permiten a los programas comunicarse con el S. O. y solicitarle servicios.

A cada llamada le corresponde un procedimiento:

o Pone los parmetros de la llamada en un lugar especco para luego


ejecutar una instruccin tipo trap de llamada a procedimiento protegido
para iniciar el S. O.
o Luego de trap el S. O. recupera el control , examina los parmetros y si
son vlidos ejecuta el trabajo solicitado.

14

Excelencia Acadmica

o Luego de terminar, el S. O. coloca un cdigo de estado en un registro


indicando si tuvo xito o fracaso y ejecuta una instruccin del tipo return
from trap para regresar el control al procedimiento.
o El procedimiento regresa al programa llamador con un cdigo de estado
como un valor de funcin; dentro de los parmetros pueden regresar
valores adicionales.

ESTRUCTURA DE LOS SISTEMAS OPERATIVOS


Se considera la organizacin interna de los S. O. y conforme a ella se los clasifica de la siguiente
manera, destacndose sus principales caractersticas:

Sistemas monolticos:

Es muy comn: no existe estructura propiamente dicha o es mnima.

El S. O. es una coleccin de procedimientos que se pueden llamar entre s (ver Figura.22).

Figura.2. Modelo de estructura simple para un sistema monoltico.

Cada procedimiento tiene una interfaz bien definida en trminos de parmetros y resultados.

15

Excelencia Acadmica

Figura.3. Forma de llamada al sistema en un sistema monoltico.

Para ejecutar los servicios del S. O. (llamadas al sistema)2: (ver Figura.3).

o Se solicitan colocando los parmetros en lugares bien definidos (registros o


pilas).
o Se ejecuta una instruccin especial de trampa: llamada al ncleo o
llamada al supervisor.
o La instruccin cambia la mquina del modo usuario al modo ncleo (o
modo supervisor)2.
o Se transfiere el control al S. O.
o El S. O. examina los parmetros de la llamada para determinar cul de
ellas se desea realizar.
o El S. O. analiza una tabla que contiene en la entrada k un apuntador al
procedimiento que realiza la k-sima llamada al sistema:
o Identifica al procedimiento de servicio llamado.
o La llamada al sistema termina y el control regresa al programa del usuario.

Sistemas con capas:

Es una generalizacin del modelo de estructura simple para un sistema monoltico.

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:

o Trabaja con la asignacin del procesador.


o Alterna entre los procesos cuando ocurren las interrupciones o expiran los
cronmetros.
Proporciona la multiprogramacin bsica.

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

Tabla.1. Estructura del S.O. en capas THE

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:

o Administra la comunicacin entre cada proceso y la consola del operador.


o Por sobre esta capa, cada proceso tiene su propia consola de operador.

Capa 3:

o Controla los dispositivos de e / s y almacena en buffers los flujos de


informacin entre ellos.
o Por sobre la capa 3 cada proceso puede trabajar con dispositivos
abstractos de e / s en vez de con dispositivos reales.

Capa 4:

o Aloja los programas del usuario.


o Los programas. del usuario no tienen que preocuparse por el proceso,
memoria, consola o control de e / s.

Capa 5:

o Localiza el proceso operador del sistema.


Una generalizacin mas avanzada del concepto de capas se presento con Multics (MIT, Bell
Labs y General Electric):
Multics: multiplexed information and computing service.

Presenta una estructura en anillos concntricos, siendo los interiores los privilegiados.

Un procedimiento de un anillo exterior, para llamar a un procedimiento de un anillo interior,


debe hacer el equivalente a una llamada al sistema.

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.

Proporciona varias mquinas virtuales a la capa superior.

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.

Figura.4. La estructura de VM-370 con CMS.


Las VM generalmente utilizaran, entre otros, el S. O. CMS: Conversational Monitor System.
Cuando un programa CMS ejecuta una llamada al sistema:
La llamada es atrapada por el S. O. en su propia mquina virtual; no pasa directamente al
VM/370.

CMS proporciona las instrucciones de e / s en hardware para la lectura del disco virtual o lo
necesario para efectuar la llamada.

VM/370 atrapa estas instrucciones de e / s y las ejecuta sobre el hardware verdadero.

Modelo cliente - servidor


Una tendencia en los S. O. modernos es la de explotar la idea de mover el cdigo a capas
superiores y mantener un ncleo mnimo, de manera similar al VM/370.
Implantar la mayora de las funciones del S. O. en los procesos del usuario.
La Figura.5 muestra la solicitud de un servicio (por ej.: lectura de un bloque de cierto archivo)
segn el modelo cliente - servidor2.
El proceso del usuario (proceso cliente) enva la solicitud a un proceso servidor:
Realiza el trabajo y regresa la respuesta.

El ncleo controla la comunicacin entre los clientes y los servidores.

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

No tienen acceso directo al hardware.

Se aslan y acotan ms fcilmente los problemas.

Figura.5. El modelo cliente servidor.


Se adapta para su uso en los sistemas distribuidos: (ver Figura.6).

Figura.6. El modelo cliente servidor en un sistema distribuido.


Si un cliente se comunica con un servidor mediante mensajes:
No necesita saber si el mensaje se atiende localmente o mediante un servidor remoto, situado
en otra mquina conectada.

Enva una solicitud y obtiene una respuesta.

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.

Construccin de un mnimo de mecanismos dentro del ncleo manteniendo las decisiones


de poltica relativas a los usuarios dentro del espacio del usuario.

MS ESTRUCTURAS DE SISTEMAS OPERATIVOS


El sistema operativo se divide lgicamente en pequeos mdulos y se crea una interfase bien
definida para estos mdulos. Cada uno de estos mdulos o piezas deben tener su funcin, sus
inputs y outputs cuidadosamente definidos.

El sistema operativos DOS


El sistema operativos DOS no cuenta con una buena divisin de estos mdulos ya que no se
encuentra bien particionado permitiendo el acceso directo de los programas de aplicacin a rutinas

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.

Figura.7. Estructura del sistema operativo DOS.

El sistema operativo UNIX


Otro ejemplo de un sistema operativo que no fue bien construido lo constituye el UNIX. Este sistema
se encuentra divido en dos partes una de ellas comprende los programas del sistema y la otra el
kernel. El kernel se encuentra divido en drivers de dispositivos y en las interfases (ver Figura.8).
Lamentablemente este kernel combina demasiada funcionalidad en un solo nivel. Las llamadas al
sistema definen la interfase del programador al UNIX. El conjunto de programas de sistema
usualmente disponibles definen la interfase del usuario. Ambas definen el contexto al cual el kernel
debe dar soporte.
Otras mejoras posteriores al UNIX han separado el kernel en ms mdulos, por ejemplo en el
sistema operativo AIX de IBM se lo dividi en dos partes. El MACH de Carnegie-Mellon redujo el
kernel a un conjunto pequeo de funciones bsicas trasladando todo lo no esencial a los niveles
del sistema o incluso al del usuario.

EL SISTEMA OPERATIVO OS/2


El OS/2 un descendiente directo del MS-DOS fue creado para superar las limitaciones de este
ltimo. El OS/2 provee multitasking y operacin en modo dual como as tambin otras nuevas
mejoras.
En contraposicin a la estructura del MS-DOS la estructura del OS/2 se encuentra diseada en
capas que por ejemplo, no permiten el acceso directo del usuario a facilidades de bajo nivel lo que
otorga un mayor control al sistema operativo sobre el hardware y un mayor conocimiento de qu
recursos est utilizando cada programa de usuario.
En la Figura.9 podemos ver la estructura en capas del sistema operativo OS/2.

20

Excelencia Acadmica

Figura.8. Estructura del UNIX.

Figura.9. Estructura de capas del OS/2.

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.

Figura.10. La arquitectura de Windows NT.


El modo ncleo de la lnea de Windows NT est compuesto por subsistemas capaces
de pasar peticiones de E/S a los drivers apropiados usando el gestor de E/S. Dos
subsistemas crean la capa del modo usuario de Windows 2000: el subsistema de
Entorno (ejecuta aplicaciones escritas para distintos tipos de sistemas
operativos), y el subsistema Integral (maneja funciones especficas de sistema de
parte del subsistema de Entorno). El modo ncleo en Windows 2000 tiene acceso
total al hardware y a los recursos del sistema del ordenador. El modo ncleo impide
a los servicios del modo usuario y las aplicaciones acceder a reas crticas del
sistema operativo a las que no deberan tener acceso.
22

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.

Un Sistema Operativo (S. O.) es un grupo de programas de proceso con las


rutinas de control necesarias para mantener continuamente operativos dichos
programas.
El objetivo primario de un Sistema Operativo es optimizar todos los recursos del
sistema para soportar los requerimientos.

El lector explica los fundamentos de los Sistemas Operativos.

Deitel M. Introduccin a los Sistemas Operativos. Espaa: Addison Wesley


Iberoamericana, Segunda Edicin; 1998.

Tanenbaum A. Sistemas Operativos Modernos. Mexico: Pearson Educacin,


Segunda Edicin; 2003.

La siguiente unidad acadmica analiza la planificacin de procesos.

23

Excelencia Acadmica

AUTOEVALUACIN FORMATIVA

Supongamos que usted a sido designado para implementar un sistema operativo,


cul sera la arquitectura que usted recomendara?; justifique su respuesta.

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%.

Figura.11. Dos procesos, P0 y P1, listos para su ejecucin.

Si multiprogramamos los procesos P0 y P1 podemos mejorar en gran


medida el rendimiento del sistema
Figura.13). Comenzamos con el proceso P0 que se ejecuta durante un segundo; luego, mientras
el proceso P0 espera durante otro segundo, ejecutamos el proceso P1. Mientras el proceso P1

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.

Figura.12. Ejecucin de procesos sin multiprogramacin

Figura.13. Ejecucin de procesos con multiprogramacin.

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.

Tambin hay otras colas en el sistema. Cuando la UCP se asigna a un


proceso, se ejecuta durante un tiempo y despus termina o espera a que
ocurra un suceso determinado, como la conclusin de una solicitud de E/S.
En este caso, la E/S puede estar dirigida a una unidad de cinta dedicada o a
un dispositivo compartido, por ejemplo un disco. Puesto que en el sistema
hay varios procesos, el disco puede estar ocupado con la solicitud de E/S
de otro proceso, por lo que el proceso tendr que esperar al disco. La lista
de procesos que espera a un dispositivo de E/S determinado se denomina
cola del dispositivo, y cada dispositivo tiene su propia cola
26

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.

Figura.14. Cola de procesos listos y varias colas de dispositivo de E/S.


Un proceso nuevo se coloca inicialmente en la cola de procesos listos y all espera hasta que se
selecciona para su ejecucin y se le entrega la UCP; una vez que sta se asigna al proceso y se
ejecuta, puede ocurrir uno de estos sucesos:
El proceso puede emitir una solicitud de E/S y colocarse en una cola de dispositivo.

El proceso puede crear un nuevo proceso y esperar a que ste termine.

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

Figura.15. Representacin de la planificacin de procesos mediante un diagrama de colas.

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.

Figura.16. Adicin de la planificacin a mediano plazo al diagrama de colas.

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

Ciclo de rfagas de UCP y de E/S


El xito de la planificacin de la UCP depende de la siguiente propiedad observada de los
procesos: la ejecucin de un proceso consiste en un ciclo de ejecucin de la UCP y
espera de E/S, y los procesos se alternan entre estos dos estados. La ejecucin del
proceso se inicia con una rfaga de UCP; a sta le siguen una rfaga de E/S, otra rfaga
de UCP, una ms de E/S, etc. Finalmente, la ltima rfaga de UCP terminar con una solicitud
al sistema para que concluya la ejecucin, en vez de otra rfaga de E/S (Figura.17).
Las duraciones de estas rfagas de UCP se han medido, y, aunque varan
considerablemente de un proceso a otro y entre computadores, tienden a presentar una
curva de frecuencias similar a la que se muestra en la Generalmente la curva se
caracteriza como exponencial o hiperexponencial. Hay un gran nmero de rfagas de
UCP de corta duracin y un pequeo nmero de rfagas de larga duracin. Un programa
limitado por E/S normalmente tendr muchas rfagas de UCP breves, mientras que un
programa limitado por la UCP tendr pocas rfagas de muy larga duracin. Esta
distribucin puede ser muy importante al seleccionar un algoritmo adecuado para la
planificacin de la UCP.

Figura.17. Secuencia alterna de rfagas de UCP y E/S.

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).

Productividad. Si la UCP se encuentra ocupada, se est efectuando algn trabajo. Una


medida del trabajo es el nmero de procesos que se completan por unidad de tiempo, llamada
productividad. Para procesos largos, esta tasa puede ser un proceso por hora; para
transacciones ms breves, la productividad puede ser de 10 procesos por segundo.

Tiempo de retorno. Desde el punto de vista de un proceso en particular, el criterio ms


importante es cunto tiempo tarda en ejecutarse ese proceso. El intervalo entre el momento
de ofrecerlo hasta el momento en que termina es el tiempo de retorno, es decir, la suma de
los periodos transcurridos esperando entrar en la memoria, esperando en la cola de procesos
listos, ejecutndose en la UCP y efectuando la E/S.

Tiempo de espera. El algoritmo para la planificacin de la UCP no afecta realmente a la


cantidad de tiempo durante el cual un proceso se ejecuta o lleva a cabo E/S. El algoritmo
afecta nicamente a la cantidad de tiempo que el proceso espera en la cola de procesos

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.

Tiempo de respuesta. En un sistema interactivo, es posible que el tiempo de retorno no sea


el mejor criterio. Con frecuencia un proceso puede producir alguna salida en los primeros
instantes y continuar calculando nuevos resultados mientras se presentan al usuario los
resultados anteriores. Por esto, otra medicin es el tiempo transcurrido desde la presentacin
de una solicitud hasta que se produce la primera respuesta. Esta medicin, llamada tiempo de
respuesta, es la cantidad de tiempo para comenzar a responder, pero no el tiempo necesario
para mostrar esa respuesta. El tiempo de retorno generalmente se encuentra limitado por la
velocidad del dispositivo de salida.

Es deseable maximizar la utilizacin de la UCP y la productividad, y minimizar los tiempos de


retorno, de espera y de respuesta; en la mayora de los casos optimizamos el promedio, pero en
ocasiones puede ser deseable optimizar los valores mnimos o mximos, en vez del promedio. Por
ejemplo, para garantizar que todos los usuarios obtengan un buen servicio podramos minimizar el
mximo tiempo de respuesta.
Tambin se ha propuesto que, para sistemas interactivos (como los sistemas de tiempo
compartido), es ms importante minimizar la varianza en el tiempo de respuesta que minimizar su
promedio. Un sistema con tiempo de respuesta razonable y predecible puede considerarse ms
deseable que un sistema que en promedio sea ms rpido, pero muy variable. Sin embargo, es
poco lo que se ha hecho respecto a los algoritmos para la planificacin de la UCP que minimicen
la varianza.
A medida que analicemos los distintos algoritmos para la planificacin de la UCP, ilustraremos su
funcionamiento. Una ilustracin precisa podra incluir muchos procesos, y cada uno de ellos una
secuencia de centenares de rfagas de UCP y de E/S. Para simplificar las ilustraciones, en
nuestros ejemplos consideramos slo una rfaga de UCP (en milisegundos). Nuestra medida de
comparacin es el tiempo promedio de espera.

Planificacin servicio por orden de llegada


Definitivamente, el algoritmo ms sencillo para la planificacin de la UCP es el algoritmo servicio
por orden de llegada (FCFS, first -come, first-served). Con este esquema, el proceso que primero
solicita la UCP es el primero al que se le asigna. La poltica FCFS se implanta fcilmente con una
cola FIFO: cuando un proceso entra en la cola de procesos listos, su PCB se enlaza al final de la
cola; cuando la UCP est libre se asigna el proceso colocado al inicio de la cola de procesos listos,
y entonces el proceso en ejecucin se elimina de esa misma cola. El cdigo para la planificacin
FCFS es sencillo de escribir y comprender.En la poltica FCFS el tiempo promedio de espera es
bastante largo, sin embargo. Considere el siguiente conjunto de procesos que llegan en el instante
O, donde la duracin de la rfaga de uci se expresa en milisegundos:

Proceso Duracin de la rfaga


P1
24
P2
3
P3
3
Si los procesos llegan en el orden P1, P2 y P3 y se les da servicio por orden de llegada,
obtenemos el resultado que se presenta en la siguiente grfica de Gantt:

El tiempo de espera es 0 milisegundos para el proceso P1, 24 milisegundos para el proceso P2 y


27 milisegundos para el proceso P3, de manera que el tiempo promedio de espera es (0 + 24 +
33

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:

El tiempo promedio de espera es ahora (6 + 0 + 3)/3 = 3 milisegundos, lo que representa una


reduccin considerable. Por esto, el tiempo promedio de espera en la poltica FCFS generalmente
no es mnimo y puede variar bastante si los tiempos de rfagas de UCP de los procesos varan
mucho.
Adems, considere el rendimiento de la planificacin FCFS en una situacin dinmica. Suponga
que tenemos un proceso limitado por la UCP y varios procesos limitados por E/S. Al pasar los
procesos por el sistema, se puede presentar la siguiente situacin: el proceso limitado por la UCP
obtendr la UCP y la retendr; durante este tiempo, todos los dems procesos terminarn su E/S y
pasarn a la cola de procesos listos, en espera de la UCP. Mientras esperan en la cola de procesos
listos, los dispositivos de E/S permanecen inactivos. Finalmente, el proceso limitado por
la UCP termina su rfaga de UCP y pasa a un dispositivo de E/S. Todos los procesos limitados por
E/S, que tienen rfagas de UCP breves, se ejecutan rpidamente y regresan a las colas de
dispositivos de E/S. En este momento la UCP est inactiva. El proceso limitado por la UCP
regresar a la cola de procesos listos y se le asignar la UCP. Una vez ms, los procesos limitados
por E/S se encuentran en la cola de procesos listos esperando a que termine el proceso limitado
por la UCP. Esto se conoce como efecto de convoy, ya que todos los dems procesos
esperan a que un proceso de gran tamao salga de la UCP. Este efecto provoca que la UCP y los
dispositivos se aprovechen menos que si se permitiera que los procesos ms cortos pasaran antes.
El algoritmo de planificacin FCFS es no apropiativo. Una vez que se ha asignado la UCP a un
proceso, ste la conserva hasta que desee liberarla, ya sea por terminacin o por solicitud de E/S.
El algoritmo FCFS es especialmente problemtico en los sistemas de tiempo compartido, donde
es importante que cada usuario reciba una porcin de la UCP a intervalos regulares. Sera
desastroso permitir que un proceso retuviera la UCP por un periodo largo.

Planificacin Primero el trabajo ms breve


Un enfoque distinto para la planificacin de la UCP es el algoritmo primero el trabajo ms breve
(SJF, shortest-job-first). (No empleamos el trmino primero el proceso ms breve porque la mayora
de las personas y los textos se refieren a este tipo de disciplina de planificacin como primero el
trabajo ms breve.) Este algoritmo asocia a cada proceso la longitud de su siguiente rfaga de
UCP. Cuando la UCP est disponible, se le asigna al proceso que tiene la rfaga siguiente de UCP
menor. Si dos procesos tienen la misma longitud para la siguiente rfaga de UCP se utiliza la
planificacin FCFS para romper el empate.
Como ejemplo, considere el siguiente conjunto de procesos, donde la longitud de rfaga de UCP
se presenta en milisegundos:

Proceso Duracin de la rfaga


P1
6
P2
8
P3
7
P4
3
Usando la planificacin SJF, planificaramos estos procesos de acuerdo con 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.

Puede comprobarse que el algoritmo SJF es ptimo, ya que ofrece el mnimo


tiempo promedio de espera para un conjunto de procesos dado. La comprobacin
muestra que poniendo un proceso breve antes de uno largo se reduce el tiempo de
espera del proceso corto ms de lo que aumenta el tiempo de espera del proceso
largo
Figura Error! No hay texto con el estilo especificado en el documento..19). Por tanto,
se reduce el tiempo de espera promedio.
El problema real con el algoritmo SJF es conocer la longitud de la siguiente solicitud de la UCP.
Para la planificacin a largo plazo de (trabajos) en un sistema por lotes, podemos utilizar el tiempo
lmite del proceso. De esta manera se motiva a los usuarios a estimar con precisin el tiempo
lmite del proceso, ya que un valor menor representa una respuesta ms rpida. (Un valor
demasiado bajo ocasionar un error de tipo tiempo lmite excedido y se tendr que ofrecer de
nuevo el proceso.) La planificacin SJF se usa frecuentemente en la planificacin de procesos.

Figura Error! No hay texto con el estilo especificado en el documento..19.


Comprobacin de que el algoritmo de planificacin SJF es ptimo.

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

Esta frmula define un promedio exponencial. El valor de tn contiene nuestra informacin ms


reciente, y n contiene nuestros datos histricos. El parmetro controla la ponderacin de la
historia reciente y antigua para nuestra prediccin. Si =O, entonces n+1 = n, y la historia reciente
no tiene efecto (se supone que las condiciones actuales son transitorias); si =1, entonces n+1 = tn
y slo tiene importancia la rfaga de UCP ms reciente (se supone que los datos histricos son
viejos e irrelevantes). Es ms habitual que = , por lo que la historia reciente y antigua se
ponderan de igual manera. La
Figura Error! No hay texto con el estilo especificado en el documento..20 muestra un promedio exponencial para
= . El valor inicial de 0 puede definirse como una constante o como un promedio global del
sistema.
Para comprender el comportamiento del promedio exponencial, podemos desarrollar la frmula
para n+1 sustituyndolo por n; para encontrar

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.

Figura 20 Prediccin de la siguiente rfaga de UCP utilizando un promedio


exponencial.

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

Proceso Instante de llegada Duracin de la rfaga


P1
0
8
P2
1
4

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:

El proceso P1 comienza en el instante 0, ya que es el nico proceso en la cola. El proceso P2 llega


en el instante 1. El tiempo restante para el proceso P1 (siete milisegundos) es mayor que el tiempo
que requiere el proceso P2 (cuatro milisegundos), por lo que el proceso P1 se expulsa y el proceso
P2 se planifica. El tiempo promedio de espera para este ejemplo es ((10 - 1) + (1 - 1) + (17 - 2) +
(5 - 3))/4 = 26/4 = 6.5 milisegundos. El resultado de una planificacin SJF no apropiativa sera 8.75
milisegundos.

Planificacin por prioridades


El algoritmo SJF es un caso especial del algoritmo general para la planificacin por prioridades. Se
asocia una prioridad a cada proceso y la UCP se asigna al de mayor prioridad. Los procesos con
igual prioridad se planifican en orden FCFS.
Un algoritmo SJF es sencillamente un algoritmo de prioridades, donde la prioridad (p) es la inversa
de la siguiente rfaga (prevista) de UCP (): p=1/. Si la rfaga de UCP es mayor, la prioridad ser
menor y viceversa.
Observe que analizamos la planificacin en trminos de una alta prioridad y una baja prioridad. Las
prioridades generalmente corresponden a un intervalo fijo de nmeros, como 0 a 7 o 0 a 4095. Sin
embargo, no existe ningn consenso respecto a si 0 es la prioridad ms alta o la ms baja.
Algunos sistemas emplean nmeros bajos para representar una prioridad baja; otros utilizan
nmeros bajos para representar una prioridad alta. Esta diferencia puede prestarse a confusiones.
En este libro supondremos que los nmeros bajos representan prioridades altas.
Como ejemplo, considere el siguiente conjunto de procesos, que se supone llegaron en el instante
0, en el orden P1, P2,..., P5 y cuyas longitudes de rfaga de UCP se indican en milisegundos:

Proceso Duracin de la rfaga Prioridad


P1
10
3
P2
1
1
P3
2
3
P4
1
4
P5
5
2
Usando la planificacin por prioridades, planificaramos estos procesos de acuerdo con la
siguiente grfica de Gantt:

El tiempo promedio de espera es de 6.2 milisegundos.


38

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:

Proceso Duracin de rfaga


P1
24
P2
3
39

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:

El tiempo promedio de espera es 17/3 = 5.66 milisegundos.


En el algoritmo de planificacin RR, la UCP no se asigna a ningn proceso por ms de un cuanto
consecutivo de tiempo. Si la rfaga de UCP de un proceso excede de un cuanto, se expulsa y
regresa a la cola de procesos listos. El algoritmo de planificacin RR es apropiativo.
Si existen n procesos en la cola de procesos listos y el cuanto de tiempo es q, cada proceso recibe
1/n de tiempo de la UCP en trozos de q unidades de tiempo como mximo. Ningn proceso debe
esperar ms de (n - 1) x q unidades de tiempo antes de recibir su siguiente cuanto. Por ejemplo, si
hay cinco procesos, con un cuanto de tiempo de 20 milisegundos, entonces cada proceso recibir
hasta 20 milisegundos cada 100 milisegundos.
El rendimiento del algoritmo RR depende en gran medida del tamao del cuanto de tiempo. En un
extremo, si el cuanto es muy grande (infinito), la poltica RR es la misma que la FCFS. Si el cuanto
de tiempo es muy pequeo digamos un microsegundo), el enfoque RR se llama compartir el
procesador, y para los usuarios parece (en teora) que cada uno de los n procesos tiene su propio
procesador que se ejecuta a 1/n de la velocidad del procesador real. Este enfoque se utiliz en el
computador de Control Data Corporation (CDC) para implantar 10 procesadores perifricos con
slo un equipo de hardware y 10 conjuntos de registros. El hardware ejecuta una instruccin para
un conjunto de registros y luego pasa al siguiente. Este ciclo contina, dando como resultado 10
procesadores lentos en vez de uno rpido. (En realidad, como el procesador era mucho ms
rpido que la memoria y cada instruccin hacia referencia a ella, los procesadores no eran mucho
ms lentos de lo que habra sido un solo procesador.)

Sin embargo, en el software tenemos que considerar el efecto del cambio de


contexto en el rendimiento de la planificacin RR. Supongamos que
tenemos slo un proceso de 10 unidades de tiempo. Si el cuanto de tiempo
es de 12 unidades de tiempo, el proceso termina en menos de un cuanto, sin
tiempo de procesamiento adicional; pero si el cuanto de tiempo es de seis
unidades, el proceso requiere 2 cuantos, produciendo un cambio de
contexto. Si el cuanto de tiempo es una unidad, ocurrirn nueve cambios de
contexto, lo que har ms lenta la ejecucin del proceso
Figura Error! No hay texto con el estilo especificado en el documento..21).

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.

El tiempo de retorno tambin depende del tamao del cuanto de tiempo.


Como podemos ver en la
Figura Error! No hay texto con el estilo especificado en el documento..22, el tiempo de retorno promedio de un
conjunto de procesos no necesariamente mejora al aumentar el cuanto de tiempo. En general, el
tiempo de retomo promedio puede mejorar si la mayora de los procesos terminan su siguiente
rfaga de UCP en un solo cuanto de tiempo. Por ejemplo, dados tres procesos de 10 unidades de
tiempo cada uno y un cuanto de tiempo de una unidad, el tiempo de retorno promedio es 29, pero
si el cuanto es 10, el tiempo de retorno promedio se reduce a 20. Si se aade el tiempo de cambio
de contexto, el tiempo de retorno promedio aumenta para un cuanto de tiempo ms pequeo,
puesto que se requieren ms cambios de contexto.

Figura.22 El tiempo de retorno promedio vara con el cuanto de tiempo.

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.

Planificacin de colas de mltiples niveles


Se ha creado otra clase de algoritmos de planificacin para aquellas situaciones donde los
procesos se pueden clasificar fcilmente en distintos grupos. Por ejemplo, una divisin habitual
consiste en diferenciar los procesos de primer plano (interactivos) de los procesos de segundo

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.

Un algoritmo de planificacin de colas de mltiples niveles divide la cola de


procesos listos en diversas colas
Figura Error! No hay texto con el estilo especificado en el documento..23). Los procesos se asignan en forma
permanente a una cola, generalmente a partir de alguna propiedad del proceso, como puede ser el
tamao de la memoria o el tipo de proceso. Cada cola tiene su propio algoritmo de planificacin;
por ejemplo, pueden emplearse colas distintas para los procesos de primer y segundo planos. La
cola de primer plano puede planificarse con un algoritmo RR, mientras que la de segundo plano se
planifica con un algoritmo FCFS.
Debe existir adems una planificacin entre las colas, la cual generalmente es una planificacin
apropiativa de prioridad fija. Por ejemplo, la cola de procesos de primer plano puede tener prioridad
absoluta sobre la cola de procesos de segundo plano.
Veamos un ejemplo de algoritmo de planificacin de colas de mltiples niveles con cinco colas:

Procesos del sistema

Procesos interactivos

Procesos interactivos de edicin


Procesos por lotes
Procesos de estudiantes
Cada cola tiene prioridad absoluta sobre las colas de menor prioridad. Por ejemplo, no podra
ejecutarse ningn proceso de la cola de procesos por lotes a menos que las colas de procesos del
sistema, procesos interactivos y procesos interactivos de edicin estuvieran vacas. Si un proceso
interactivo de edicin entrara en la cola de procesos listos durante la ejecucin de un proceso por
lotes, este ltimo se expulsara.

Figura 23 Planificacin de colas de mltiples niveles.

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.

Planificacin de colas de mltiples niveles con realimentacin


En un algoritmo para la planificacin de colas de mltiples niveles normalmente los procesos se
asignan de manera permanente a una cola al entrar al sistema y no se mueven a otras colas. Por
ejemplo, si hay colas diferentes para los procesos de primer y segundo planos, no cambian de una
cola a otra, ya que los procesos no modifican su naturaleza de primer o segundo planos. Esta
configuracin tiene la ventaja de provocar poco gasto de procesamiento adicional durante la
planificacin, pero es inflexible.
Sin embargo, la planificacin de colas de mltiples niveles con realimentacin permite a un proceso
moverse de una cola a otra. La idea es separar los procesos con diferentes caractersticas en
cuanto a rfagas de la UCP. Si un proceso utiliza demasiado tiempo de la UCP, se pasar a una
cola de menor prioridad. Este esquema deja a los procesos limitados por E/S y a los procesos
interactivos en las colas de mayor prioridad. De igual manera, si un proceso espera demasiado
tiempo en una cola de menor prioridad se puede mover a una de mayor prioridad. Esta es una forma
de envejecimiento que evitara el bloqueo indefinido.

Por ejemplo, considere un planificador de colas de mltiples niveles con


realimentacin con tres colas, numeradas del 0 al 2 (
Figura Error! No hay texto con el estilo especificado en el documento..24). El planificador ejecutar primero todos
los procesos de la cola 0. Slo cuando sta se encuentre vaca, se ejecutarn los procesos de la
cola 1. En forma similar, los procesos de la cola 2 slo se ejecutarn si las colas 0 y 1 estn
vacas. Un proceso que llegue a la cola 1 expulsar a un proceso de la cola 2. A su vez, un
proceso de la cola 1 ser expulsado por un proceso que llegue a la cola 0.

Figura 24 Colas de mltiples niveles con realimentacin.


A los procesos que entran a la cola de procesos listos se les coloca en la cola 0, y se les asigna un
cuanto de tiempo de ocho milisegundos. Si no terminan en este lapso, se mueven al final de la
cola 1; si la cola 0 est vaca, se asigna un cuanto de tiempo de 16 milisegundos al proceso que

43

Excelencia Acadmica

se encuentre al inicio de la cola 1. Si no termina, es expulsado y pasa a la cola 2. Los procesos de


esta cola se ejecutan sobre una base FCFS, nicamente cuando estn vacas las colas 0 y 1.
Este algoritmo de planificacin da mayor prioridad a cualquier proceso con una rfaga de UCP de
ocho milisegundos o menos. Este proceso recibir rpidamente la UCP, terminar su rfaga de
UCP y pasar a su siguiente rfaga de E/S. Los procesos que requieren ms de ocho, pero menos
de 24 milisegundos, tambin son atendidos con rapidez, aunque con menor prioridad que los
procesos ms breves. Los procesos de larga duracin descienden automticamente a la cola 2 y
son atendidos en orden de llegada utilizando cualquier ciclo de la UCP que no ocupe las colas 0 y
1.
Por lo general, un planificador de colas de mltiples niveles con realimentacin se define con los
siguientes parmetros

El nmero de colas

El algoritmo de planificacin para cada cola

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.

PLANIFICACIN DE PROCESADORES MLTIPLES


Hasta ahora nuestro anlisis se ha centrado en los problemas de la planificacin de la UCP en un
sistema con un solo procesador. Si hay mltiples UCP, el problema de planificacin se vuelve ms
complejo. Se han probado varias posibilidades y, como hemos visto en la planificacin de la UCP
con un solo procesador, no hay una solucin nica que sea la mejor. A continuacin analizaremos
brevemente algunos de los asuntos relacionados con la planificacin de procesadores mltiples.
Uno de los factores principales es el tipo de procesadores que entran en juego, los cuales pueden
ser idnticos (un sistema homogneo) o distintos (un sistema heterogneo). Si los procesadores
son diferentes, las opciones son relativamente limitadas. Cada procesador tiene su propia cola y
su propio algoritmo de planificacin. Los procesos estn tipificados intrnsecamente por su
estructura, y deben ejecutarse en un procesador determinado; un programa escrito en lenguaje
ensamblador VAX no puede ejecutarse en un IBM Series/1; hay que ejecutarlo en un VAX. As, los
procesos se restringen a ciertos procesadores y cada procesador puede planificarse a s mismo.
Si hay varios procesadores idnticos, pueden compartir cargas. Sera posible proporcionar una
cola distinta a cada procesador, pero en esta situacin un procesador podra estar inactivo, con
una cola vaca, mientras los dems procesadores estuvieran muy activos. Para evitarlo utilizamos
una cola comn de procesos listos; todos los procesos entran a esta cola y se planifican en
cualquier procesador disponible.
Con este esquema puede emplearse una de dos estrategias d planificacin. En una de ellas, cada
procesador se planifica a s mismo. Cada procesador examina la cola comn de procesos listos y
selecciona un proceso para ejecucin. Si tenemos varios procesadores que tratan de acceder a
una estructura de datos comn y actualizarla, hay que programar con cuidado cada procesador.
Debemos asegurar que dos procesadores no elijan el mismo proceso, y que no se pierdan procesos
de la cola. La otra estrategia evita este problema estableciendo un procesador como planificador
para los dems, creando as una estructura amo-esclavo, esto es, el multiprocesamiento asimtrico.

44

Excelencia Acadmica

El objetivo de la multiprogramacin en los Sistemas Operativos, es que en todo


momento se ejecute un proceso para maximizar la utilizacin de la UCP (Unidad
Central de Proceso); por lo tanto, se debe utilizar algn algoritmo que nos permita
planificar la UCP.

El lector utiliza los algoritmos de planificacin de la UCP.

Deitel M. Introduccin a los Sistemas Operativos. Espaa: Addison Wesley


Iberoamericana, Segunda Edicin; 1998.

Silberschatz A, Peterson J, Galvin P. Sistemas Operativos. Usa: Editorial


Addison Wesley Iberoamericana, 3ra Edicin; 1994.

Tanenbaum A. Sistemas Operativos Modernos. Mexico: Pearson Educacin,


Segunda Edicin; 2003.

La siguiente unidad acadmica analiza el procesamiento concurrente para un sistema


operativo.

Realice una prueba de escritorio a los algoritmos de planificacin.

45

Excelencia Acadmica

Resuelva los siguientes problemas:

PROBLEMA UNO
Considere el siguiente conjunto de procesos, cuyas longitudes de rfaga de UCP se expresan en
milisegundos:

Proceso Duracin de Prioridad


la rfaga
P1
10
3
P2
1
1
P3
2
3
P4
1
4
P5
5
2
Se supone que los procesos llegaron en el orden P1, P2, P3, P4, P5 todos en el instante 0.
a) Dibuje cuatro grficas de Gantt que ilustren la ejecucin de estos procesos utilizando la
planificacin FCFS, SJF, una prioridad no apropiativa (un menor nmero de prioridad representa
una prioridad mayor) y RR (cuanto = 1).
b) Cul es el tiempo de retomo de cada proceso para cada uno de los algoritmos de planificacin
del apartado a)?
c) Cul es el tiempo de espera de cada proceso para cada uno de los algoritmos de planificacin
del apartado a)?
d) Cul de los esquemas de planificacin del apartado a) ofrece el menor tiempo promedio de
espera (para todos los procesos)?

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.

Proceso Instante de Duracin de


llegada
la rfaga
P1
0.0
8
P2
0.4
4
P3
1.0
1
a) Cul es el tiempo de retorno promedio para estos procesos con el algoritmo de planificacin
FCFS?
b) Cul es el tiempo de retorno promedio para estos procesos con el algoritmo de planificacin
SJF?
c) Supuestamente, el algoritmo de planificacin SJF mejora el rendimiento, pero observe que
decidimos ejecutar el proceso P1 en el instante 0 porque no sabamos que pronto llegaran dos
procesos ms breves. Calcule cul sera el tiempo de retorno total promedio si la UCP estuviera
inactiva durante la primera unidad de tiempo y luego se aplicara la planificacin SJF. Recuerde que
los procesos P1 y P2 estn en espera durante este periodo de inactividad, por lo que puede
aumentar su tiempo de espera. A este algoritmo se le podra conocer como planificacin con
conocimiento del futuro.

46

Potrebbero piacerti anche