Sunteți pe pagina 1din 0

1

UNIDAD I

INTRODUCCION Y TIPOS DE SISTEMAS OPERATIVOS

1.1 DEFINICIONES DE UN SISTEMA OPERATIVO
A continuacin se analizaran algunas definiciones sobre lo que es un sistema
operativo:
Los sistemas operativos son los programas de gestin del hardware de un
sistema de computacin electrnico, as como de establecimiento de su
relacin con el usuario. Es por tanto uno de los elementos software de bao
nivel m!s importante, " hace de puente entre el software, el hardware " el
usuario.

#ntermediario entre el usuario " los programas de aplicacin " el hardware
$ %roporciona una capa de aislamiento
$ &etermina la compatibilidad de los programas

Las tareas principales
$ 'acilitar el maneo del ordenador
$ (tilizar el hardware de forma eficiente

)e eecuta continuamente desde que arranca el ordenador

(n sistema operativo *).+., es el conunto de programas responsable de la
administracin " coordinacin de los recursos en un sistema de
computadoras.

(n sistema de computadoras se compone de:
Hardware $ -%(, memoria " dispositivos de entrada.salida *E.),
Software $ aplicaciones, herramientas de programacin " programas
utilitarios

Los usuarios son personas, m!quinas o programas que usan los servicios del
sistema operativo.


Es el software que controla la computadora, sirve de interfaz hombre/m!quina "
administra los recursos de un sistema de cmputo hardware " software.


2
Lo imorta!te e" #$e e% "i"tema oerati&o de'e(

%roveer un mecanismo conveniente para que los usuarios eecuten las
aplicaciones " maneen el hardware, decidiendo qui0n " cmo se utilizan
los recursos.
%ermitir la operacin eficiente del sistema de computadoras,
especialmente en sistemas multitareas " multiusuarios.

1.) FUNCIONES DE UN SISTEMA OPERATIVO
Las tareas que desempe1a un sistema operativo dependen en cierta medida del
tipo de las caractersticas de cada ordenador. As las funciones de un sistema
operativo multitarea, en un gran ordenador, son diferentes de las de un
ordenador personal. )in embargo, e2isten ciertos puntos en com3n que
permiten identificar de forma mu" general las tareas principales de un sistema
operativo en:
%roporcionar una interfaz de usuario, para que este 3ltimo se pueda
comunicar con la computadora
Administrar " controlar los dispositivos de hardware del computador
Administrar " mantener los sistemas de archivo de disco
Apo"ar la eecucin de otros programas



Figura1: Funciones de un sistema operativo
Fuente: http://cert.inteco.es/extfrontinteco/img/Image/intecocert/Formacion/software/so.jpg


1.* LOS SISTEMAS OPERATIVOS Y LOS SISTEMAS DE
COMPUTADORAS
La siguiente figura muestra la relacin entre los sistemas operativos " el resto
del sistema de computadoras:

3


Figura 2: Relacin entre los sistemas operativos y el resto del sistema de
computadoras
Fuente: http://www.fing.edu.uy/inco/cursos/sistoper/recursosTeoricos/!"Teo"Introduccion.pdf

Los usuarios se comunican con el sistema operativo mediante la invocacin de
las aplicaciones o el uso de una interfaz de comandos:
I!terfa+ de %a L,!ea de Coma!do" *-L#, #ommand"$ine Interface,
comandos, opciones " argumentos como te2to
I!terfa+ -r.fi/a ara U"$ario" *4(#, %raphical &ser Interface,
ventanas, conos, men3s " dispositivos apuntadores

Las aplicaciones se comunican con el sistema operativo mediante:
L%amada" de% "i"tema *s"stem calls, $ funciones que el sistema
operativo provee para que las aplicaciones soliciten servicios
API*Application %rogramming #nterface, / conunto de funciones,
procedimientos o clases que un sistema operativo o un lenguae de
programacin provee para atender solicitudes de los programas

El sistema operativo se comunica con el hardware mediante el uso de
interrupciones *interrupts,
(na interrupcin es una se1al que un dispositivo de hardware enva al
sistema operativo para indicar que 0ste necesita ser atendido

1.0 COMPONENTES DE UN SISTEMA OPERATIVO
&e manera esquem!tica, un sistema operativo se compone de:
a. N1/%eo 23er!e%4( responsable de la gestin de memoria, de disco " de
procesos.
b. S5e%% 2I!t6rrete de /oma!do"4( es el proceso encargado de traducir
los comandos que los usuarios introducen, a instrucciones que el sistema
operativo entiende.
(suario 5 (suario 6 (suario n
#nterfaz de -omandos o Aplicaciones *procesadores de palabras, hoas de
clculo, sistemas de bases de datos,
)istema
+perativo
7ardware

4
c. Ser&i/io" 2API( A%i/atio! Pro7ram I!terfa/e4( mediante estos
servicios las aplicaciones pueden realizar peticiones al sistema operativo
para acceder a los recursos hardware del sistema.


Figura 3: #omponentes de un sistema operativo
Fuente: http://www.scri'd.com/doc/()*++/%&I,"-."IT./,"!0.R,TI1!

1.0.1 N1/%eo de% "i"tema oerati&o 23er!e%4
Es lo primero que se carga del sistema operativo al arrancar el ordenador.
8eside permanentemente en memoria " atiende las llamadas al sistema.
9iene las siguientes funciones b!sicas:
-arga inicial *programa de arranque,
Administracin de memoria
Administracin del procesador
Administracin de dispositivos
Administracin de los archivos

E% admi!i"trador de %a memoria 2memory manager4 est! a cargo de la
memoria principal *8A:,.

Re"o!"a'i%idade" de% admi!i"trador de %a memoria:
o %reserva el espacio que ocupa el sistema operativo de forma tal que no pueda
ser alterado accidental o intencionalmente.
o &etermina la localizacin en 8A: de los programas que se eecutan.
o Asigna ".o libera espacio en memoria de acuerdo a solicitudes de los
programas.
o En los sistemas multiusuarios, monitorea las porciones de 8A: asignadas a
cada usuario.

E% admi!i"trador de% ro/e"ador 2processor manager4 est! a cargo de
asignar el -%( a los programas que se eecutan *los procesos,.
o (n programa es una entidad pasiva, es un conunto de instrucciones.
o (n proceso es una entidad activa que contiene una imagen del cdigo,
memoria asignada, atributos de seguridad " el estado del -%( *registros,.
o (n programa puede crear uno o m!s procesos cuando se eecuta.

Re"o!"a'i%idade" de% admi!i"trador de% ro/e"ador(
o :onitorea el estado del -%( para determinar si el -%( est! eecutando un
proceso o espera por una operacin de lectura o escritura.
o %lanifica cmo se eecutan los procesos por parte del -%(:
&ecidiendo si se acepta o rechaza cada proceso
5
&ecidiendo a qu0 proceso se le asignan los recursos del -%( " por
cu!nto tiempo
o %rovee mecanismos para la sincronizacin " la comunicacin entre los
procesos.
o %rovee mecanismos para el maneo de procesos concurrentes.

E% admi!i"trador de %o" di"o"iti&o" *device manager, est! a cargo de
manear dispositivos tales como teclado, mouse, pantalla, impresora " las
unidades de disco.
o Le esconde las peculiaridades de estos dispositivos al usuario.

Re"o!"a'i%idade" de% admi!i"trador de %o" di"o"iti&o"(
o Asigna " libera recursos para los dispositivos mediante polticas de
planificacin.
o -omienza la operacin de los dispositivos.
o %ermite la comunicacin entre dispositivos.

E% admi!i"trador de %o" ar/5i&o" *file manager, est! a cargo de monitorear
cada archivo en el sistema.
o %rovee una visin lgica " uniforme del almacenamiento de la informacin en
la memoria secundaria.

Re"o!"a'i%idade" de% admi!i"trador de %o" ar/5i&o"(
o %rovee mecanismos para crear " eliminar archivos.
o %rovee mecanismos para organizar archivos relacionados en directorios.
o -ontrola el acceso " la modificacin de los directorios " archivos.
o Asigna " libera recursos para la utilizacin de los archivos.

En la actualidad los sistemas operativos inclu"en un componente conocido como
el administrador de la red.

E% admi!i"trador de %a red *networ2 administrator, est! a cargo de proveer
mecanismos para que distintos usuarios utilicen " compartan los recursos de la
red de forma controlada " segura.

o Es importante recalcar que los componentes de un sistema operativo deben
interactuar armoniosamente unos con otros.
o Estos componentes no act3an aisladamente.

E8em%o de orde! e! e% arra!#$e de $! /om$tador
-omo eemplo, consideremos lo que ocurre cuando se quiere eecutar un
programa:
o El administrador de dispositivos recibe e interpreta las se1ales el0ctricas del
teclado o el mouse " le enva un comando al administrador del procesador.
o El administrador del procesador determina si el programa est! "a en memoria
o si ha" que leerlo de disco.
o )i ha" que leer el programa de disco, el administrador del procesador le enva
un comando al administrador de archivos para que 0ste determine su
localizacin en disco.
o El administrador de archivos le enva un comando al administrador de
dispositivos para que cargue el programa " 0ste 3ltimo le enva un comando
6
al administrador de memoria para que encuentre espacio en 8A:, coloque el
programa " registre su localizacin en 8A:.
o (na vez que el programa est! en memoria, el administrador del procesador
determina la prioridad " los recursos que le corresponde.
o :ientras el programa eecuta, los administradores manean los recursos que
el proceso necesita.
o -uando el programa termina de eecutar, los administradores liberaran los
recursos.














Figura 4: !rden de arran3ue en un computador
Fuente: ,utor

1.0.) S5e%% 2I!terrete de /oma!do"4
%ara que un usuario pueda dialogar directamente con el sistema operativo, se
proporciona una interfaz de usuario b!sica para:
-argar programas
Abortar programas
#ntroducir datos a los programas
9rabaar con archivos
9rabaar con redes

Eemplos de int0rprete de comandos:
;-L en sistemas por lotes
-+::A<&.-+: en :)/&+)
)hell en (<#=

a. I!terrete de /oma!do" de% "i"tema oerati&o 9i!dow"
Algunos sistemas operativos inclu"en el int0rprete de comandos en el >ernel.
+tros lo eecutan como un programa especial que se eecuta cuando se inicia un
trabao o cuando un usuario inicia sesin. La funcin principal del int0rprete de
comandos es obtener " eecutar en el sistema, el comando especificado por el
usuario. (no de los m0todos consiste en que el propio int0rprete de comandos
contiene el cdigo que el comando tiene que eecutar.

Hay que leerlo de disco
o si est ya en memoria
Encuentre espacio
en RAM
Determine
prioridad
Cargue el
programa
Seales
elctricas
Teclado
Ad.dispositivos
Comando
Ad.procesador
Si lee del
disco
Ad.archivos
Ad.memoria
2 1 3
4
5
6
7


Figura 5: Interprete de comandos
Fuente: http://www.programaso2.com/wp"content/uploads/455(/5*/fileidentifier.jpg

En la actualidad, e inicialmente orientadas al gran p3blico, son m!s utilizadas las
4(# *4raphics (ser #nterface, que el cl!sico interprete de comandos te2tual.

Estas interfaces gr!ficas permiten al usuario dar rdenes " trabaar con el
sistema operativo de manera sencilla, sin necesidad de un gran conocimiento de
los comandos del sistema operativo.

'. -UI de% "i"tema oerati&o 9i!dow" :P



Figura 6: %&I del sistema operativo 6indows 70
Fuente: http://upload.wi2imedia.org/wi2ipedia/en/'/'a/6indows870.09%
8

1.; ARRAN<UE DE LA COMPUTADORA
El arranque de una computadora actual tiene 6 fases: la fase de arranque
hardware " la fase de arranque del sistema operativo.

1.;.1 Arra!#$e 5ardware
-omo se indico anteriormente la computadora solo es capaz de realizar
actividades 3tiles si cuenta con un programa cargado en memoria principal.
%uesto que la memoria de las computadoras es vol!til, cuando se enciende la
m!quina no contiene ninguna informacin 3til.

%ara resolver esta situacin, las computadoras cuentan con un programa
permanente grabado en una memoria no vol!til denominada com3nmente ?#+)
en los %-.

La ?#+) realiza @ funciones:
5. 7ace una comprobacin del sistema para detectar sus caractersticas "
comprobar si todos los componentes funcionan correctamente.
6. ?usca el dispositivo de almacenamiento secundario donde se encuentra el
sistema operativo " carga en memoria el programa cargador de este.
@. 'inalmente da paso a este programa bifurcando a la direccin de memoria
donde est! este cargado.

El programa cargador del sistema operativo suele encontrarse en los primeros
sectores del disco " tienen un tama1o prefiado por convenio.

1.;.) Arra!#$e "oftware
El programa cargador tiene por misin traer a memoria principal algunos de los
componentes del sistema operativo. (na vez cargados estos componentes se
pasa a la fase de inicializacin, que inclu"e las siguientes operaciones:
-omprobacin del sistema
)e establecen las estructuras de informacin propias del sistema operativo
como la tabla de procesos, las tablas de memoria " las de E.).
)e crea un proceso de inicio o login por cada terminal definido en el
sistema, as como una serie de procesos au2iliares " de demonios *o
servicios,.

1.= >C?MO FUNCIONA EL ARRAN<UE DE UN COMPUTADOR@
Al poner en funcionamiento el computador, los circuitos " la memoria toman
valores determinados. :ediante una se1al de R..T, los registros " los
biestables se pueden poner en valores predeterminados, pero no sucede lo
mismo con la memoria principal, que no contiene ninguna informacin v!lida, es
decir, que no contiene ning3n programa.

-omo sabemos, cualquier funcin que queramos que el computador lleve a cabo
se tiene que hacer mediante el correspondiente programa de m!quina.

%or tanto, para llevar un programa del disco duro a la memoria se necesita un
programa, que en este caso se denomina cargador.
9

Esta situacin, en la que no se dispone de un programa en memoria principal "
en la cual, por tanto, el computador no puede hacer nada, se resuelve de la
siguiente forma: parte de la memoria principal se constru"e con pastillas del tipo
8+:, como se puede apreciar en el siguiente esquema:













Figura 7: #onformacin de la memoria principal
Fuente: http://www.iearo'otics.com/proyectos/comunica/#omunica8archivos/imagen:.png

En estas pastillas se registran unos programas que est!n siempre disponibles, "a
que las pastillas 8+: conservan siempre todo su contenido. En general, la zona
8+: ocupa las direcciones menores o las ma"ores. -uando arrancamos el
computador, la se1al R..T carga la direccin de esta zona de memoria en el
contador del programa, de forma que se empieza a eecutar el programa
almacenado en esta posicin. Los programas que se suelen incluir en esta zona
de memoria son los siguientes:
a, Pro7rama de te"t, que lleva a cabo una prueba del comportamiento del
computador.
b, Pro7rama /ar7adorA que puede cargar otros programas residentes en
disco o en disquete.

La memoria BIOS del %- es una memoria 8+: que tiene varias funciones.
)irve para arrancar el %-, por lo que inclu"e un programa de test, que
comprueba el funcionamiento del procesador " de la memoria principal, " un
programa cargador, que carga programas desde disquete o disco duro. Adem!s,
tiene una serie de programas que llevan a cabo tareas de bao nivel relacionadas
con la entrada.salida.

1.C PROCESO DE ARRAN<UE DEL PC

Figura 8: 0roceso de arran3ue
Fuente: http://apuntesacademia.'logspot.com/455;8:48:*8archive.html

Encendido POST Carga BIOS
Lectura
CMOS
Carga
MBR
Sector de arranque
Particin activa
Carga
SO
Aona
8+:
(nidad de memoria
-eldas
&ireccin
B
6.B6@
5.BCD.EFE
(nidad de memoria
-eldas
&ireccin
B

5.BCD.EFE
Aona
8+:
5.BCG.E6G
10
1.D BIOS( CONCEPTOS Y CONFI-URACION


Figura 9: $a <I!
Fuente: https://'elenus.unirioja.es/=alorti>/imagenes/chip8'ios.jpg

El BIOS *<asic Input !utput ystem $ )istema ?!sico de Entrada )alida, es un
programa que se encuentra grabado en un chip de la placa base, concretamente
en una memoria de tipo 8+: *Read"!nly /emory,. Este programa es el que se
encarga de comprobar el hardware instalado en el sistema, eecutar un test
inicial de arranque, inicializar circuitos, manipular perif0ricos " dispositivos a bao
nivel " cargar el sistema de arranque que permite iniciar el sistema operativo. En
resumen, es lo que permite que el ordenador arranque correctamente en primera
instancia.

#nicialmente era mu" complicado modificar la informacin del ?#+) en el ROM,
pero ho" en da la ma"ora de los ?#+) est!n almacenados en una memoria flash
capaz de ser reescrita, esto es lo que permite que se pueda actualizar. El ?#+)
se apo"a en otra memoria, llamada CMOS porque se constru"e con esa
tecnologa, en ella carga " almacena los valores que necesita " que son
susceptibles de ser modificados *cantidad de memoria instalada, numero de
discos duros, fecha " hora, etc.,. A pesar de que apaguemos el ordenador, los
valores de la memoria de ?#+) se mantienen intactos, Hcmo es posibleI, pues
gracias a una pila que la alimenta. %uesto que el consumo es mu" bao " se
recarga al encender el ordenador, la pila puede durar varios a1os.

-uando ha" problemas con la pila, los valores de dicha memoria tienden a
perderse, " es cuando pueden surgir problemas en el arranque del tipo: p0rdida
de fecha " hora, necesidad de reconfigurar dispositivos en cada arranque, "
otros. En caso de problemas sustituir la pila es trivial, basta con comprar una de
iguales caractersticas, retirar la viea " colocar la nueva en su lugar.

En condiciones normales no es necesario acceder al ?#+) "a que al instalar un
dispositivo, siempre que ha"amos tenido la precaucin de asegurarnos que es
compatible o aceptable por nuestra placa base, 0ste es reconocido
inmediatamente " configurado por ?#+) para el arranque. <o obstante, ha"
ocasiones en las que se hace necesario acceder a su configuracin, veremos
cmo hacerlo " algunos eemplos.

11
1.E ACCESO Y MANIPULACI?N DEL BIOS(
%ara acceder al programa de configuracin del ?#+), generalmente llamado
#/! etup, tendremos que hacerlo pulsando un botn durante el inicio del
arranque del ordenador. 4eneralmente suele ser la tecla S$r aunque esto vara
seg3n los tipos de placa " en port!tiles. +tras teclas empleadas son: F1, E"/, o
incluso una combinacin, para saberlo con e2actitud bastar! con una consulta al
manual de su placa base o bien prestando atencin a la primera pantalla del
arranque, "a que suele figurar en la parte inferior un mensae similar a este:

FFPre"" DEL to e!ter Set$FF
El aspecto general del ?#+) depender! de qu0 tipo en concreto tenga en su
placa, las m!s comunes son: AwardA P5oe!iG *se han unido, " AMI. ?astante
similares pero no iguales. El programa del ?#+) suele estar en un perfecto ingl0s
" adem!s aparecen t0rminos que no son realmente sencillos, si no sabe lo que
est! tocando /o!"$%te e% ma!$a% o a $! e"e/ia%i"ta, de lo contrario se
encontrar! con problemas.

Aunque tengan nombres diferentes, e2isten algunos apartados comunes a todos
los tipos de ?#+).

(na clasificacin puede ser:
5. -onfiguracin b!sica de par!metros / )tandard -:+) )etup.
6. +pciones de ?#+) / ?#+) 'eatures, Advanced )etup.
@. -onfiguracin avanzada " chipset / -hipset features.
C. %assword, perif0ricos, discos duros, etc.
E. +tras utilidades.

?ao el 1er $!to se puede encontrar la configuracin de la fecha " hora, los
discos duros conectados *#&E, " la memoria detectada, entre otras cosas.

En el $!to )H e2isten muchos par!metros modificables, suelen aparecer:
cach0, secuencia de arranque *<oot se3uence,, intercambio de disqueteras, etc.

En el $!to * podemos encontrar par!metros relativos a las caractersticas del
chipset, memoria 8A:, buses " controladores.

?ao el $!to 0 hemos reunido una serie de opciones que suelen estar
distribuidas, gracias a ellas podemos insertar una contrase1a de acceso al
programa del ?#+), modificar par!metros relativos a los perif0ricos integrados,
control de la administracin de energa, control de la frecuencia " el voltae, etc.

J finalmente en el $!to ; reunimos las opciones que nos permiten guardar los
cambios efectuados, descartarlos, cargar valores por defecto, etc.

En la parte inferior de la interfaz del programa podremos ver el inventario de
teclas necesarias para navegar entre las opciones " modificarlas, es importante
leerlo " tenerlo en cuenta.

Adem!s es importante aclarar que dependiendo del tipo de placa base o del
modelo la presentacin del setup puede variar.
12


Figura 10: Imagen de la interfa> m?s com@n de <I! A,ward y 0hoenixB
Fuente: http://tp3;5a.vtr'andaancha.net/imagenes/<log55C8Fig54.jpg

Modifi/a/io!e" /om$!e"( e8em%o".
E2isten una serie de par!metros que son susceptibles de ser modificados en
alg3n momento, de hecho en la ma"ora de foros de soporte t0cnico se plantean
esas dudas. Kamos a e2plicar cu!les son " usarlos como eemplo:

1.E.1 Se/$e!/ia de arra!#$e(
Esto le indica al ?#+) a qu0 unidad ha de ir para buscar el arranque del sistema
operativo. La secuencia indica el orden de izquierda a derecha en que se buscar!
en las unidades. Antiguamente el orden sola marcar A C SCSIIotro" lo cual
indicaba que primero que deba mirar en la unidad A *disquetera, "
posteriormente en C *disco duro principal,, gracias a esto se poda arrancar el
ordenador con un disco de arranque antes que el sistema operativo. 7o" en da
esto ha cambiado en muchos casos, cuando se necesita arra!/ar de"de $! CD
*instalacin de sistemas operativos *Lindows =%, Linu2,, ha" que modificar la
secuencia de arranque *a menos que el sistema sea tan nuevo que "a venga de
f!brica, para que inicialmente apunte a la unidad lectora de -&. )upongamos
que la unidad tiene la letra D, el orden podra ser D A C o D C A, por eemplo.

La opcin suele encontrarse en BIOS Feat$re" JJ Boot Se#$e!/e para las
?#+) Award. En algunos casos en vez de integrarse en una sola opcin, esto se
realiza en varias, suelen referirse al orden de arranque de dispositivos " se
llaman: Fir"t Boot De&i/e, Se/o!d Boot De&i/e, T5ird Boot De&i/e " Boot
Ot5er De&i/e. ?asta especificar en cada una cu!l es el dispositivo que arrancar!
en ese orden *'irst M primero, )econd M segundo, 9hird M tercero, +ther M
otro,.
13




Figura 11: ecuencia de arran3ue
Fuente: http://tp3;5a.vtr'andaancha.net/imagenes/<log55C8Fig5*.jpg

1.E.) >CKmo "e i!i/ia e! e"te /a"o $! "i"tema oerati&o '."i/o /omo
e% MSLDOS@
Keamos, en el caso anterior, como se iniciara un sistema operativo como
:)&+).
Al realizar el primer '&#)N al disco duro, se crear! el :?8 del disco, el
cual es un programa que contiene a su vez los datos de las posiciones de
inicio . final de cada particin " el tipo de particin.
-reamos ahora una particin primara. Al formatearla, el :)/&+), crea el
sector de boot de la particin. Es similar al programa anterior del :?8,
e2cepto que este sector de boot tiene OdentroP el nombre de un fichero
que cargar!: el #+.)J). Este nombre es QhardcodedR, es decir, codificado
en el interior de este sector de boot.

5. -uando encendemos el %-, la ?#+) de la maquina lee el cilindro cero,
cabeza cero, sector 5 del disco duro " lo carga en memoria. Es decir,
acaba de leer el :?8.
6. Le cede control para que se eecute.
@. Al eecutarse, el programa QleeR de sus datos internos cual es la particin
activa. (na vez localizada lee el primer sector de dicha particin " lo carga
en memoria.
C. Le cede control para que se eecute.
E. En este momento, en memoria est! el programa correspondiente al sector
de boot de una particin formateada :)/&+). Este programa es
ligeramente diferente al del :?8. En su interior, tiene las instrucciones
para localizar el archivo #+.)J)
G. (na vez localizado, lo carga en memoria.
14
F. Le cede el control para su eecucinS.. " as comienza la carga de un
:)&+): el #+.)J) lee el fichero :)&+).)J), el cual es de par!metros en
los sistemas operativos LTE, LTD, :E. %osteriormente " una vez
eecutadas las tareas b!sicas e instaladas las rutinas del sistema
operativo, carga el interprete de comandos: el Qcommand.comR
D. )i nuestro sistema operativo fuese :)/&+), aqu terminara la carga. )i es
LT=, busca el win.com para iniciar la carga de Lindows.

Lo anterior, no es v!lido para sistemas operativos basados en n3cleo <9 *<9 C,
L6BBB o =%,. %ero es necesario entender lo anterior como punto de referencia,
para poder entender posteriormente " tal " como veremos a continuacin, la
carga de uno de estos sistemas operativos " la posibilidad " funcionamiento del
gestor de inicio de estos sistemas el cual soporta la posibilidad de arrancar hasta
5B sistemas operativos en la misma m!quina.

1.E.* Po"i'%e" ro'%ema" e! e"te i!i/io '."i/o
8ecordemos que el :?8 tiene un doble contenido: un programa " los datos de
las particiones. Al arrancar el %-, " una vez que la ?#+) ha comprobado nuestra
maquina, lo carga en memoria " lo eecuta. Es el primer programa que se
eecuta en la m!quina al encenderla. %or tanto, es lo m!s simple para OcolarP en
su lugar un virus.

1.1M SECUENCIA DE ARRAN<UE DE 9INDO9S :P
La ?#+), carga el :?8 del disco duro, el cual comienza su eecucin "
determina cual es la particin activa.
-arga en memoria el primer sector de la particin activa *sector de boot de la
particin, " le cede control para su eecucin.
El sector de boot, busca en el disco el programa <9L&8 " lo carga en
memoria cedi0ndole control para su eecucin.
El programa <9L&8, busca el archivo boot.ini, " en funcin de su contenido,
muestra un men3 para que seleccionemos el sistema a cargar.
)i tenamos un :)/&+), LT= o :E, previo, nos parecer! tambi0n en
dicho men3 la opcin de su carga.
)i seleccionamos esta 3ltima opcin buscar! en el disco el
archivo bootsect.dos, el cual es el antiguo sector de boot de la
particin del sistema operativo previo. Lo carga en memoria " le
cede control.
Este, a su vez, buscar! en el disco el archivo #+.)J)
correspondiente al :)/&+), o LT=, lo cargar! en
memoria " le ceder! control para iniciar "a el sistema
operativo previo.
)i seleccionamos la entrada correspondiente a un <9 . L6BBB o =%,
buscar! en la propia lnea del boot.ini, tal " como veremos a
continuacin, la particin de instalacin del sistema operativo *de
n3cleo <9, " comenzar! la carga real.


15
Tabla 1.
Titulo: Resumen del arran3ue del computador

Fa"e Oera/iK!
I!i/iador ROM 9est del hardware
-arga del cargador del ).+.
Car7ador de% S.O. -arga en memoria de componentes del ).+.
I!i/ia%i+a/iK! S.O. 9est del sistema de archivos
-reacin de estructuras de datos internas
Arranque de procesos del sistema*demonios,
F$!/io!amie!to !orma%
Fuente: http://www.scri'd.com/doc/()*++/%&I,"-."IT./,"!0.R,TI1!

1.11 MBR 2Ma"ter Boot Re/ord4
El :?8 *:aster ?oot 8ecord, est! ubicado en los primeros E56 b"tes del disco
rgido. Es el encargado de almacenar el cargador de arranque " la tabla de
particiones.

El cargador de arranque es un programa encargado de llevar el n3cleo del
sistema operativo a la memoria principal " cederle el control para 0ste se
eecute.

(n disco duro puede tener hasta C particiones primarias. )i deseamos m!s
particiones debemos sacrificar una particin primaria " crear una particin
e2tendida, dentro de la cual se pueden crear, como m!2imo, C particiones
lgicas.

A/%ara/iK!( no se pueden guardar datos directamente en una particin
e2tendida, sino que, los datos se guardan dentro de las particiones lgicas que
ella alberga.

1.1) HISTORIA DE LOS SISTEMAS OPERATIVOS
La evolucin de los sistemas operativos es paralela a la de las computadoras.

E! %o" 1E0M"(
%rimera generacin de computadoras *tubos al vaco,
Las aplicaciones eran cientficas, matem!ticas " militares.
<o haba sistemas operativos "a que cada programa inclua las
instrucciones para manear los recursos necesarios.
)e programaba en lenguae de m!quina.
Las m!quinas eran operadas por los programadores que reservaban
tiempo de operacin *se perda tiempo,.
El proceso de depuracin era manual *el programador detena el programa
" e2aminaba el estado del -%( " 8A:,.
Los programas se dise1aban pensando en la utilizacin de recursos
primero " la claridad del cdigo despu0s.

E! %a rimera mitad de %o" 1E;M"(
)urgen bibliotecas *libraries, con subrutinas " macros que le permitan a
los programadores manear m!s f!cilmente dispositivos de entrada.salida.
16
Estas bibliotecas son la g0nesis de los sistemas operativos "a que se
fueron haciendo m!s compleas " podan controlar la eecucin de varios
trabaos en secuencia.
E! %a "e7$!da mitad de %o" 1E;M"(
)egunda generacin de computadoras *transistores,
-omienzan a surgir las aplicaciones comerciales.
)urgen los primeros ensambladores *5TEC por la #?:,
)urgen los compiladores " lenguaes de alto nivel, tales como '+98A<
*5TEC,, AL4+L *5TED, " -+?+L *5TET,.
#?: comienza a desarrollar mainframes en masa.
4eneral :otors, en 5TEG, crea lo que se considera el primer sistema
operativo, el 4:/<AA #.+ )"stem, un sistema operativo en lote.
)e contratan operadores que liberan de trabao a los programadores.
)e comienza con la planificacin de trabaos *ob scheduling, que permite
agrupar varios programas que tengan requisitos semeantes " decidir la
forma m!s adecuada de eecutarlos.
E.: -ompilar varios programas en -+?+L
)urgen los lenguaes de control de trabaos *;-L, ;ob -ontrol Language,
para crear libretos que indican los pasos necesarios para eecutar un
trabao.
La diferencia en velocidad entre el -%( " los dispositivos E.) se reduo.
)e cre el concepto de bloques de r0cords *record bloc>s, que permite
agrupar varios r0cords lgicos en uno fsico " disminuir las operaciones
E.).
)e crean memorias intermedias *buffers, para aligerar las operaciones
E.).
9ambi0n se desarrollan m0todos de organizacin de archivos tales como el
acceso inde2ado " el aleatorio.
E! %o" 1E=M"(
9ercera generacin de computadoras *circuitos integrados,
)urgen las minicomputadoras.
La diferencia en velocidad entre el -%( " los dispositivos E.) es todava un
problema.
%ara a"udar se crea la multiprogramacin *multiprogramming, que
permite que varios trabaos compartan la atencin del -%(.
En la multiprogramacin pasiva, el -%( cambia de un trabao al pr2imo
cuando el trabao necesita esperar por un evento e2terno *normalmente
una operacin E.),.
En la multiprogramacin activa, el sistema operativo le otorga a cada
trabao un pedazo de tiempo. -uando e2pira el tiempo, se interrumpe el
trabao moment!neamente " se contin3a con el pr2imo trabao.
La multiprogramacin requiri la optimizacin de m0todos de planificacin
de trabaos *ob scheduling, " de administracin de la memoria.
La idea de otorgar pedazos de tiempo a los trabaos " de atender varios
trabaos simult!neamente evolucion hacia el time sharing *tiempo
compartido, " las multitareas en los sistemas interactivos.
E! %o" 1ECM"(
)e modifican algunos sistemas operativos en lote para que apo"en el
concepto de tiempo compartido " permitan interactividad con varios
usuarios a la vez.
)urgen los primeros sistemas operativos puramente interactivos, tales
como (<#= a principios de los 5TFBs.
17
(<#= es multiusuarios " multitareas *multitas>ing,.
)e desarroll la memoria virtual, lo cual permita que el -%( atendiera
m!s programas utilizando parte de la memoria secundaria como memoria
primaria.
)e crean los primeros sistemas administradores de bases de datos.
A mediados de los 5TFBs surgen las primeras computadoras personales
*Apple, 9and".8adio )hac>, -ommodore,.
En esta d0cada se crean las primeras supercomputadoras.
)urgen lenguaes de alto nivel tales como %ascal " -.
E! %o" 1EDM"(
&isminu"en dram!ticamente los costos de los componentes de las
computadoras.
Las computadoras personales se vuelven m!s comunes.
)urgen lenguaes orientados a obetos tales como -UU.
:eora la infraestructura de comunicacin de datos " surgen las redes de
cobertura local *LA<, Local Area <etwor>,.
)urgen sistemas operativos " lenguaes de programacin que apo"an el
multiprocesamiento *tener m!s de un procesador,.
)urgen los sistemas operativos de redes " sistemas distribuidos.
)istemas distribuidos $ el usuario trabaa con un grupo *cluster, de
computadoras conectada en red como si fuera una sola.
E! %o" 1EEM"(
)e popularizan las computadoras personales debido a las aplicaciones "
sistemas operativos con 4(#s.
)urge el Lorld Lide Leb " las aplicaciones de multimedios.
Los sistemas operativos en las computadoras personales se crean
pensando en la conectividad con redes.
La seguridad en los sistemas se convierte en una prioridad.
E! %o" )MMM"(
)e crean sistemas operativos que apo"an procesadores con n3cleos
m3ltiples *multi/core processors,.
)e desarrolla el concepto de virtualizacin que permite particionar una
computadora en varias m!quinas virtuales, cada una de ellas con su
propio sistema operativo " aplicaciones.
Las aplicaciones multimedios que eecutan en el Leb se vuelven comunes.
)e habla de la tecnologa ubicua *en todo lugar en todo momento, "a que
dispositivos de uso com3n *celulares, %&As, etc., contienen computadoras
que requieren sistemas operativos empotrados.


18
Tabla 2.
Titulo: .volucin de los sistemas operativos

S.O ANO AUTOR -ESTION DE
PROCESOS
AR<UITECTURA
Atlas EB /GB (niversit" of
:anchester
Lotes :onoltico
9he (niversidad de
Eindhoven
Lotes :odular
8-CBBB ?rinch 7ansen de
8egenecentralen
).+. -ompleto :odular
)olo ?rinch 7ansen de
8egenecentralen
:ultiprogramado :odular
-9)) :#9 :ultiprogramado
.
tiempo
compartido
:onoltico
:ultics :#9 :ultiprogramado
.
tiempo
compartido
:odular
(ni2 5TGT 8itchie.9hompson :ultiprogramado
.
tiempo
compartido
:onoltico
)prite 5TDC Lotes :onoltico
:erlin 5TDC :ultiprogramado :odular
Lindows
<9
5TDE :icrosoft :ultiprogramado :odular
:atch 5TDG &arpa :ultiprogramado :onoltico
Amoeba 5TTC &istribuido :icro>ernel
Lindows
TE.TD
5TTE.TD :icrosoft :ultiprogramado :onoltico
-o"ote 5TTG 9rinit" -ollege
&ublin
&istribuido :odular
E2o>ernel :icroV>ernel :onoltico
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf

A%7$!a" te!de!/ia" e! %o" "i"tema" oerati&o" a/t$a%e" "o! %a"
"i7$ie!te"(
El uso de hebras *threads,. (na hebra es una porcin de un proceso que
puede ser eecutada independientemente de las otras porciones. (n
proceso puede crear varias hebras " 0stas pueden ser eecutadas por los
n3cleos de un -%( multi/core
La redefinicin del >ernel para que ocupe menos espacio en 8A:.
+riginalmente, los sistemas operativos eran monolticos " todos los
componentes se cargaban a 8A:. Actualmente, slo el >ernel permanece
en 8A: " 0ste carga los componentes que estime necesario
El dise1o " programacin orientada a obetos es usado para modularizar el
sistema operativo " manear su compleidad. Esto permite modificar
piezas del sistema operativo sin afectar la integridad del resto del sistema
19

1.1* TIPOS DE SISTEMAS OPERATIVOS
Los sistemas operativos se categorizan de acuerdo al tiempo de respuesta " a
cmo los datos entran al sistema
Los tipos principales de sistemas operativos son:
)istemas en lote
)istemas interactivos
)istemas en tiempo real

1.1*.1 Si"tema" e! %ote
Los "i"tema" e! %ote *'atch systems, se encontraban en las mainframes
originales
Estos sistemas obtenan los datos e instrucciones de taretas perforadas o
cintas que definan trabaos
(n trabao *ob, es un conunto de tareas que se eecutan sin
intervencin humana
Los sistemas en lote se medan por su rendimiento
El rendimiento *throughput, es la cantidad de trabaos completados
en una cantidad dada de tiempo *normalmente horas,

1.1*.) Si"tema" i!tera/ti&o"
Los "i"tema" i!tera/ti&o" *interactive systems, son los m!s comunes
actualmente " se encuentran en todo tipo de computadoras.
En estos sistemas los usuarios interact3an con el sistema operativo mediante
interfaces de comandos
El tiempo de respuesta se mide en fracciones de segundos
Los sistemas interactivos permiten que varios usuarios " procesos compartan
los recursos mediante la t0cnica de tiempo compartido *time sharing,
La ma"ora de los sistemas interactivos son, por lo tanto, multiusuarios "
multitareas *multitas>ing,
En los sistemas interactivos se pueden someter trabaos que se eecutan en
lote mediante el uso de libretos
(n libreto *script, es un archivo de te2to que contiene un conunto
de comandos del sistema operativo

1.1*.* Si"tema" de tiemo rea%
Los "i"tema" de tiemo rea% *real"time systems, son usados en ambientes
especializados donde el tiempo de respuesta es crtico para la toma de
decisiones.
Estos sistemas se encuentran en las computadoras de los transbordadores
espaciales, en sistemas de control de tr!fico a0reo, en equipo m0dico
sofisticado, robots industriales, en sistemas distribucin de electricidad " en
sistemas de conmutacin telefnica, entre otros
En los sistemas de tiempo real el tiempo de respuesta es crtico
$ 5BBW responsivo, 5BBW del tiempo
Estos sistemas est!n presentes en computadoras que poseen sensores que
detectan eventos a los que se debe responder dentro de un plazo de tiempo
definido *el deadline,
7a" dos tipos de sistemas de tiempo real:
20
Si"tema" e"tri/to" *hard real/time s"stems, $ el sistema se cae si no se
responde inmediatamente
%or eemplo, marcapasos, e2pulsin de bolsas de aire *air 'ags, en los
autos, control de vuelo
Si"tema" f%eGi'%e" *soft real/time s"stems, $ el sistema sufre una
degradacin en su desempe1o si no se responde en el deadline pero no se
cae: %or eemplo, lavadoras, c!maras de vdeo
+tros tipos de sistemas que tambi0n se reconocen son:
Los "i"tema" emotrado" *em'edded systems, se colocan en
computadoras dise1adas para desempe1ar unas pocas funciones definidas,
com3nmente con restricciones de tiempo real
Es posible convertir un sistema operativo de propsito general en un
sistema empotrado
Las computadoras " sistemas empotrados se colocan en productos a
los cuales se les quiere a1adir capacidades de procesamiento
)istemas tales como los de los motores " frenos de
automviles, marcapasos " elevadores son sistemas
empotrados que tambi0n son de tiempo real
)istemas para equipos que tocan m3sica, %&As " consolas de
uegos de vdeo son sistemas empotrados que no son de
tiempo real
Los "i"tema" 5,'rido" *h"brid s"stems, son una combinacin de
sistemas en lote e interactivos
Estos sistemas permiten interactividad con los usuarios pero
eecutan trabaos en lote cuando no ha" muchos usuarios que
atender
)e encuentran en mainframes modernos

1.1*.0 A%7$!o" "i"tema" oerati&o" /omer/ia%e"
Lindows. &istintos tipos:
%ara servidores: <9 )erver, 6BBB )erver, )erver 6BB@, =%
profesional
%ara clientes o dom0sticos: 6BBB, =% 7ome, Kista 7ome
%ara equipos especiales *%&ARs, mviles, etc.,: -E, :obile
(<#=. &istintas versiones " distribuciones:
(ni2 *)(<,
Linu2 *4ratis,
Ai2 *#?:,

1.10 SISTEMAS OPERATIVOS POR SERVICIOS
(na de las clasificaciones m!s difundidas de los sistemas operativos se resume
en la siguiente figura:

21

Figura 12: istemas operativos por servicios
Fuente: http://www.dspace.espol.edu.ec/'itstream/:4D+C*;)(/:+:*/*/4;C;.pdf

1.1; PERSPECTIVAS DE UN SISTEMA OPERATIVO
A la hora de profundizar un poco m!s en este concepto de sistema operativo, se
puede enfocar el sistema operativo de dos formas:
El sistema operativo como un maneador de recursos
El sistema operativo como una m!quina ampliada

1.1= EL SISTEMA OPERATIVO COMO MANEOADOR DE RECURSOS
-uando vemos el sistema operativo como un maneador de recursos, estamos
pensando en las tareas " funcionalidad tpica que ofrece. -omo veremos en
seguida, entre las funciones del sistema operativo est! el gestionar los recursos
del ordenador: la memoria, los ficheros, los puertos de entrada.salida, etc.

1.1C EL SISTEMA OPERATIVO COMO MP<UINA AMPLIADA
La otra forma de ver un sistema operativo es como una m!quina ampliada o
m!quina virtual. El sistema operativo hace de primera capa de software por
encima del hardware. El resto del software obtiene las mismas funciones " de la
misma forma, con independencia del hardware sub"acente. -omo eemplo, no
importa que la m!quina sea un servidor )un o 7%, un %- &ell o -ompaq. )i
eecutan, por eemplo, el sistema operativo L#<(= en alguna de sus
distribuciones, el resto de programas Qver!nR lo mismo como forma de interaccin
con los recursos, con independencia de cu!l de las m!quinas citadas est0
eecutando el L#<(=. Es como si hubi0semos creado un hardware nuevo que se
programa siempre igual.

22

Figura 13: /odelo de m?3uina virtual
Fuente: http://'logs.utpl.edu.ec/sistemasoperativos/files/455(/5D/capitulo"ii8so:.pdf

1.1C.1 Ve!ta8a" Q de"&e!ta8a" de %a" m.#$i!a" &irt$a%e"

Tabla 3.
Titulo: 1entajas y desventajas de las m?3uinas virtuales

Ve!ta8a" De"&e!ta8a"
El concepto de m!quina virtual
provee proteccin total de los
recursos del sistema "a que cada
m!quina virtual est! aislada de
las dem!s m!quinas virtuales
<o permite comparticin directa
de los recursos
(na m!quina virtual es una
herramienta perfecta para el
desarrollo e investigacin de
sistemas operativos por ser que
el desarrollo se hace en una
m!quina virtual en vez de una
m!quina fsica
El concepto de m!quina virtual es
difcil de implementar debido al
esfuerzo requerido para proveer
una copia e2acta de la m!quina
Fuente: ,utor

Be!efi/io".L El concepto de maquina virtual presenta varias ventaas. +bserve
que, en este tipo de entornos, e2iste una proteccin completa de los diversos
recursos del sistema. -ada m!quina virtual est! completamente aislada de las
dem!s, por lo que no e2iste problema de proteccin. )in embargo no es posible
la comparticin directa de recursos. )e han implementado dos m0todos para
permitir dicho comportamiento. El primero es posible compartir un minidisco "
por tanto compartir los archivos. En segundo lugar es posible definir una red de
maquinas virtuales, pudiendo cada una de ellas enviar informacin a trav0s de
una red de comunicaciones virtuales.

23

1.1D EL SISTEMA OPERATIVO USADO CON EL LEN-UAOE DE
?RDENES
?!sicamente podemos dividir a los usuarios de los servicios de los sistemas
operativos en dos amplias clases: usuarios del lenguae de rdenes " usuarios de
las llamadas al sistema.

#nformalmente, los usuarios del lenguaje de rdenes son aquellos que obtienen
los servicios del sistema operativo mediante rdenes, "a sean tecleadas en el
terminal o insertadas en un archivo de procesamiento *llamados scripts o batch,.
Estos lenguaes de rdenes suelen ser especficos del sistema, aunque, en
general, las funciones suelen ser parecidas en todos ellos. Algunas de las clases
funcionales tpicas de las rdenes del sistema operativo son: las relacionadas con
la cone2in " descone2in, con la activacin " control de programas, con la
gestin de archivos, las que muestran informacin de estado, las que permiten la
comunicacin entre los usuarios " las relacionadas con la gestin del sistema.

Los usuarios de las llamadas al sistema invocan los servicios del sistema
operativo mediante llamadas al sistema en tiempo de eecucin. Estos usuarios,
conocidos como programadores de sistemas " aplicaciones, invocan a las
llamadas al sistema desde sus programas. Adem!s de proporcionar la ma"ora
de la funcionalidad accesible a los usuarios del lenguae de rdenes, las llamadas
al sistema suelen permitir un ma"or control sobre las operaciones del sistema "
un acceso m!s directo a las facilidades del hardware, especialmente a las de
entrada.salidaX por este motivo, las llamadas al sistema representan un
superconunto de las funciones accesibles a nivel de orden.

E8em%o: la orden dar formato a un disco
Esta orden es captada por el int0rprete de rdenes *shell,, que es un
programa independiente del sistema operativo.
El int0rprete se encarga de traducir o descomponer la orden en llamadas al
sistema, de forma que se realicen las operaciones asociadas a la eecucin de
la orden.
(na vez eecutada la orden, el int0rprete visualiza el indicador de peticin de
entrada *<<promtYY, a la espera de que el usuario proporcione una orden
nueva.

1.1E DISENO E IMPLEMENTACI?N DEL SISTEMA OPERATIVO
Los problemas a los que nos enfrentamos al dise1ar e implementar un sistema
operativo son:
O'8eti&o" de% di"eRo.L el primer problema es la definicin concreta de
los obetivos " especificaciones, este se puede dividir en dos grupos
b!sicos: obetivos del usuario " obetivos del sistema.
Me/a!i"mo" Q o%,ti/a".L Es importante separar las polticas de los
mecanismos. Los mecanismos determinan como hacer algoX las polticas
determinan que hacer. El temporizador en un mecanismo para asegurar la
proteccin de la -%(, pero la decisin de cu!les deben ser los datos de
temporizacin para un usuario concreto es una decisin de polticas.
Im%eme!ta/iK!.L (na vez que se ha dise1ado un sistema operativo
debe implementarse. 9radicionalmente los sistemas operativos tenan que
24
escribirse en lenguaes ensambladores. )in embargo ho" se escriben en
lenguaes de alto nivel como - o -UU.

1.)M ESTRUCTURA DEL SISTEMA OPERATIVO
El sistema operativo se divide en capas, cada una construida sobre las capas
inferiores
La capa m!s baa *capa B, es el hardware
La capa m!s alta *capa <, es la interface con el usuario
:odularidad

Las capas usan funciones " servicios de las capas inferiores.


Figura 14: #apas de un sistema operativo
Fuente: http://'logs.utpl.edu.ec/sistemasoperativos/files/455(/5D/capitulo"ii8so:.pdf


Tabla 4.
Titulo: .structura de capas del sistema operativo

<ivel E %rogramas de usuario
<ivel C Almacenamientos intermedios de e.s
<ivel @ :aneador de dispositivo de la consola del operador
<ivel 6 :aneo de la memoria
<ivel 5 %lanificacin del -%(
<ivel B 7ardware
Fuente: http://'logs.utpl.edu.ec/sistemasoperativos/files/455(/5D/capitulo"ii8so:.pdf




25










UNIDAD II

PROCESOS Y MULTITAREA


).1 INTRODUCCI?N A LOS PROCESOS
El concepto central de cualquier sistema operativo es el de ro/e"o: una
abstraccin de un programa en eecucin tambi0n llamada tarea.

El usuario pide eecutar programas o segmentos de programas al computador
para eecucin, solicitando de esta manera acceso al procesador " recursos del
computador. :ientras que esto es m!s palpable en computadores grandes "
medianos, tambi0n puede hallarse en computadores peque1os. )i el computador
fuera a eecutar un programa a la vez hasta su terminacin, el resto de los
programas tendran que aguardar ociosamente. %ara finalizar todos los
programas en un tiempo razonable, el sistema operativo debe organizar las
operaciones sobre el hardware de una manera eficiente.

9odas las computadoras modernas pueden realizar varias tareas al mismo
tiempo. En estos sistemas de multiprogramacin la -%( debe cambiar de un
programa a otro, eecutando cada uno en decenas o cientos de milisegundos.
%ero en cualquier instante de tiempo la -%( puede estar eecutando solo un
programa.

).) PROCESOS
9odo el software eecutable en la computadora, que con frecuencia inclu"e al
sistema operativo, se organiza en varios procesos secuenciales. (n proceso es
b!sicamente un programa eecutante donde intervienen los valores corrientes del
contador de programa, registros " variables.

<o ha" un acuerdo universal sobre una definicin de proceso, pero s algunas
definiciones aceptadas
(n programa que se est! eecutando.
(na actividad asincrnica.
El em%a+amie!to de% /o!tro% de un procedimiento que est! siendo
eecutado.
Aquello que se manifiesta por la e2istencia en el sistema operativo de un
'%o#$e de /o!tro% de ro/e"o.
Aquella entidad a la cual son asignados los procesadores.
26
La unidad de"a/5a'%e.

).* RELACIONES ENTRE PROCESOS
E2isten dos relaciones fundamentales entre los procesos concurrentes:
-ompetencia
-ooperacin

La cooperacin es habitual entre los procesos creados como resultado de una
divisin e2plcita en tareas. Los procesos cooperativos intercambian datos "
se1ales de sincronizacin necesarias para orquestar su progreso colectivo.

Los procesos cooperativos comparten tpicamente algunos recursos " atributos,
adem!s de interactuar unos con otros.

-on frecuencia se agrupan en lo que se denomina una familia de procesos.
Aunque dentro de una familia son posibles relaciones compleas, la m!s
frecuentemente soportada por los sistemas operativos es la relacin padre/hio.
Los procesos hios heredan generalmente los atributos de sus padres en el
momento de la creacin del proceso, " tambi0n pueden heredar o compartir
recursos con sus padres " hermanos.

).0 LOS PROCESOS DESDE LA PERSPECTIVA DEL PRO-RAMADOR
DE SISTEMAS
Los programadores de sistemas tienen que tratar frecuentemente con procesos
de forma e2plcita. El sistema operativo, o en ocasiones un lenguae de
implementacin de sistemas, les proporciona facilidades para definir los confines
de un proceso, sus atributos, la naturaleza de su residencia en memoria, etc.

).; EOEMPLO DE MULTITAREA
)upongamos un sistema simplificado de adquisicin de datos. )e supone que
supervisa continuamente un cierto proceso fsico, para registrar su
comportamiento, " para identificar e informar sobre cambios significativos a un
operador, o quiz!s a un robot, el cual puede efectuar alguna accin adicional.
Esos cambios pueden ser ciertas desviaciones estadsticamente significativas de
valores medidos de las variables del proceso con respecto a rangos esperados o
deseables.

&esde la perspectiva del programador del sistema, el programa en cuestin debe
recoger los datos de entrada desde un sensor e2terno, digamos, por medio de un
conversor A.&, debe archivarlo en disco, efectuar alguna operacin estadstica
para identificar cambios significativos con respecto a la muestra anterior e
informar de ellos mediante, digamos, su impresin o el envo de un mensae a un
robot que lo espera. )upongamos que esta secuencia de actividades se efect3a
repetidamente durante el tiempo de vida del sistema. Aunque la descripcin est!
bastante simplificada, este eemplo tipifica la naturaleza de las operaciones que
aparecen en los sistemas de adquisicin de datos.

27
&ado que, al parecer, las actividades listadas requieren procesamiento
secuencial, el m0todo m!s sencillo es escribir un 3nico programa para llevarlas a
cabo una tras otra.

%rograma unaVtareaX
...
begin
while true do
begin
recogerVadX
guardarVdX
calcularVeX
imprimirViX
end
end.

).= SINCRONISACI?N ENTRE PROCESOS
Keamos el siguiente programa:
%rogram.module multitareaX
S
%rocess recogerX
?egin
Lhile true do
?egin
EsperarVse1alVde*guardar, calcular,X
8ecogerVadX
EnviarVse1alVa*guardar, calcular,
EndX
End
%rocess guardarX
?egin
Lhile true do
?egin
EsperarVse1alVde*recoger,XZ
4uardarVdX
EnviarVse1alVa*recoger,
EndX
EndX
%rocess calcularX
?egin
Lhile true do
?egin
EsperarVse1alVde*recoger, imprimir,X
calcularVeX
EnviarVse1alVa*recoger, imprimir,
End
End
%rocess #mprimirX
?egin
Lhile true do
?egin
28
EsperarVse1alVde*calcular,X
#mprimirV#X
EnviarVse1alVa*calcular,
EndX
EndX
[proceso padreZ
?egin
#nicializarVentornoX
EnviarVse1alVa*recoger, calcular,X[para la primera pasadaZ
initiate recoger, guardar, calcular, imprimir
end[multitareaZ

%rocess #mprimirX
?egin
Lhile true do
?egin
EsperarVse1alVde*calcular,X
#mprimirV#X
EnviarVse1alVa*calcular,
End
EndX

Aqu se presenta el concepto de envo " recepcin de se1ales. )u obetivo es
proporcionar la sincronizacin necesaria para forzar el cumplimiento de las
relaciones de precedencia indicadas dentro de nuestro conunto de procesos
cooperativos. Las se1ales son uno de los mecanismos de sincronizacin entre
procesos que, como grupo, se encuentran entre los servicios m!s importantes
proporcionados por los sistemas operativos multitarea.

)upongamos un proceso que espera uno m!s se1ales de suspendido por el
sistema operativo, es decir, no es elegible para eecucin hasta que le lleguen
todas las se1ales requeridas. )e supone que una se1al llega despu0s de ser
enviada por otro proceso. El envo de una se1al no ocasiona la suspensin del
proceso emisor.

(na observacin importante es que con el problema dividido en cuatro procesos,
cada proceso eecuta su propio fluo secuencial de instrucciones, m!s o menos
independiente. La multiple2acin es llevada a cabo por el sistema operativo de
modo en gran medida transparente a los propios procesos concurrentes. (n
proceso individual no tiene modo de conocer el estado o el progreso de cualquier
otro proceso, a menos que sea especficamente informado de ello por una se1al.
El programador de sistemas controla este aspecto de la sincronizacin entre
procesos definiendo la identidad " el significado de las se1ales intercambiadas
entre los procesos cooperativos.

El proceso padre, al cual el sistema operativo transfiere control cuando se
arranca el sistema, tambi0n est! a cargo de la inicializacin del entorno " de la
activacin de los cuatro procesos hios. En otras palabras, el proceso padre crea
el entorno en tiempo de eecucin para la eecucin de la aplicacin. La
inicializacin de un proceso implica crearlo " hacerlo conocido al sistema
operativo.
29
La sincronizacin entre procesos concurrentes cooperativos es esencial para
preservar las relaciones de precedencia " para evitar los problemas de
temporizacin relacionados con la concurrencia. Los procesos cooperativos deben
sincronizarse unos con otros cuando va a utilizar recursos compartidos, tales
como estructuras de datos comunes o dispositivos fsicos. Los sistemas
operativos multitarea e incluso algunos lenguaes de programacin proporcionan
una coleccin de primitivas de sincronizacin entre procesos.

7a" tres formas esenciales de interaccin e2plcita entre procesos:
Si!/ro!i+a/iK! e!tre ro/e"o"( (n conunto de protocolos "
mecanismos utilizados para preservar la integridad " consistencia del
sistema cuando varios procesos concurrentes comparten recursos que son
reutilizables en serie. (n recurso reutilizable en serie solo puede ser
utilizado por un proceso cada vez. )u estado, " posiblemente su
operacin, pueden resultar corrompidos si son manipulados
concurrentemente " sin sincronizacin por m!s de un proceso. .jemplo:
variables compartidas para lectura.escritura " dispositivos tales como las
impresoras.
SeRa%i+a/iK! e!tre ro/e"o"( El intercambio de se1ales de
temporizacin entre procesos utilizado para coordinar su progreso
colectivo.
Com$!i/a/iK! e!tre ro/e"o"( Los procesos cooperativos concurrentes
deben comunicarse con propsitos tales como intercambiar datos,
transmitir informacin sobre los progresos respectivos " acumular
resultados colectivos. (na memoria compartida, accesible a todos los
participantes, proporciona un medio sencillo " habitual de comunicacin
entre procesos. %ara evitar errores de temporizacin, los procesos
concurrentes deben sincronizar sus accesos a la memoria compartida.

Ne/e"idad de "i!/ro!i+a/iK! e!tre ro/e"o"
El uso de variables compartidas es una forma sencilla " habitual de comunicacin
entre procesos cooperativos.
-uando un conunto de procesos tiene acceso a un espacio com3n de
direcciones, puede utilizar variables compartidas para una serie de cometidos,
por eemplo, indicadores de se1alizacin " para acumulacin de resultados
colectivos.

E8em%o: -onsideremos dos procesos cooperativos que pueden e2istir en un
gestor de terminal. )upongamos que los procesos 9E-LA&+ " %A<9ALLA tienen a
su cargo aceptar entradas del teclado " visualizarlas en pantalla
respectivamente. )upongamos que los dos procesos comparten un buffer com3n
en el cual se almacenan los caracteres de entrada para ser visualizados " para
alg3n otro procesamiento subsiguiente. El proceso teclado responde a las
interrupciones de teclado, recibe la entrada " la coloca en el buffer. El proceso
%A<9ALLA hace el eco de los caracteres que ha" en el buffer mostr!ndolos en la
pantalla. )upongamos tambi0n que cada proceso mantiene un puntero privado
para marcar su posicin actual de trabao en el b3fer, " que se utiliza la variable
compartida E-+ para llevar la cuenta del n3mero actual de caracteres en espera
de visualizacin.
9E-LA&+ incrementa la variable E-+ cada vez que se introduce un car!cter
...
eco:Meco U 5

...
" %A<9ALLA decrementa E-+ cada vez que visualiza un car!cter:
eco:Meco / 5

Las situaciones en las que dos o m!s procesos leen o escriben en ciertos datos
compartidos " el resultado final
momento, reciben el nombre de

).C ESTADOS DE UN PROCESO
(n proceso puede variar en
New: cuando el proceso
R$!!i!7: cuando el proceso se
9aiti!7: cuando el proceso
ReadQ: cuando el proceso esta pronto para eecutar, esperando por
Termi!ated: cuando el proceso

&ebido a ello se puede establecer una
" una OLista de ?loqueadosP
La E$ista de $istosF se mantiene en orden prioritario " la
est! desordenada, "a que los procesos se desbloquean en el orden en que tienen
lugar los eventos que est!n esperando.

Al admitirse un trabao en el sistema se crea un proceso equivalente " es
insertado en la 3ltima parte de la
La asignacin de la -%(
O&espachoP, que es eecutado por una entidad del
E-espachadorF.

El O?loqueoP es la 3nica transicin de estado iniciada por el propio proceso d
usuario, puesto que las otras transiciones son iniciadas por entidades aenas al
proceso.

Figura 15: Transiciones entre los distintos estados de un proceso
Fuente: www.monografias.com/tra'ajos*/mono/mono.shtml
Es importante observar que en un momento determinado solo un proceso puede
encontrarse en ejecucin
espera.

" %A<9ALLA decrementa E-+ cada vez que visualiza un car!cter:
Las situaciones en las que dos o m!s procesos leen o escriben en ciertos datos
ompartidos " el resultado final depende de qui0n eecuta qu0 " en qu0
momento, reciben el nombre de /o!di/io!e" de /omete!/ia
ESTADOS DE UN PROCESO
(n proceso puede variar entre E distintos estados:
: cuando el proceso est! siendo creado.
: cuando el proceso se est! eecutando.
: cuando el proceso est! esperando que se cumpla alg3n otro evento.
: cuando el proceso esta pronto para eecutar, esperando por
: cuando el proceso est! terminado.
&ebido a ello se puede establecer una OLista de ListosP para los procesos
OLista de ?loqueadosP para los ObloqueadosP.
se mantiene en orden prioritario " la E$ista
est! desordenada, "a que los procesos se desbloquean en el orden en que tienen
lugar los eventos que est!n esperando.
Al admitirse un trabao en el sistema se crea un proceso equivalente " es
insertado en la 3ltima parte de la E$ista de $istosF.
gnacin de la -%( al primer proceso de la E$ista de $istosF
, que es eecutado por una entidad del sistema
es la 3nica transicin de estado iniciada por el propio proceso d
usuario, puesto que las otras transiciones son iniciadas por entidades aenas al
Transiciones entre los distintos estados de un proceso
www.monografias.com/tra'ajos*/mono/mono.shtml

Es importante observar que en un momento determinado solo un proceso puede
en ejecucin, aunque varios procesos pueden estar
30
" %A<9ALLA decrementa E-+ cada vez que visualiza un car!cter:
Las situaciones en las que dos o m!s procesos leen o escriben en ciertos datos
depende de qui0n eecuta qu0 " en qu0
/o!di/io!e" de /omete!/ia
esperando que se cumpla alg3n otro evento.
: cuando el proceso esta pronto para eecutar, esperando por la -%(.
para los procesos OlistosP
E$ista de <lo3ueadosF
est! desordenada, "a que los procesos se desbloquean en el orden en que tienen
Al admitirse un trabao en el sistema se crea un proceso equivalente " es
E$ista de $istosF se denomina
istema operativo llamada
es la 3nica transicin de estado iniciada por el propio proceso del
usuario, puesto que las otras transiciones son iniciadas por entidades aenas al

Transiciones entre los distintos estados de un proceso
www.monografias.com/tra'ajos*/mono/mono.shtml
Es importante observar que en un momento determinado solo un proceso puede
, aunque varios procesos pueden estar listos o en
31
)e puede observar que ha" cuatro transiciones posibles entre los distintos
estados. Las transiciones 5 " C las lleva a cabo el planificador de procesos, que
forma parte del sistema operativo, sin intervencin alguna de los procesos. La
transicin 5 puede suceder cuando el planificador encuentra al procesador
ocioso, o bien porque considera que el proceso que se encuentra en eecucin ha
dispuesto del procesador durante un tiempo suficiente, con lo cual realizar!
previamente la transicin C para posteriormente llevar a cabo la transicin 5. La
transicin 6 ocurre cuando un proceso descubre que no puede continuar debido a
que demanda alg3n recurso de E.), o bien que el sistema operativo lo bloquea
moment!neamente. -uando el proceso en estado de espera ha finalizado el
evento e2terno que estaba esperando, o bien que el sistema lo desbloquea, se
producir! la transicin @, pasando el proceso nuevamente a estado de listo.

).D LOS PROCESOS DESDE LA PERSPECTIVA DEL SISTEMA
OPERATIVO
).D.1 PBC 2Pro/e"" Co!tro% B%o/T4
La manifestacin de un proceso en un sistema operativo es un E<lo3ue de
#ontrol de 0rocesoF *%-?, con informacin que inclu"e:
Estado actual del proceso.
#dentificacin 3nica del proceso.
%rioridad del proceso.
Apuntadores para localizar la memoria del proceso.
Apuntadores para asignar recursos.
\rea para preservar registros.

-uando el sistema operativo cambia la atencin de la -%( entre los procesos,
utiliza las !reas de preservacin del %-? para mantener la informacin que
necesita para reiniciar el proceso cuando consiga de nuevo la -%(.

Los sistemas que administran los procesos deben poder crear, destruir,
suspender, reanudar, cambiar la prioridad, bloquear, despertar " despachar un
proceso.

La EcreacinF de un proceso significa:
&ar nombre al proceso.
#nsertar un proceso en la lista del sistema de procesos conocidos.
&eterminar la prioridad inicial del proceso.
-rear el bloque de control del proceso.
Asignar los recursos iniciales del proceso.

(n proceso puede Ecrear un nuevo procesoF, en cu"o caso el proceso creador se
denomina Eproceso padreF " el proceso creado Eproceso hijoF " se obtiene una
Eestructura jer?r3uica de procesosF.
La EdestruccinF de un proceso implica:
?orrarlo del sistema.
&evolver sus recursos al sistema.
%urgarlo de todas las listas o tablas del sistema.
?orrar su bloque de control de procesos.

(n proceso EsuspendidoF no puede proseguir hasta que otro proceso lo reanude.
32

8eanudar *reactivar, un proceso implica reiniciarlo en el punto donde fue
suspendido.

La EdestruccinF de un proceso puede o no significar la destruccin de los
procesos hios, seg3n el sistema operativo.

4eneralmente se denomina ETa'la de 0rocesosF al conunto de informacin de
control sobre los distintos procesos.

).E PROCESAMIENTO DE INTERRUPCIONES
(na OinterrupcinP es un evento que altera la secuencia en que el procesador
eecuta las instruccionesX es un hecho generado por el hardware del computador.
-uando ocurre una interrupcin, el sistema operativo:
o +btiene el control.
o )alva el estado del proceso interrumpido, generalmente en su
bloque de control de procesos.
o Analiza la interrupcin.
o 9ransfiere el control a la rutina apropiada para la manipulacin de la
interrupcin.

(na interrupcin puede ser iniciada por un proceso en estado de eecucin o por
un evento que puede o no estar relacionado con un proceso en eecucin.

4eneralmente las i!terr$/io!e" se pueden clasificar por tio" seg3n el
siguiente detalle:
Tabla 5.
Titulo: Tipos de interrupciones

I!terr$/iK! De"/ri/iK!
SVC Llamada al sistema operativo
E!trada I Sa%ida -ambio de estado de un canal o dispositivo
EGter!a Evento e2terno al sistema
De Rei!i/io 8einicio del procesamiento
De Verifi/a/iK! de Pro7rama Errores de procesos
De Verifi/a/iK! de M.#$i!a Errores de hardware
Fuente: http://www.>ator.com/Gardware/G48+.htm

).1M ESTADOS DEL SISTEMA Y LISTAS DE PROCESOS
(n estado de un proceso es slo un componente del estado global del sistema
que inclu"e a todos los procesos " recursos. %ara controlar la evolucin de todos
los procesos, el sistema operativo mantiene listas de %?-s clasificadas por el
estado actual de los procesos aceptados.

En general, e2istir! una lista con los %?-s de todos los procesos en situacin de
preparado " una lista con todos los %?-s en situacin de suspendido. :ediante
estas listas el sistema operativo forma colecciones de procesos en estados
an!logos " ser!n e2aminadas por las rutinas de asignacin de recursos del
sistema operativo.
33

E8em%o: El planificador buscar! el siguiente proceso a eecutar en la lista de los
%?-s de procesos preparados.

El rendimiento del sistema operativo puede meorar ordenando " actualizando
estas listas de la manera m!s conveniente para las rutinas del sistema operativo
que operan con ellas. Las transiciones de estado de un proceso quedar!n
refleadas en el cambio de su %?-s de una lista a otra.


).11 CONMUTACI?N DE PROCESOS
(na transicin entre dos procesos residentes en memoria en un sistema
multitarea se denomina conmutacin de procesos o conmutacin de tareas.
Las principales operaciones implicadas en una conmutacin de procesos est!n
resumidas en la siguiente figura:




Figura 16: .s3uema de conmutacin de recursos
Fuente: http://www.mundointernet.es/I/%/pdf/ponenciaC5.pdf

La figura se interpreta de la siguiente manera:
Estamos en modo usuario con un proceso %
2
eecut!ndose. +curre un
suceso.
%asamos a modo supervisor *eecutamos sistema operativo,.
o 4uarda el estado del proceso interrumpido en su %?- correspondiente
o Actualiza el estado de %
2
*en funcin del suceso que ha"a tenido lugar,
el estado ser! uno u otro, " los datos de planificacin *Algunos
sistemas operativos tienen ciertas consideraciones para re/calcular
estos datos de planificacin para un proceso. %or eemplo, restar
prioridad a procesos largos.
o Atendemos al suceso dependiendo de cada caso *no incluimos esta
operacin en lo que consideramos proceso de conmutacin,
o %lanificamos cu!l va a ser el siguiente proceso a eecutar *que podra
ser mismo de inicio,.
o (na vez elegido el nuevo proceso a eecutar, llam0mosle %
"
, ha" que
restaurar su estado hardware " recuperamos sus atributos gracias a su
%?-.
(na vez elegido el nuevo proceso, realizamos un cambio de modo.
34

La conmutacin de procesos es una operacin considerablemente m!s complea
" costosa que la conmutacin del conte2to de interrupcin " puede ser bastante
complicada en sistemas operativos grandes que disponen de un mantenimiento
preciso de recursos " de sofisticados esquemas de planificacin. &ada su
compleidad " su relativamente alta frecuencia de ocurrencia, la implementacin
de la conmutacin de procesos puede afectar significativamente al rendimiento
de un sistema operativo de multiprogramacin.

Es especialmente importante en sistemas donde el tiempo es un factor crtico
tales como los sistemas en tiempo real. La eficiencia de la conmutacin de
procesos puede ser meorada con a"uda del hardware " una estructura de
software especial conocida como hebra o hilo.

(n esquema hardware habitualmente empleado para acelerar la conmutacin de
procesos es disponer de m3ltiples conuntos estructuralmente id0nticos de
registros del procesador. (n conunto para el sistema operativo " otro para los
procesos de usuario. (n bit dedicado en la 3nica copia de la palabra del estado
del procesador indica el estado actual de operacin supervisor o usuario " el
conunto de registros activos. Este m0todo reduce el gasto software por
conmutacin de modo " la ma"or parte del proceso de almacenamiento del
estado hardware a la eecucin de unas pocas instrucciones de manipulacin de
bits.

)i se dispone de m!s de dos conuntos de registros, se pueden aplicar ahorros
similares a los procesos de usuario hasta alcanzar el n3mero de conuntos de
registros disponibles

).1) PROCESOS Y HEBRAS
En los sistemas operativos tradicionales, el concepto de proceso inclu"e como
caracterstica:
(nidad a la que se le asigna recursos: espacio de direcciones, canales de
entrada.salida, canales de comunicaciones, ficheros, etc.
Los procesos son entidades que son relativamente costosas de crear " manipular
por parte del sistema operativo. En cambio, las hebras comparten los recursos
de los procesos " su manipulacin es mucho menos costosa que la de 0stos. La
principal ventaa de tener varias hebras de eecucin es permitir la eecucin
concurrente de actividades relacionadas dentro de un proceso.

-omo las hebras de un proceso comparten el mismo espacio de direcciones, no
e2iste ning3n tipo de proteccin por parte del sistema operativo ante el hecho de
que una hebra pueda leer o escribir en la pila de otra. )in embargo, esta
proteccin no debera de ser necesaria, "a que mientras que los procesos pueden
pertenecer a varios usuarios, las hebras de un proceso pertenecen a un mismo
usuario, por lo que se asume que estar! dise1ado para colaborar, no para
competir. Esto no significa que e2ista la necesidad de proporcionar mecanismos
para que las hebras de un proceso se puedan sincronizar. La programacin de
procesos multihebra se austa a la programacin concurrente sobre sistemas que
comparten memoria, por lo que suelen usar sem!foros o monitores para
35
sincronizacin, aunque tambi0n e2isten sistemas que incorporan primitivas de
paso de mensaes.



Figura 17: TGR.,- y procesos
Fuente: http://www.ac.uma.es/=sromero/so/#apitulo+.pdf

).1* PLANIFICACI?N DE PROCESOS
En un sistema multiprogramado, m3ltiples procesos son mantenidos en memoria
principal. /ultiprogramacin surgi con la idea de tener alg3n proceso
eecut!ndose en todo momento con la finalidad de ma2imizar el uso del -%(.
Tiempo #ompartido fue concebido con la idea de conmutar o cambiar
continuamente el -%( entre procesos de forma tal que los usuarios puedan
interactuar con sus programas mientras est!n corriendo.

-on multiprogramacin, un proceso eecuta hasta que debe esperar por alg3n
evento. En un sistema simple sin multiprogramacin el -%( estara ocioso.

-uando un proceso entra al sistema es colocado en una cola de trabaos. (na
vez que el proceso se encuentra en memoria principal " est! listo para eecutar,
este es colocado en la cola de procesos listos *readyB. -uando al proceso se le
asigna el -%(, eecuta por un tiempo " eventualmente el proceso terminar!, o
ser! interrumpido o esperar! por la ocurrencia de alg3n evento. -on frecuencia
nos encontraremos con situaciones en las que dos o m!s procesos son
eecutables desde el punto de vista lgico. En estos casos el sistema de
operacin debe decidir cu!l de ellos debe eecutarse primero. La parte del
sistema de operacin que lleva a cabo esta decisin se llama 0lanificador " el
algoritmo que se utiliza se conoce como ,lgoritmo de 0lanificacin.

-on la planificacin de procesos se busca:
4arantizar que cada proceso obtenga una proporcin usta de tiempo de
-%(.
:antener ocupado el -%(.
:inimizar el tiempo de respuesta de los procesos interactivos.
:a2imizar el n3mero de tareas procesadas por hora.


36
).10 TIPOS DE PLANIFICACI?N
La clave de la multiprogramacin est! en la planificacin. &e hecho, son cuatro
las clases de planificacin que pueden entrar en uego normalmente:
lani!icaci"n a largo pla#o( &ecisin de a1adir procesos a la reserva de
procesos a eecutar.
lani!icaci"n a me$io pla#o: &ecisin de a1adir procesos al conunto de
procesos que se encuentran parcial o completamente en memoria.
lani!icaci"n a corto pla#o: &ecisin sobre qu0 proceso disponible ser!
eecutado en el procesador.
lani!icaci"n $e %&': &ecisin sobre qu0 solicitud de E.) pendiente ser!
tratada por un dispositivo de E.) disponible.

El nombre de largo, medio " corto plazo hace referencia a la frecuencia relativa
con la que son eecutadas dichas funciones.

).10.1 P%a!ifi/a/iK! a %ar7o %a+o
Esta planificacin determina cu!les son los programas admitidos en el sistema.
&e este modo se controla el grado de multiprogramacin. (na vez admitido el
programa se convierte en proceso " es a1adido a la cola del planificador a corto
plazo.

La decisin de cu!ndo crear un nuevo proceso viene dada, en general, por el
grado de multiprogramacin. -uantos m!s procesos se crean, menor ser! el
porcentae de tiempo en el que cada proceso puede eecutar simult!neamente.
-on lo cual el planificador a largo plazo puede limitar el grado de
multiprogramacin para ofrecer un buen servicio al conunto de procesos activos.

La decisin de cu!l va a ser el siguiente proceso a admitir puede basarse en un
simple algoritmo primero en llegar primero en ser servido *'-'), o bien se
puede elaborar una poltica m!s elaborada, en funcin del sistema. %or eemplo,
el planificador puede intentar mantener una combinacin de procesos con ma"or
carga de procesador " con ma"or carga de E.).

).10.) P%a!ifi/a/iK! a medio %a+o
Algunos sistemas operativos, como los de tiempo compartido, pueden presentar
un nivel intermedio adicional de planificacin. La idea clave de un planificador a
medio plazo es que en ocasiones puede interesar eliminar procesos de la
memoria " reducir de este modo el grado de multiprogramacin. %osteriormente
se volver! a introducir el proceso en memoria " continuar con su eecucin. )e le
suele denominar com3nmente intercam'io *swapping,. En la figura se muestra
dicho planificador a medio plazo.

Los intercambios de procesos pueden ser necesarios para meorar la mezcla de
procesos.

Figura 18: 0lanificacin y transiciones de estado de los procesos
Fuente: http://'logs.utpl.edu.ec/sistemasoperativos/files/455(/5+/proceso+

).10.* P%a!ifi/a/iK! a /orto
-omo hemos mencionado anteriormente, la planificacin es una funcin
fundamental de los sistemas operativos. -asi todos los recursos de una
computadora se planifican antes de usarse. %or supuesto, el procesador es uno
de los principales recursos de la computadora, de modo que su planificacin es
parte medular en el dise1o de los sistemas operativos.

La eecucin de un proceso consiste en un ciclo de eecucin del procesador "
una espera de E.), " los procesos se alterna
eecucin del proceso se inicia con una r!faga de procesador " a 0sta le sigue
una r!faga de E.), le sigue una r!faga de procesador " una m!s de E.), etc.
'inalmente la 3ltima r!faga de procesador terminar! con una solicitud a
para que conclu"a la eecucin del proceso.

La duracin de estas r!fagas de procesador " de E.) va a determinar el tipo de
carga al sistema que proporciona cada proceso. As por eemplo un programa
limitado por E.), tendr! muchas r!fagas cortas
programa limitado por el procesador tendr! pocas r!fagas de larga duracin de
procesador. La distribucin de estos procesos puede ser mu" importante al
seleccionar un algoritmo de planificacin de corto plazo.

)iempre que el procesador quede inactivo, el sistema operativo debe seleccionar
para su eecucin uno de los procesos de la cola de procesos listos. El proceso de
seleccin es realizado por el

El planificador selecciona uno de los procesos
asigna al procesador.

La cola de procesos listos puede ser implementada de formas diferentes. )in
embargo, conceptualmente todos los procesos de la cola de procesos listos est!n
en fila esperando la oportunidad de eecu

0lanificacin y transiciones de estado de los procesos
http://'logs.utpl.edu.ec/sistemasoperativos/files/455(/5+/proceso+
P%a!ifi/a/iK! a /orto %a+o 2%a!ifi/a/iK! de% ro/e"ador4
-omo hemos mencionado anteriormente, la planificacin es una funcin
fundamental de los sistemas operativos. -asi todos los recursos de una
computadora se planifican antes de usarse. %or supuesto, el procesador es uno
e los principales recursos de la computadora, de modo que su planificacin es
parte medular en el dise1o de los sistemas operativos.
La eecucin de un proceso consiste en un ciclo de eecucin del procesador "
una espera de E.), " los procesos se alternan entre estos dos estados. La
eecucin del proceso se inicia con una r!faga de procesador " a 0sta le sigue
una r!faga de E.), le sigue una r!faga de procesador " una m!s de E.), etc.
'inalmente la 3ltima r!faga de procesador terminar! con una solicitud a
para que conclu"a la eecucin del proceso.
La duracin de estas r!fagas de procesador " de E.) va a determinar el tipo de
carga al sistema que proporciona cada proceso. As por eemplo un programa
limitado por E.), tendr! muchas r!fagas cortas de procesador, mientras que un
programa limitado por el procesador tendr! pocas r!fagas de larga duracin de
procesador. La distribucin de estos procesos puede ser mu" importante al
seleccionar un algoritmo de planificacin de corto plazo.
procesador quede inactivo, el sistema operativo debe seleccionar
para su eecucin uno de los procesos de la cola de procesos listos. El proceso de
seleccin es realizado por el planificador a corto pla>o.
El planificador selecciona uno de los procesos en memoria que est!n listos " se lo
La cola de procesos listos puede ser implementada de formas diferentes. )in
embargo, conceptualmente todos los procesos de la cola de procesos listos est!n
en fila esperando la oportunidad de eecutarse en el procesador.

37

0lanificacin y transiciones de estado de los procesos
http://'logs.utpl.edu.ec/sistemasoperativos/files/455(/5+/proceso+"D55x:C:.jpg
%a+o 2%a!ifi/a/iK! de% ro/e"ador4
-omo hemos mencionado anteriormente, la planificacin es una funcin
fundamental de los sistemas operativos. -asi todos los recursos de una
computadora se planifican antes de usarse. %or supuesto, el procesador es uno
e los principales recursos de la computadora, de modo que su planificacin es
La eecucin de un proceso consiste en un ciclo de eecucin del procesador "
n entre estos dos estados. La
eecucin del proceso se inicia con una r!faga de procesador " a 0sta le sigue
una r!faga de E.), le sigue una r!faga de procesador " una m!s de E.), etc.
'inalmente la 3ltima r!faga de procesador terminar! con una solicitud al sistema
La duracin de estas r!fagas de procesador " de E.) va a determinar el tipo de
carga al sistema que proporciona cada proceso. As por eemplo un programa
de procesador, mientras que un
programa limitado por el procesador tendr! pocas r!fagas de larga duracin de
procesador. La distribucin de estos procesos puede ser mu" importante al
procesador quede inactivo, el sistema operativo debe seleccionar
para su eecucin uno de los procesos de la cola de procesos listos. El proceso de
en memoria que est!n listos " se lo
La cola de procesos listos puede ser implementada de formas diferentes. )in
embargo, conceptualmente todos los procesos de la cola de procesos listos est!n
tarse en el procesador.
38
).1; NIVELES DE PLANIFICACI?N DEL PROCESADOR
)e consideran tres niveles importantes de planificacin, los que se detallan a
continuacin.

).1;.1 P%a!ifi/a/iK! de a%to !i&e%(
9ambi0n se denomina planificacin de trabaos.
&etermina a qu0 trabaos se les va a permitir competir activamente por los
recursos del sistema, lo cual se denomina planificacin de admisin.
).1;.) P%a!ifi/a/iK! de !i&e% i!termedio(
&etermina a qu0 procesos se les puede permitir competir por la -%(.
8esponde a fluctuaciones a corto plazo en la carga del sistema " efect3a
OsuspensionesP " OactivacionesP *OreanudacionesP, de procesos.
&ebe a"udar a alcanzar ciertas metas en el rendimiento total del sistema.
).1;.* P%a!ifi/a/iK! de 'a8o !i&e%(
&etermina a qu0 proceso listo se le asigna la -%( cuando esta queda
disponible " asigna la -%( al mismo, es decir que OdespachaP la -%( al
proceso.
La efect3a el despachador del sistema operativo, el que opera muchas
veces por segundo " reside siempre en el almacenamiento primario.


Figura 19: 9iveles de planificacin
Fuente: http://'logs.utpl.edu.ec/sistemasoperativos/files/455(/5+/image4:.gif

).1= OBOETIVOS DE LA PLANIFICACI?N
Los obetivos de la planificacin del procesador son los siguientes e involucran a
los conceptos detallados seguidamente.
Ser 8$"ta(
39
9odos los procesos son tratados de igual manera.
<ing3n proceso es postergado indefinidamente.
MaGimi+ar %a /aa/idad de e8e/$/iK!(
:a2imizar el n3mero de procesos servidos por unidad de tiempo.
MaGimi+ar e% !1mero de $"$ario" i!tera/ti&o" #$e re/i'a! $!o"
tiemo" de re"$e"ta a/eta'%e"(
En un m!2imo de unos segundos.
Ser rede/i'%e(
(n trabao dado debe eecutarse apro2imadamente en la misma cantidad
de tiempo independientemente de la carga del sistema.
Mi!imi+ar %a "o're/ar7a(
<o suele considerarse un obetivo mu" importante.
E#$i%i'rar e% $"o de re/$r"o"(
'avorecer a los procesos que utilizar!n recursos infrautilizados.
E#$i%i'rar re"$e"ta Q $ti%i+a/iK!(
La meor manera de garantizar buenos tiempos de respuesta es disponer
de los recursos suficientes cuando se necesitan, pero la utilizacin total de
recursos podr! ser pobre.
E&itar %a o"ter7a/iK! i!defi!ida(
)e utiliza la estrategia del OenveecimientoP.
:ientras un proceso espera por un recurso su prioridad debe aumentar,
as la prioridad llegar! a ser tan alta que el proceso recibir! el recurso
esperado.
A"e7$rar %a rioridad(
Los mecanismos de planificacin deben favorecer a los procesos con
prioridades m!s altas.
Dar refere!/ia a %o" ro/e"o" #$e ma!tie!e! re/$r"o" /%a&e"(
(n proceso de baa prioridad podra mantener un recurso clave, que puede
ser requerido por un proceso de m!s alta prioridad.
)i el recurso es no apropiativo, el mecanismo de planificacin debe otorgar
al proceso un tratamiento meor del que le correspondera normalmente,
puesto que es necesario liberar r!pidamente el recurso clave.
Dar me8or tratamie!to a %o" ro/e"o" #$e m$e"tre! $!
U/omortamie!to de"ea'%eV(
(n eemplo de comportamiento deseable es una tasa baa de paginacin.
De7radar"e "$a&eme!te /o! /ar7a" e"ada"(
(n mecanismo de planificacin no debe colapsar con el peso de una
e2igente carga del sistema.
)e debe evitar una carga e2cesiva mediante las siguientes acciones:
o <o permitiendo que se creen nuevos procesos cuando la carga "a es
pesada.
o &ando servicio a la carga m!s pesada al proporcionar un nivel
moderadamente reducido de servicio a todos los procesos.
:uchas de estas metas se encuentran en conflicto entre s, por lo que la
planificacin se convierte en un problema compleo.

).1C PLANIFICACI?N APROPIATIVA VERSUS NO APROPIATIVA
Las disciplinas de planificacin pueden ser Apropiativas o <o Apropiativas.



40
Tabla 6.
Titulo: 0lanificacin ,propiativa 1ersus 9o ,propiativa

Di"/i%i!a De"/ri/iK!
UAroiati&aV (na vez que se le ha otorgado la -%( a un proceso, le puede ser
retirada
UNo
Aroiati&aV
(na vez que se le ha otorgado la -%( a un proceso, !o le puede
ser retirada
Fuente:
http://wwwdi.ujaen.es/=lina/Temas!/0$,9IFI#,#I!9-.0R!#.!/4yD!'j.H#rit.yTiposde0lanific
acion.htm

Las principales caractersticas de la %a!ifi/a/iK! aroiati&a son las
siguientes:
Es 3til cuando los procesos de alta prioridad requieren atencin r!pida.
Es importante para garantizar buenos tiempos de respuesta en sistemas
interactivos de tiempo compartido.
9iene su costo en recursos, "a que el intercambio de conte2to implica
sobrecarga " adem!s requiere mantener muchos procesos en el
almacenamiento principal, en espera de la -%(, lo que tambi0n implica
sobrecarga.

Las principales caractersticas de la %a!ifi/a/iK! !o aroiati&a son las
siguientes:
)ignifica que los trabaos OlargosP hacen esperar a los trabaos OcortosP.
Logra m!s equidad en el tratamiento de los procesos.
Logra hacer m!s predecibles los tiempos de respuesta puesto que los
trabaos nuevos de prioridad alta no pueden desplazar a los trabaos en
espera.

El dise1o de un mecanismo apropiativo hace necesario considerar las
arbitrariedades de casi cualquier esquema de prioridades, en razn de que
muchas veces las propias prioridades no son asignadas de forma significativa.

El mecanismo debera ser sencillo pero efectivo " significativo.


).1D AL-ORITMOS DE PLANIFICACI?N
-uando m!s de un proceso es eecutable desde el punto de vista lgico, el
sistema operativo debe decidir cu!l de ellos debe eecutarse en primer t0rmino.

El planificador es la porcin del sistema operativo que decide " el algoritmo de
planificacin es el utilizado.

Los principales EcriteriosF respecto de un buen algoritmo de planificacin son la
equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso " el
rendimiento.



41
Tabla 7.
Titulo: #riterios de un 'uen algoritmo de planificacin

Criterio De"/ri/iK!
E#$idad 4arantizar que cada proceso obtiene su proporcin usta de
la -%(
Efi/a/ia :antener ocupada la -%( el ciento por ciento del tiempo
Tiemo de
re"$e"ta
:inimizar el tiempo de respuesta para los usuarios
interactivos
Tiemo de
re7re"o
:inimizar el tiempo que deben esperar los usuarios por
lotes *batch, para obtener sus resultados
Re!dimie!to :a2imizar el n3mero de tareas procesadas por hora
Fuente: ,utor

(riterios orienta$os al usuario:
Tiempo de retorno: Es el intervalo de tiempo desde que el proceso se
ofrece hasta el momento que termina, es decir, la suma de los periodos de
tiempo transcurridos esperando entrar en memoria, esperando en la cola
de procesos listos, eecut!ndose en el procesador " efectuando alguna
solicitud de E.). En resumen, es el tiempo que tarda en eecutarse un
proceso.
Tiempo de respuesta: Es el tiempo transcurrido desde la presentacin de
una solicitud hasta que se produce la primera respuesta. Este criterio es la
cantidad de tiempo para comenzar a responder, pero no el tiempo
necesario para mostrar esa respuesta. Este tiempo es independiente del
dispositivo de salida, mientras que el tiempo de retorno depende del
dispositivo de salida.

(riterios orienta$os al sistema:
Tiempo de espera: Es la cantidad de tiempo que un proceso espera en la
cola de procesos listos.
Tiempo de retorno normali>ado: Es la razn entre el tiempo de retorno " el
tiempo de servicio. Este valor indica el retardo relativo que ha
e2perimentado un proceso. Este valor es m!s interesante que el tiempo de
retardo, "a que es un valor que es independiente a la duracin del
proceso.
&tili>acin del procesador: Es el porcentae de tiempo que el procesador
est! ocupado.
0roductividad: Es una medida del n3mero de procesos que se completan
por unidad de tiempo.

).1D.1 Fir"tLComeA Fir"t Ser&ed 2FCFS4
Este algoritmo tambi0n llamado F#F AFirst"#omeH First"servedB, es el algoritmo
m!s sencillo de implementar. -on este esquema, el proceso que primero solicita
el procesador es el primero al que se le asigna. Esta poltica se implementa mu"
f!cilmente con una cola '#'+. -uando un proceso entra en la cola de procesos
listos su 0#< se enlaza con el proceso que est! al final de la cola. -uando el
procesador est! libre se asigna el proceso colocado al inicio de la cola de
procesos listos, esto es, se selecciona el proceso m!s antiguo de la cola.

42
Este algoritmo de planificacin es no apropiativo. (na vez que se ha asignado el
procesador a un proceso, 0ste lo conserva hasta que desee liberarlo, "a sea por
terminacin o bien porque solicita un recurso de E.).

Este algoritmo es especialmente problem!tico en los sistemas de tiempo
compartido, donde es importante que cada usuario reciba una porcin del
procesador a intervalos regulares. El tiempo promedio de espera es bastante
largo en este algoritmo.

'-') tiene un meor rendimiento en cmputo global con procesos largos que con
procesos cortos, "a que si por eemplo un proceso corto llega siempre despu0s
de un proceso largo, el tiempo de retorno normalizado para dicho proceso corto
ser! considerablemente ma"or que el del proceso largo.

+tro problema que presenta este algoritmo, es que tiende a favorecer a los
procesos con carga de procesador frente a los procesos con carga de E.), "a que
cuando un proceso con carga de procesador se est! eecutando, todos los
procesos con carga de E.) deben esperar *si han finalizado la correspondiente
r!faga de E.), la siguiente r!faga de procesador, mientras que los dispositivos
de E.) estar!n ociosos. As pues, '-') puede dar como resultado un uso
ineficiente tanto del procesador como de los dispositivos de E.).

E8em%o(
En un cierto instante se tiene los siguientes procesos, cu"o orden de llegada
es el indicado:

Tra'a8o R.fa7a CPU
A 5
? 5BB
- 5
& 5BB

#ndicar los valores de:
9iempo de espera " tiempo de retorno de cada trabao, tiempo medio de
espera " retorno, cuando la planificacin se realiza mediante el algoritmo
'-').

SOLUCI?N( 1

Tabla 8.
Titulo: ,lgoritmo F#F ejemplo :
Fuente: ,utor

Pro/e"o Tiemo de
%%e7ada
Tiemo
de
Ser&i/io
Tiemo
de
Comie!+o
Tiemo de
Fi!a%i+a/iK!
T$r!aro$!d Tiemo de
E"era
A B 5 B 5 5 B
? 5 5BB 5 5B5 5BB B
- 6 5 5B5 5B6 5BB 5B5/6MTT
& @ 5BB 5B6 6B6 5TT 5B6/@MTT
Promedio 5BB CT.EB
43
SOLUCI?N( )
Tabla 9.
Titulo: ,lgoritmo F#F con procesos ordenados por tiempo de servicio

Fuente: ,utor

El tiempo promedio de espera bao una poltica '-') generalmente no es mnimo
" puede variar sustancialmente si ha" mucha diferencia entre las duraciones de
ciclo de los procesos.

En el segundo eemplo, se presenta un efecto convoy donde los procesos
esperan a que un proceso grande dee el -%(.

).1D.) S5orte"tLOo'LFir"t 2SOF4 WPrimero e% tra'a8o m." /ortoW
Este algoritmo selecciona al proceso con el pr2imo tiempo de eecucin m!s
corto. (n proceso corto saltar! a la cabeza de la cola. La eecucin de un proceso
consiste en ciclos de eecucin de -%( " ciclos de espera por E.). El algoritmo
selecciona aquel proceso cu"o pr2imo ciclo de eecucin de -%( sea menor. El
problema est! en conocer dichos valores, pero podemos predecirlos usando la
informacin de los ciclos anteriores eecutados.

)e puede comprobar que el algoritmo );' es ptimo, "a que ofrece el mnimo
tiempo promedio de espera para un conunto de procesos dado. La comprobacin
muestra que poniendo un proceso breve antes de uno largo se reduce el tiempo
de espera del proceso corto m!s de lo que aumenta el tiempo de espera del
proceso largo, por lo tanto se reduce el tiempo de espera promedio.

E8em%o(
En un cierto instante se tiene los siguientes procesos, cu"o orden de llegada
es el indicado:

Tra'a8o R.fa7a CPU
A D
? C
- T
& E

#ndicar los valores de:
Pro/e"o Tiemo de
%%e7ada
Tiemo
de
Ser&i/io
Tiemo
de
Comie!+o
Tiemo de
Fi!a%i+a/iK!
T$r!aro$!d Tiemo de
E"era
? B 5BB B 5BB 5BB B
& 5 5BB 5BB 6BB 5TT 5BB/5MTT
A 6 5 6BB 6B5 6B5/
6M5TT
6BB/
6M5TD
- @ 5 6B5 6B6 6B6/
@M5TT
6B5/
@M5TD
Promedio 5FC.6E 56@.EB
44
9iempo de espera " tiempo de retorno de cada trabao, tiempo medio de
espera " retorno, cuando la planificacin se realiza mediante los algoritmos
);' " '-').

SOLUCI?N( 1
Tabla 10.
Titulo: ,lgoritmo IF
Fuente: ,utor

Tabla 11.
Titulo: ,lgoritmo F#F ejemplo 4
Fuente: ,utor


El problema real de este algoritmo es conocer o, por lo menos estimar el tiempo
de eecucin para cada proceso. %ara procesos por lotes, el sistema puede
solicitar al usuario que estime el valor de eecucin de dicho proceso " de esta
forma pod0rselo pasar al sistema operativo, sin embargo en la planificacin a
corto plazo esta poltica no se puede emplear "a que no se sabe a priori la
duracin de un proceso, a no ser que podamos predecir la duracin de cada
proceso mediante t0cnicas estadsticas.

).1D.* SRT 2S5orte"t Remai!i!7 Time4 WPrimero e% me!or tiemo
re"ta!teW
La poltica de menor tiempo restante, tambi0n llamada RT *hortest Remaining
Time, es una versin apropiativa del );', en la que el planificador siempre elige
al proceso que le queda menos tiempo esperado de eecucin. La idea es la
siguiente, cuando un proceso es a1adido a la cola de listos, puede quedarle un
tiempo esperado de eecucin menor que al proceso que est! eecut!ndose en
ese momento en el procesador, por consiguiente el planificador puede apropiarse
del procesador para desaloar al proceso en eecucin " asign!rselo al nuevo
proceso, que tendr! un menor tiempo restante de eecucin. Al igual que el
algoritmo );', el planificador debe disponer de una estimacin de tiempo para
cada proceso con el fin de poder llevar a cabo la funcin de seleccionar el
Pro/e"o Tiemo de
%%e7ada
Tiemo
de
Ser&i/io
Tiemo
de
Comie!+o
Tiemo de
Fi!a%i+a/iK!
T$r!aro$!d Tiemo de
E"era
A B D B D D B
? 5 C D 56 56/5M55 D/5MF
- 6 T 5F 6G 6G/6M6C 5F/6M5E
& @ E 56 5F 5F/@M5C 56/@MT
Promedio 5C.6E F.FE
Pro/e"o Tiemo de
%%e7ada
Tiemo
de
Ser&i/io
Tiemo
de
Comie!+o
Tiemo de
Fi!a%i+a/iK!
T$r!aro$!d Tiemo de
E"era
A B D B D D B
? 5 C D 56 56/5M55 D/5MF
- 6 T 56 65 65/6M5T 56/6M5B
& @ E 65 6G 6G/@M6@ 65/@M5D
Promedio 5E.6E D.FE
45
siguiente proceso, e2istiendo igualmente que en el );' peligro de inanicin para
los procesos largos.

Ambos algoritmos, el );' " el )89, no presentan un sesgo favorable a los
procesos largos como ocurre con el '-') " tampoco se generan interrupciones
adicionales como en el 8ound/8obin, por el contrario se deben llevar una cuenta
de los tiempos de servicio transcurridos con el fin de que la funcin estadstica
estime de la forma m!s veraz los tiempos de eecucin para cada proceso. El
algoritmo )89 produce unos tiempos de retorno meores que el );', "a que los
trabaos cortos reciben atencin inmediata " preferente a los procesos largos.

).1D.0 Prioridad
En muchos sistemas, los procesos tienen prioridades asignadas, " el planificador
escoger! aquel proceso con ma"or prioridad.

-uando un proceso debe ser seleccionado, el planificador por prioridades
seleccionar! aquel proceso que tenga ma"or prioridad. )i ha" m!s de un proceso
entonces se deber! seguir alguna poltica de seleccin.
(n problema que presenta un esquema de planificacin por prioridades puro es
que los procesos con la prioridad m!s baa pueden sufrir de inanicin o bloqueo
indefinido. (n proceso que est! listo para correr pero espera porque siempre ha"
procesos con prioridad m!s alta.
%ara evitar este problema, se puede ir incrementando gradualmente la prioridad
de los procesos *envejecimientoB.

);' es un caso especial de planificacin por prioridad, donde la prioridad es el
inverso del valor estimado del pr2imo ciclo de -%( *a menor ciclo, ma"or
prioridad,.

E8em%o(
)ea la siguiente descripcin de carga:

Tra'a8o R.fa7a CPU Prioridad
A D 6
? C 5
- T C
& E 6

)uponer el orden de llegada el indicado.
-alcular tiempo de espera " tiempo de retorno de cada trabao, tiempo medio
de espera " retorno, cuando la planificacin se realiza mediante el algoritmo
de prioridades " del tipo no apropiativo.


46
SOLUCI?N(

Tabla 12.
Titulo: ,lgoritmo por 0rioridades
Fuente: ,utor

Este algoritmo puede ser apropiativo " no apropiativo. En el caso de apropiativo,
cuando un proceso llega a la cola de procesos listos, su prioridad es comparada
con la prioridad del proceso que est! corriendo. )i la prioridad del nuevo proceso
es ma"or, entonces se atiende al nuevo proceso.

).1D.; A%7oritmo SRTF
El algoritmo )89, )hortest 8emaining 9ime o %rimero el menor tiempo restante,
es la versin e2pulsiva del algoritmo );' conocido como Otrabao m!s corto
primeroP que manea los trabaos con base en la duracin de su ciclo del -%(.
)e diferencia del );' en que si un nuevo proceso pasa a listo se activa el
dispatcher para ver si es m!s corto que lo que queda por eecutar del proceso en
eecucin. )i es as el proceso en eecucin pasa a listo " su tiempo de
estimacin se decrementa con el tiempo que ha estado eecut!ndose. Este
algoritmo tiene ma"or ventaa del );' "a que es ptimo para las r!fagas que
llegan indistintamente "a que prefiere los procesos cortos " tiene la opcin de
suspender el que se est! eecutando para dar paso al nuevo.

U"o de% #$a!t$m
En este caso se usa un ]uantum, que es un tiempo determinado en el que pasa
un proceso por el -%( que no puede ser modificado por el usuario.

E8em%o(
En un cierto instante se tiene los siguientes procesos:

Pro/e"o Tiemo de
%%e7ada
Tiemo de
"er&i/io
%5 B F
%6 6 C
%@ C 5
%C E C

#ndicar los valores de:
9iempo de espera " tiempo de retorno de cada trabao, tiempo medio de
espera " retorno, cuando la planificacin se realiza mediante el algoritmo
)89' con un quantum de 6.

Pro/e"o Tiemo
de %%e7.
Priori
dad

Tiemo
de
Ser&i/io
Tiemo de
Comie!+o
Tiemo de
Fi!a%i+a/i
K!
T$r!aro$!
d
Tiemo de
E"era
A B 6 D B D D B
? 5 5 C 66 6G 6G/5M6E 66/5M65
- 6 C T D 5F 5F/6M5E D/6M G
& @ 6 E 5F 66 66/@M5T 5F/@M5C
Promedio 5G.FE 5B.6E
47
SOLUCI?N(
Tabla 13.
Titulo: ,lgoritmo RTF
Eemplo: quantum M6X
Pro/e
"o
Tiem
o de
%%e7.
Tiemo de Ser&i/io Tiemde
Com.
Tiemo de
Fi!
T$r!a. Tiemo de
E"era
%5 B F E @ 5 B Cc B,55,5@,5E 6,5@,5E,5G 5G/BM5G 5G/FMT
%6 6 C 6 B 6c @,E E,F F/6ME E/CM5
%@ C 5 B 5c 6 @ @/CM/5 /5 /5M/6
%C E C 6 B 6c F,T T,55 55/EMG G/C M6
Promedio =A; )A;
Fuente: ,utor

NOTA: cuando termina una corrida se vuelve a buscar desde arriba los m!s
cortos e2cepto los que "a terminaron

).1D.= Ro$!d Ro'i! WT$r!o rotatorioW
(na manera r!pida de reducir la penalizacin que los procesos cortos sufren con
F#F es usar e2propiacin basada en un relo. (na interrupcin de relo es
generada a intervalos peridicos. -uando ocurre la interrupcin, el proceso en
eecucin es colocado en la cola de procesos listos " el pr2imo trabao es
seleccionado basado en el esquema F#F. A cada proceso se le da un tro>o de
tiempo.

La principal decisin de dise1o que surge con Round Ro'in es el tama1o del trozo
o 3uantum. )i el 3uantum es mu" corto, entonces los procesos se mover!n a
trav0s del sistema r!pidamente. %or otro lado, ha" un cierto overhead o
desperdicio de tiempo envuelto con el maneo de la interrupcin de relo " las
funciones de planificacin " despacho. %or lo tanto 3uanta mu" peque1os
deberan evitarse. (na alternativa es usar un 3uantum de tiempo que sea un
poco m!s grande que el tiempo promedio requerido para una interaccin tpica.

Round Ro'in es particularmente efectivo para sistemas generales de tiempo
compartido. )e implementa con una cola FIF! de procesos. <uevos procesos son
agregados al final de la cola, " toma el proceso que se encuentra en la cabeza de
la cola. Actualiza el timer para que interrumpa despu0s del quantum de tiempo.

)i tenemos n procesos en la cola de listos " el quantum es de 3 unidades de
tiempo, entonces cada proceso recibe 5.n tiempos de procesador en trozos de q
unidades de tiempo como m!2imo, " adem!s ning3n proceso debe esperar m!s
de *n/5, 2 q unidades de tiempo antes de recibir su siguiente quantum.

El desempe1o de este algoritmo depender! del tama1o del quantum. )i el
quantum es infinito entonces degenera en '-'). )i el quantum es mu" peque1o
entonces 8ound 8obin es llamado comparticin de -%( " en teora pareciera que
cada proceso tiene su propio procesador corriendo a 5.n la velocidad del
procesador real.

?ao este esquema es importante considerar el efecto del cambio de conte2to.
48
E8em%o(
En un cierto instante se tiene los siguientes procesos:

Pro/e"o Tiemo de
%%e7ada
Tiemo de
"er&i/io
A B D
? 5 C
- 6 T
& @ E

#ndicar los valores de:
9iempo de espera " tiempo de retorno de cada trabao, tiempo medio de
espera " retorno, cuando la planificacin se realiza mediante el algoritmo
8ound 8obin con un quantum de @.

SOLUCI?N(
Tabla 14.
Titulo: ,lgoritmo Round Ro'in
Fuente: ,utor

).1E PLANIFICACI?N DE COLAS MXLTIPLES
Los algoritmos vistos hasta este momento forman parte de un conunto de
polticas de planificacin en las que el denominador com3n es que tienen una
sola cola de procesos listos, esto es, planificadores monocola, pero se han creado
otra clase de algoritmos de planificacin para aquellas situaciones donde los
procesos se pueden clasificar f!cilmente en distintos gruposX por eemplo
diferenciar aquellos procesos que se eecutan en primer plano *llamados
procesos interactivos, de los que se eecutan en segundo plano *los procesos por
lotes,. Estos dos tipos de procesos tienen requisitos de tiempos de respuesta
diferentes, por lo que presentar!n distintas necesidades de planificacin, as
como cada grupo de procesos tendr! unas prioridades sobre el otro grupo.

(n algoritmo de planificacin de colas m3ltiples divide la cola de procesos listos
en diversas colas *ver figura,. Los procesos se podr!n asignar de forma
permanente a una de las colas de planificacin, o bien podr!n cambiar de cola de
planificacin, todo depender! del algoritmo que se est0 empleando. As como
cada cola tendr! su propio algoritmo de planificacin.

Pro/e"o Tiemo de
%%e7ada
Tiemo
de
Ser&i/io
Tiemo
de
Comie!+o
Tiemo de
Fi!a%i+a/iK!
T$r!aro$!d Tiemo de
E"era
A B D B, 56, 65 @, 5E, 6@ 6@ 5E
? 5 C @, 5E G, 5G 5G/5M5E 55
- 6 T G, 5G, 6@ T, 5T, 6G 6G/6M6C 5E
& @ E T, 5T 56,65 65/@M5D 5@
Promedio 6B 5@

Figura
Fuente: http://wwwD.uji.es/=redondo/so/capitulo48I::.pdf

).)M PLANIFICACI?N CON MXLTIPLES COLAS
&ebe e2istir una planificacin entre las colas, la cual generalmente es una
planificacin apropiativa de prioridad fia, esto es, podr! e2istir
prioridades entre las colas de procesos listos del planificador.
<osotros veremos dos tipos de planificacin de m3ltiples colas, planificacin de
colas m3ltiples con realimentacin " la planificacin de colas m3ltiples por
prioridad.

).)M.1 P%a!ifi/a/iK! de /o%a" m1%ti%e" /o! rea%ime!ta/iK!
La planificacin de colas m3ltiples con realimentacin *ver
proceso moverse de una cola a otra de procesos listos. La forma de llevar a cabo
dicha planificacin es la siguienteX en pr
se emplea un mecanismo din!mico de prioridades. -uando un proceso entra por
primera vez en el sistema se sit3a en la primera cola de procesos listos, cuando
vuelva el proceso a la cola de listos despu0s de su prim
la segunda cola de procesos listos.

La idea es que despu0s de cada eecucin al proceso se le degradar! a un nivel
inmediatamente inferior de prioridad. &e esta forma un proceso corto terminar!
r!pidamente, sin descender demasia
procesos largos ser!n gradualmente llevados hacia colas inferiores. -uando un
proceso llega a la cola de menor prioridad, "a no podr! seguir descendiendo, con
lo que dicho proceso volver! a la misma cola de proces
hasta completar su eecucin.

El planificador seleccionar! siempre un proceso que se encuentre en una cola de
ma"or prioridad, con lo que se le asigna a cada cola de listos una prioridad, "
cada nuevo proceso que entra al sistema
prioridad.

Esta poltica favorece a los procesos nuevos, "a que entran siempre los primeros
antes de cualquier otro proceso que se encuentre en otra cola, tambi0n favorece
a los procesos cortos, que no les da tiempo a que d
mucho en la erarqua de las colas de procesos listos.
Figura 20: 0lanificacin de colas m@ltiples
http://wwwD.uji.es/=redondo/so/capitulo48I::.pdf
PLANIFICACI?N CON MXLTIPLES COLAS
&ebe e2istir una planificacin entre las colas, la cual generalmente es una
planificacin apropiativa de prioridad fia, esto es, podr! e2istir
prioridades entre las colas de procesos listos del planificador.
<osotros veremos dos tipos de planificacin de m3ltiples colas, planificacin de
colas m3ltiples con realimentacin " la planificacin de colas m3ltiples por
P%a!ifi/a/iK! de /o%a" m1%ti%e" /o! rea%ime!ta/iK!
La planificacin de colas m3ltiples con realimentacin *ver figura,
proceso moverse de una cola a otra de procesos listos. La forma de llevar a cabo
dicha planificacin es la siguienteX en principio es una planificacin apropiativa "
se emplea un mecanismo din!mico de prioridades. -uando un proceso entra por
primera vez en el sistema se sit3a en la primera cola de procesos listos, cuando
vuelva el proceso a la cola de listos despu0s de su primera eecucin retornar! a
la segunda cola de procesos listos.
La idea es que despu0s de cada eecucin al proceso se le degradar! a un nivel
inmediatamente inferior de prioridad. &e esta forma un proceso corto terminar!
r!pidamente, sin descender demasiado en la erarqua de colas de listos. Los
procesos largos ser!n gradualmente llevados hacia colas inferiores. -uando un
proceso llega a la cola de menor prioridad, "a no podr! seguir descendiendo, con
lo que dicho proceso volver! a la misma cola de procesos listos repetidamente
hasta completar su eecucin.
El planificador seleccionar! siempre un proceso que se encuentre en una cola de
ma"or prioridad, con lo que se le asigna a cada cola de listos una prioridad, "
cada nuevo proceso que entra al sistema se le asignar! la cola de ma"or
Esta poltica favorece a los procesos nuevos, "a que entran siempre los primeros
antes de cualquier otro proceso que se encuentre en otra cola, tambi0n favorece
a los procesos cortos, que no les da tiempo a que dichos procesos se degraden
mucho en la erarqua de las colas de procesos listos.
49

de colas m@ltiples
http://wwwD.uji.es/=redondo/so/capitulo48I::.pdf
&ebe e2istir una planificacin entre las colas, la cual generalmente es una
planificacin apropiativa de prioridad fia, esto es, podr! e2istir una erarqua de

<osotros veremos dos tipos de planificacin de m3ltiples colas, planificacin de
colas m3ltiples con realimentacin " la planificacin de colas m3ltiples por
P%a!ifi/a/iK! de /o%a" m1%ti%e" /o! rea%ime!ta/iK!
figura, permite a un
proceso moverse de una cola a otra de procesos listos. La forma de llevar a cabo
incipio es una planificacin apropiativa "
se emplea un mecanismo din!mico de prioridades. -uando un proceso entra por
primera vez en el sistema se sit3a en la primera cola de procesos listos, cuando
era eecucin retornar! a
La idea es que despu0s de cada eecucin al proceso se le degradar! a un nivel
inmediatamente inferior de prioridad. &e esta forma un proceso corto terminar!
do en la erarqua de colas de listos. Los
procesos largos ser!n gradualmente llevados hacia colas inferiores. -uando un
proceso llega a la cola de menor prioridad, "a no podr! seguir descendiendo, con
os listos repetidamente
El planificador seleccionar! siempre un proceso que se encuentre en una cola de
ma"or prioridad, con lo que se le asigna a cada cola de listos una prioridad, "
se le asignar! la cola de ma"or
Esta poltica favorece a los procesos nuevos, "a que entran siempre los primeros
antes de cualquier otro proceso que se encuentre en otra cola, tambi0n favorece
ichos procesos se degraden

&entro de cada cola se podr! usar cualquier planificador monocola de los
definidos anteriormente, con lo que se fle2ibiliza a3n m!s este algoritmo de
planificacin.

(n problema que presenta este algoritmo, es que los procesos largos pueden
sufrir de inanicin si llegan regularmente nuevos procesos al sistema. %ara
compensar este problema se puede limitar el tiempo de espera en una cola de
menor prioridad. El remedio consiste
encuentre en una cola de menor prioridad pueda promocionar a una cola de
ma"or prioridad, si ha consumido cierta cantidad de tiempo en espera de
servicio.

Figura
Fuente: http://wwwD.

%or lo general, un planificador de colas m3ltiples con realimentacin se define
con los siguientes par!metros:
El n3mero de colas.
El algoritmo de planificacin para cada cola.
El m0todo utilizado para determinar cu!ndo promover un proceso a una cola
de ma"or prioridad.
El m0todo utilizado para determinar cu!ndo degradar un proceso a una cola
de menor prioridad.

Este algoritmo de planificacin se puede configurar para austars
especfico que se est0 dise1ando, pero tiene como inconveniente que es
compleo realizar un dise1o a medida.

).)M.) P%a!ifi/a/iK! de /o%a" m1%ti%e" /o! rioridade"
:ediante este algoritmo de planificacin *ver
una prioridad que deber! coincidir con alguna de las prioridades asignadas a las
colas de procesos listos. -uando un proceso entre en el sistema se dirigir! a la
cola que le corresponda, no pudiendo cambiar de cola de procesos listos mientras
est0 en el sistema, al contrario que la planificacin con realimentacin.

El planificador seleccionar! el proceso que tenga ma"or prioridad, esto es, el
proceso que se encuentre en la cola de ma"or prioridad, " dentro de cada cola se
seleccionar! el proceso de acuerdo
cola.

(n problema que presentan estos algoritmos de planificacin es que los procesos
de prioridad m!s baa pueden sufrir de inanicin. Este problema ocurre, como
&entro de cada cola se podr! usar cualquier planificador monocola de los
definidos anteriormente, con lo que se fle2ibiliza a3n m!s este algoritmo de
ema que presenta este algoritmo, es que los procesos largos pueden
sufrir de inanicin si llegan regularmente nuevos procesos al sistema. %ara
compensar este problema se puede limitar el tiempo de espera en una cola de
menor prioridad. El remedio consiste en permitir que un proceso que se
encuentre en una cola de menor prioridad pueda promocionar a una cola de
ma"or prioridad, si ha consumido cierta cantidad de tiempo en espera de
Figura 21: 0lanificacin con realimentacin
http://wwwD.uji.es/=redondo/so/capitulo48I::.pdf
%or lo general, un planificador de colas m3ltiples con realimentacin se define
con los siguientes par!metros:
El n3mero de colas.
El algoritmo de planificacin para cada cola.
El m0todo utilizado para determinar cu!ndo promover un proceso a una cola
de ma"or prioridad.
El m0todo utilizado para determinar cu!ndo degradar un proceso a una cola
de menor prioridad.
Este algoritmo de planificacin se puede configurar para austars
especfico que se est0 dise1ando, pero tiene como inconveniente que es
compleo realizar un dise1o a medida.
P%a!ifi/a/iK! de /o%a" m1%ti%e" /o! rioridade"
:ediante este algoritmo de planificacin *ver figura, se le asigna a cada proceso
una prioridad que deber! coincidir con alguna de las prioridades asignadas a las
colas de procesos listos. -uando un proceso entre en el sistema se dirigir! a la
cola que le corresponda, no pudiendo cambiar de cola de procesos listos mientras
stema, al contrario que la planificacin con realimentacin.
El planificador seleccionar! el proceso que tenga ma"or prioridad, esto es, el
proceso que se encuentre en la cola de ma"or prioridad, " dentro de cada cola se
seleccionar! el proceso de acuerdo a la poltica de planificacin especfica a dicha
(n problema que presentan estos algoritmos de planificacin es que los procesos
de prioridad m!s baa pueden sufrir de inanicin. Este problema ocurre, como
50
&entro de cada cola se podr! usar cualquier planificador monocola de los
definidos anteriormente, con lo que se fle2ibiliza a3n m!s este algoritmo de
ema que presenta este algoritmo, es que los procesos largos pueden
sufrir de inanicin si llegan regularmente nuevos procesos al sistema. %ara
compensar este problema se puede limitar el tiempo de espera en una cola de
en permitir que un proceso que se
encuentre en una cola de menor prioridad pueda promocionar a una cola de
ma"or prioridad, si ha consumido cierta cantidad de tiempo en espera de

0lanificacin con realimentacin
uji.es/=redondo/so/capitulo48I::.pdf
%or lo general, un planificador de colas m3ltiples con realimentacin se define
El m0todo utilizado para determinar cu!ndo promover un proceso a una cola
El m0todo utilizado para determinar cu!ndo degradar un proceso a una cola
Este algoritmo de planificacin se puede configurar para austarse a un sistema
especfico que se est0 dise1ando, pero tiene como inconveniente que es
P%a!ifi/a/iK! de /o%a" m1%ti%e" /o! rioridade"
se le asigna a cada proceso
una prioridad que deber! coincidir con alguna de las prioridades asignadas a las
colas de procesos listos. -uando un proceso entre en el sistema se dirigir! a la
cola que le corresponda, no pudiendo cambiar de cola de procesos listos mientras
stema, al contrario que la planificacin con realimentacin.
El planificador seleccionar! el proceso que tenga ma"or prioridad, esto es, el
proceso que se encuentre en la cola de ma"or prioridad, " dentro de cada cola se
a la poltica de planificacin especfica a dicha
(n problema que presentan estos algoritmos de planificacin es que los procesos
de prioridad m!s baa pueden sufrir de inanicin. Este problema ocurre, como

era de esperar, si ha" un fluo continuo
superar este problema, se puede pensar en dise1ar un m0todo que pueda
cambiar la prioridad del proceso en funcin de su edad, esto es, aumentar la
prioridad por enveecimiento.

Figura
Fuente: http://wwwD.uji.es/=redondo/so/capitulo48I::.pdf



era de esperar, si ha" un fluo continuo de procesos listos de alta prioridad. %ara
superar este problema, se puede pensar en dise1ar un m0todo que pueda
cambiar la prioridad del proceso en funcin de su edad, esto es, aumentar la
prioridad por enveecimiento.
Figura 22: 0lanificacin por prioridades
http://wwwD.uji.es/=redondo/so/capitulo48I::.pdf

51
de procesos listos de alta prioridad. %ara
superar este problema, se puede pensar en dise1ar un m0todo que pueda
cambiar la prioridad del proceso en funcin de su edad, esto es, aumentar la

http://wwwD.uji.es/=redondo/so/capitulo48I::.pdf
52










UNIDAD III

-ESTI?N DE MEMORIA( ASI-NACI?N CONTINUA Y
ASI-NACI?N NO CONTINUA( PA-INACI?N Y MEMORIA
VIRTUAL

*.1 PANORAMA -ENERAL
(n vistazo al material que se va a cubrir en esta seccin se muestra en la figura
siguiente. Es una gr!fica en donde se especifican, en t0rminos generales, los
conceptos m!s importantes en cuanto a las t0cnicas empleadas en el maneo de
memoria.

Figura 23: 0anorama del manejo de memoria
Fuente:
)ttp://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/defaul
t4.asp

La memoria es uno de los principales recursos de la computadora, la cual debe
de administrarse con mucho cuidado. Aunque actualmente la ma"ora de los
sistemas de cmputo cuentan con una alta capacidad de memoria, de igual
manera las aplicaciones actuales tienen tambi0n altos requerimientos de
memoria, lo que sigue generando escasez de memoria en los sistemas multitarea
".o multiusuario.

La parte del sistema operativo que administra la memoria se llama administrador
de memoria " su labor consiste en llevar un registro de las partes de memoria
que se est0n utilizando " aquellas que no, con el fin de asignar espacio en
memoria a los procesos cuando 0stos la necesiten " liber!ndola cuando
terminen, as como administrar el intercambio entre la memoria principal " el
53
disco en los casos en los que la memoria principal no le pueda dar capacidad a
todos los procesos que tienen necesidad de ella.

Los sistemas de administracin de memoria se pueden clasificar en dos tipos: los
que desplazan los procesos de la memoria principal al disco " viceversa durante
la eecucin " los que no.

El propsito principal de una computadora es el de eecutar programas, estos
programas, unto con la informacin que accesan deben de estar en la memoria
principal *al menos parcialmente, durante la eecucin.

%ara optimizar el uso del -%( " de la memoria, el sistema operativo debe de
tener varios procesos a la vez en la memoria principal, para lo cual dispone de
varias opciones de administracin tanto del procesador como de la memoria. La
seleccin de uno de ellos depende principalmente del dise1o del hardware para el
sistema. A continuacin se observar!n los puntos correspondientes a la
administracin de la memoria.

*.) MEMORIA REAL
La memoria real o principal es en donde son eecutados los programas "
procesos de una computadora " es el espacio real que e2iste en memoria para
que se eecuten los procesos. %or lo general esta memoria es de ma"or costo
que la memoria secundaria, pero el acceso a la informacin contenida en ella es
de m!s r!pido acceso. )olo la memoria cache es m!s r!pida que la principal,
pero su costo es a su vez ma"or.

*.* MANEOO DE MEMORIA EN SISTEMAS MONOUSUARIO SIN
INTERCAMBIO
-uando solo se tiene un proceso que ocupe la memoria a la vez, el esquema de
la administracin de la memoria es el m!s sencillo que ha". )in embargo, 0ste
m0todo "a no tiene aplicacin en la actualidad, "a que era visto en las
computadoras con sistemas operativos de un solo usuario " una sola tarea. El
usuario introduca su disco a la computadora *por lo general, la m!quina no
contaba con disco duro, " eecutaba su aplicacin, la cual acaparaba toda la
m!quina.

Este esquema es a3n mu" frecuente principalmente en sistemas monousuario "
monotarea, como son las computadoras personales con &+). ?ao este
esquema, la memoria real es tomada para almacenar el programa que se est0
eecutando en un momento dado, con la visible desventaa de que si se est!
limitado a la cantidad de 8A: disponible 3nicamente. La organizacin fsica bao
este esquema es mu" simple: El sistema operativo se ubica en las localidades
superiores o inferiores de la memoria, seguido por algunos maneadores de
dispositivos *QdriversR,. Esto dea un espacio contiguo de memoria disponible que
es tomado por los programas del usuario, deando generalmente la ubicacin de
la pila *Qstac>^, al 3ltimo, con el obetivo de que 0sta pueda crecer hasta el
m!2imo posible. -omo es obvio, bao estos esquemas no se requieren algoritmos
sofisticados para asignar la memoria a los diferentes procesos, "a que 0stos son
eecutados secuencialmente conforme van terminando.

54

Figura 24: !rgani>acin simple de memoria
Fuente:
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default
4.asp

*.0 MULTIPRO-RAMACI?N EN MEMORIA REAL
En los GB^s, las empresas e instituciones que haban invertido grandes sumas en
la compra de equipo de cmputo se dieron cuenta r!pidamente que los sistemas
en lote invertan una gran cantidad de tiempo en operaciones de entrada "
salida, donde la intervencin de la unidad central de procesamiento era
pr!cticamente nula, " se comenzaron a preguntar cmo hacer que se mantuviera
m!s tiempo ocupada. 'ue as como naci el concepto de multiprogramacin, el
cual consiste en la idea de poner en la memoria fsica m!s de un proceso al
mismo tiempo, de manera que si el que se est! eecutando en este momento
entraba en un periodo de entrada . salida, se poda tomar otro proceso para que
usara la unidad central de procesamiento. &e esta forma, la memoria fsica se
divida en secciones de tama1o suficiente para contener a varios programas.

&e esta manera, si un sistema gastaba en promedio GBW de su tiempo en
entrada . salida por proceso, se poda aprovechar m!s el -%(. Anterior a esto, el
-%( se mantena ese mismo porcentae ociosoX con la nueva t0cnica, el tiempo
promedio ocioso disminu"e de la siguiente forma. Ll!mese al tiempo promedio
que el -%( est! ocupado _grado de multiprogramacin^. )i el sistema tuviese un
solo proceso siempre, " 0ste gastara GBW en entrada . salida, el grado de
multiprogramacin sera 5 / GBW M CBW M B.C. -on dos procesos, para que el
-%( est0 ocioso se necesita que ambos procesos necesiten estar haciendo
entrada . salida, es decir, suponiendo que son independientes, la probabilidad de
que ambos est0n en entrada . salida es el producto de sus probabilidades, es
decir, B.G2B.G M B.@G. Ahora, el grado de multiprogramacin es 5 / *probabilidad
de que ambos procesos est0n haciendo entrada . salida, M 5 / B.@G M B.GC.

-omo se ve, el sistema meora su uso de -%( en un 6CW al aumentar de uno a
dos procesos. %ara tres procesos el grado de multiprogramacin es 5 / *B.G, @ M
B.FDC, es decir, el sistema est! ocupado el FD.CW del tiempo.

La frmula del grado de multiprogramacin, aunque es mu" idealista, pudo servir
de gua para planear un posible crecimiento con la compra de memoria real, es
decir, para obtener el punto en que la adicin de procesos a 8A: "a no
incrementa el uso de -%(.


55
*.; MULTIPRO-RAMACI?N CON PARTICIONES FIOAS
%ara poder implementar la multiprogramacin, se puede hacer uso de particiones
fias o variables en la memoria. En el caso de las particiones fias, la memoria se
puede organizar dividi0ndose en diversas partes, las cuales pueden variar en
tama1o. Esta particin la puede hacer el usuario en forma manual, al iniciar una
sesin con la m!quina.

(na vez implementada la particin, ha" dos maneras de asignar los procesos a
ella. La primera es mediante el uso de una cola 3nica *figura a, que asigna los
procesos a los espacios disponibles de la memoria conforme se va"an
desocupando. El tama1o del hueco de memoria disponible es usado para localizar
en la cola el primer proceso que quepa en 0l. +tra forma de asignacin es buscar
en la cola el proceso de tama1o ma"or que se auste al hueco, sin embargo ha"
que tomar en cuenta que tal m0todo discrimina a los procesos m!s peque1os.
&icho problema podra tener solucin si se asigna una particin peque1a en la
memoria al momento de hacer la particin inicial, el cual sera e2clusivo para
procesos peque1os.




















Esta idea nos lleva a la implementacin de otro m0todo para particiones fias,
que es el uso de diferentes colas independientes *figura b, e2clusivas para cierto
rango en el tama1o de los procesos. &e esta manera al llegar un proceso, 0ste
sera asignado a la cola de tama1o m!s peque1o que la pueda aceptar. La
desventaa en esta organizacin es que si una de las colas tiene una larga lista
de procesos en espera, mientras otra cola est! vaca, el sector de memoria
asignado para ese tama1o de procesos estara desperdici!ndose.

*.= MULTIPRO-RAMACI?N CON PARTICIONES VARIABLES
Este esquema fue originalmente usado por el sistema operativo #?: +).@GB
*llamado :'9,, el cual "a no est! en uso.

Particin 1
Particin 2
Particin 3
Sistema
Operativo
700 K
400 K
100 K
0
Particin 1
Particin 2
Particin 3
Sistema
Operativo
700 K
400 K
100 K
Figura 25: *a+ 0articiones fijas en
memoria con una cola @nica de
entrada
Fuente:
http://www.elprisma.com/apuntes/ingenie
ria8de8sistemas/sistemasoperativosfunda
mentos/default4.asp

Figura 25: *b+ 0articiones fijas en
memoria con colas exclusivas para
cada tamaJo diferente de la particin
Fuente:
http://www.elprisma.com/apuntes/ingenie
ria8de8sistemas/sistemasoperativosfunda
mentos/default4.asp

56
El sistema operativo lleva una tabla indicando cu!les partes de la memoria est!n
disponibles " cu!les est!n ocupadas. #nicialmente, toda la memoria est!
disponible para los procesos de usuario " es considerado como un gran bloque o
hueco 3nico de memoria. -uando llega un proceso que necesita memoria,
buscamos un hueco lo suficientemente grande para el proceso. )i encontramos
uno, se asigna 3nicamente el espacio requerido, manteniendo el resto disponible
para futuros procesos que requieran de espacio.

-onsideremos el eemplo de la figura a continuacin, en donde se cuenta un
espacio reservado para el sistema operativo en la memoria baa de CBBN " un
espacio disponible para procesos de usuario de 65GBN, siendo un total de
memoria del sistema de 6EGBN. &ada la secuencia de procesos de la figura "
usando un algoritmo de First #ome K First erved *F#F, se puede asignar de
inmediato memoria a los procesos %
5
, %
6
" %
@
, creando el mapa de memoria de la
fi7$ra a en el cual queda un hueco de 6GBN que "a no puede ser utilizado por el
siguiente proceso dado que no es suficiente para abarcarlo.















Sistema
Operativo
2160K
P
1

P
2

P
3

P
4

P
5

600K
1000K
300K
700K
500K
10
5
20
8
15
Lista de trabajos
Procesos Memoria Tiempo
2560K
2160K
0
57
E8em%o de $!a di&i"iK! i!i/ia% de memoria Q $!a %i"ta de tra'a8o".



















*a, *b, *c, *d, *e,
Figura 26: /ultiprogramacin con particiones varia'les
Fuente:
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default
4.asp

*.=.1 E8em%o de a"i7!a/iK! de ro/e"o" e! %a memoria ri!/ia%
(sando un proceso de asignacin Round"Ro'in con un quantum de 5 unidad de
tiempo, el proceso %
6
terminara en la unidad de tiempo 5C, liberando esa
cantidad de memoria, como se muestra en la figura *b,. Entonces el sistema
operativo checa la lista de trabaos " asigna el siguiente proceso que quepa en el
espacio de memoria liberado. El proceso %
C
produce el mapa de memoria que se
muestra en la figura *c,. El proceso %
5
terminar! en la unidad de tiempo 6D para
producir el mapa de la figura *d, " entonces se asigna el proceso %
E
generando el
mapa de la figura *e,.

-uando a un proceso se le asigna un espacio " es cargado a la memoria
principal, puede entonces competir para el uso del -%(.

*.C COMPACTACI?N DE MEMORIA
-uando un proceso llega " necesita memoria, el sistema operativo busca en la
tabla de huecos alguno lo suficientemente grande para el proceso. )i el hueco es
mu" grande, lo parte en dos. (na parte es asignada al proceso " la otra se
identifica como hueco. -uando el proceso termina " la memoria es liberada, el
espacio es identificado como un hueco m!s en la tabla " si el nuevo hueco es
ad"acente con otro, ambos huecos se unen formando un solo hueco m!s grande.
En ese momento se debe de checar si no e2isten procesos a los que este nuevo
hueco pueda darles cabida.

5FBBN
TBBN
6EGBN
6@BBN
6BBBN
5BBBN
CBBN
B
)istema
operativ
%E

%C
%@
7ueco
7ueco
7ueco
5FBBN
6EGBN
6@BBN
6BBBN
5BBBN
CBBN
B
)istema
operativ

7ueco

%C
%@
7ueco
7ueco
Asignar
%E
5FBBN
6EGBN
6@BBN
6BBBN
5BBBN
CBBN
B
)istema
operativ

%5

%C
%@
7ueco
7ueco
6EGBN
6@BBN
6BBBN
5BBBN
CBBN
B
)istema
operativo

%5

%6
%@
7ueco
9ermina
%6
6EGBN
6@BBN
6BBBN
5BBBN
CBBN
B
)istema
operativ

%5

7ueco
%@
7ueco
Asignar
%C
9ermina
%5
58
















*a, *b,

Figura 27: .jemplo de compactacin
Fuente:
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default
4.asp

*.C.1 E8em%o de /oma/ta/iK! de 5$e/o" !o adQa/e!te"
En la figura se muestra como se modifica el mapa de la memoria despu0s de
compactar huecos no ad"acentes generados despu0s de intercambios realizados
en el eemplo anterior.

*.D ASI-NACI?N DINPMICA
El proceso de compactacin del punto anterior es una instancia particular del
problema de asignacin de memoria din!mica, el cual es el cmo satisfacer una
necesidad de tama1o n con una lista de huecos libres. E2isten muchas soluciones
para el problema. El conunto de huecos es analizado para determinar cu!l hueco
es el m!s indicado para asignarse.

Las estrategias m!s comunes para asignar alg3n hueco de la tabla son:
- Primer a8$"te: -onsiste en asignar el primer hueco con capacidad suficiente.
La b3squeda puede iniciar "a sea al inicio o al final del conunto de huecos o
en donde termin la 3ltima b3squeda. La b3squeda termina al encontrar un
hueco lo suficientemente grande.
- Me8or a8$"te: ?usca asignar el espacio m!s peque1o de los espacios con
capacidad suficiente. La b3squeda se debe de realizar en toda la tabla, a
menos que la tabla est0 ordenada por tama1o. Esta estrategia produce el
menor desperdicio de memoria posible.
- Peor a8$"te: Asigna el hueco m!s grande. (na vez m!s, se debe de buscar
en toda la tabla de huecos a menos que est0 organizada por tama1o. Esta
estrategia produce los huecos de sobra m!s grandes, los cuales pudieran ser
de m!s uso si llegan procesos de tama1o mediano que quepan en ellos.

)e ha demostrado mediante simulacros que tanto el primer " el meor auste son
meores que el peor auste en cuanto a minimizar tanto el tiempo del
5FBBN
TBBN
6EGBN
6@BBN
6BBBN
5BBBN
CBBN
B
)istema
operativ
%E

%C
%@
6GB>
@BB>
5BB>
5GBBN
TBBN
-ompactacin
6EGBN
5TBBN
CBBN
B
)istema
operativ
%E

%C
%@
GGB>
59
almacenamiento. <i el primer o el meor auste es claramente el meor en
t0rminos de uso de espacio, pero por lo general el primer auste es m!s r!pido.

*.D.1 Admi!i"tra/iK! de %a memoria /o! maa" de 'it"
Este tipo de administracin divide la memoria en unidades de asignacin, las
cuales pueden ser tan peque1as como unas cuantas palabras o tan grandes
como varios >ilob"tes. A cada unidad de asignacin le corresponde un bit en el
mapa de bits, el cual toma el valor de B si la unidad est! libre " 5 si est!
ocupada *o viceversa,. La figura muestra una parte de la memoria " su
correspondiente mapa de bits.











Figura 28: ,dministracin de la memoria con mapas de 'its
Fuente:
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default
4.asp
E8em%o de $! maa de 'it" ara %a admi!i"tra/iK! de %a memoria
(n mapa de bits es una forma sencilla para llevar un registro de las palabras de
la memoria en una cantidad fia de memoria, puesto que el tama1o del mapa
slo depende del tama1o de la memoria " el tama1o de la unidad de asignacin.

*.D.) Admi!i"tra/iK! de %a memoria /o! %i"ta" %i7ada"
+tra forma de mantener un registro de la memoria es mediante una lista ligada
de los segmentos de memoria asignados o libres, en donde un segmento puede
ser un proceso o un hueco entre dos procesos. La memoria de la figura *a, est!
mostrada como una lista ligada de segmentos en la figura *b,. -ada entrada de
la lista especifica un hueco *7, o un proceso *%,, la direccin donde comienza, su
longitud " un apuntador a la siguiente entrada.










Figura 29: ,dministracin de la memoria con listas ligadas
Fuente:
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default
4.asp
A B C D E
8 16 24 0
1 1 1 1 1 0 0
0 1 1 1 1 1 1 1
1 1 1 0 0 1 1 1
1
1 1 1 1 1 0 0
0
A B C D E
8 16 24 0
H 29 3
x
P 14 4
P 26 3
P 8 6
P 20 6
H 5 3
H 18 2
P 0 5
60
E8em%o de %i"ta" %i7ada"
En este eemplo, la lista de segmentos est! ordenada por direcciones, lo que da
la ventaa de que al terminar o intercambiar un proceso, la actualizacin de la
lista es directa.

*.D.* A"i7!a/iK! de% 5$e/o de i!ter/am'io
En algunos sistemas, cuando el proceso se encuentra en la memoria, no ha" un
hueco en el disco asignado a 0l. -uando deba intercambiarse, se deber! asignar
un hueco para 0l en el !rea de intercambio del disco. Los algoritmos para la
administracin del hueco de intercambio son los mismos que se utilizan para la
administracin de la memoria principal.

En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en
el disco. -uando el proceso sea intercambiado, siempre pasar! al hueco
asignado, en vez de ir a otro lugar cada vez. -uando el proceso conclu"a, se
libera el hueco de intercambio. La 3nica diferencia es que el hueco en disco
necesario para un proceso debe representarse como un n3mero entero de
bloques del disco. %or eemplo, un proceso de 5@.E N debe utilizar 5CN *usando
bloques de 5N,.

*.E FRA-MENTACI?N
La fragmentacin es la memoria que queda desperdiciada al usar los m0todos de
gestin de memoria que se vieron en los m0todos anteriores. 9anto el primer
auste, como el meor " el peor producen fragmentacin e2terna.

La fragmentacin es generada cuando durante el reemplazo de procesos quedan
huecos entre dos o m!s procesos de manera no contigua " cada hueco no es
capaz de soportar ning3n proceso de la lista de espera. 9al vez en conunto si
sea espacio suficiente, pero se requerira de un proceso de defragmentacin de
memoria o compactacin para lograrlo. Esta fragmentacin se denomina
fragmentacin e2terna.

E2iste otro tipo de fragmentacin conocida como fragmentacin interna, la cual
es generada cuando se reserva m!s memoria de la que el proceso va realmente
a usar. )in embargo a diferencia de la e2terna, estos huecos no se pueden
compactar para ser utilizados. )e debe de esperar a la finalizacin del proceso
para que se libere el bloque completo de la memoria.

*.1M LOS OVERLAYS
(na vez que surgi la multiprogramacin, los usuarios comenzaron a e2plorar la
forma de eecutar grandes cantidades de cdigo en !reas de memoria mu"
peque1as, au2iliados por algunas llamadas al sistema operativo. Es as como
nacen los _overla"s^.

Esta t0cnica consiste en que el programador divide lgicamente un programa
mu" grande en secciones que puedan almacenarse en las particiones de 8A:. Al
final de cada seccin del programa *o en otros lugares necesarios, el
programador insertaba una o varias llamadas al sistema con el fin de descargar
la seccin presente de 8A: " cargar otra, que en ese momento resida en disco
61
duro u otro medio de almacenamiento secundario. Aunque esta t0cnica era eficaz
*porque resolva el problema, no era eficiente *"a que no lo resolva de la meor
manera,. Esta solucin requera que el programador tuviera un conocimiento
mu" profundo del equipo de cmputo " de las llamadas al sistema operativo.
+tra desventaa era la portabilidad de un sistema a otro: las llamadas
cambiaban, los tama1os de particiones tambi0n. 8esumiendo, con esta t0cnica
se podan eecutar programas m!s grandes que las particiones de 8A:, donde la
divisin del cdigo corra a cuenta del programador " el control a cuenta del
sistema operativo.

*.11 MULTIPRO-RAMACI?N EN MEMORIA VIRTUAL
La necesidad cada vez m!s imperiosa de eecutar programas grandes " el
crecimiento en poder de las unidades centrales de procesamiento empuaron a
los dise1adores de los sistemas operativos a implantar un mecanismo para
eecutar autom!ticamente programas m!s grandes que la memoria real
disponible, esto es, de ofrecer _memoria virtual^.

La memoria virtual se llama as porque el programador ve una cantidad de
memoria mucho ma"or que la real, " en realidad se trata de la suma de la
memoria de almacenamiento primario " una cantidad determinada de
almacenamiento secundario. El sistema operativo, en su mdulo de maneo de
memoria, se encarga de intercambiar programas enteros, segmentos o p!ginas
entre la memoria real " el medio de almacenamiento secundario. )i lo que se
intercambia son procesos enteros, se habla entonces de multiprogramacin en
memoria real, pero si lo que se intercambian son segmentos o p!ginas, se puede
hablar de multiprogramacin con memoria virtual.

La memoria virtual se apo"a en varias t0cnicas interesantes para lograr su
obetivo. (na de las teoras m!s fuertes es la del _conunto de trabao^, la cual
se refiere a que un programa o proceso no est! usando todo su espacio de
direcciones en todo momento, sino que e2isten un conunto de localidades
activas que conforman el _conunto de trabao^. )i se logra que las p!ginas o
segmentos que contienen al conunto de trabao est0n siempre en 8A:, entonces
el programa se desempe1ar! mu" bien.

+tro factor importante es si los programas e2hiben un fenmeno llamado
_localidad^, lo cual quiere decir que algunos programas tienden a usar mucho las
instrucciones que est!n cercanas a la localidad de la instruccin que se est!
eecutando actualmente.

*.1) PA-INACI?N
Es una t0cnica de maneo de memoria, en la cual el espacio de memoria se
divide en secciones fsicas de igual tama1o, denominadas marcos de p!gina. Los
programas se dividen en unidades lgicas, denominadas p!ginas, que tienen el
mismo tama1o que los marcos de p!ginas. &e esta forma, se puede cargar una
p!gina de informacin en cualquier marco de p!gina.

Las p!ginas sirven como unidad de almacenamiento de informacin " de
transferencia entre memoria principal " memoria au2iliar o secundaria.

62
Los mecanismos de paginacin permiten la correspondencia correcta entre las
direcciones virtuales *dadas por los programas, " las direcciones reales de la
memoria que se reserven. %ara tener el control de las p!ginas, debe mantenerse
una tabla en memoria que se denomina tabla de Maa" de Pa7i!a *%:9, para
cada uno de los procesos.

Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de
memoria, sino que van a una unidad administradora de la memoria *MMU /
:emor" :anagement (nit,. Estas direcciones generadas por los programas se
llaman direcciones virtuales " conforman el hueco de direcciones virtuales. Este
hueco se divide en unidades llamadas p!ginas. Las unidades correspondientes en
la memoria fsica se llaman marcos para p!gina o frames. Las p!ginas " los
frames tienen siempre el mismo tama1o.

*.1).1 Ta'%a" de .7i!a"
El n3mero de p!gina virtual se divide en un n3mero de p!gina virtual *los bits
superiores, " un auste *los bits inferiores,. El n3mero de p!gina virtual se utiliza
como un ndice en la tabla de p!ginas para encontrar la entrada de esa p!gina
virtual. El n3mero de marco *si e2iste, se determina a partir de la tabla de
p!ginas. El n3mero de marco se asocia al e2tremo superior del auste "
reemplaza al n3mero de p!gina virtual para formar una direccin fsica que se
puede enviar a la memoria.

La finalidad de la tabla de p!ginas es asociar las p!ginas virtuales con los
marcos. En t0rminos matem!ticos, la tabla de p!ginas es una funcin, cu"o
argumento es el n3mero de p!gina virtual " como resultado el n3mero del marco
fsico. :ediante el resultado de esta funcin, se puede reemplazar el campo de la
p!gina virtual de una direccin virtual por un campo de marco, lo que produce
una direccin en la memoria fsica. )in embargo ha" que enfrentar dos aspectos
fundamentales:
5. La tabla de p!ginas puede ser demasiado grande.
6. La asociacin debe ser r!pida.

El primer punto proviene del hecho de que las computadoras modernas utilizan
direcciones virtuales de al menos @6 bits. %or eemplo, si el tama1o de p!gina es
de CN, un hueco de direcciones de @6 bits tiene un milln de p!ginasX en el caso
de un hueco de direcciones de GC bits, se tendra m!s informacin de la que uno
quisiera contemplar.

El segundo punto es consecuencia del hecho de que la asociacin virtual / fsica
debe hacerse en cada referencia a la memoria. (na instruccin com3n tiene una
palabra de instruccin " tambi0n un operando de memoria. %or ello, es necesario
remitirse una, dos o m!s veces en la tabla de p!ginas cada vez que se eecute
una instruccin.

*.1).) Di"eRo" de ta'%a" de .7i!a"
Ve/tor de re7i"tro" r.ido" e! 5ardware: consiste en una entrada por
p!gina virtual. Al iniciar el proceso se carga la tabla de p!ginas del proceso en
estos registros durante la asociacin no ha" que acceder a memoria.

63
De"&e!ta8a:
$ -ostosa en recursos si la tabla de p!ginas es grande *5 registro por
p!gina,
$ -ostosa en tiempo
$ En el cambio de conte2to habra que cargar la tabla de p!ginas

Ta'%a de .7i!a" e! memoria( en hardware slo se necesita un registro
que apunte al inicio de la tabla de p!ginas el cambio de conte2to: modifica un
registro.
De"&e!ta8a(
$ 7a" que hacer una o m!s referencias a memoria por cada instruccin para
acceder a la tabla de p!ginas

Ta'%a" de .7i!a" de &ario" !i&e%e": <o todo el espacio de direcciones
virtuales es utilizado por todos los procesos.

Memoria a"o/iati&a( consiste en adoptar una t0cnica diferente para acceder
a las p!ginas activas. Esta t0cnica representa el tener que incorporar a la
m!quina una memoria a"o/iati&a, en un peque1o conunto de registros de
direccin de p!gina *%A8s, del ingl0s page address registers,, cada uno de los
cuales contiene el n3mero de p!gina de una p!gina activa. Los %A8s
presentan la propiedad de poderse buscar en ellos de forma simult!nea el
n3mero de p!gina asociado a una direccin de programa en particular.

%or eemplo, la direccin de programa @6C@ se divide en el n3mero de p!gina
@ " el n3mero de palabra 6C@ *el tama1o de la p!gina sea 5BBB,. El n3mero
de p!gina se compara entonces de forma simult!nea con el contenido de
todos los %A8s, " se encuentra que coincide con el valor del %A8 E. Ello indica
que la p!gina @ ocupa en la actualidad la p!gina fsica n3mero E, de forma
que la direccin buscada ser! la E6C@.

Ve!ta8a(
$ 8educe el tiempo empleado en la transformacin de direcciones en un orden
de magnitud con respecto al caso en el que se guardaba la tabla de p!ginas
sobre memoria principal.


Figura 30: Traduccin de direcciones de memoria
Fuente: http://danielgu>manro'lesCc.'logspot.com/455(85)85:8archive.html

64
*.1).* Tra!"forma/iK! de dire//io!e" media!te $!a memoria
a"o/iati&a
-on el fin de que se pueda hacer referencia a todas las p!ginas activas a trav0s
de un %A8, ha" que disponer de tantos como marcos ha"a en la memoria. En
este caso, el marco al que har! referencia cada %A8, no vendr! implcito por la
situacin de 0ste, sino que deber! incluirse como un campo adicional en el
mismo %A8. El hardware de dire//io!amie!to de la memoria lleva a cabo,
entonces, la operacin de transformacin de direcciones. -omo antes, slo se
requiere la intervencin del software en el caso de que ha"a que sustituir una
p!gina.

)e cargan cclicamente en la memoria asociativa las direcciones de las p!ginas a
las que se ha hecho referencia con m!s frecuencia recientemente. Este
algoritmo, m!s bien primitivo, es, de hecho, bastante eficaz. El porcentae de
veces que se encuentra un n3mero de p!gina entre los registros asociativos est!
relacionado claramente con el n3mero de registros asociativos. -on D o 5G
registros asociativos, puede obtenerse un porcentae del DB al TBW. (n
porcentae del DBW significa que el DBW de las veces encontramos el n3mero de
p!gina deseado entre los registros asociativos. )i e2plorar los registros
asociativos lleva EB nanosegundos, " FEB nanosegundos acceder a memoria,
entonces un acceso a memoria `mapeada` lleva DBB nanosegundos cuando el
n3mero de p!gina se encuentra en los registros asociativos. )i no conseguimos
encontrar el n3mero de p!gina *EB ns,, entonces tenemos que acceder a la
memoria en primer lugar para buscar el n3mero de marco en la tabla de p!ginas
*FEB ns, " entonces acceder a la palabra deseada en memoria *FEB ns,, dando
en total 5EEB nanosegundos. %ara encontrar el tiempo efectivo de acceso a
memoria, tenemos que ponderar cada caso con su probabilidad:
Tiemo efe/ti&o de a//e"o a memoria M B,DB 2 DBB U B,6B 2 5EEB M TEB ns

En este eemplo, sufrimos un 6G,GW de retardo en el tiempo de acceso a
memoria *de FEB a TEB nanosegundos,.

*.1).0 E"tr$/t$ra de $!a ta'%a de .7i!a"
Pa7i!a/iK! 8er.r#$i/a( 8ompe el espacio de direccionamiento lgico en
m3ltiples tablas de p!gina.

Figura 31: 0aginacin jer?r3uica
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf
65
Ta'%a 5a"5 de .7i!a( El espacio de direcciones comunes es ma"or a @6
bits. El n3mero de p!gina virtual se usa como llave de una tabla de
p!gina hash. Esta tabla de p!gina contiene una lista con los elementos
asociados al mismo registro. El n3mero de p!gina virtual es comparado en
esta lista buscando una coincidencia, si se encuentra, el marco de p!gina
es e2trado.


Figura 32: Ta'la hash de p?gina
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf

P.7i!a I!&ertida( &isminu"e el desperdicio de memoria " aumenta el
tiempo de b3squeda. (sa la tabla hash para reducir tiempo de b3squeda.


Figura 33: 0?gina invertida
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf



66
*.1).; U"o de% TLB e! %a" ta'%a" de .7i!a"
-ada referencia a memoria virtual puede causar dos accesos a memoria fsica:
(na consulta en la tabla de p!ginas
(na para buscar el dato

%ara superar el problema se coloca una cache de alta velocidad para entradas de
tablas de p!gina llamada 9L? / 9ranslation Loo>aside ?uffer. Este buffer
contiene las entradas de tablas de p!gina que han sido usadas m!s
recientemente, adem!s funciona igual que una memoria cache


Figura 34: &so del T$< en las ta'las de p?ginas
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf

*.1).= Trad$//iK! de dire//io!e"
La direccin generada por la -%( se divide en:
N1mero de .7i!a 24( utilizado como ndice en la tabla de p!ginas que
contiene la direccin base de cada p!gina en la memoria fsica.
Off"et de %a .7i!a 2d4( combinado con la direccin base define la
direccin fsica que ser! enviada a la unidad de memoria.


Figura 35: Traduccin de direcciones
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf


67
*.1).C E"tr$/t$ra de $!a e!trada de ta'%a de .7i!a"
La estructura general de una tabla de p!ginas consta de lo siguiente:
<3mero de marco de p!gina
?it presente.ausenteX si el bit es 5 la entrada es v!lida " puede usarse, si
es B significa que la p!gina virtual de la entrada no est! en memoria, esto
causara un fallo de p!gina.
?it de %roteccinX indica que tipos de accesos est!n permitidos. )i el bit es
B permite leer " escribirX " si es 5 permite 3nicamente leer.
?it :odificada " )olicitada llevan el control del uso de la p!gina. El bit
modificado reflea el estado de la p!gina, " el bit solicitado se enciende
cada vez que se hace referencia a una p!ginaX "a sea para leer o escribir.
El ultimo bit permite inhabilitar el uso de cach0 con la pagina. #mportante
en el caso de p!ginas que corresponda a registros de dispositivos, no a
memoria.

No o!er /a/56 Modifi/ada Pre"e!teIA$"e!te
N$mero de mar/o de a7i!a

'olicita$a
rotecci"n

Figura 36: .structura de una entrada de ta'la de p?ginas
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf

*.1).D F$!/io!amie!to de memoria a7i!ada
-ada vez que la CPU genere una direccin de memoria 0sta es transformada por
una unidad hardware, de forma que en el bus del sistema se introduce la
direccin fsica correspondiente. Es importante observar que la paginacin es en
s misma una forma de reubicacin din!mica. -ada direccin lgica es
transformada en alguna direccin fsica por el hardware de paginacin. +bserve
tambi0n que si el tama1o de p!gina es una potencia de dos, el hardware no
precisa realizar ninguna divisin, simplemente sabe que los 3ltimos n bits, si el
tama1o de p!gina es de 6
n
, representan el desplazamiento, " los primeros bits la
p!gina.

-ada proceso debe tener su propia tabla de p!ginas, " su direccin de comienzo
en la memoria principal forma parte de la porcin del PCB utilizada para realizar
un cambio de proceso. -omo el n3mero de mar/o" *cantidad de memoria real,
asignados a un proceso ser! normalmente menor que el n3mero de p!ginas que
0ste utiliza, es mu" posible que una direccin del programa haga referencia a
una p!gina que no se encuentre en aquel momento en la memoria principal. En
este caso el elemento correspondiente de la tabla de p!ginas estar! vaco,
provocando el hardware una interrupcin de `fa%%o de .7i!a` si se intenta
acceder a ella. Esta interrupcin provoca que el control pase al software *al
sistema operativo,, para que 0ste inicie la transferencia de la p!gina que falta
desde la memoria secundaria a la memoria principal, " actualice de acuerdo con
ello la tabla de p!ginas. El proceso en eecucin se har! no listo hasta que se
ha"a completado esta transferencia. La posicin de las p!ginas en la memoria
secundaria puede guardarse en una tabla separada o en la misma tabla de
p!ginas. En este 3ltimo caso, es necesario un `'it de re"e!/ia` en cada
68
elemento de la tabla de p!ginas, para indicar si la p!gina se encuentra presente
o no en la memoria principal, " si el campo de direcciones debe interpretarse
como una direccin de marco, o bien como una direccin de la memoria
secundaria. La eleccin de la p!gina que habr! que sacar es el resultado de un
a%7oritmo de reem%a+o de .7i!a.

E8er/i/io de a%i/a/iK!
En este eemplo es de CN? de p!ginas " marcos, con un espacio de direcciones
virtuales de GCN " @6N? de memoria fsica, tenemos 5G p!ginas virtuales " ocho
marcos de p!gina. -uando el programa trata de tener acceso a la direccin B,
por eemplo, con la intrusin la direccin virtual B enva a la ::(. Esta ve que
tal direccin virtual est! en la pagina B*B a CBTE, que seg3n su correspondencia
es el marco de pagina 6*D5T6 a 566DF,. As, la ::(X lo 3nico que ve es una
solicitud de leer o escribir a la direccin D5T6, " lo hace. %or lo tanto, la ::( ha
establecido la correspondencia total de todas las direcciones entre B " CBTE con
las direcciones fsicas D5T6 a566DF.

&e forma similar la instruccin

Figura 37: .jemplo de aplicacin
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf


69
*.1).E P.7i!a" /omartida"
Esto es particularmente importante en un entorno de tiemo /omartido.
-onsideremos un sistema que soporta CB usuarios, cada uno de los cuales
eecuta un editor de te2tos. )i el editor de te2tos consta de @BN de cdigo " EN
de espacio para datos, necesitaramos 5CBBN para permitir a los CB usuarios. <o
obstante, si el programa es ree!tra!te, podra compartirse. Aqu vemos un
editor de tres p!ginas que es compartido por tres procesos. -ada proceso tiene
su propia p!gina de datos.

El cdigo reentrante *tambi0n llamado cdigo puro, es un cdigo no
automodificable. )i el cdigo es reentrante, entonces nunca cambia durante la
eecucin. As, dos o m!s procesos pueden eecutar el mismo cdigo al mismo
tiempo. -ada proceso, para su eecucin, tiene su PCB " su memoria para
mantener los datos. %or supuesto, los datos de todos esos procesos diferentes
varan para cada uno de ellos.

Cara/ter,"ti/a"
El espacio de direcciones lgico de un proceso puede ser no contiguo.
)e divide la memoria fsica en bloques de tama1o fio llamados marcos *frames,.
)e divide la memoria en bloques de tama1o llamados p!ginas.
)e mantiene informacin en los marcos libres.
%ara correr un programa de n paginas de tama1o, se necesitan encontrara n
marcos " cargar el programa.
)e establece una tabla de p!ginas para trasladar las direcciones lgicas a fsicas.
)e produce fragmentacin interna.
La memoria asociativa permite acelerar la traduccin.
-omparte programas de uso corriente.

Tabla 15.
Titulo: 1entajas y desventajas de las p?ginas compartidas

Ve!ta8a" De"&e!ta8a"
Es posible comenzar a eecutar un
programa, cargando solo una
parte del mismo en memoria, " el
resto se cargara bao la solicitud
El costo de hardware " software
se incrementa *si la tabla de
paginas es grande,, por la nueva
informacin que debe manearse
" el mecanismo de traduccin de
direcciones necesario. )e
consume mucho m!s recursos de
memoria, tiempo en el -%( para
su implantacin
<o es necesario que las paginas
est0n contiguas en memoria, por
lo que no se necesitan procesos
de compactacin cuando e2isten
marcos de paginas libres
dispersos en la memoria
)e deben reservar !reas de
memoria para las %:9 de los
procesos. Al no ser fia el tama1o
de estas, se crea un problema
semeante al de los programas
*como asignar un tama1o ptimo
sin desperdicio de memoria, u
`ovearhead` del procesador,
Es f!cil controlar todas las
p!ginas, "a que tienen el mismo
Aparece el problema de
fragmentacin interna
70
tama1o
El mecanismo de traduccin de
direcciones *&A9, permite
separar los conceptos de espacio
de direcciones " espacios de
memoria. 9odo el mecanismo es
transparente al usuario
Al implementar completamente
en hardware, resulta
problem!tica cuando la tabla de
p!ginas debe ser grande
)e libera al programador de la
restriccin de programar para un
tama1o fsico de memoria, con lo
que se aumenta su productividad.
)e puede programar en funcin
de una memoria mucho m!s
grande a la e2istente
La velocidad de acceso a memoria
principal es relativamente baa,
dado que cada referencia a
memoria involucra 6 accesos
Al no necesitarse cargar un
programa completo en memoria
para su eecucin, se puede
amentar el n3mero de programas
multiprogram!ndose

)e elimina el problema de
fragmentacin e2terna

-uando la tabla se implementa
completamente en hardware, se
obtiene una alta velocidad de
acceso a memoria

%ermite la posibilidad de
compartir programas de uso
corriente

-uando la tabla se implementa en
memoria principal, la tabla de
p!ginas puede crecer seg3n se
requiera

Fuente: ,utor

*.1).1M A%7oritmo" de reem%a+o de .7i!a"
-on el uso del m0todo de paginacin se puede llegar a saturar la memoria si se
incrementa demasiado el nivel de multiprogramacin. %or eemplo, si se corren
seis procesos, cada uno con un tama1o de diez p!ginas de las cuales en realidad
slo utiliza cinco, se tiene un ma"or uso del -%( " con marcos de sobra. %ero
pudiera suceder que cada uno de esos procesos quiera usar las diez p!ginas
resultando en una necesidad de GB marcos, cuando solo ha" CB disponibles.

Esto provoca sobre/asignacin " mientras un proceso de usuario se est!
eecutando, ocurre un fallo de p!gina. El hardware se bloquea con el sistema
operativo, el cual checa en sus tablas internas " se da cuenta que es un fallo de
p!gina " no un acceso ilegal de memoria. El sistema operativo determina si la
p!gina est! residiendo en disco, pero tambi0n determina que no ha" marcos de
memoria disponibles en la lista de marcos libres.

Al ocurrir el fallo de p!gina, el sistema operativo debe elegir una p!gina para
retirarla de la memoria " usar el espacio para la p!gina que se necesita para
71
desbloquear el sistema " que el hardware pueda seguir trabaando. )i la p!gina
por eliminar de la memoria fue modificada, se debe volver a escribir al disco para
mantener la informacin actualizadaX de lo contrario, si la p!gina no fue
modificada no es necesario rescribir la informacin a disco " la p!gina que se
carga simplemente se escribe sobre la p!gina a borrar en memoria. La figura @D
muestra gr!ficamente un intercambio de p!ginas entre la memoria principal " el
disco *memoria secundaria,.














:emoria %rincipal :emoria )ecundaria

Figura 38: Intercam'io de p?ginas
Fuente: http://so.fciencias.unam.mx/presentaciones/ch).pdf

)e elimina de la memoria principal una p!gina que no est0 en uso " se
reemplaza por una p!gina de la cual el sistema operativo tiene necesidad de uso.

*.1).11 A%7oritmo a%eatorio
Este algoritmo consiste simplemente en reemplazar aleatoriamente cualquier
p!gina de la memoria principal, sin hacer ning3n esfuerzo de prediccin.

Es el algoritmo m!s sencillo dado que no requiere tener ninguna informacin, sin
embargo, por no hacer uso de dicha informacin sobre el comportamiento del
proceso, no puede lograr un buen desempe1o.

*.1).1) A%7oritmo de reem%a+o de .7i!a" Ktimo
Este algoritmo debe de tener el menor ndice de fallos de p!gina de todos los
algoritmos. En teora, este algoritmo debe de reemplazar la p!gina que no va a
ser usada por el periodo m!s largo de tiempo.

&esafortunadamente, el algoritmo de reemplazo ptimo es f!cil en teora, pero
pr!cticamente imposible de implementar, dado que requiere conocer a futuro las
necesidades del sistema.

9al algoritmo e2iste " ha sido llamado +%9 o :#<, pero se usa 3nicamente para
estudios de comparaciones. %or eemplo, puede resultar mu" 3til saber que
aunque alg3n nuevo algoritmo no sea ptimo, est! entre el 56.@W del ptimo "
entre el C.FW en promedio.

Marco elegido para
intercambio de
Pgina a eliminar
Pgina a cargar
72
*.1).1* A%7oritmo de reem%a+o de .7i!a" "e71! e% $"o !o ta! re/ie!te
Este algoritmo hace uso de los dos bits de estado que est!n asociados a cada
p!gina. Estos bits son: 8, el cual se activa cuando se hace referencia *lectura .
escritura, a la p!gina asociadaX " :, que se activa cuando la p!gina asociada es
modificada *escritura,. Estos bits deben de ser actualizado cada vez que se haga
referencia a la memoria, por esto es de suma importancia que sean activados por
el hardware. (na vez activado el bit, permanece en ese estado hasta que el
sistema operativo, mediante software, modifica su estado.

Estos bits pueden ser utilizados para desarrollar un algoritmo de reemplazo que
cuando inicie el proceso, el sistema operativo asigne un valor de B a ambos bits
en todas las p!ginas. En cada interrupcin de relo, limpie el bit 8 para distinguir
cu!les p!ginas tuvieron referencia " cu!les no.

-uando ocurre un fallo de p!gina, el sistema operativo revisa ambos bits en
todas las p!ginas " las clasifica de la siguiente manera:
-lase B: La p!gina no ha sido referenciada, ni modificada.
-lase 5: La p!gina no ha sido referenciada, pero ha sido modificada.
-lase 6: La p!gina ha sido referenciada, pero no ha sido modificada.
-lase @: La p!gina ha sido referenciada " tambi0n modificada.

(na vez obtenida la clasificacin, elimina una p!gina de manera aleatoria de la
primera clase no vaca con el n3mero m!s peque1o. Esto porque para el
algoritmo es meor eliminar una p!gina modificada sin referencias en al menos
un intervalo de relo, que una p!gina en blanco de uso frecuente.

A pesar de que este algoritmo no es el ptimo, es f!cil de implementar " de
comprender " con mucha frecuencia es el m!s adecuado.

*.1).10 A%7oritmo de reem%a+o Urimero e! e!trarA rimero e! "a%irV
2FIFO4
El algoritmo m!s sencillo para reemplazo de p!ginas es el '#'+ *'irst #n $ 'irst
+ut,. Este algoritmo asocia a cada p!gina el momento en que 0sta fue trada a
memoria. -uando una p!gina debe ser reemplazada se selecciona a la m!s
antigua.

<o es estrictamente necesario registrar el momento de entrada de la p!gina a
memoria, sino que se puede crear una cola en la que se van agregando las
p!ginas conforme van llegando a la memoria. -uando se debe eliminar una
p!gina, se selecciona la que est! al frente de la lista *o sea, la m!s antigua de la
lista,. -uando llega una p!gina nueva, se inserta en la parte trasera de la cola.
En la figura se representa el funcionamiento de 0ste algoritmo.




Figura 39: Reempla>o de p?ginas FIF!
Fuente: http://sisinfo.itc.mx/IT#",0IR%%//aterias//at+/Imagenes"&nid:/!"II&:8Fig:.gif


F E D C B A
Pgina ms
reciente
Pgina ms
antigua
73
*.1).1; Reem%a+o de .7i!a" media!te e% a%7oritmo FIFO
Al igual que el algoritmo aleatorio, este algoritmo es f!cil de comprender " de
programar. )in embargo, su desempe1o no siempre es del todo bueno. La
p!gina reemplazada puede ser un mdulo de inicializacin que fue usado hace
mucho tiempo " "a no se tiene necesidad de 0l. %or otro lado, puede contener
una variable de uso mu" frecuente que fue inicializada de manera temprana "
est! en uso constante.

*.1).1= A%7oritmo de reem%a+o de .7i!a" de %a "e7$!da oort$!idad
Este algoritmo es una modificacin del '#'+. El algoritmo hace uso del bit de
referencia de la p!gina. -uando una p!gina ha sido seleccionada para reemplazo,
se revisa el bit de referencia. )i tiene valor de B, se procede a reemplazar la
p!gina. )i por el contrario, el bit de referencia es 5 se le da a la p!gina una
segunda oportunidad.








Figura 40: Reempla>o de p?ginas de la segunda oportunidad
Fuente: http://sisinfo.itc.mx/IT#",0IR%%//aterias//at+/Imagenes"&nid:/!"II&:8Fig:.gif

*.1).1C A%7oritmo de %a "e7$!da oort$!idad
-uando esto sucede, se le cambia el bit de referencia a B " se actualiza su
tiempo de llegada al tiempo actual para que la p!gina sea colocada al final de la
cola. &e esta manera, la p!gina espera todo un ciclo completo de p!ginas para
ser entonces reemplazada.

)i la p!gina tiene un uso mu" frecuente, el bit de referencia se mantendra
constantemente en 5 " la p!gina no sera reemplazada. En la figura anterior se
puede apreciar el funcionamiento del algoritmo.

*.1).1D A%7oritmo de reem%a+o de .7i!a" de% re%o8
:odificando el algoritmo de la segunda oportunidad *que a su vez es una
modificacin de '#'+, obtenemos el algoritmo aumentado de la segunda
oportunidad o algoritmo del relo. (samos la misma clasificacin vista en el
algoritmo de uso no tan reciente.

Este algoritmo organiza las p!ginas en una lista circular como se muestra en la
figura " se usa un apuntador *o manecilla, que se1ala a la p!gina m!s antigua.



F E D C B A
Pgina ms
reciente
Pgina ms
antigua
Pgina seleccionada para
reemplazo con bit 1
A F E D C B
Pgina ms
reciente
Pgina ms
antigua
El bit se cambia a 0 y se actualiza el tiempo de
llegada de la pgina
74

Figura 41: Reempla>o de p?ginas del reloj
Fuente: http://wwwdi.ujaen.es/=lina/Temas!//./!RI,1IRT&,$/Image:(.gif

*.1).1E A%7oritmo de re%o8
-uando se presenta un fallo de p!gina, el algoritmo revisa la p!gina a la que est!
apuntando la manecilla. )i el bit de referencia es B, la p!gina es reemplazada
con la nueva " la manecilla avanza una posicin. )i el bit es 5, entonces se
limpia *cambia a B, " la manecilla avanza a la siguiente p!gina " as
sucesivamente hasta encontrar una con bit B.

*.1).)M A%7oritmo de reem%a+o de .7i!a" U%a de me!or $"o re/ie!teV
2LRU4
Este algoritmo es una buena apro2imacin al ptimo " se basa en la observacin
de que las p!ginas de uso frecuente en las 3ltimas instrucciones se utilizan con
cierta probabilidad en las siguientes. &e la misma manera, es probable que las
p!ginas que no ha"an sido utilizadas durante mucho tiempo permanezcan sin
uso por bastante tiempo. #mplementando el algoritmo con esta base, al ocurrir
un fallo de p!gina, se elimina la p!gina que no ha"a sido utilizada durante el
tiempo m!s grande. &e ah su denominacin: menor uso reciente *L8( / Least
8ecent (se,.

A diferencia de los algoritmos anteriores, el L8( tiene un meor rendimiento en
cuanto al tiempo de aprovechamiento del -%( " del uso de la memoria. )in
embargo, el problema con este algoritmo es que su implementacin es mu" cara,
"a que requiere de una asistencia considerable de hardware. +tro problema es el
de determinar un orden para los marcos definido por el tiempo de menor uso.
%ara 0ste 3ltimo ha" dos posibles implementaciones:

Co!tadore"( En el caso m!s sencillo, se asocia cada entrada tabla/p!gina un
campo de tiempo/de/uso " se le agrega al -%( un relo lgico o contador. Este
relo es incrementado en cada referencia de memoria. )iempre que se hace
referencia a una p!gina, el contenido del registro del relo es copiado al campo
de tiempo/de/uso en la tabla de p!ginas para esa p!gina. &e esta forma,
siempre se dispone del OtiempoP de la 3ltima referencia a cada p!gina. La p!gina
que se reemplaza es la del menor valor de tiempo. Este esquema requiere de
una b3squeda en toda la tabla de p!ginas para encontrar la p!gina L8(, " una
escritura en memoria al campo de tiempo/de/uso en la tabla de p!ginas por cada
acceso a memoria. Los tiempos tambi0n se deben de mantener cuando las tablas
de p!ginas son alteradas *debido a organizacin del -%(,. )e debe considerar la
posibilidad de sobrecarga en el relo.
75

Pi%a"( +tra apro2imacin para implementar el reemplazo L8( es la de tener una
pila con los n3meros de p!ginas. )iempre que se hace referencia a una p!gina,
se quita de la pila " se pone en la parte superior. &e esta manera, la parte
superior de la pila es la p!gina de uso m!s reciente " la de abao es la L8(, tal
como se muestra en la figura


Figura 42: &so de pilas en el algoritmo $R&
Fuente: http://wwwdi.ujaen.es/=lina/Temas!//./!RI,1IRT&,$/Image:(.gif

*.1* SE-MENTACI?N
+tra opcin para el maneo de la memoria es usar una forma de liberar al
programador de la tarea del control de las tablas en e2pansin " contraccin, de
la misma forma que la memoria virtual elimina la preocupacin por organizar el
programa en una serie de pro"ectos.

Esto se puede lograr dotando a la m!quina de varios espacios independientes de
direcciones llamados segmentos. -ada segmento tiene una serie lineal de
direcciones, desde B hasta cierto m!2imo. La longitud de cada segmento puede
variar de B hasta un m!2imo permitido. Los distintos segmentos pueden tener "
de hecho tienen por lo general, longitudes distintas. Adem!s, la longitud de un
segmento puede variar durante la eecucin. La longitud de un segmento de la
pila puede crecer si algo entra a la pila " decrecer si algo sale de ella.

%uesto que cada segmento constitu"e un espacio independiente de direcciones,
los distintos segmentos pueden crecer o reducirse en forma independiente sin
afectar a los dem!s. En la figura siguiente podemos ver una lista de
comparacin entre la paginacin " la segmentacin.

La segmentacin tambi0n facilita el uso de procedimientos o datos compartidos
entre varios procesos. (n eemplo com3n son las bibliotecas compartidas
*hared -$$Ls,. Es frecuente que las estaciones de trabao modernas que
eecutan sistemas avanzados, con ventanas, tengan bibliotecas gr!ficas de
tama1o mu" grande que se compilan casi en todos los programas. En un sistema
segmentado, la biblioteca gr!fica se puede colocar en un segmento " compartirse
entre varios procesos, sin necesidad de tenerla en el espacio de direcciones de
cada proceso.

Aunque tambi0n es posible tener bibliotecas compartidas sin los sistemas con
paginacin pura, es mucho m!s compleo. &e hecho, estos sistemas simulan la
segmentacin.
A
C
E
B
D
B
D
A
C
E
76

Se7me!ta/iK! $ra
La implantacin de la segmentacin difiere del caso de la paginacin en un
sentido esencial: las p!ginas tienen un tama1o fio " los segmentos no. La figura
&esarrollo de fragmentacin e2terna " su correccin mediante compactacin,
muestra un eemplo de memoria fsica que contiene al principio E segmentos.
-onsideremos que el segmento 5 se elimina " su lugar se ocupa por el segmento
F, que es menor. El !rea que queda entre el segmento F " el 6 es un hueco.
Luego, el segmento C se reemplaza por el segmento E " el segmento @ es
reemplazado por el segmento G. &espu0s de que el sistema est0 en eecucin
durante cierto tiempo, la memoria quedar! dividida en varios bloques, algunos
con segmentos " otros con huecos.

*.10 COMPARACI?N DE PA-INACI?N Y SE-MENTACI?N
Este fenmeno de fragmentacin e2terna o chec2'oarding, desperdicia la
memoria correspondiente a los huecos, pero es f!cilmente corregido mediante el
uso de la compactacin. &e esta forma los huecos son unificados, generando as
un hueco de tama1o suficiente para albergar alg3n otro segmento m!s.



*a, *b, *c, *d, *e,














Figura 43: -esarrollo de fragmentacin externa y su correccin mediante
compactacin
Fuente:
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default
4.asp

*.1; SISTEMAS COMBINADOS
La paginacin " la segmentacin puras son m0todos de maneo de memoria
bastante efectivos, aunque la ma"ora de los sistemas operativos modernos
implantan esquemas combinados, es decir, combinan la paginacin " la
segmentacin. La idea de combinar estos esquemas se debe a que de esta forma
se aprovechan los conceptos de la divisin lgica de los programas *segmentos,
con la granularidad de las p!ginas. &e esta forma, un proceso estar! repartido
en la memoria real en peque1as unidades *p!ginas, cu"a liga son los segmentos.
9ambi0n es factible as el compartir segmentos a medida que las partes
Segmento
0 (4K)
Segmento
0 (4K)
Segmento
0 (4K)
Segmento
0 (4K)
Segmento
0 (4K)
Segmento
1 (8K)
Segmento
2 (5K)
Segmento
3 (8K)
Segmento
4 (7K)
Segmento
7 (5K)
Segmento
7 (5K)
Segmento
7 (5K)
Segmento
7 (5K)
Hueco
(3K)
Hueco
(3K)
Hueco
(3K)
Segmento
2 (5K)
Segmento
3 (8K)
Segmento
4 (7K)
Segmento
2 (5K)
Segmento
3 (8K)
Segmento
2 (5K)
Segmento
5 (4K)
Hueco
(3K)
Hueco
(3K)
Hueco
(4K)
Segmento
5 (4K)
Segmento
6 (4K)
Segmento
2 (5K)
Segmento
6 (4K)
Segmento
5 (4K)
Hueco
(10K)

necesitadas de los mismos se van referenciando *p!ginas,. %ara comprender este
esquema, nuevamente se ver! cmo se traduce una direccin virtual en una
localidad de memoria real. %ara la paginacin "
decir que el direccionamiento es _bidimensional^ porque se necesitan dos valores
para hallar la direccin real. %ara el caso combinado, se puede decir que se tiene
un direccionamiento _tridimension
relevantes para lograr la traduccin de direcciones. El sistema debe contar con
una tabla de procesos *9%,. %or cada rengln de esa tabla se tiene un n3mero de
proceso " una direccin a una tabla de segmentos.

Es decir, cada proceso tiene una tabla de segmentos. -uando un proceso hace
alguna referencia a memoria, se consulta 9% para encontrar la tabla de
segmentos de ese proceso. En cada tabla de segmentos de proceso *9)%, se
tienen los n3meros de los segmentos
segmento se tiene una direccin a una tabla de p!ginas. -ada tabla de p!ginas
tiene las direcciones de las p!ginas que componen a un solo segmento. %or
eemplo, el segmento _A^ puede estar formado por las p!ginas reales
_a^,^b^,^c^,^p^ " _2^. El segmento _?^ puede estar compuesto de las p!ginas
_f^,^g^,^^,^w^ " _z^.



Figura 44
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default

necesitadas de los mismos se van referenciando *p!ginas,. %ara comprender este
esquema, nuevamente se ver! cmo se traduce una direccin virtual en una
ria real. %ara la paginacin " segmentacin
decir que el direccionamiento es _bidimensional^ porque se necesitan dos valores
para hallar la direccin real. %ara el caso combinado, se puede decir que se tiene
un direccionamiento _tridimensional^. En la figura CC se muestran las partes
relevantes para lograr la traduccin de direcciones. El sistema debe contar con
una tabla de procesos *9%,. %or cada rengln de esa tabla se tiene un n3mero de
proceso " una direccin a una tabla de segmentos.
Es decir, cada proceso tiene una tabla de segmentos. -uando un proceso hace
alguna referencia a memoria, se consulta 9% para encontrar la tabla de
segmentos de ese proceso. En cada tabla de segmentos de proceso *9)%, se
tienen los n3meros de los segmentos que componen a ese proceso. %or cada
segmento se tiene una direccin a una tabla de p!ginas. -ada tabla de p!ginas
tiene las direcciones de las p!ginas que componen a un solo segmento. %or
eemplo, el segmento _A^ puede estar formado por las p!ginas reales
_a^,^b^,^c^,^p^ " _2^. El segmento _?^ puede estar compuesto de las p!ginas
44: Traduccin en la segmentacin"paginacin
Fuente:
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default
4.asp
77
necesitadas de los mismos se van referenciando *p!ginas,. %ara comprender este
esquema, nuevamente se ver! cmo se traduce una direccin virtual en una
segmentacin puras se puede
decir que el direccionamiento es _bidimensional^ porque se necesitan dos valores
para hallar la direccin real. %ara el caso combinado, se puede decir que se tiene
se muestran las partes
relevantes para lograr la traduccin de direcciones. El sistema debe contar con
una tabla de procesos *9%,. %or cada rengln de esa tabla se tiene un n3mero de
Es decir, cada proceso tiene una tabla de segmentos. -uando un proceso hace
alguna referencia a memoria, se consulta 9% para encontrar la tabla de
segmentos de ese proceso. En cada tabla de segmentos de proceso *9)%, se
que componen a ese proceso. %or cada
segmento se tiene una direccin a una tabla de p!ginas. -ada tabla de p!ginas
tiene las direcciones de las p!ginas que componen a un solo segmento. %or
eemplo, el segmento _A^ puede estar formado por las p!ginas reales
_a^,^b^,^c^,^p^ " _2^. El segmento _?^ puede estar compuesto de las p!ginas

paginacin
http://www.elprisma.com/apuntes/ingenieria8de8sistemas/sistemasoperativosfundamentos/default
78
Ahora, en este esquema pueden haber dos tipos de fallos: por fallo de p!gina "
por fallo de segmento. -uando se hace referencia a una direccin " el segmento
que la contiene no est! en 8A: *aunque sea parcialmente,, se provoca un fallo
por falta de segmento " lo que se hace es traerlo del medio de almacenamiento
secundario " crearle una tabla de p!ginas. (na vez cargado el segmento se
necesita localizar la p!gina correspondiente, pero 0sta no e2iste en 8A:, por lo
cual se provoca un fallo de p!gina " se carga de disco " finalmente se puede "a
traer la direccin deseada por medio del desplazamiento de la direccin virtual.

La eficiencia de la traduccin de direcciones tanto en paginacin pura,
segmentacin pura " esquemas combinados se meora usando memorias
asociativas para las tablas de p!ginas " segmentos, as como memorias cache
para guardar los mapeos m!s solicitados.

+tro aspecto importante es la estrategia para cargar p!ginas *o segmentos, a la
memoria 8A:. )e usan m!s com3nmente dos estrategias: cargado de p!ginas
por demanda " cargado de p!ginas anticipada. La estrategia de cargado por
demanda consiste en que las p!ginas solamente son llevadas a 8A: si fueron
solicitadas, es decir, si se hizo referencia a una direccin que cae dentro de ellas.
La carga anticipada consiste en tratar de adivinar qu0 p!ginas ser!n solicitadas
en el futuro inmediato " cargarlas de antemano, para que cuando se pidan "a no
ocurran fallos de p!gina. Ese _adivinar^ puede ser que se aproveche el fenmeno
de localidad " que las p!ginas que se cargan por anticipado sean aquellas que
contienen direcciones contiguas a la direccin que se acaba de referenciar. &e
hecho, el sistema operativo K:) usa un esquema combinado para cargar
p!ginas: cuando se hace referencia a una direccin cu"a p!gina no est! en 8A:,
se provoca un fallo de p!gina " se carga esa p!gina unto con algunas p!ginas
ad"acentes. En este caso la p!gina solicitada se carg por demanda " las
ad"acentes se cargaron por anticipacin.

*.1= -ESTI?N DE MEMORIA VIRTUAL EN 9INDO9S Y LINU:
*.1=.1 Si"tema oerati&o Li!$G( /omo 7e"tio!a %a memoria &irt$a%

El tama1o combinado del programa, datos " pila puede e2ceder la cantidad de
memoria fsica disponible. El sistema operativo guarda aquellas partes del
programa concurrentemente en memoria central " el resto en disco. -uando un
programa espera que se le cargue en memoria central de disco otra parte del
mismo, la -%( se puede asignar a otro proceso.

El sistema operativo gestiona niveles de memoria principal " memoria
secundaria:
9ransferencia de bloques entre ambos niveles*basada en paginacin,
&e memoria secundaria a principal: por demanda
&e memoria principal a secundaria: por e2pulsin

Esto conlleva unos beneficios: aumenta el grado de multiprogramacin, "
permite eecutar programas que no quepan en memoria principal


79
*.1=.) -e"tiK! de memoria e! "i"tema" 'a"ado" e! Li!$G
Los sistemas basados en (ni2 comparten multitud de aspectos con los basados
en Linu2, aunque ciertos puntos sustanciales son diferentes, " por ello a
continuacin se hace una diferenciacin. 7a" que destacar no obstante que el
sistema de gestin de memoria en Linu2 sigue siendo mu" compleo. 8especto a
memoria virtual, Linu2 hace uso de una estructura de tabla de p!ginas con tres
niveles. %ara utilizarlas, las direcciones virtuales en Linu2 se ven como un
conunto de C campos.

%ara tratar de aumentar la eficiencia al cargar " descargar p!ginas desde o hacia
la memoria, se ha definido un mecanismo particular. )in entrar en demasiados
detalles t0cnicos, basta indicar que se utiliza el istema de colegas, en el cual las
p!ginas son agrupadas en marcos de tama1o fio. %ara reemplazar p!ginas, se
utiliza el algoritmo del reloj, en el cual las p!ginas tienen asignada una especie
de variable de edad. -uando es necesario reemplazar una p!gina, aquellas que
no han sido referenciadas en bastante tiempo son las meores candidatas.

*.1=.* Dire//io!amie!to de memoria
La memoria es uno de los recursos fundamentales para un proceso. El sistema
operativo debe ofrecer la memoria a todos los procesos por igual de una forma
sencilla " uniforme. Al mismo tiempo, el sistema operativo debe tratar con el
hardware real para realizar dicha funcin, aprovech!ndolo al m!2imo. &esde el
punto de vista de la arquitectura, el sistema operativo suele tener asistencia del
hardware para realizar la gestin de memoria: por eemplo, en sistemas i@DG, se
dispone de una unidad especializada para ello, la /emory /anagement
&nit.A//&B

E2isten los tres tipos de direcciones inicialmente comentados, las lgicas, las
lineales " las fsicas. Las transformaciones " el formato de las direcciones
dependen de la arquitectura. En Linu2, los espacios de direcciones lgico " lineal
son id0nticos. En los procesadores de la arquitectura i@DG, el paso de direccin
lgica a lineal se denomina segmentacin, " de lineal a fsica paginacin. )i
deshabilitamos la paginacin, la direccin fsica es igual a la lineal.

*.1=.0 Se7me!ta/iK! e! Li!$G
Linu2 no aprovecha la segmentacin del i@DG. )in embargo, no puede
desactivarla, la utiliza de una forma mu" limitada. )e ha preferido la paginacin
sobre la segmentacin porque la gestin de memoria es m!s simple, " uno de los
obetivos de Linu2 es la portabilidad: muchos procesadores soportan malamente
la segmentacin, as que la independencia de la plataforma se vera mermada en
Linu2
80

Figura 45: /odelo de paginacin de $inux
Fuente: http://www.neo"tech.es/wp/doc/presentacion"erc.pdf

Linu2 gestiona la memoria central " las tablas de p!ginas utilizadas para
convertir las direcciones lineales *virtuales, en direcciones fsicas. #mplementa
una gestin de la memoria ampliamente independiente de la plataforma sobre la
que se eecuta. Este modelo no siempre se corresponde con el de la plataforma
sobre el cual se eecuta *eemplo, el anteriormente visto procesador i@DG,. Es
tan sumamente e2tenso el modelo de paginacin en Linu2 que se hace imposible
de abordar. <o obstante, podemos consultar en el archivo fuente mm.memor".c
la gestin de las tablas de p!gina *las encargadas de realizar la traduccin entre
dos tipos de direcciones,. Las funciones dependientes de la arquitectura se
definen en asm.potable.h


*.1C SISTEMA OPERATIVO 9INDO9S( COMO -ESTIONA LA
MEMORIA
Memoria e! 9i!*)
-uando un proceso se eecuta, el sistema establece un espacio de direcciones
virtuales propio de @6 bits, que permite habilitar un espacio de hasta C gigab"tes
de memoria. aste est! formado por la suma de la memoria 8A: instalada, m!s
la memoria virtual asignada.

Lindows es un sistema multiproceso, "a que permite la eecucin de varios
procesos a la vez. %or norma general, no todos los procesos caben en memoria a
la vez, "a sea porque e2istan muchos procesos, como que el tama1o de 0stos
sea demasiado grande. -uando esto sucede, Lindows alterna la permanencia de
0stos en memoria sacando unos " poniendo otros para que todos puedan
eecutarse. (tiliza la memoria virtual asignada a cada proceso para guardar los
datos cada vez que se saca de la memoria. A 0ste cambio entre memoria fsica "
memoria virtual se le conoce como Swai!7.

%ara aumentar la velocidad, el cambio no se realiza b"te a b"te, sino p!gina a
p!gina. -u"o tama1o en Lindows es de C N?. &e ah que toda la memoria virtual
" fsica est0 paginada. :emoria virtual en forma de p!ginas, " memoria fsica en
forma de marcos de p!gina.
81

*.1C.1 E"a/io" de dire//io!e" &irt$a%e"
(na direccin virtual no es una direccin fsica que apunte a una posicin de la
memoria principal, sino una direccin utilizada por el sistema para acceder a una
determinada p!gina de la tabla de p!ginas de un proceso. (tilizando
posteriormente diferentes algoritmos para traducir esa direccin virtual, el
sistema puede acceder a la memoria fsica donde est! contenida la informacin
del proceso. Esto permite que no podamos acceder a las posiciones de otros
procesos porque no es posible hacer referencia a dichas posiciones.

-uando un proceso es movido de la memoria fsica a la memoria virtual para
dear a otro que haga sus operaciones, el sistema se encarga de modificar la
tabla de p!ginas del proceso afectado "a sea para quitar referencias a memoria
*cuando sacamos un proceso de ella,, o para asignar nuevas direcciones
*introduce el proceso en memoria,. &e ah que sea imposible acceder a la
memoria de otro proceso.

*.1C.) E"tr$/t$ra de %a memoria
La estructura de la memoria en Lindows es en forma de !rbol, en el cual se
definen claramente @ partes:
Dire/torio de .7i!a" 2Pa7e Dire/torQ4( -ada proceso en eecucin,
dispone de un solo directorio de p!ginas. )e trata de una tabla con 5B6C
entradas que almacena los punteros a las tablas de p!gina.
Ta'%a de .7i!a" 2Pa7e Ta'%e4( -ada tabla de p!gina es a su vez otra
tabla que contiene otras 5B6C entradas que "a apuntan a las propias p!ginas.
P.7i!a 2Pa7e Frame4( -ada p!gina es un bloque de C N? donde se
almacenan los datos de cada proceso.

(n esquema quedara as:


Figura 46: .structura de la memoria
Fuente: http://www.neo"tech.es/wp/doc/presentacion"erc.pdf

:!s sencillo representarlo como una tabla de n filas *de B a C.222.222.222, que
representan p!ginas.


82
Tabla 16.
Titulo: Rangos de p?ginas

Fuente: http://www.neo"tech.es/wp/doc/presentacion"erc.pdf

*.1C.* P.7i!a( NH de %a .7i!a
8ango de direcciones virtuales: 8ango de direcciones virtuales que componen
la p!gina. Ka desde la direccin = hasta la direccin = U CBTG *C N?,.
8ango de direcciones fsicas: donde est! almacenada la p!gina. %uede estar
en memoria 8A: o en memoria virtual.
Almacenado en... :indica donde est! almacenada la p!gina.

*.1C.0 E"tado de %a" .7i!a"
Las p!ginas pueden estar en uno de los siguientes estados:
Li're: (na p!gina libre no puede ser accedida por ning3n proceso, pero s
puede ser reservada o encargada.
Re"er&ada: (na p!gina reservada es un bloque del espacio de direccin
virtual que ha sido fiada para usos futuros. <o se puede acceder a una
p!gina reservada, ni tiene datos almacenados. )implemente bloquea el rango
" no permite que sea asignado por otras funciones de asignacin.
E!/ar7ada: Aquella que "a ha sido asignada a un espacio fsico, "a sea en
memoria fsica o en memoria virtual. <o podemos saber donde est!
almacenada la p!gina, pues de eso se encarga el sistema " puede que est0
constantemente cambi!ndola de posicin, pero lo que s se sabe es que
cuando la necesitemos, ah lo tendremos


83










UNIDAD IV

-ESTI?N DE ARCHIVOS Y DIRECTORIOS
SISTEMA DE ARCHIVOS

0.1 SISTEMAS DE -ESTI?N DE ARCHIVOS
(n sistema de gestin de archivos es aquel sistema software que provee
servicios a los usuarios " aplicaciones en el uso de archivos. El 3nico camino que
tiene el usuario o la aplicacin para acceder a los archivos es a trav0s de un
sistema de gestin de archivos. Esto revela para el usuario o programador la
necesidad de desarrollar software de propsito especial para cada aplicacin "
provee al sistema un medio de controlar su ventaa m!s importante.

Estos son los obetivos de un sistema de gestin de archivos:
5. -umplir con las necesidades de gestin de datos " con los requisitos del
usuario, que inclu"e el almacenamiento de, datos " la capacidad de
eecutar las operaciones en la lista precedente.
6. 4arantizar, en la medida de lo posible, que el dato en el archivo es v!lido.
@. +ptimizar el rendimiento, ambos desde el punto de vista del sistema en
t0rminos de productividad global, " como punto de vista del usuario en
tiempos de respuesta.
C. %ara proveer soporte de E.) para una variedad de tipos de dispositivos de
almacenamiento.
E. %ara minimizar o eliminar la posibilidad de p0rdida o destruccin de datos.
G. %ara proveer un conunto est!ndar de rutinas de E.).
F. %ara proveer soporte de E.) para m3ltiples usuarios, en caso de sistemas
multiusuarios

0.) SOLUCI?N AL ALMACENAMIENTO DE LA INFORMACI?N
La solucin es el almacenamiento de la informacin en discos " otros
medios e2ternos en unidades llamadas ar/5i&o"(
Los archivos deben ser er"i"te!te", es decir que no deben verse
afectados por la creacin o terminacin de un proceso
Los archivos son una coleccin de datos con nombre
%ueden ser manipulados como una unidad por operaciones como:
open, close, create, destro", cop", rename, list
Los elementos de datos individuales dentro del archivo pueden ser
manipulados por operaciones como: read, write, update, insert,
delete
84

El O)istema de ArchivosP es la parte del sistema de administracin del
almacenamiento responsable, principalmente, de la administracin de los
archivos del almacenamiento secundario
Es la parte del sistema operativo responsable de permitir Ecompartir
controladamenteF la informacin de los archivos

0.* OPERACIONES <UE PUEDEN REALISAR LOS USUARIOS EN
LOS ARCHIVOS
Los usuarios deben poder crear, modificar " borrar archivos
)e deben poder compartir los archivos de una manera cuidadosamente
controlada
El mecanismo encargado de compartir los archivos debe proporcionar
varios tipos de acceso controlado:
E.: E,cceso de $ecturaF, E,cceso de .scrituraF, E,cceso de
.jecucinF, varias combinaciones de estos, etc.
)e debe poder estructurar los archivos de la manera m!s apropiada a cada
aplicacin. Los usuarios deben poder ordenar la transferencia de
informacin entre archivos
)e deben proporcionar posibilidades de ErespaldoF " ErecuperacinF para
prevenirse contra:
La p0rdida accidental de informacin
La destruccin maliciosa de informacin
)e debe poder referenciar a los archivos mediante E9om'res im'licosF,
brindando EIndependencia de -ispositivosF. En ambientes sensibles, el
sistema de archivos debe proporcionar posibilidades de E#ifradoF "
E-escifradoF
El sistema de archivos debe brindar una interface favorable al usuario:
&ebe suministrar una Evisin lgicaF de los datos " de las funciones que
ser!n eecutadas, en vez de una Evisin fMsicaF.
El usuario no debe tener que preocuparse por:
Los dispositivos particulares
&nde ser!n almacenados los datos
El formato de los datos en los dispositivos
Los medios fsicos de la transferencia de datos hacia " desde los
dispositivos

0.0 MANEOO DE ARCHIVOS
(n E,rchivoF es un conunto de registros relacionados
El Eistema de ,rchivosF es un componente importante de un sistema
operativo " suele contener:
E/Ntodos de accesoF relacionados con la manera de acceder a los
datos almacenados en archivos
E,dministracin de archivosF referida a la provisin de mecanismos
para que los archivos sean almacenados, referenciados,
compartidos " asegurados
E,dministracin del almacenamiento auxiliarF para la asignacin de
espacio a los archivos en los dispositivos de almacenamiento
secundario
85
EIntegridad del archivoF para garantizar la integridad de la
informacin del archivo
El sistema de archivos est! relacionado especialmente con la
administracin del espacio de almacenamiento secundario,
fundamentalmente con el almacenamiento de disco. (na forma de
organizacin de un sistema de archivos puede ser la siguiente:
)e utiliza una EraM> F para indicar en qu0 parte del disco comienza el
Edirectorio raM> F
El Edirectorio raM> F apunta a los Edirectorios de usuariosF
(n Edirectorio de usuarioF contiene una entrada para cada uno de
los archivos del usuario
-ada entrada de archivo apunta al lugar del disco donde est!
almacenado el archivo referenciado
Los nombres de archivos solo necesitan ser 3nicos dentro de un directorio
de usuario dado. El nombre del sistema para un archivo dado debe ser
3nico para el sistema de archivos.
En sistemas de archivo Ejer?r3uicosF el nombre del sistema para un
archivo suele estar formado como el Enom're de la trayectoriaF del
directorio raz al archivo



Figura 47: &n ?r'ol ar'itrario por usuario
Fuente: http://www.i'i'lio.org/pu'/linux/docs/$u#a/Tutoriales/doc"openldap"sam'a"cups"
python/html/imagenes/openldap"$-,08directory8tree8traditional8naming.png

0.0.1 Cara/ter,"ti/a" ara e% $"$ario
Almacenamiento permanente de informacin. <o desaparecen aunque se apague
el computador
-onunto de informacin estructurada de forma lgica seg3n criterios de
aplicacin
<ombres lgicos " estructurados
86
<o est!n ligados al ciclo de vida de una aplicacin particular
Abstraen los dispositivos de almacenamiento fsico
)e acceden a trav0s de llamadas al sistema operativo o de bibliotecas de
utilidades

0.; ATRIBUTOS DEL ARCHIVO
Nom're: la 3nica informacin en formato legible por una persona
Ide!tifi/a/iK! 1!i/a de% ar/5i&o Q de% $"$ario: descriptor interno del archivo,
due1o " grupo del archivo
Tio de ar/5i&o: necesario en sistemas que proporciona distintos formatos de
archivos
TamaRo de% ar/5i&o: n3mero de b"tes en el archivo, m!2imo tama1o posible,
etc.
Prote//iK!: control de accesos " de las operaciones sobre archivos
I!forma/iK! temora%: de creacin, de acceso, de modificacin, etc.
I!forma/iK! de /o!tro%: archivo oculto, de sistema, normal o directorio, etc.

0.= VISION FUNCIONAL DEL SISTEMA DE ARCHIVOS
0.=.1 Vi"iK! f$!/io!a%( "er&i/io"
)ervicio de nombrado
#dentifica un archivo dentro de alg3n tipo de organizacin lgica
*por eemplo er!rquica,
9ipo del archivo, que permite saber qu0 tipo de informacin
contiene
)ervicios de almacenamiento
)eguridad, proteccin " cifrado. <ecesario en sistemas multiusuario
Archivos compartidos por varios usuarios
9ratamiento especial seg3n el tipo de archivo *'#'+), enlaces,
dispositivos,
)ervicios de directorio
+rganizacin lgica *por eemplo directorios er!rquicos,
%ublicidad de la informacin

0.=.) Vi"iK! f$!/io!a%( or7a!i+a/iK! %K7i/a
En la vida real, las carpetas *archivos, en una oficina se agrupan siguiendo
alg3n criterio establecido por el usuario formando grupos. A estos grupos
se les asigna un nombre distinguirlos de otros grupos " para facilitar su
localizacin
Los sistemas de archivos permiten agrupar varios archivos en directorios
-ada directorio tiene un nombre lgico asignado por el usuario
#nicialmente un archivo pertenece a un directorio, aunque sera
interesante que un mismo archivo pudiera pertenecer a la vez a varios
directorios


87
0.=.* Vi"iK! f$!/io!a%( dire/torio"
&irectorio 3nico u organizacin a un solo nivel:
9odos los archivos est!n almacenados en un solo directorio
Es la estructura m!s simple " f!cil de soportar " entender
<o permite clasificar la informacin de ninguna manera
)i el sistema es multiusuario pueden e2istir problemas para
nombrar los archivos, aunque el espacio de nombres sea mu"
grande
&irectorio por cada usuario u organizacin a dos niveles:
)e asigna un directorio a cada usuario o a cada tipo de archivo
E2iste un directorio de directorios por encima *-irectorio maestroB
E2isten operaciones para actualizar el directorio maestro
Las operaciones sobre directorios se reducen al del usuario
E2isten problemas para cooperar entre usuarios
Estructura er!rquica en !rbol:
Es el caso de (<#=
<o ha" diferencia entre el directorio ra,+ " cualquier otro a otro
nivel
%ara referirse a un archivo completo es necesario saber su nombre "
el nombre de todos los directorios, desde la raz hasta el que lo
contiene *camino absoluto,, o bien desde el directorio actual
*camino relativo,
(<#= puede trabaar con cualquier erarqua de directorios, pero
e2iste una estandarizada
















Figura 48: Representacin de un directorio
Fuente: http://www.softli're.salta.org.ar/slw/GT/$/suse/ver>eichnisse8'aum.png

0.C OPERACIONES -ENYRICAS SOBRE ARCHIVOS
o /reat( crea un archivo con un nombre " proteccin " devuelve un descriptor
o de%ete( borra el archivo con un nombre
o oe!( abre un archivo con nombre para una*s, operacin*es, " devuelve un
descriptor
o /%o"e( cierra un archivo abierto con un descriptor
/
bin boot dev
X11R6
home lib mnt proc sbin etc usr
dict
include
lib
local
man
sbin
share
src
oscar
chan
nacho
var
spool
log
nis
cdrom
floppy
stick
...
... ...
...
progs
mp3
docs
88
o read( lee datos de un archivo abierto, usando su descriptor, a un almac0n en
memoria
o write( escribe datos a un archivo abierto, usando su descriptor, desde un
almac0n en memoria
o %"eeT( mueve el apuntador a relativoVaU desplazamiento
o io/t%( permite manipular los atributos de un archivo

0.D SISTEMAS DE ARCHIVOS
Los sistemas de archivos organizan los datos en los discos duros,
distribu"0ndolos en !reas fsicas que son f!cilmente accesibles.

Estos son los principales sistemas de archivos:
- 'A9
- 7%')
- )istemas de archivos (<#=
- <9')

0.D.1 FAT
9abla de asignacin de archivos 'A9 es el sistema m!s simple conocido por la
ma"ora de usuarios, tambi0n conocido por 'A95G " es el sistema de archivos
original presentado con :)/&+) en 5.TDB.

'A9 obtiene su nombre porque almacena los detalles de archivos " directorios en
una tabla de asignacin de archivos *file allocation table 'A9, al principio de cada
particin. -ada cluster tiene una entrada en la 'A9 que indica al sistema qu0
archivos " carpetas ha" almacenados.

%ara los archivos que ocupan m!s de un cluster, la 'A9 contiene toda la
informacin para poder reconstruir dicho archivo desde su cadena de cluster "
cargarlo en memoria.

&ebido a la posibilidad de que un archivo pueda ocupar m!s de un cluster, se
produce una r!pida " gran fragmentacin del disco.

El tama1o de los clusters viene determinado por el tama1o de las particiones, de
ah que en discos duros de gran capacidad se desperdicia mucho espacio.

Tabla 17.
Titulo: TamaJos de #luster en F,T:* y F,TD4

TamaRo de %a Parti/iK! TamaRo /%$"ter FAT1=
56D :? 6 N?
6EG :4 C N?
E56 :? D N?
5 4 5G N?
6 4 @6 N?
D 4? <ot supported
5G 4? <ot supported
@6 4? <ot supported
89
TamaRo de %a Parti/iK! TamaRo /%$"ter FAT*)
b6EG :? E56 b"tes
6GB :? a D 4? C N?
D 4? a 5G 4? D N?
5G 4? a @6 4? 5G N?
Y@6 4? @6 N?
Fuente: http://www.we'taller.com/maletin/articulos/sistemas"archivos"seguridad"datos.php

En 'A9 el nombre de archivo est! limitado a DU@ caracteres, no fue hasta la
aparicin de Lindows TE con su sistema de archivos 'A9 ampliado *K/'A9, que
desapareci 0sta limitacin.

'A9@6 es una versin meorada que permite crear particiones superiores a 6 4?
*hasta 6 terab"tes, " es m!s eficiente en el almacenamiento de archivos.

&ebido a que 'A9@6 utiliza cluster m!s peque1os que 'A95G, a igual tama1o de
particin, 'A9@6 aprovecha meor el espacio del disco duro.

0.D.) HPFS
7%') o sistemas de archivos de alto rendimiento se encuentran principalmente
en los ordenadores tipo +).6 aunque su desarrollo original fue hecho por
:icrosoft.

Este sistema de archivos es mucho m!s seguro, estable " fiable que los 'A9.

Estos acceden a los datos del disco duro a trav0s de un b3fer de alta velocidad
*cach0, " es capaz de soportar varias particiones activas al mismo tiempo.

En 7%') los nombres de archivo pueden contener hasta 6E

0.D.* SISTEMAS DE ARCHIVOS UNI:
El sistema de archivos (<#= es totalmente diferente de los que estamos viendo,
solo es posible acceder a los datos (<#= con otros sistemas de archivos (<#= o
con programas adicionales especiales *<')/)erver, o servidor de sistema de
archivos de red.
Estos sistemas no tienen limitacin en la longitud de los nombres de archivos, no
dividen el disco duro en bloques como el sistema 'A9 " son mu" estables.

0.D.0 NTFS
El sistema de archivos <9') "a es conocido por los usuarios de Lindows <9 " es
el sistema de archivos nativo de Lindows =% " en 0l vamos a detenernos dada la
importancia e inter0s en nuestro nuevo sistema operativo.

-on este sistema abandonamos definitivamente las 'A9 "a que pese a sus
meoras *K/'A9 " 'A9@6, apenas si cumple los requisitos de un sistema de
archivos profesional que pueda ser utilizado en servidores.

90
8ecordemos que los sistemas de archivos para sistemas operativos multiusuarios
" servidor precisan de derechos de acceso avanzados tanto para usuarios
individuales como avanzados.

Adem!s <9') permite particiones de disco ma"ores que las 'A9 *C 4?,, siendo
fundamental para el uso de servidores, " es compatible con los m0todos 8A#& *5
a E, que aumentan la velocidad de acceso " sirven para las copias de datos
mediante los discos duros espeo.

<9') distingue ma"3sculas de min3sculas en los nombres largos de archivos "
directorios permitiendo adem!s el uso de caracteres especiales como los acentos
*est!ndar (<#-+&E,

Las particiones <9') son f!cilmente recuperables ante un fallo del sistema al
contrario de lo que ocurre con las 'A9 " adem!s son menos propensas a la
fragmentacin.

La velocidad de un sistema <9') es mu" apreciable si es utilizado con
controladores )-)# de @6 bits, "a que es capaz gracias a su acceso asncrono a
los datos de desplazar los procesos de lectura " escritura a las colas de espera.


Figura 49: ,r3uitectura 9TF
Fuente: http://2eppanet.netfirms.com/2eppanet/opersyst/ntfsinfo/arctectu.gif

C?MO OR-ANISA NTFS LOS DATOS
<9') no utiliza bloques fios como lo hace 'A9 *solamente un bloque lo es " 0ste
contiene par!metros ?#+) establecidos por el hardware, el resto de archivos
pueden estar en cualquier parte del disco duro, es esto lo que determina que la
particin <9') sea m!s segura ante posibles fallos del sistema.

'sicamente <9') tambi0n divide el disco duro en clusters.

91
El tama1o del cluster lo establece <9') autom!ticamente en funcin del tama1o
de la particin aunque tambi0n puede ser configurado manualmente por el
usuario en el momento del formato.

En la organizacin de archivos <9') uega un papel fundamental la tabla
principal de archivos *:9',, 0sta tabla contiene para cada archivo un registro
*registro :9', que contiene a su vez los atributos de archivo " los datos sobre
qu0 partes del archivo se pueden encontrar en seg3n qu0 clusters del disco duro.

E2iste una copia de seguridad de la :'9 que en caso de error del disco duro
puede utilizarse para su reconstruccin " tanto la :9' como su copia pueden
encontrarse en cualquier lugar del disco duro "a que son tratados como lo que
son, archivos <9') completamente normales.

El tama1o del registro :'9 es de 6 N? " est! compuesto de:
- Encabezado *que contiene datos internos del sistema de archivos,
- <ombre e informacin del archivo " sus atributos
- 8eferencia a los sectores donde se encuentran ubicadas las distintas partes
del archivo
- Atributos de seguridad avanzados del sistema de archivos <9')

En <9') los directorios son tratados como archivos al igual que en la ma"ora de
sistemas de archivos solo que en <9') contienen otro atributo, por lo tanto
tambi0n e2iste un registro en la :'9 del directorio que es guardado como un
ndice compuesto por el nombre de los archivos " los subdirectorios " un n3mero
3nico de archivos o directorios.

)i el ndice ocupa menos de 5.CC N? se sit3a directamente en la :'9, para
archivos de ndices ma"ores se guardan como si fueran archivos " directorios
grandes de modo que en el registro :'9 original slo ha" referencias a otros
registros :'9 que son los que en realidad contienen los datos.

Es decir, para cada directorio tenemos un !rbol de donde cuelgan los archivos "
directorios que contienen. A esto se le denomina !rbol binario " permite que el
acceso a los datos sea mucho m!s r!pido, recordemos que en la 'A9 para buscar
un archivo primeramente debe e2aminar por completo la tabla " adem!s no
est!n ordenados.

S-ar putea să vă placă și