Você está na página 1de 233

Sistemas Operativos

Unidad Temas Subtemas


1 Introduccin a los
sistemas operativos.
1.1 Definicin y concepto.
1.2Funciones y caractersticas.
1.!volucin "istrica.
1.#$lasificacin.
1.%!structura &niveles o estratos de dise'o(.
1.)*+cleo.
1.).1 Interrupciones &F,I-(.
1.).2 Despac"ador&Sc"eduler(.
1.). .rimitivas de comunicacin&I.$(.
2 /dministracin de
procesos y del
procesador.
2.1 $oncepto de proceso.
2.2 !stados y transiciones de los procesos
2. .rocesos li0eros &-ilos o "ebras(.
2.# $oncurrencia y secuenciabilidad.
2.#.1 !1clusin mutua de secciones
criticas.
2.#.2 Sincroni2acin de procesos
en S.$.
2.#.2.1 3ecanismo de sem4foros.
2.#.2.2 3ecanismo de
monitores.
2.#. Interblo5ueo &Dead,oc6(.
2.#..1 .revencin.
2.#..2 Deteccin.
2.#.. 7ecuperacin.
2.% *iveles8 ob9etivos y criterios de
planificacin.
2.) T:cnicas de administracin del
planificador.
2.).1 FIFO
2.).2 S;F
2.). 77
2.).# <ueves multi=level.
2.).% 3ulti=level feedbac6 5ueves.
/dministracin de
memoria.
.1 .oltica y filosofa.
.2 3emoria real.
.2.1 /dministracin de almacenamiento.
.2.2 ;erar5ua.
.2. !strate0ia de administracin de
memoria.
.2.# /si0nacin conti0ua v.s. no
conti0ua.
.2.% 3ultipro0ramacin de particin fi9a8
particin variable8 con intercambio
de almacenamiento.
. Or0ani2acin de memoria virtual.
..1 !valuacin de las or0ani2aciones de
almacenamiento.
..2 .a0inacin.
.. Se0mentacin.
..# Sistemas de pa0inacin
se0mentacin.
.# /dministracin de memoria virtual.
.#.1 !strate0ias de administracin.
.#.2 T:cnicas de reempla2o de p40inas.
.#. .a0inacin por demanda.
.#.# .a0inacin anticipada.
.#.% ,iberacin de p40ina.
.#.) Tama'o de p40ina.
# /dministracin de
entrada>salida.
#.1 Dispositivos y mane9adores de dispositivos
&device drivers(.
4.2 Mecanismos y funciones de los manejadores
de dispositivos (device drivers).
4.3 Estructuras de datos para manejo de
dispositivos.
4.4 Operaciones de Entrada /salida.
% Sistema de arc"ivos. %.1$oncepto.
%.2*ocin de arc"ivo real y virtual.
%.$omponentes de un sistema de arc"ivos.
%.#Or0ani2acin l0ica y fsica.
%.%3ecanismos de acceso a los arc"ivos.
%.)3ane9o de espacio en memoria secundaria.
5.7Modelo jerr!uico.
%.?3ecanismos de recuperacin en caso de
falla.
) .roteccin y
se0uridad.
).1$oncepto y ob9etivos de proteccin.
).2Funciones del sistema de proteccin.
).Implantacin de matrices de acceso.
".4#rotecci$n %asada en el len&uaje.
).%$oncepto de se0uridad.
"."'lasificaciones de la se&uridad.
).@Aalidacin y amena2as al sistema.
).?$ifrado.
Unidad 1 Introduccin a los sistemas
operativos.
1.@ Definicin y concepto.
(n sistema operativo es el pro&rama !ue oculta la verdad del )ard*are al pro&ramador y presenta una
vista simple y a&rada%le de los arc)ivos nominados !ue pueden leerse y escri%irse. Es sistema operativo
res&uarda al pro&ramador del )ard*are del disco y presenta una interfa+ simple orientada al arc)ivo,
tam%i-n disimula muc)o del tra%ajo concerniente a interrupciones, relojes o cron$metros, manejo de
memoria y otras caracter.sticas de %ajo nivel.
/esde su creaci$n, las computadoras di&itales )an utili+ado un sistema de codificaci$n de instrucciones
en sistema de numeraci$n %inaria, es decir con los 01. Esto se de%e a !ue los circuitos inte&rados
funcionan con este principio, es decir, )ay corriente o no )ay corriente.
En el ori&en de la )istoria de las computadoras ( )ace unos cuarenta a2os), los sistemas
operativos no e3ist.an y la introducci$n de un pro&rama para ser ejecutado se convert.a en un incre.%le
esfuer+o !ue solo pod.a ser llevado a ca%o por muy pocos e3pertos. Esto )acia !ue las computadoras
fueran muy complicadas de usar y !ue se re!uiriera tener altos conocimientos t-cnicos para operarlas.
Era tan complejo su manejo, !ue en al&unos casos el resultado lle&a%a a ser desastroso.
4dems, el tiempo re!uerido para introducir un pro&rama en a!uellas &randes m!uinas de lento
proceso supera%a por muc)o el de ejecuci$n y resulta%a poco provec)osa la utili+aci$n de computadoras
para resoluci$n de pro%lemas prcticos.
1e %uscaron medios ms ela%orados para manipular la computadora, pero !ue a su ve+
simplificaran la la%or del operador o el usuario. Es entonces cuando sur&e la idea de crear un medio para
!ue el usuario pueda operar la computadora con un entorno, len&uaje y operaci$n %ien definido para
)acer un verdadero uso y e3plotaci$n de esta. 1ur&en los sistemas operativos.
(n sistema operativo es el encar&ado de %rindar al usuario una forma ami&a%le y sencilla de
operar, interpretar, codificar y emitir las ordenes al procesador central para !ue este realice las tareas
necesarias y especificas para completar una orden.
El sistema operativo, es el instrumento indispensa%le para )acer de la computadora un o%jeto 5til.
6ajo este nom%re se a&rupan todos a!uellos pro&ramas !ue permiten a los usuarios la utili+aci$n de este
enredo de ca%les y circuitos, !ue de otra manera serian dif.ciles de controlar. (n sistema operativo se
define como un conjunto de procedimientos manuales y automticos, !ue permiten a un &rupo de
usuarios compartir una instalaci$n de computadora efica+mente.
E3isten diversas definiciones de lo !ue es un 1istema Operativo, pero no )ay una definici$n e3acta, es
decir una !ue sea estndar7 a continuaci$n se presentan al&unas8
9.: 1e pueden ima&inar un 1istema Operativo como los pro&ramas, instalados en el soft*are o firm*are,
!ue )acen utili+a%le el )ard*are. El )ard*are proporciona la ;capacidad %ruta de c$mputo;7 los sistemas
operativos ponen dic)a capacidad de c$mputo al alcance de los usuarios y administran cuidadosamente
el )ard*are para lo&rar un %uen rendimiento.
2.: <os 1istemas Operativos son ante todo administradores de recursos7 el principal recurso !ue
administran es el )ard*are del computador 7adems de los procesadores, los medios de
almacenamiento, los dispositivos de entrada/salida, los dispositivos de comunicaci$n y los datos.
3.: (n 1istema Operativo es un pro&rama !ue act5a como intermediario entre el usuario y el )ard*are del
computador y su prop$sito es proporcionar el entorno en el cual el usuario pueda ejecutar pro&ramas.
Entonces, el o%jetivo principal de un 1istema Operativo es, lo&rar !ue el sistema de computaci$n se use
de manera c$moda, y el o%jetivo secundario es !ue el )ard*are del computador se emplee de manera
eficiente. 4.: (n 1istema Operativo es un conjunto de pro&ramas !ue controla la ejecuci$n de pro&ramas
de aplicaci$n y act5a como una interfa+ entre el usuario y el )ard*are de una computadora, esto es, un
1istema Operativo e3plota y administra los recursos de )ard*are de la computadora con el o%jeto de
proporcionar un conjunto de servicios a los usuarios del sistema.
En resumen, se podr.a decir !ue los 1istemas Operativos son un conjunto de pro&ramas !ue crean la
interfa+ del )ard*are con el usuario, y !ue tiene dos funciones primordiales, !ue son8
o =estionar el )ard*are.: 1e refiere al )ec)o de administrar de una forma ms eficiente los
recursos de la m!uina.
o >acilitar el tra%ajo al usuario.:#ermite una comunicaci$n con los dispositivos de la
m!uina.
El 1istema Operativo se encuentra almacenado en la memoria secundaria. #rimero se car&a y ejecuta un
peda+o de c$di&o !ue se encuentra en el procesador, el cual car&a el 6?O1, y este a su ve+ car&a el
1istema Operativo !ue car&a todos los pro&ramas de aplicaci$n y soft*are variado.
1.2 Funciones y caractersticas.
<a funci$n del sistema operativo es la de presentar al usuario con el e!uivalente de una m!uina
ampliada o m!uina virtual !ue sea ms fcil de pro&ramar !ue el )ard*are impl.cito.
?nterpreta los comandos !ue permiten al usuario comunicarse con el ordenador.
'oordina y manipula el )ard*are de la computadora, como la memoria, las impresoras, las
unidades de disco, el teclado o el mouse.
Or&ani+a los arc)ivos en diversos dispositivos de almacenamiento, como discos fle3i%les, discos
duros, discos compactos o cintas ma&n-ticas.
=estiona los errores de )ard*are y la p-rdida de datos.
1ervir de %ase para la creaci$n del soft*are lo&rando !ue e!uipos de marcas distintas funcionen
de manera anlo&a, salvando las diferencias e3istentes entre am%os.
'onfi&ura el entorno para el uso del soft*are y los perif-ricos7 dependiendo del tipo de m!uina
!ue se emplea, de%e esta%lecerse en forma l$&ica la disposici$n y caracter.sticas del e!uipo.
'omo por ejemplo, una microcomputadora tiene f.sicamente dos unidades de disco, puede
simular el uso de otras unidades de disco, !ue pueden ser virtuales utili+ando parte de la
memoria principal para tal fin. En caso de estar conectado a una red, el sistema operativo se
convierte en la plataforma de tra%ajo de los usuarios y es este !uien controla los elementos o
recursos !ue comparten. /e i&ual forma, provee de protecci$n a la informaci$n !ue almacena.
>unciones de los sistemas operativos.
9.: 4ceptar todos los tra%ajos y conservarlos )asta su finali+aci$n.
2.: ?nterpretaci$n de comandos8 ?nterpreta los comandos !ue permiten al usuario comunicarse con el
ordenador.
3.: 'ontrol de recursos8 'oordina y manipula el )ard*are de la computadora, como la memoria, las
impresoras, las unidades de disco, el teclado o el Mouse.
4.: Manejo de dispositivos de E/18 Or&ani+a los arc)ivos en diversos dispositivos de almacenamiento,
como discos fle3i%les, discos duros, discos compactos o cintas ma&n-ticas.
5.: Manejo de errores8 =estiona los errores de )ard*are y la p-rdida de datos.
".: 1ecuencia de tareas8 El sistema operativo de%e administrar la manera en !ue se reparten los
procesos. /efinir el orden. (@uien va primero y !uien despu-s).
7.: #rotecci$n8 Evitar !ue las acciones de un usuario afecten el tra%ajo !ue esta reali+ando otro usuario.
A.: Multiacceso8 (n usuario se puede conectar a otra m!uina sin tener !ue estar cerca de ella.
B.: 'onta%ilidad de recursos8 esta%lece el costo !ue se le co%ra a un usuario por utili+ar determinados
recursos.
'aracter.sticas de los sistemas operativos.
En &eneral, se puede decir !ue un 1istema Operativo tiene las si&uientes caracter.sticas8
'onveniencia. (n 1istema Operativo )ace ms conveniente el uso de una computadora.
Eficiencia. (n 1istema Operativo permite !ue los recursos de la computadora se usen de la
manera ms eficiente posi%le.
Ca%ilidad para evolucionar. (n 1istema Operativo de%er construirse de manera !ue permita el
desarrollo, prue%a o introducci$n efectiva de nuevas funciones del sistema sin interferir con el servicio.
Encar&ado de administrar el )ard*are. El 1istema Operativo se encar&a de manejar de una
mejor manera los recursos de la computadora en cuanto a )ard*are se refiere, esto es, asi&nar a cada
proceso una parte del procesador para poder compartir los recursos.
Delacionar dispositivos (&estionar a trav-s del Eernel). El 1istema Operativo se de%e encar&ar de
comunicar a los dispositivos perif-ricos, cuando el usuario as. lo re!uiera.
Or&ani+ar datos para acceso rpido y se&uro.
Manejar las comunicaciones en red. El 1istema Operativo permite al usuario manejar con alta
facilidad todo lo referente a la instalaci$n y uso de las redes de computadoras.
#rocesamiento por %ytes de flujo a trav-s del %us de datos.
>acilitar las entradas y salidas. (n 1istema Operativo de%e )acerle fcil al usuario el acceso y
manejo de los dispositivos de Entrada/1alida de la computadora.
El soft*are de aplicaci$n son pro&ramas !ue se utili+an para dise2ar, tal como el procesador de pala%ras,
len&uajes de pro&ramaci$n, )ojas de clculo, etc.
El soft*are de %ase sirve para interactuar el usuario con la m!uina, son un conjunto de pro&ramas !ue
facilitan el am%iente plataforma, y permite el dise2o del mismo.
El 1oft*are de %ase est compuesto por 8
o 'ar&adores.
o 'ompiladores.
o Ensam%ladores.
o Macros.
1. !volucin "istrica.
<os 1istemas Operativos, al i&ual !ue el Card*are de los computadores, )an sufrido una serie de
cam%ios revolucionarios llamados &eneraciones. En el caso del Card*are, las &eneraciones )an sido
marcadas por &randes avances en los componentes utili+ados, pasando de vlvulas ( primera &eneraci$n
) a transistores ( se&unda &eneraci$n ), a circuitos inte&rados ( tercera &eneraci$n), a circuitos inte&rados
de &ran y muy &ran escala (cuarta &eneraci$n). 'ada &eneraci$n 1ucesiva de )ard*are )a ido
acompa2ada de reducciones su%stanciales en los costos, tama2o, emisi$n de calor y consumo de
ener&.a, y por incrementos nota%les en velocidad y capacidad.
Beneracion $ero &d:cada de 1C#D(
<os primeros sistemas computacionales no pose.an sistemas operativos. <os usuarios ten.an completo
acceso al len&uaje de la ma!uina. Fodas las instrucciones eran codificadas a mano.
.rimera Beneracion &d:cada de 1C%D(
<os sistemas operativos de los a2os cincuenta fueron dise2ados para )acer mas fluida la transici$n entre
tra%ajos. 4ntes de !ue los sistemas fueran dise2ados, se perd.a un tiempo considera%le entre la
terminaci$n de un tra%ajo y el inicio del si&uiente. Este fue el comien+o de los sistemas de procesamiento
por lotes, donde los tra%ajos se reun.an por &rupos o lotes. 'uando el tra%ajo esta%a en ejecuci$n, este
tenia control total de la ma!uina. 4l terminar cada tra%ajo, el control era devuelto al sistema operativo, el
cual limpia%a y le.a e inicia%a el tra%ajo si&uiente.
4l inicio de los 50Gs esto )a%.a mejorado un poco con la introducci$n de tarjetas perforadas (las cuales
serv.an para introducir los pro&ramas de len&uajes de m!uina), puesto !ue ya no )a%.a necesidad de
utili+ar los ta%leros enc)ufa%les.
4dems el la%oratorio de investi&aci$n =eneral Motors implement$ el primer sistema operativo para la
?6M 709. <os sistemas de los 50Gs &eneralmente ejecuta%an una sola tarea, y la transici$n entre tareas se
suavi+a%a para lo&rar la m3ima utili+aci$n del sistema. Esto se conoce como sistemas de procesamiento
por lotes de un s$lo flujo, ya !ue los pro&ramas y los datos eran sometidos en &rupos o lotes.
<a introducci$n del transistor a mediados de los 50Gs cam%i$ la ima&en radicalmente.
1e crearon m!uinas suficientemente confia%les las cuales se instala%an en lu&ares especialmente
acondicionados, aun!ue s$lo las &randes universidades y las &randes corporaciones o %ien las oficinas
del &o%ierno se pod.an dar el lujo de tenerlas.
#ara poder correr un tra%ajo (pro&rama), ten.an !ue escri%irlo en papel (en >ortran o en len&uaje
ensam%lador) y despu-s se perforar.a en tarjetas. Ense&uida se llevar.a la pila de tarjetas al cuarto de
introducci$n al sistema y la entre&ar.a a uno de los operadores. 'uando la computadora terminara el
tra%ajo, un operador se diri&ir.a a la impresora y desprender.a la salida y la llevar.a al cuarto de salida,
para !ue la reco&iera el pro&ramador.
Se0unda Beneracion &a mitad de la d:cada de 1C)D(
<a caracter.stica de los sistemas operativos fue el desarrollo de los sistemas compartidos con
multipro&ramaci$n, y los principios del multiprocesamiento. En los sistemas de multipro&ramaci$n, varios
pro&ramas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se
cam%ia rpidamente de un tra%ajo a otro. En los sistemas de multiprocesamiento se utili+an varios
procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de
procesamiento de la ma!uina.
<a independencia de dispositivos aparece despu-s. (n usuario !ue desea escri%ir datos en una cinta en
sistemas de la primera &eneraci$n tenia !ue )acer referencia especifica a una unidad de cinta particular.
En la se&unda &eneraci$n, el pro&rama del usuario especifica%a tan solo !ue un arc)ivo i%a a ser escrito
en una unidad de cinta con cierto numero de pistas y cierta densidad.
1e desarrollo sistemas compartidos, en la !ue los usuarios pod.an acoplarse directamente con el
computador a trav-s de terminales. 1ur&ieron sistemas de tiempo real, en !ue los computadores fueron
utili+ados en el control de procesos industriales. <os sistemas de tiempo real se caracteri+an por proveer
una respuesta inmediata.
Tercera Beneracion &mitad de d:cada 1C)D a mitad d:cada de 1C@D(
1e inicia en 9B"4, con la introducci$n de la familia de computadores 1istema/3"0 de ?6M. <os
computadores de esta &eneraci$n fueron dise2ados como sistemas para usos &enerales . 'asi siempre
eran sistemas &randes, voluminosos, con el prop$sito de serlo todo para toda la &ente. Eran sistemas de
modos m5ltiples, al&unos de ellos soporta%an simultneamente procesos por lotes, tiempo compartido,
procesamiento de tiempo real y multiprocesamiento. Eran &randes y costosos, nunca antes se )a%.a
construido al&o similar, y muc)os de los esfuer+os de desarrollo terminaron muy por arri%a del
presupuesto y muc)o despu-s de lo !ue el planificador marca%a como fec)a de terminaci$n.
Estos sistemas introdujeron mayor complejidad a los am%ientes computacionales7 una complejidad a la
cual, en un principio, no esta%an acostum%rados los usuarios.
$uarta Beneracion &mitad de d:cada de 1C@D en adelante(
<os sistemas de la cuarta &eneraci$n constituyen el estado actual de la tecnolo&.a. Muc)os dise2adores
y usuarios se sienten aun inc$modos, despu-s de sus e3periencias con los sistemas operativos de la
tercera &eneraci$n.
'on la ampliaci$n del uso de redes de computadores y del procesamiento en l.nea los usuarios o%tienen
acceso a computadores alejados &eo&rficamente a trav-s de varios tipos de terminales.
<os sistemas de se&uridad se )a incrementado muc)o a)ora !ue la informaci$n pasa a trav-s de varios
tipos vulnera%les de l.neas de comunicaci$n. <a clave de cifrado esta reci%iendo muc)a atenci$n7 )an
sido necesario codificar los datos personales o de &ran intimidad para !ue7 aun si los datos son
e3puestos, no sean de utilidad a nadie mas !ue a los receptores adecuados.
El porcentaje de la po%laci$n !ue tiene acceso a un computador en la d-cada de los oc)enta es muc)o
mayor !ue nunca y aumenta rpidamente.
El concepto de ma!uinas virtuales es utili+ado. El usuario ya no se encuentra interesado en los detalles
f.sicos de7 sistema de computaci$n !ue esta siendo accedida. En su lu&ar, el usuario ve un panorama
llamado ma!uina virtual creado por el sistema operativo.
<os sistemas de %ases de datos )an ad!uirido &ran importancia. Huestro mundo es una sociedad
orientada )acia la informaci$n, y el tra%ajo de las %ases de datos es )acer !ue esta informaci$n sea
conveniente accesi%le de una manera controlada para a!uellos !ue tienen derec)os de acceso.
-istoria de los Sistemas Operativos.
#ara tratar de comprender los re!uisitos de un 1istema Operativo y el si&nificado de las principales
caracter.sticas de un 1istema Operativo contemporneo, es 5til considerar como )an ido evolucionando
-stos con el tiempo.
E3isten diferentes enfo!ues o versiones de como )an ido evolucionando los 1istemas Operativos
<a primera de estas versiones podr.a ser esta8
En los 40Gs, se introducen los pro&ramas %it a %it, por medio de interruptores mecnicos y despu-s se
introdujo el len&. m!uina !ue tra%aja%a por tarjetas perforadas.
'on las primeras computadoras, desde finales de los a2os 40 )asta la mitad de los a2os 50, el
pro&ramador interactua%a de manera directa con el )ard*are de la computadora, no e3ist.a realmente un
1istema Operativo7 las primeras computadoras utili+a%an %ul%os, la entrada de datos y los pro&ramas se
reali+a%an a trav-s del len&uaje m!uina (%its) o a trav-s de interruptores.
/urante los a2os 50Gs y "0Gs.: 4 principio de los 50Gs, la compa2.a =eneralGs Motors implanto el primer
sistema operativo para su ?6M 970. Empie+an a sur&ir las tarjetas perforadas las cuales permiten !ue los
usuarios (!ue en ese tiempo eran pro&ramadores, dise2adores, capturistas, etc.), se encar&uen de
modificar sus pro&ramas. Esta%lec.an o aparta%an tiempo, met.an o introduc.an sus pro&ramas, corre&.an
y depura%an sus pro&ramas en su tiempo. 4 esto se le llama%a tra%ajo en serie. Fodo esto se traduc.a en
p-rdida de tiempo y tiempos de pro&ramas e3cesivos.
En los a2os "0Gs y 70Gs se &enera el circuito inte&rado, se or&ani+an los tra%ajos y se &eneran los
procesos 6atc) (por lotes), lo cual consiste en determinar los tra%ajos comunes y reali+arlos todos juntos
de una sola ve+. En esta -poca sur&en las unidades de cinta y el car&ador de pro&ramas, el cual se
considera como el primer tipo de 1istema Operativo.
En los A0Gs, inici$ el au&e de la ?HFEDHEF en los Estados (nidos de 4m-rica. 4 finales de los a2os A0Gs
comien+a el &ran au&e y evoluci$n de los 1istemas Operativos. 1e descu%re el concepto de
multipro&ramaci$n !ue consiste en tener car&ados en memoria a varios tra%ajos al mismo tiempo, tema
principal de los 1istemas Operativos actuales.
<os B0Gs y el futuro, entramos a la era de la computaci$n distri%uida y del multiprocesamiento a trav-s de
m5ltiples redes de computadoras, aprovec)ando el ciclo del procesador.
1e tendr una confi&uraci$n dinmica con un reconocimiento inmediato de dispositivos y soft*are !ue se
a2ada o elimine de las redes a trav-s de procesos de re&istro y locali+adores.
<a conectividad se facilita &racias a estndares y protocolos de sistemas a%iertos por or&ani+aciones
como la Or&. ?ntern. de normas, fundaci$n de soft*are a%ierto, todo estar mas controlado por los
protocolos de comunicaci$n O1? y por la red de servicios di&ital ?1/H.
1e )a desarrollado otra versi$n, la cual se )a )ec)o en %ase a etapas o &eneraciones8
1a. !tapa &1C#%=1C%%( E Fulbos y cone1iones.
/espu-s de los infructuosos esfuer+os de 6a%%a&e, )u%o poco pro&reso en la construcci$n de las
computadoras di&itales, )asta la 1e&unda =uerra Mundial. 4 mitad de la d-cada de los 40Gs, Co*ard
4iEen (Carvard), Io)n Jon He*man (?nstituto de Estudios 4van+ados, #rinceton), I. #respe D. EcEert y
Killiams Mauc)ley ((niversidad de #ennsylvania), as. como 'onrad Luse (4lemania), entre otros
lo&raron construir m!uinas de clculo mediante %ul%os. Estas m!uinas eran enormes y llena%an
cuartos completos con decenas de miles de %ul%os, pero eran muc)o ms lentas !ue la computadora
casera ms econ$mica en nuestros d.as.
Foda la pro&ramaci$n se lleva%a a ca%o en len&uaje de m!uina a%soluto y con frecuencia se utili+a%an
cone3iones para controlar las funciones %sicas de la m!uina. <os len&uajes de pro&ramaci$n eran
desconocidos (incluso el len&uaje ensam%lador). Ho se o.a de los 1istemas Operativos el modo usual de
operaci$n consist.a en !ue el pro&ramador reserva%a cierto per.odo en una )oja de reservaci$n pe&ada a
la pared, i%a al cuarto de la m!uina, inserta%a su cone3i$n a la computadora y pasa%a unas )oras
esperando !ue nin&uno de los 20,000 o ms %ul%os se !uemara durante la ejecuci$n. <a inmensa
mayor.a de los pro%lemas eran clculos num-ricos directos, por ejemplo, el clculo de valores para ta%las
de senos y cosenos.
4 principio de la d-cada de los 50Gs la rutina mejoro un poco con la introducci$n de las tarjetas
perforadas. >ue entonces posi%le escri%ir los pro&ramas y leerlas en ve+ de insertar cone3iones, por lo
dems el proceso era el mismo.
2a. !tapa. &1C%%=1C)%( E Transistores y Sistemas de .rocesamiento por lotes.
<a introducci$n del transistor a mediados de los a2os 50Gs modific$ en forma radical el panorama. <as
computadoras se volvieron confia%les de forma !ue pod.an fa%ricarse y venderse a clientes, con la
esperan+a de !ue ellas continuaran funcionando lo suficiente como para reali+ar un tra%ajo en forma.
/ado el alto costo del e!uipo, no de%e sorprender el )ec)o de !ue las personas %uscaron en forma por
dems rpidas v.as para reducir el tiempo invertido. <a soluci$n !ue, por lo &eneral se adopt$, fue la del
sistema de procesamiento por lotes.
ra !tapa &1C)%=1C?D ( E $ircuitos inte0rados y multipro0ramacin.
<a 3"0 de ?6M fue la primera l.nea principal de computadoras !ue utili+$ los circuitos inte&rados, lo !ue
proporcion$ una &ran ventaja en el precio y desempe2o con respecto a las m!uinas de la se&unda
&eneraci$n, construidas a partir de transistores individuales. 1e tra%ajo con un sistema operativo enorme
y e3traordinariamente complejo. 4 pesar de su enorme tama2o y sus pro%lemas el sistema operativo de la
l.nea ?6M 3"0 y los sistemas operativos similares de esta &eneraci$n producidos por otros fa%ricantes de
computadoras realmente pudieron satisfacer, en forma ra+ona%le a la mayor.a de sus clientes. Fam%i-n
populari+aron varias t-cnicas fundamentales, ausentes de los sistemas operativos de la se&unda
&eneraci$n, de las cuales la ms importante era la de multipro&ramaci$n.
Otra caracter.stica era la capacidad de leer tra%ajos de las tarjetas al disco, tan pronto como lle&ara al
cuarto de c$mputo. 4s., siempre !ue concluyera un tra%ajo el sistema operativo pod.a car&ar un nuevo
tra%ajo del disco en la partici$n !ue !uedara desocupada y ejecutarlo.
#ta !tapa &1C?D=/ctualidad( E $omputadoras personales.
(n interesante desarrollo !ue comen+$ a llevarse a ca%o a mediados de la d-cada de los oc)enta )a sido
el crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas
operativos distri%uidos.
En los sistema operativo de red, los usuarios estn conscientes de la e3istencia de varias computadoras
y pueden conectarse con m!uinas remotas y copiar arc)ivos de una m!uina a otra. 'ada m!uina
ejecuta su propio sistema operativo local y tiene su propio usuario.
#or el contrario, un sistema operativo distri%uido es a!uel !ue aparece ante sus usuarios como un
sistema tradicional de un solo procesador, aun cuando est- compuesto por varios procesadores. En un
sistema distri%uido verdadero, los usuarios no de%en ser conscientes del lu&ar donde su pro&rama se
ejecute o de lu&ar donde se encuentren sus arc)ivos7 eso de%e ser manejado en forma automtica y
efica+ por el sistema operativo.
1.# $lasificacin.
Sistema Operativo 3ultitareas.
Es el modo de funcionamiento disponi%le en al&unos sistemas operativos, mediante el
cual una computadora procesa varias tareas al mismo tiempo. E3isten varios tipos de multitareas.
<a conmutaci$n de conte3tos (conte3t 1*itc)in&) es un tipo muy simple de multitarea en el !ue
dos o ms aplicaciones se car&an al mismo tiempo, pero en el !ue solo se esta procesando la
aplicaci$n !ue se encuentra en primer plano (la !ue ve el usuario). #ara activar otra tarea !ue se
encuentre en se&undo plano, el usuario de%e traer al primer plano la ventana o pantalla !ue
conten&a esa aplicaci$n. En la multitarea cooperativa, la !ue se utili+a en el sistema operativo
Macintos), las tareas en se&undo plano reci%en tiempo de procesado durante los tiempos
muertos de la tarea !ue se encuentra en primer plano (por ejemplo, cuando esta aplicaci$n esta
esperando informaci$n del usuario), y siempre !ue esta aplicaci$n lo permita. En los sistemas
multitarea de tiempo compartido, como O1/2, cada tarea reci%e la atenci$n del microprocesador
durante una fracci$n de se&undo. #ara mantener el sistema en orden, cada tarea reci%e un nivel
de prioridad o se procesa en orden secuencial. /ado !ue el sentido temporal del usuario es
muc)o ms lento !ue la velocidad de procesamiento del ordenador, las operaciones de multitarea
en tiempo compartido parecen ser simultneas.
Sistema Operativo 3onotareas.
<os sistemas operativos monotareas son ms primitivos y es todo lo contrario al visto
anteriormente, es decir, solo pueden manejar un proceso en cada momento o !ue solo puede
ejecutar las tareas de una en una. #or ejemplo cuando la computadora esta imprimiendo un
documento, no puede iniciar otro proceso ni responder a nuevas instrucciones )asta !ue se
termine la impresi$n.
Sistema Operativo 3onousuario.
<os sistemas monousuarios son a!uellos !ue nada ms puede atender a un solo usuario,
&racias a las limitaciones creadas por el )ard*are, los pro&ramas o el tipo de aplicaci$n !ue se
este ejecutando.
Estos tipos de sistemas son muy simples, por!ue todos los dispositivos de entrada, salida
y control dependen de la tarea !ue se esta utili+ando, esto !uiere decir, !ue las instrucciones !ue
se dan, son procesadas de inmediato7 ya !ue e3iste un solo usuario. M estn orientados
principalmente por los microcomputadores.
Sistema Operativo 3ultiusuario.
Es todo lo contrario a monousuario7 y en esta cate&or.a se encuentran todos los sistemas
!ue cumplen simultneamente las necesidades de dos o ms usuarios, !ue comparten mismos
recursos. Este tipo de sistemas se emplean especialmente en redes.
En otras pala%ras consiste en el fraccionamiento del tiempo (times)arin&).
Secuencia por ,otes.
<a secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecuci$n
de una lista de comandos del sistema operativo uno tras otro sin intervenci$n del usuario. En los
ordenadores ms &randes el proceso de reco&ida de pro&ramas y de conjuntos de datos de los
usuarios, la ejecuci$n de uno o unos pocos cada ve+ y la entre&a de los recursos a los usuarios.
#rocesamiento por lotes tam%i-n puede referirse al proceso de almacenar transacciones durante
un cierto lapso antes de su env.o a un arc)ivo maestro, por lo &eneral una operaci$n separada
!ue se efect5a durante la noc)e.
<os sistemas operativos por lotes (%atc)), en los !ue los pro&ramas eran tratados por
&rupos (lote) en ves de individualmente. <a funci$n de estos sistemas operativos consist.a en
car&ar en memoria un pro&rama de la cinta y ejecutarlo. 4l final este, se reali+a%a el salto a una
direcci$n de memoria desde donde reasum.a el control del sistema operativo !ue car&a%a el
si&uiente pro&rama y lo ejecuta%a. /e esta manera el tiempo entre un tra%ajo y el otro disminu.a
considera%lemente.
Tiempo 7eal.
(n sistema operativo en tiempo real procesa las instrucciones reci%idas al instante, y una
ve+ !ue )an sido procesadas muestra el resultado. Este tipo tiene relaci$n con los sistemas
operativos monousuarios, ya !ue e3iste un solo operador y no necesita compartir el procesador
entre varias solicitudes.
1u caracter.stica principal es dar respuestas rpidas7 por ejemplo en un caso de peli&ro
se necesitar.an respuestas inmediatas para evitar una catstrofe.
Tiempo $ompartido.
El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema
por ms de una persona al mismo tiempo. El tiempo compartido ejecuta pro&ramas separados de
forma concurrente, intercam%iando porciones de tiempo asi&nadas a cada pro&rama (usuario). En
este aspecto, es similar a la capacidad de multitareas !ue es com5n en la mayor.a de los
microordenadores o las microcomputadoras. 1in em%ar&o el tiempo compartido se asocia
&eneralmente con el acceso de varios usuarios a computadoras ms &randes y a or&ani+aciones
de servicios, mientras !ue la multitarea relacionada con las microcomputadoras implica la
reali+aci$n de m5ltiples tareas por un solo usuario.
CLASIFICACIN DE LOS SISTEMAS OPERATIVOS
Los sistemas operativos se clasifican en:
Sistemas operativos por lotes.
Sistemas operativos multiprogramacin o de multitarea.
Sistemas operativos multiusuario.
Sistemas operativos de tiempo compartido.
Sistemas operativos de tiempo real.
Sistemas operativos distribuidos.
Sistemas operativos de red.
Sistemas operativos paralelos.
Sistemas operativos por lotes.
Los sistemas operativos por lotes requieren que la informacin est reunida en bloque o "lote" (el
programa, los datos, y las instrucciones). Los trabaos son procesados en el orden de admisin,
seg!n el modelo de "primero en llegar primero en ser atendido". "n estos sistemas la memoria se
divide en dos #onas. $na de ellas es ocupada por el sistema operativo, y la otra se usa para cargar
programas transitorios para su eecucin. %uando termina la eecucin de un programa se carga
un nuevo programa en la misma #ona de memoria.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE,
del DC6600, el cual est orientado a procesamiento cientico pesado, ! el
E"EC ## para el $%#&AC ''0(, orientado a procesamiento acad)mico*
Algunas otras caractersticas con +ue cuentan los Sistemas Operativos por
lotes son,
-e+uiere +ue el programa, datos ! .rdenes al sistema sean
remitidos todos juntos en orma de lote*
Permiten poca o ninguna interacci.n usuario/programa en
ejecuci.n*
0a!or potencial de utili1aci.n de recursos +ue procesamiento
serial simple en sistemas multiusuarios*
%o conveniente para desarrollo de programas por 2ajo tiempo de
retorno ! depuraci.n uera de lnea*
Conveniente para programas de largos tiempos de ejecuci.n 3Ej*,
anlisis estadsticos, n.minas de personal, etc*4*
Se encuentra en muc5os computadores personales com2inados
con procesamiento serial*
Planiicaci.n del procesador sencilla, tpicamente procesados en
orden de llegada*
Planiicaci.n de memoria sencilla, generalmente se divide en
dos, parte residente del S*O* ! programas transitorios*
%o re+uieren gesti.n crtica de dispositivos en el tiempo*
Suelen proporcionar gesti.n sencilla de manejo de arc5ivos, se
re+uiere poca protecci.n ! ning6n control de concurrencia para el
acceso*
Figura. Traa!os m"s #omu$es %ue reali&a el Sistema Operativo por lotes.
Sistemas operativos multiprograma#i'$ o (e multitareas.
Los sistemas de multiprogramacin son capaces de soportar dos o m&s procesos concurrentes
m!ltiples, permiten que residan al mismo tiempo en la memoria primaria las instrucciones y los
datos procedentes de dos o m&s procesos. "stos sistemas implican la operacin de multiproceso,
para el maneo de la informacin. Se caracteri#an principalmente por un gran n!mero de
programas activos simult&neamente que compiten por los recursos del sistema, como el
procesador, la memoria, y los "dispositivos de "'S". "stos sistemas monitorean el estado de todos
los programas activos y recursos del sistema.
Sistemas Operativos como $%#", 7indo8s 9:, 7indo8s 9;, 7indo8s %<,
0AC=OS, OS/>, soportan la multitarea*
?as caractersticas de un Sistema Operativo de multiprogramaci.n o
multitarea son las siguientes,
0ejora productividad del sistema ! utili1aci.n de recursos*
0ultiplexa recursos entre varios programas*
@eneralmente soportan m6ltiples usuarios 3multiusuarios4*
Proporcionan acilidades para mantener el entorno de usuarios
individuales*
-e+uieren validaci.n de usuario para seguridad ! protecci.n*
Proporcionan conta2ilidad del uso de los recursos por parte de los
usuarios*
0ultitarea sin soporte multiusuario se encuentra en algunos
computadores personales o en sistemas de tiempo real*
Sistemas multiprocesadores son sistemas multitareas por
deinici.n !a +ue soportan la ejecuci.n simultnea de m6ltiples
tareas so2re dierentes procesadores*
En general, los sistemas de multiprogramaci.n se caracteri1an
por tener m6ltiples programas activos compitiendo por los
recursos del sistema, procesador, memoria, dispositivos
peri)ricos*
Sistemas operativos multiusuario.
Los sistemas operativos multiusuario permiten acceder simult&neamente a un sistema de
computadoras a travs de dos o m&s terminales. "ste tipo de sistema operativo es fundamental en
el maneo de redes de computadoras actualmente.
Sistemas operativos (e tiempo #omparti(o
Los sistemas operativos de tiempo compartido tratan de proporcionar un reparto equitativo de los
recursos comunes para dar la impresin a los usuarios de que poseen una computadora
independiente. "n estos sistemas el administrador de memoria proporciona aislamiento y
proteccin de los programas, ya que generalmente no tienen necesidad de comunicarse entre
ellos. "l control de "'S se encarga de proporcionar o retirar la asignacin a los dispositivos de
forma que se preserve la integridad del sistema y se proporcione servicio a todos los usuarios. "l
administrador de arc(ivos proporciona proteccin y control en el acceso de la informacin, dada
la posibilidad de concurrencia y conflictos al tratar de acceder a los arc(ivos.
Ejemplos de Sistemas Operativos de tiempo compartido son 0ultics, OS/A60
! DEC='0*
Caractersticas de los Sistemas Operativos de tiempo compartido,
Populares representantes de sistemas multiprogramados
multiusuario, Ej*, sistemas de diseBo asistido por computador,
procesamiento de texto, etc*
Dan la ilusi.n de +ue cada usuario tiene una m+uina para s*
0a!ora utili1an algoritmo de reparto circular*
Programas se ejecutan con prioridad rotatoria +ue se incrementa
con la espera ! disminu!e despu)s de concedido el servicio*
Evitan monopoli1aci.n del sistema asignando tiempos de
procesador 3time slot4*
@esti.n de memoria proporciona protecci.n a programas
residentes*
@esti.n de arc5ivo de2e proporcionar protecci.n ! control de
acceso de2ido a +ue pueden existir m6ltiples usuarios accesando
a un mismo arc5ivo*
Sistemas operativos (e tiempo real
?os Sistemas Operativos de tiempo real son a+uellos en los cuales no tiene
importancia el usuario, sino los procesos* Por lo general, estn su2utili1ados
sus recursos con la inalidad de prestar atenci.n a los procesos en el
momento +ue lo re+uieran* Se utili1an en entornos donde son procesados un
gran n6mero de sucesos o eventos*
0uc5os Sistemas Operativos de tiempo real son construidos para
aplicaciones mu! especicas como control de trico a)reo, 2olsas de
valores, control de reineras, control de laminadores* <am2i)n en el ramo
automovilstico ! de la electr.nica de consumo, las aplicaciones de tiempo
real estn creciendo mu! rpidamente* Otros campos de aplicaci.n de los
Sistemas Operativos de tiempo real son los siguientes,
Control de trenes*
<elecomunicaciones*
Sistemas de a2ricaci.n integrada*
Producci.n ! distri2uci.n de energa el)ctrica*
Control de ediicios*
Sistemas multimedia*
Algunos ejemplos de Sistemas Operativos de tiempo real son, &x7orCs,
Solaris, ?!ns OS ! Spectra* ?os Sistemas Operativos de tiempo real, cuentan
con las siguientes caractersticas,
Se dan en entornos en donde de2en ser aceptados ! procesados
gran cantidad de sucesos, la ma!ora externos al sistema
computacional, en 2reve tiempo o dentro de ciertos pla1os*
Se utili1an en control industrial, conmutaci.n tele.nica, control
de vuelo, simulaciones en tiempo real*, aplicaciones militares,
etc*
O2jetivo es proporcionar rpidos tiempos de respuesta*
Procesa ragas de miles de interrupciones por segundo sin
perder un solo suceso*
Proceso se activa tras ocurrencia de suceso, mediante
interrupci.n*
Proceso de ma!or prioridad expropia recursos*
Por tanto generalmente se utili1a planiicaci.n expropiativa
2asada en prioridades*
@esti.n de memoria menos exigente +ue tiempo compartido,
usualmente procesos son residentes permanentes en memoria*
Po2laci.n de procesos esttica en gran medida*
Poco movimiento de programas entre almacenamiento
secundario ! memoria*
@esti.n de arc5ivos se orienta ms a velocidad de acceso +ue a
utili1aci.n eiciente del recurso*
Sistemas Operativos (istriui(os.
Permiten distri2uir tra2ajos, tareas o procesos, entre un conjunto de
procesadores* Puede ser +ue este conjunto de procesadores est) en un
e+uipo o en dierentes, en este caso es transparente para el usuario* Existen
dos es+uemas 2sicos de )stos* $n sistema uertemente acoplado es a es
a+uel +ue comparte la memoria ! un reloj glo2al, cu!os tiempos de acceso
son similares para todos los procesadores* En un sistema d)2ilmente
acoplado los procesadores no comparten ni memoria ni reloj, !a +ue cada
uno cuenta con su memoria local*
?os sistemas distri2uidos de2en de ser mu! conia2les, !a +ue si un
componente del sistema se compone otro componente de2e de ser capa1 de
reempla1arlo*
Entre los dierentes Sistemas Operativos distri2uidos +ue existen tenemos los
siguientes, Sprite, Solaris=0C, 0ac5, C5orus, Spring, Amoe2a, <aos, etc*
Caractersticas de los Sistemas Operativos distri2uidos,
Colecci.n de sistemas aut.nomos capaces de comunicaci.n !
cooperaci.n mediante interconexiones 5ard8are ! sot8are*
@o2ierna operaci.n de un S*C* ! proporciona a2stracci.n de
m+uina virtual a los usuarios*
O2jetivo clave es la transparencia*
@eneralmente proporcionan medios para la compartici.n glo2al
de recursos*
Servicios aBadidos, denominaci.n glo2al, sistemas de arc5ivos
distri2uidos, acilidades para distri2uci.n de clculos 3a trav)s de
comunicaci.n de procesos internodos, llamadas a procedimientos
remotos, etc*4*
Sistemas Operativos de red.
Son a+uellos sistemas +ue mantienen a dos o ms computadoras unidas a
trav)s de alg6n medio de comunicaci.n 3sico o no4, con el o2jetivo
primordial de poder compartir los dierentes recursos ! la inormaci.n del
sistema*
El primer Sistema Operativo de red esta2a enocado a e+uipos con un
procesador 0otorola 6;000, pasando posteriormente a procesadores #ntel
como %ovell %et8are*
?os Sistemas Operativos de red ms ampliamente usados son, %ovell
%et8are, Personal %et8are, ?A% 0anager, 7indo8s %< Server, $%#",
?A%tastic*
Figura. Se muestra u$ Sistema Operativo e$ re(.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende +ue cuando existan dos o
ms procesos +ue compitan por alg6n recurso se puedan reali1ar o ejecutar
al mismo tiempo*
En $%#" existe tam2i)n la posi2ilidad de ejecutar programas sin tener +ue
atenderlos en orma interactiva, simulando paralelismo 3es decir, atender de
manera concurrente varios procesos de un mismo usuario4* As, en lugar de
esperar a +ue el proceso termine de ejecutarse 3como lo 5ara
normalmente4, regresa a atender al usuario inmediatamente despu)s de
5a2er creado el proceso*
Ejemplos de estos tipos de Sistemas Operativos estn, Alp5a, P&0, la serie
A#", +ue es utili1ado en los sistemas -S/6000 de #D0*
'on el paso del tiempo, los 1istemas Operativos fueron clasificndose de diferentes maneras,
dependiendo del uso o de la aplicaci$n !ue se les da%a. 4 continuaci$n se mostrarn diversos tipos de
1istemas Operativos !ue e3isten en la actualidad, con al&unas de sus caracter.sticas8
Sistemas Operativos por lotes.
<os 1istemas Operativos por lotes, procesan una &ran cantidad de tra%ajos con poca o nin&una
interacci$n entre los usuarios y los pro&ramas en ejecuci$n. 1e re5nen todos los tra%ajos comunes para
reali+arlos al mismo tiempo, evitando la espera de dos o ms tra%ajos como sucede en el procesamiento
en serie. Estos sistemas son de los ms tradicionales y anti&uos, y fueron introducidos alrededor de 9B5"
para aumentar la capacidad de procesamiento de los pro&ramas.
'uando estos sistemas son %ien planeados, pueden tener un tiempo de ejecuci$n muy alto, por!ue el
procesador es mejor utili+ado y los 1istemas Operativos pueden ser simples, de%ido a la secuencia%ilidad
de la ejecuci$n de los tra%ajos.
4l&unos ejemplos de 1istemas Operativos por lotes e3itosos son el 1'O#E, del /'""00, el cual est
orientado a procesamiento cient.fico pesado, y el ENE' ?? para el (H?J4' 9907, orientado a
procesamiento acad-mico.
4l&unas otras caracter.sticas con !ue cuentan los 1istemas Operativos por lotes son8
De!uiere !ue el pro&rama, datos y $rdenes al sistema sean remitidos todos juntos en forma de
lote.
#ermiten poca o nin&una interacci$n usuario/pro&rama en ejecuci$n.
Mayor potencial de utili+aci$n de recursos !ue procesamiento serial simple en sistemas
multiusuarios.
Ho conveniente para desarrollo de pro&ramas por %ajo tiempo de retorno y depuraci$n fuera de
l.nea.
'onveniente para pro&ramas de lar&os tiempos de ejecuci$n (ej, anlisis estad.sticos, n$minas
de personal, etc.)
1e encuentra en muc)os computadores personales com%inados con procesamiento serial.
#lanificaci$n del procesador sencilla, t.picamente procesados en orden de lle&ada.
#lanificaci$n de memoria sencilla, &eneralmente se divide en dos8 parte residente del 1.O. y
pro&ramas transitorios.
Ho re!uieren &esti$n cr.tica de dispositivos en el tiempo.
1uelen proporcionar &esti$n sencilla de manejo de arc)ivos8 se re!uiere poca protecci$n y nin&5n
control de concurrencia para el acceso.
>i&ura. Fra%ajos ms comunes !ue reali+a el 1istema Operativo por lotes.
Sistemas Operativos de tiempo real.
<os 1istemas Operativos de tiempo real son a!uelos en los cuales no tiene importancia el usuario, sino
los procesos. #or lo &eneral, estn su%utili+ados sus recursos con la finalidad de prestar atenci$n a los
procesos en el momento !ue lo re!uieran. se utili+an en entornos donde son procesados un &ran n5mero
de sucesos o eventos.
Muc)os 1istemas Operativos de tiempo real son construidos para aplicaciones muy espec.ficas como
control de trfico a-reo, %olsas de valores, control de refiner.as, control de laminadores. Fam%i-n en el
ramo automovil.stico y de la electr$nica de consumo, las aplicaciones de tiempo real estn creciendo muy
rpidamente. Otros campos de aplicaci$n de los 1istemas Operativos de tiempo real son los si&uientes8
'ontrol de trenes.
Felecomunicaciones.
1istemas de fa%ricaci$n inte&rada.
#roducci$n y distri%uci$n de ener&.a el-ctrica.
'ontrol de edificios.
1istemas multimedia.
4l&unos ejemplos de 1istemas Operativos de tiempo real son8 J3KorEs, 1olaris, <yns O1 y 1pectra. <os
1istemas Operativos de tiempo real, cuentan con las si&uientes caracter.sticas8
1e dan en entornos en donde de%en ser aceptados y procesados &ran cantidad de sucesos, la
mayor.a e3ternos al sisterma computacional, en %reve tiempo o dentro de ciertos pla+os.
1e utli+an en control industrial, conmutaci$n telef$nica, control de vuelo, simulaciones en tiempo
real., aplicaciones militares, etc.
O%jetivo es proporcionar rpidos tiempos de respuesta.
#rocesa rfa&as de miles de interrupciones por se&undo sin perder un solo suceso.
#roceso se activa tras ocurrencia de suceso, mediante interrupci$n.
#roceso de mayor prioridad e3propia recursos.
#or tanto &eneralmente se utli+a planificaci$n e3propiativa %asada en prioridades.
=esti$n de memoria menos e3i&ente !ue tiempo compartido, usualmente procesos son
residentes permanentes en memoria.
#o%laci$n de procesos esttica en &ran medida.
#oco movimiento de pro&ramas entre almacenamiento secundario y memoria.
=esti$n de arc)ivos se orienta ms a velocidad de acceso !ue a utli+aci$n eficiente del recurso.
Sistemas Operativos de multipro0ramacin &o Sistemas Operativos de multitarea(.
1e distin&uen por sus )a%ilidades para poder soportar la ejecuci$n de dos o ms tra%ajos activos (!ue se
estn ejecutado) al mismo tiempo. Esto trae como resultado !ue la (nidad 'entral de #rocesamiento
(('#) siempre ten&a al&una tarea !ue ejecutar, aprovec)ando al m3imo su utili+aci$n.
1u o%jetivo es tener a varias tareas en la memoria principal, de manera !ue cada uno est usando el
procesador, o un procesador distinto, es decir, involucra m!uinas con ms de una ('#.
1istemas Operativos como (H?N, Kindo*s B5, Kindo*s BA, Kindo*s HF, M4':O1, O1/2, soportan la
multitarea.
<as caracter.sticas de un 1istema Operativo de multipro&ramaci$n o multitarea son las si&uientes8
Mejora productividad del sistema y utili+aci$n de recursos.
Multiple3a recursos entre varios pro&ramas.
=eneralmente soportan m5ltiples usuarios (multiusuarios).
#roporcionan facilidades para mantener el entorno de usuarios inndividuales.
De!uieren validaci$n de usuario para se&uridad y protecci$n.
#roporcionan conta%ilidad del uso de los recursos por parte de los usuarios.
Multitarea sin soprte multiusuario se encuentra en al&unos computadores personales o en
sistemas de tiempo real.
1istemas multiprocesadores son sistemas multitareas por definici$n ya !ue soportan la
ejecuci$n simultnea de m5ltiples tareas so%re diferentes procesadores.
En &eneral, los sistemas de multipro&ramaci$n se caracteri+an por tener m5ltiples pro&ramas
activos compitiendo por los recursos del sistema8 procesador, memoria, dispositivos perif-ricos.
Sistemas Operativos de tiempo compartido.
#ermiten la simulaci$n de !ue el sistema y sus recursos son todos para cada usuarios. El usuario )ace
una petici$n a la computadora, esta la procesa tan pronto como le es posi%le, y la respuesta aparecer en
la terminal del usuario.
<os principales recursos del sistema, el procesador, la memoria, dispositivos de E/1, son continuamente
utili+ados entre los diversos usuarios, dando a cada usuario la ilusi$n de !ue tiene el sistema dedicado
para s. mismo. Esto trae como consecuencia una &ran car&a de tra%ajo al 1istema Operativo,
principalmente en la administraci$n de memoria principal y secundaria.
Ejemplos de 1istemas Operativos de tiempo compartido son Multics, O1/3"0 y /E':90.
'aracter.sticas de los 1istemas Operativos de tiempo compartido8
#opulares representantes de sistemas multipro&ramados multiusuario, ej8 sistemas de dise2o
asistido por computador, procesamiento de te3to, etc.
/an la ilusi$n de !ue cada usuario tiene una m!uina para s..
Mayor.a utili+an al&oritmo de reparto circular.
#ro&ramas se ejcutan con prioridad rotatoria !ue se incrementa con la espera y disminuye
despu-s de concedido el servicio.
Evitan monopoli+aci$n del sistema asi&nando tiempos de procesador (time slot).
=esti$n de memoria proporciona protecci$n a pro&ramas residentes.
=esti$n de arc)ivo de%e proporcionar protecci$n y control de acceso de%ido a !ue pueden
e3istir m5ltiples usuarios accesando un mismo arc)ivos.
Sistemas Operativos distribuidos.
#ermiten distri%uir tra%ajos, tareas o procesos, entre un conjunto de procesadores. #uede ser !ue este
conjunto de procesadores est- en un e!uipo o en diferentes, en este caso es trasparente para el usuario.
E3isten dos es!uemas %sicos de -stos. (n sistema fuertemente acoplado es a es a!uel !ue comparte la
memoria y un reloj &lo%al, cuyos tiempos de acceso son similares para todos los procesadores. En un
sistema d-%ilmente acoplado los procesadores no comparten ni memoria ni reloj, ya !ue cada uno cuenta
con su memoria local.
<os sistemas distri%uidos de%en de ser muy confia%les, ya !ue si un componente del sistema se compone
otro componente de%e de ser capa+ de reempla+arlo.
Entre los diferentes 1istemas Operativos distri%uidos !ue e3isten tenemos los si&uientes8 1prite, 1olaris:
M', Mac), ')orus, 1prin&, 4moe%a, Faos, etc.
'aracteristicas de los 1istemas Operativos distri%uidos8
'olecci$n de sistemas aut$nomos capaces de comunicaci$n y cooperaci$n mediante
intercone3iones )ard*are y soft*are .
=o%ierna operaci$n de un 1.'. y proporciona a%stracci$n de m!uina virtual a los usuarios.
O%jetivo clave es la transparencia.
=eneralmente proporcionan medios para la compartici$n &lo%al de recursos.
1ervicios a2adidos8 denominaci$n &lo%al, sistemas de arc)ivos distri%uidos, facilidades para
distri%uci$n de clculos (a trav-s de comunicaci$n de procesos internodos, llamadas a
procedimientos remotos, etc.).
Sistemas Operativos de red.
1on a!uellos sistemas !ue mantienen a dos o ms computadoras unidas atrav-s de al&5n medio de
comunicaci$n (fisico o no), con el o%jetivo primordial de poder compartir los diferentes recursos y la
informaci$n del sistema.
El primer 1istema Operativo de red esta%a enfocado a e!uipos con un procesador Motorola "A000,
pasando posteriormente a procesadores ?ntel como Hovell Het*are.
<os 1istemas Operativos de red mas ampliamente usados son8 Hovell Het*are, #ersonal Het*are, <4H
Mana&er, Kindo*s HF 1erver, (H?N, <4Htastic.

Sistemas Operativos paralelos.
En estos tipos de 1istemas Operativos se pretende !ue cuando e3istan dos o ms procesos !ue
compitan por al&5n recurso se puedan reali+ar o ejecutar al mismo tiempo.
En (H?N e3iste tam%i-n la posi%ilidad de ejecutar pro&ramas sin tener !ue atenderlos en forma
interactiva, sinulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo
usuario). 4s., en lu&ar de esperar a !ue el proceso termine de ejecutarse (como lo )ar.a normalmente),
re&resa a atender al usuario inmediatamente despu-s de )a%er creado el proceso.
Ejemplos de estos tipos de 1istemas Operativos estn8 4lp)a, #JM, la serie 4?N, !ue es utili+ado en los
sistemas D1/"000 de ?6M.
1.% !structura &niveles o estratos de dise'o(.
?nternamente los sistemas operativos estructuralmente de se clasifican se&5n como se )ayan or&ani+ado
int-rnamente en su dise2o, por esto la clasificaci$n ms com5n de los 1.O. son8
1istemas monol.ticos8
En estos sistemas operativos se escri%en como un conjunto de procedimientos, cada uno de los cuales
puede llamar a cual!uiera de los otros siempre !ue lo necesite. 'uando se emplea esta t-cnica, cada
procedimiento del sistema tiene una interfa+ %ien definida en t-rminos de parmetros y resultados, y cada
una tiene la li%ertad de llamar a cual!uiera otra, si la 5ltima ofrece al&5n clculo 5til !ue la primera
necesite.
#ara construir el pro&rama o%jeto real del sistema operativo cuando se usa este m-todo, se compilan
todos los procedimientos individuales a arc)ivos !ue contienen los procedimientos y despu-s se
com%inan todos en un solo arc)ivo o%jeto con el enla+ador.
En t-rminos de ocultamiento de informaci$n, esencialmente no e3iste nin&uno7 todo procedimiento es
visi%le para todos (al contrario de una estructura !ue contiene m$dulos o pa!uetes, en los cuales muc)a
informaci$n es local a un m$dulo y s$lo pueden llamar puntos de re&istro desi&nados oficialmente del
e3terior del m$dulo)
Esta or&ani+aci$n su&iere una estructura %sica del sistema operativo8
9.: (n pro&rama central !ue invo!ue el procedimiento de servicio solicitado (1)ell o Oernel)
2.: (n conjunto de procedimientos de servicios !ue realice las llamadas al sistema.
3.: (n conjunto de procedimientos de uso &eneral !ue ayude a los procedimientos de servicio
1istemas en estratos8
Estos sistemas operativos se or&ani+an como una jerar!u.a de estratos, cada uno construido arri%a del
!ue est de%ajo de -l. El primer sistema construido en esta forma fuel el sistema FCE !ue se fa%ric$ en
Fec)nisc)e Co&esc)ool Eind)oven de Colanda por E. K /ijEstra (9B"A) y sus alumnos. El sistema FCE
era un sistema de lote para una computadora alemana, la Electrol$&ica NA, !ue ten.a 32O de pala%ras de
27 %its ( los %its eran costosos en a!uellos d.as)
El sistema ten.a " estratos, estos se muestran en la si&uiente ta%la8
5 Operador de FCE
4 #ro&ramas del usuario
3 4dministraci$n de Entrada/1alida
2 'omunicaci$n entre el operador y el proceso
9 4dministraci$n de la memoria y el tam%or ma&n-tico
0 /istri%uci$n del procesador y multipro&ramaci$n
: El estrato 0 tra%aja%a con la distri%uci$n del procesador, cam%iando entre procesos cuando ocurr.an
interrupciones o los relojes e3pira%an. 1o%re el estrato 0, el sistema consta%a de procesos secuenciales,
cada uno de los cuales pod.a pro&ramarse sin tener !ue preocuparse por el )ec)o de !ue m5ltiples
procesos estuvieran corriendo en un solo procesador. En otras pala%ras, el estarto 0 ofrec.a la
multipro&ramaci$n %sica de la '#(.
El estrato 9 reali+a%a el manejo de memoria. Este distri%u.a espacio para procesos contenidos en la
memoria central y en un tam%or de 592O pala%ras !ue se usa%a para contener partes de procesos
(p&inas) para las cuales no )a%.a espacio en la memoria central. 1o%re el estrato 9, los procesos no
ten.a !ue preocuparse de si esta%an en la memoria o en el tam%or7 el soft*are del estrato 9 se )ac.a
car&o de ase&urar !ue las p&inas se trajeran a la memoria siempre !ue se necesitaran.
El estrato 2 maneja%a la comunicaci$n entre cada proceso y la consola de operador.
El estrato 3 se )ac.a car&o de manejar los dispositivos de E/1 y de separar la informaci$n en flujo !ue
entra%a y sal. de ellos. 1o%re el estrato 3 cada proceso pod.a tra%ajar con dispositivos de E/1 a%stractos
con propiedades a&rada%les, en ve+ de dispositivos reales con muc)as peculiaridades
El estrato 4 era donde se encontra%an los pro&ramas de los usuarios. Ho ten.an !ue preocuparse por el
manejo de los procesos, memoria, consola o E/1. El proceso operador del sistema se locali+a%a en el
estrato 5.
En esta unidad e3aminaremos cuatro estructuras distintas !ue ya )an sido pro%adas, con el fin de tener
una idea ms e3tensa de c$mo esta estructurado el sistema operativo. Jeremos %revemente al&unas
estructuras de dise2os de sistemas operativos.
!structura modular.
Fam%i-n llamados sistemas monol.ticos. Este tipo de or&ani+aci$n es con muc)o la mas com5n7 %ien
podr.a reci%ir el su%titulo de ;el &ran em%rollo;. <a estructura consiste en !ue no e3iste estructura al&una.
El sistema operativo se escri%e como una colecci$n de procedimientos, cada uno de los cuales puede
llamar a los dems cada ve+ !ue as. lo re!uiera. 'uando se usa esta t-cnica, cada procedimiento del
sistema tiene una interfa+ %ien definida en t-rminos de parmetros y resultados y cada uno de ellos es
li%re de llamar a cual!uier otro, si este ultimo proporciona cierto clculo 5til para el primero. 1in em%ar&o
incluso en este tipo de sistemas es posi%le tener al menos al&o de estructura. <os servicios (llamadas al
sistema) !ue proporciona el sistema operativo se solicitan colocando los parmetros en lu&ares %ien
definidos, como en los re&istros o en la pila, para despu-s ejecutar una instrucci$n especial de trampa de
nom%re ;llamada al n5cleo; o ;llamada al supervisor;.
Esta instrucci$n cam%ia la m!uina del modo usuario al modo n5cleo y transfiere el control al sistema
operativo, lo !ue se muestra en el evento (9) de la fi&ura 9. El sistema operativo e3amina entonces los
parmetros de la llamada, para determinar cual de ellas se desea reali+ar, como se muestra en el evento
(2) de la fi&ura 9. 4 continuaci$n, el sistema operativo anali+a una ta%la !ue contiene en la entrada E un
apuntador al procedimiento !ue reali+a la E:esima llamada al sistema. Esta operaci$n !ue se muestra en
(3) de la fi&ura 9, identifica el procedimiento de servicio, al cual se llama. #or ultimo, la llamada al sistema
termina y el control re&resa al pro&rama del usuario.
>i&ura 9. <a forma en !ue de%e )acerse una llamada al sistema8 (9) el pro&rama del usuario es atra.do
)acia el n5cleo. (2) el sistema operativo determina el n5mero del servicio solicitado. (3) el sistema
operativo locali+a y llama al procedimiento correspondiente al servicio. (4) el control re&resa al pro&rama
del usuario.
Esta or&ani+aci$n su&iere una or&ani+aci$n %sica del sistema operativo8
9.: un pro&rama principal !ue llama al procedimiento del servicio solicitado.
2.: un conjunto de procedimientos de servicio !ue llevan a ca%o las llamadas al sistema.
3.: un conjunto de procedimientos utilitarios !ue ayudan al procedimiento de servicio.
En este modelo, para cada llamada al sistema e3iste un procedimiento de servicio !ue se encar&a de -l.
<os procedimientos utilitarios )acen cosas necesarias para varios procedimientos de servicio, por ejemplo
%uscar los datos de los pro&ramas del usuario.
!structura por micro6ernel.
<as funciones centrales de un 1O son controladas por el n5cleo (Eernel) mientras !ue la interfa+ del
usuario es controlada por el entorno (s)ell). #or ejemplo, la parte ms importante del /O1 es un
pro&rama con el nom%re ;'OMM4H/.'OM; Este pro&rama tiene dos partes. El Eernel, !ue se mantiene
en memoria en todo momento, contiene el c$di&o m!uina de %ajo nivel para manejar la administraci$n
de )ard*are para otros pro&ramas !ue necesitan estos servicios, y para la se&unda parte del
'OMM4H/.'OM el s)ell, el cual es el interprete de comandos
<as funciones de %ajo nivel del 1O y las funciones de interpretaci$n de comandos estn separadas, de tal
forma !ue puedes mantener el Eernel /O1 corriendo, pero utili+ar una interfa+ de usuario diferente. Esto
es e3actamente lo !ue sucede cuando car&as Microsoft Kindo*s, el cual toma el lu&ar del s)ell,
reempla+ando la interfa+ de l.nea de comandos con una interfa+ &rfica del usuario. E3isten muc)os
;s)ells; diferentes en el mercado, ejemplo8 H/O1 (Horton /O1), NF=, #'FOO<1, o inclusive el mismo
1O M1:/O1 a partir de la versi$n 5.0 incluy$ un 1)ell llamado /O1 1CE<<.
Estructura por anillos conc-ntricos (capas).
El sistema por ;capas; consiste en or&ani+ar el sistema operativo como una jerar!u.a de capas, cada una
construida so%re la inmediata inferior. El primer sistema construido de esta manera fue el sistema FCE
(Fec)nisc)e Co&esc)ool Eind)oven), desarrollado en Colanda por E. K. /ijEstra (9B"A) y sus
estudiantes.
El sistema tenia " capas, como se muestra en la fi&ura 3. <a capa 0 tra%aja con la asi&naci$n del
procesador y alterna entre los procesos cuando ocurren las interrupciones o e3piran los cron$metros.
1o%re la capa 0, el sistema consta de procesos secu-nciales, cada uno de los cuales se podr.a
pro&ramar sin importar !ue varios procesos estuvieran ejecutndose en el mismo procesador, la capa 0
proporciona%a la multipro&ramaci$n %sica de la '#(.
<a capa 9 reali+a%a la administraci$n de la memoria. 4si&na%a el espacio de memoria principal para los
procesos y un recipiente de pala%ras de 592O se utili+a%a para almacenar partes de los procesos
(p&inas) para las !ue no e3ist.a lu&ar en la memoria principal. #or encima de la capa 9, los procesos no
de%.an preocuparse si esta%an en la memoria o en el recipiente7 el soft*are de la capa 9 se encar&a%a
de &aranti+ar !ue las p&inas lle&aran a la memoria cuando fueran necesarias.
<a capa 2 se encar&a%a de la comunicaci$n entre cada proceso y la consola del operador. #or encima de
esta capa, cada proceso tiene su propia consola de operador.
<a capa 3 controla los dispositivos de E/1 y &uarda en almacenes (%uffers) los flujos de informaci$n entre
ellos. #or encima de la capa 3, cada proceso puede tra%ajar con dispositivos e3actos de E/1 con
propiedades adecuadas, en ve+ de dispositivos reales con muc)as peculiaridades. <a capa 4 es donde
esta%an los pro&ramas del usuario, estos no ten.an !ue preocuparse por el proceso, memoria, consola o
control de E/1. el proceso operador del sistema se locali+a%a en la capa 5
(na &enerali+aci$n mas avan+ada del concepto de capas se presento en el sistema M(<F?'1. En lu&ar
de capas, M(<F?'1 esta%a or&ani+ado como una serie de anillos conc-ntricos, siendo los anillos
interiores los privile&iados. 'uando un procedimiento de un anillo e3terior desea%a llamar a un
procedimiento de un anillo interior, de%i$ )acer el e!uivalente a una llamada al sistema
Mientras !ue el es!uema de capas de FCE era en realidad un apoyo al dise2o, de%ido a !ue todas las
partes del sistema esta%an li&adas entre si en un solo pro&rama o%jeto, en M(<F?'1, el mecanismo de
anillos esta%a mas presente durante el tiempo de ejecuci$n y era refor+ado por el )ard*are. <a ventaja
del mecanismo de anillos es su facilidad de e3tensi$n para estructurar su%sistemas del usuario.
5 El operador
4 #ro&ramas del usuario
3 'ontrol de entrada/salida
2 'omunicaci$n operador:proceso
9 4dministraci$n de la memoria y del disco
0 4si&naci$n del procesador y multipro&ramaci$n
>i&ura 3. Estructura del sistema operativo FCE.
Estructura cliente P servidor
(na tendencia de los sistemas operativos modernos es la de e3plotar la idea de mover el c$di&o a capas
superiores y eliminar la mayor parte posi%le del sistema operativo para mantener un n5cleo m.nimo. El
punto de vista usual es el de implantar la mayor.a de las funciones del sistema operativo en los procesos
del usuario. #ara solicitar un servicio, como la lectura de un %lo!ue de cierto arc)ivo, un proceso del
usuario (denominado proceso cliente) env.a la solicitud a un proceso servidor, !ue reali+a entonces el
tra%ajo y re&resa la respuesta. En este modelo, !ue se muestra en la fi&ura 4, lo 5nico !ue )ace el n5cleo
es controlar la comunicaci$n entre los clientes y los servidores. 4l separar el sistema operativo en partes,
cada una de ellas controla una faceta del sistema, como el servicio a arc)ivos, servicios a procesos,
servicio a terminales o servicio a la memoria, cada parte es pe!ue2a y controla%le. 4dems como todos
los servidores se ejecutan como procesos en modo usuario y no en modo n5cleo, no tienen acceso
directo al )ard*are. En consecuencia si )ay un error en el servidor de arc)ivos, -ste puede fallar, pero
esto no afectar en &eneral a toda la m!uina.
Otra de las ventajas del modelo cliente:servidor es su capacidad de adaptaci$n para su uso en los
sistemas distri%uidos
1i un cliente se comunica con un servidor mediante mensajes, el cliente no necesita sa%er si el mensaje
se maneja en forma local, en su m!uina, o si se env.a por medio de una red a un servidor en una
m!uina remota. En lo !ue respecta al cliente, lo mismo ocurre en am%os casos8 se envi$ una solicitud y
se reci%i$ una respuesta.
Sistemas Operativos por su !structura &Aisin Interna(.
1e&5n, se de%en o%servar dos tipos de re!uisitos cuando se construye un sistema operativo, los cuales
son8
De!uisitos de usuario8 1istema fcil de usar y de aprender, se&uro, rpido y adecuado al uso al !ue se le
!uiere destinar.
De!uisitos del soft*are8 /onde se en&lo%an aspectos como el mantenimiento, forma de operaci$n,
restricciones de uso, eficiencia, tolerancia frente a los errores y fle3i%ilidad.
4 continuaci$n se descri%en las distintas estructuras !ue presentan los actuales sistemas operativos para
satisfacer las necesidades !ue de ellos se !uieren o%tener.
Estructura Monol.tica.
Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo
pro&rama compuesto de un conjunto de rutinas entrela+adas de tal forma !ue cada una puede llamar a
cual!uier otra. <as caracter.sticas fundamentales de este tipo de estructura son8
'onstrucci$n del pro&rama final a %ase de m$dulos compilados separadamente !ue se unen a
trav-s del li&ador.
6uena definici$n de parmetros de enlace entre las distintas rutinas e3istentes, !ue puede
provocar muc)o acoplamiento.
'arecen de protecciones y privile&ios al entrar a rutinas !ue manejan diferentes aspectos de los
recursos de la computadora, como memoria, disco, etc.
=eneralmente estn )ec)os a medida, por lo !ue son eficientes y rpidos en su ejecuci$n y &esti$n, pero
por lo mismo carecen de fle3i%ilidad para soportar diferentes am%ientes de tra%ajo o tipos de
aplicaciones.
!structura ;er4r5uica.
4 medida !ue fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se )i+o
necesaria una mayor or&ani+aci$n del soft*are, del sistema operativo, donde una parte del sistema
conten.a su%partes y esto or&ani+ado en forma de niveles.
1e dividi$ el sistema operativo en pe!ue2as partes, de tal forma !ue cada una de ellas estuviera
perfectamente definida y con un claro interface con el resto de elementos.
1e constituy$ una estructura jerr!uica o de niveles en los sistemas operativos, el primero de los cuales
fue denominado FCE (Fec)nisc)e Co&esc)ool, Eind)oven), de /ijEstra, !ue se utili+$ con fines
didcticos. 1e puede pensar tam%i-n en estos sistemas como si fueran QmulticapaG. Multics y (ni3 caen
en esa cate&or.a.
En la estructura anterior se %asan prcticamente la mayor.a de los sistemas operativos actuales. Otra
forma de ver este tipo de sistema es la denominada de anillos conc-ntricos o ;rin&s;.
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde
pueden entrar las llamadas de las capas inferiores. /e esta forma, las +onas ms internas del sistema
operativo o n5cleo del sistema estarn ms prote&idas de accesos indeseados desde las capas ms
e3ternas. <as capas ms internas sern, por tanto, ms privile&iadas !ue las e3ternas.
345uina Airtual.
1e trata de un tipo de sistemas operativos !ue presentan una interface a cada proceso, mostrando una
m!uina !ue parece id-ntica a la m!uina real su%yacente. Estos sistemas operativos separan dos
conceptos !ue suelen estar unidos en el resto de sistemas8 la multipro&ramaci$n y la m!uina e3tendida.
El o%jetivo de los sistemas operativos de m!uina virtual es el de inte&rar distintos sistemas operativos
dando la sensaci$n de ser varias m!uinas diferentes.
El n5cleo de estos sistemas operativos se denomina monitor virtual y tiene como misi$n llevar a ca%o la
multipro&ramaci$n, presentando a los niveles superiores tantas m!uinas virtuales como se soliciten.
Estas m!uinas virtuales no son m!uinas e3tendidas, sino una r-plica de la m!uina real, de manera
!ue en cada una de ellas se pueda ejecutar un sistema operativo diferente, !ue ser el !ue ofre+ca la
m!uina e3tendida al usuario
$liente=Servidor&3icro6ernel(.
El tipo ms reciente de sistemas operativos es el denominado 'liente:servidor, !ue puede ser ejecutado
en la mayor.a de las computadoras, ya sean &randes o pe!ue2as.
Este sistema sirve para toda clase de aplicaciones por tanto, es de prop$sito &eneral y cumple con las
mismas actividades !ue los sistemas operativos convencionales.
El n5cleo tiene como misi$n esta%lecer la comunicaci$n entre los clientes y los servidores. <os procesos
pueden ser tanto servidores como clientes. #or ejemplo, un pro&rama de aplicaci$n normal es un cliente
!ue llama al servidor correspondiente para acceder a un arc)ivo o reali+ar una operaci$n de
entrada/salida so%re un dispositivo concreto. 4 su ve+, un proceso cliente puede actuar como servidor
para otro.; R4lcalB2S. Este paradi&ma ofrece &ran fle3i%ilidad en cuanto a los servicios posi%les en el
sistema final, ya !ue el n5cleo provee solamente funciones muy %sicas de memoria, entrada/salida,
arc)ivos y procesos, dejando a los servidores proveer la mayor.a !ue el usuario final o pro&ramador
puede usar. Estos servidores de%en tener mecanismos de se&uridad y protecci$n !ue, a su ve+, sern
filtrados por el n5cleo !ue controla el )ard*are. 4ctualmente se est tra%ajando en una versi$n de (H?N
!ue contempla en su dise2o este paradi&ma.
1.) *+cleo.
El H5cleo del 1istema Operativo.
Fodas las operaciones en las !ue participan procesos son controladas por la parte del sistema operativo
denominada n5cleo (nucleus, core o Eernel, en in&l-s). El n5cleo normalmente representa s$lo una
pe!ue2a parte de lo !ue por lo &eneral se piensa !ue es todo el sistema operativo, pero es tal ve+ el
c$di&o !ue ms se utili+a. #or esta ra+$n, el n5cleo reside por lo re&ular en la memoria principal, mientras
!ue otras partes del sistema operativo son car&adas en la memoria principal s$lo cuando se necesitan.
<os n5cleos se dise2an para reali+ar ;el m.nimo; posi%le de procesamiento en cada interrupci$n y dejar
!ue el resto lo realice el proceso apropiado del sistema, !ue puede operar mientras el n5cleo se )a%ilita
para atender otras interrupciones.
El n5cleo de un sistema operativo normalmente contiene el c$di&o necesario para reali+ar las si&uientes
funciones8
Manejo de interrupciones.
'reaci$n y destrucci$n de procesos.
'am%io de estado de los procesos.
/espac)o.
1uspensi$n y reanudaci$n de procesos.
1incroni+aci$n de procesos.
'omunicaci$n entre procesos.
Manipulaci$n de los %lo!ues de control de procesos.
4poyo para las actividades de entrada/salida.
4poyo para asi&naci$n y li%eraci$n de memoria.
4poyo para el sistema de arc)ivos.
4poyo para el mecanismo de llamada y retorno de un procedimiento.
4poyo para ciertas funciones de conta%ilidad del sistema.
H5cleo o Oernel y niveles de un 1istema Operativo.
El Oernel consiste en la parte principal del c$di&o del sistema operativo, el cual se encar&an de controlar
y administrar los servicios y peticiones de recursos y de )ard*are con respecto a uno o varios procesos,
este se divide en 5 capas8
Hivel 9. =esti$n de Memoria8 !ue proporciona las facilidades de %ajo nivel para la &esti$n de memoria
secundaria necesaria para la ejecuci$n de procesos.
Hivel 2. #rocesador8 1e encar&a de activar los cuantums de tiempo para cada uno de los procesos,
creando interrupciones de )ard*are cuando no son respetadas.
Hivel 3. Entrada/1alida8 #roporciona las facilidades para poder utili+ar los dispositivos de E/1 re!ueridos
por procesos.
Hivel 4. ?nformaci$n o 4plicaci$n o ?nterprete de <en&uajes8 >acilita la comunicaci$n con los len&uajes y
el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. 'uando se solicitan
ejecutando un pro&rama el soft*are de este nivel crea el am%iente de tra%ajo e invoca a los procesos
correspondientes.
Hivel 5. 'ontrol de 4rc)ivos8 #roporciona la facilidad para el almacenamiento a lar&o pla+o y
manipulaci$n de arc)ivos con nom%re, va asi&nando espacio y acceso de datos en memoria.
El n5cleo y los procesos.
El n5cleo (Oernel) de un sistema operativo es un conjunto de rutinas cuya misi$n es la de &estionar el
procesador, la memoria, la entrada/salida y el resto de procesos disponi%les en la instalaci$n. Foda esta
&esti$n la reali+a para atender al
funcionamiento y peticiones de los tra%ajos !ue se ejecutan en el sistema.
<os procesos relacionados con la entidad %sica de los sistemas operativos actuales8 <os procesos.
El es!uema &eneral del mismo es el si&uiente8
/efinici$n y concepto de proceso.
El 6lo!ue de 'ontrol de #roceso (#'6) como ima&en donde el sistema operativo ve el estado del
proceso.
Estados por los !ue pasa un proceso a lo lar&o de su e3istencia en la computadora.
Operaciones !ue se pueden reali+ar so%re un proceso.
'lasificaci$n de los procesos se&5n su forma de ejecuci$n, de car&a, etc.
1.).1 Interrupciones &F,I-(.
El GESTOR DE INTERRUPCIONES DE PRIMER NIVEL: FLIH
(First Level Interruption Handler): `Algo' que gestione las interrupciones
EL CONTROLADOR DE INTERRUPCIONES DE PRIMER NIVEL: EL FLIH
En principio, una seal es una indicacin por la que se altera la secuencia de eecucin! Ha" varios tipos de
interrupcin, que se clasi#can en $uncin de su origen:
% E&'E()A*: *e producen $uera del procesador
% I)'E()A*: *e producen dentro del procesador
*i precisa+os +,s:
Las interrupciones E&'E()A*, las deno+ina+os:
I)'E((-./I0)E*
Las interrupciones I)'E()A*, pueden ser:
E&'(A/12I30*: 0peraciones que +anipulan ele+entos internos del
procesador
'(A.* o E&/E./I0)E*
La +isin del FLIH, est, en el n4cleo, para dar una respuesta a cualquier tipo de seal que se produce en el siste+a!
Al producirse una seal, la atrapa el Hard5are de interrupciones, que co+o +6ni+o, salva el contenido del ./ en el
./7 del proceso! Ade+,s, puede que ta+8i9n salve el resto del entorno vol,til (ta+8i9n en el ./7)! 'a+8i9n
direcciona al FLIH, es decir, pone en el ./ la direccin del FLIH!
.or lo tanto, pode+os decir, que el FLIH es un ele+ento so$t5are, es un proceso!
:a ;e+os dic;o que el FLIH es *o$t5are, pues se trata de un sencillo progra+a de#nido so8re un ,rea de +e+oria
dedicada a 9l, un ,rea de +e+oria espec6#ca< es decir, el FLIH sie+pre est, en la +is+a parte de la +e+oria!
El FLIH ;ace dos cosas:
=>) 2eter+ina el origen de la interrupcin
(Averigua qu9 interrupcin se ;a producido)
?>) 2irecciona la rutina que trata esa interrupcin
*i el FLIH es un progra+a, necesita parte del entorno vol,til: ./, A//, !!! .or ello, de8e salvarse el entorno vol,til del
proceso interru+pido! El entorno vol,til del proceso interru+pido, se puede salvar en dos +o+entos:
.uede salvarlo el Hard5are de interrupciones
*i no lo salva el Hard5are de interrupciones, ser, lo pri+ero que ;aga el FLIH, antes incluso de deter+inar el
origen de la interrupcin
NOTA:
Ha" siste+as que de#nen unos registros +,quina para uso e@clusivo por parte del *iste+a 0perativo, para evitar
tener que estar salvando " restaurando el contenido del entorno vol,til!
Formas de determinar el orien de !na interr!"#i$n:
AE2IA)'E *0F'BA(E:
Aediante una cadena de saltos o IFs (o con una /A*E)
El FLIH, tiene !n %ni#o punto de entrada:
Centaa: % Es +u" sencillo
2esventaa: % (endi+iento +u" po8re (/uantas +,s interrupciones, peor
rendi+iento)
.osi8le solucin:
.oner al principio de la cadena de saltos las co+pro8aciones de las
interrupciones +,s $recuentes!
AE2IA)'E HA(2BA(E:
Aediante el uso de un co+parador si+ult,neo, incluido en el Hard5are de interrupciones!
El origen de la interrupcin, no lo va a detectar el FLIH, lo va a detectar el Hard5are de interrupciones!
El FLIH, tiene ) puntos de entrada, siendo ) el n4+ero de interrupciones que reconoce el siste+a!
Centaa: % Es casi si+ult,neo, +uc;o +,s r,pido que la secuencia de IFs
2esventaa: % /oste Elevado: -n co+parador para +uc;as interrupciones es
+u" caro
/0A7I)A)20 *0F'BA(E : HA(2BA(E:
El co+parador distingue los 'I.0* de interrupcin!
Las interrupciones se agrupan por tipos!
EL Hard5are de interrupciones:
=>) *alva el contenido del entorno vol,til
?>) Aediante un co+parador si+ult,neo, deter+ina el tipo al que pertenece la
interrupcin producida
D>) *e direcciona al FLIH, donde una pequea cadena de saltos deter+ina la
interrupcin en concreto que se ;a producido
*i ) es el n4+ero de tipos de interrupciones, el FLIH tiene ) puntos de entrada!
/uando el FLIH est, atendiendo una interrupcin, pueden producirse otras!
EFu9 ;ace+os con esas otras interrupciones que se producenG
In;i8ir (ignorar) el resto de interrupciones +ientras se atiende una! .ero esto no puede ;acerse sie+pre
Las interrupciones +,s prioritarias de8en tratarse nada +,s producirse
.osi8le solucin:
2e#nir niveles de prioridad entre las interrupciones, de $or+a que si
se est, atendiendo una interrupcin, quedar,n pendientes (o
in;i8idas) las de +enor o igual prioridad!
.ro8le+a:
*i se produce una interrupcin +,s prioritaria que la que se est, atendiendo, de8e dearse de atender la
que se esta8a atendiendo para atender la +,s prioritaria! .or lo tanto, de8e guardarse el entorno vol,til de
la interrupcin que esta8a atendiendo! La interrupcin que pasa a ser atendida, ta+8i9n puede tener que
dearse, al llegar otra de +a"or prioridad !!! .or tanto, es necesario un lugar a para al+acenar entornos
vol,tiles, es decir, un ./7, por cada prioridad de interrupcin H =!
Ini#io del ser&i#io de !na interr!"#i$n:
Las interrupciones no pueden estar in;i8idas +uc;o tie+po, es decir, el tie+po de trata+iento del FLIH de8e ser
corto!
.ro8le+a:
Ha" interrupciones cu"o trata+iento lleva +uc;o tie+po! En ese caso, el FLIH, slo inicia su trata+iento, "
luego, la+a a otra rutina aena o e@terna a 9l, que realiIa el resto del trata+iento!
-na interrupcin puede i+plicar ca+8io(s) de estado en alg4n(os) proceso(s)!
'I.0* 2E I)'E((-./I0)E*:
Interrupciones que provocan ca+8ios de estado del proceso en eecucin
Algunos e@tracdigos: .eticiones de EJ*
*eales de error para suspensin
Interrupciones de relo: Interrupciones por e@piracin del te+poriIador
Interrupciones que provocan ca+8ios de estado en procesos que no est,n en eecucin
Interrupciones de EJ*
"ttpE>>"tml.rincondelva0o.com>sistemas=operativosG2C."tml
1.).2 Despac"ador&Sc"eduler(.
Schedulling.-
Colas de Schedulling8 <os procesos !ue estn en estado de espera se !uedan en una lista llamada lista o
cola de ready. <os procesos !ue )acen uso de E/1 se &uardan en una cola de E/1. Cay una cola de E/1
por cada dispositivo.
Schedullers8 'omponente del sistema operativo responsa%le de decidir !uien )ara uso de la '#(.
/l0oritmos de Sc"edullin0.=
F$FS &First $ome First Served(
'uando un proceso lle&a a la cola de ready su #'6 es a&re&ado al final de la lista. El uso de la '#( es
otor&ado al primero de la lista y una ve+ !ue un proceso comien+a a ejecutar no deja de )acerlo )asta
!ue se termina. El tiempo medio de espera para este al&oritmo suele ser %astante alto.
S;F &S"ortest ;ob First(
(na ve+ !ue un proceso ejecuta no deja de )acerlo )asta !ue voluntariamente cam%ia de estado (no )ay
interrupci$n por tiempo). 4socia a cada proceso el tiempo de '#( !ue )a%r de usar en su pr$3ima
vuelta y va a decidir por el ms pe!ue2o. 1i )u%iera mas de uno utili+a >'>1 para desempatar. El mayor
pro%lema de este al&oritmo radica en el clculo de tiempo de uso de '#(. Este se puede apro3imar a8
FnT9U .tnT(9: )Fn
0V V9 Fiempo calculado en la vuelta n
#r$3imo uso de '#( Fiempo usado en la vuelta n
El pro%lema de este al&oritmo es !ue el tiempo de espera para los procesos lar&os puede ser demasiado
lar&o. 'onstantemente se estn entre&ando los procesos mas cortos y el ms &rande nunca ser
ejecutado.
El >I1 se puede su%dividir en 2 tipos de al&oritmos8 #DEEM#F?JO o HO #DEEM#F?JO
#reemptivo si&nifica !ue si mientras un proceso se esta ejecutando, entra a la cola de ready un proceso
mas corto, el proceso en la cola de ready se apropia de la '#( y comien+a su ejecuci$n.
.riority Sc"edullin0
4socia a cada proceso una prioridad. <ue&o selecciona el proceso con mas prioridad para desempatar.
En caso de !ue )u%ieran dos o mas procesos con la misma prioridad, se usa >'>1 para desempatar.
Cay dos tipo de prioridad en los procesos8 la prioridad externa definidas a trav-s del sistema operativo y
la prioridad interna definida por el tiempo de uso de la '#(, el control de E/1, etc. Este al&oritmo tam%i-n
se puede ejecutar de dos maneras8 preemptivo y no preemptivo. El al&oritmo soluciona el pro%lema del
loopin& pero el pro%lema es !ue los procesos con prioridad muy %aja tienen c)ance de no ejecutarse
nunca. #ara solucionar este pro%lema de espera infinita el envejecimiento de un proceso eleva su
prioridad.
7ound 7obin
Este es un al&oritmo %asado en >'>1. Frata la cola de ready como una lista circular. ?ntroduce el
concepto de ;@uantum; o ;Fime slice; 8 mayor tiempo de cpu !ue podr )acer uso un proceso en cada
vuelta. 1i el valor del @uantum fuese muy &rande, el al&oritmo funcionara como un >'>1. 1i el @uantum
fuera muy c)ico se produce un over)ead por conte3t s*itc) (si&nifica !ue el @uantum se setea en un
tiempo menor al !ue demora el conte3t s*itc)). Este al&oritmo es fuertemente dependiente del @uantum
o Fime 1lice. El @uantum de%e ser mayor !ue el A0W de los tiempos de '#( !ue )a&an uso los
procesos, pero no el proceso entero sino por cada %urst.
3<S &3ultilevel <ueue Sc"edullin0(
Este al&oritmo parte la cola de ready en un numero de colas n. <ue&o e3iste un criterio para clasificar en
!ue cola ser colocado un proceso cuando !ue !ueda en estado de ready. 'ada cola puede manejar su
propio al&oritmo de sc)edullin&
3F<S &3ultilevel Feed Fac6 <ueue Sc"edullin0(
/efine los si&uientes parmetros8
Humero de colas
4l&oritmo de sc)edullin& usado en cada cola
M-todo para decidir a !ue cola entrara un proceso cuando entre a estado de ready
M-todo para decidir cuando un proceso ser enviado a una cola de menor prioridad.
M5ltiple '#(
#ara !ue mas de una '#( no tomen el mismo proceso de la cola de ready se utili+an mecanismos de
sincroni+aci$n. Otro mecanismo seria partir la cola en n colas (n '#(s), pero si se )iciera esto podr.a
lle&ar a suceder !ue los procesos de una '#( fueran todos cortos y los de otra fueran lar&os por lo cual
)a%r.a una '#( !ue !uedar.a li%re y otra ejecutando. Otra forma ser.a !ue una '#( decidiera cual '#(
va a ejecutar cual proceso. Esto puede llevar a !ue la '#( !ue esta seleccionando !uede un poco mas
car&ada por!ue en al&5n momento estar ejecutando el al&oritmo de selecci$n y un proceso asi&nado a
ella.
1.). .rimitivas de comunicacin&I.$(.
)ay varias primitivas de comunicacin entre procesos (*+% abreviadamente). La mayor,a de ellas
requieren alg!n tipo de modificacin a los programas para poder usarlas, pero (ay una que es
f&cilmente accesible desde la l,nea de comandos usando la met&fora de fic(eros est&ndar en
$-*. y que no requiere modificacin alguna a los programas. Se trata de las tuer)as. Siguiendo
la met&fora, $-*. nos permite manear tuber,as como si fueran fic(eros normales.
(ttp:''///.es.embnet.org'0oc'"%1'"%123445267'dbpipes.es.(tml
Primitivas (e #omu$i#a#i'$
8lgunos 9ernel tienen operaciones espec,ficas austadas a la invocacin remota. 8moeba, por
eemplo, tiene DoOperation/GetRequest--SendReply.
"s m&s eficiente que el simple Send2:eceive (y m&s fiable y legible).
8moeba y otros sistemas tienen tambin comunicacin con grupos o radiado (parcial)
(broadcast).
"s importante para tolerancia de fallos, meora de rendimiento y reconfigurabilidad.
0iversas variantes: como mensaes, como m!ltiples :+%s, con un slo valor devuelto, con varios
valores devueltos (todos untos o pidiendo uno a uno), etc.
"n la pr&ctica, mecanismos de comunicacin de alto nivel tales como :+%':;*, radiado y
notificacin de sucesos (parecido a los maneadores de interrupciones), se implementan en
middle/are y no en el 9ernel.
-ormalmente, sobre un nivel <%+'*+, por ra#ones de transportabilidad, (aunque resulta ==caro").
La I./ o$rece un +ecanis+o que per+ite a los procesos cu+unicarse " sincroniIar sus acciones! La +eor $or+a de
proveer la co+unicacin entre procesos es +ediante un siste+a de +ensaes!
La $uncin de un siste+a de +ensae es per+itir a los procesos co+unicarse entre s6 sin tener que recurrir a
varia8les co+partidas!
-n recurso I./ o$rece por los +enos ? operaciones:
en&iar (+ensae) (send) " re#i'ir (+esane) (re#ei&e)!
*ea . " F dos procesos que requieren co+unicarse de8er,n enviarse +ensaes< para ello de8e e@istir un enlace de
comunicacin entre ellos! Este enlace puede i+ple+entarse de diversas +aneras!
Los +9todos para i+ple+entar lgica+ente un enlace " las operaciones de en&iar J re#i'ir son:
/o+unicacin directa o indirecta
-so de 8uKer auto+,tico o e@pl6cito
Env6o por copia o env6o por re$erencia
Aensaes de ta+ao #o o varia8les
Com!ni#a#i$n dire#ta:
Aqu6 cada proceso que desee co+unicarse de8e no+8rar e@pl6cita+ente el destinatario o el re+itente de la
co+unicacin! Este esque+a se de#ne las pri+itivas de la sig! +anera:
Enviar(.,+ensae): Enviar un +ensae al proceso .!
(eci8ir(F! Aensae): (eci8ir un +ensae del proceso F!
/on las siguientes propiedades:
*e esta8lece auto+,tica+ente el enlace entre cada par de procesos! Lo procesos slo necesitan conocer la
identidad de otro para la co+unicacin!
*olo ;a" un enlace entre cada par de procesos!
El enlace puede ser unidireccional o 8idireccional!
Este esque+a e@;i8e un si+etr6a de direcciona+iento< es decir, los procesos tanto e+isor co+o receptor necesitan
no+8rar al otro para co+unicarse!
0tra variante de este esque+a es utiliIar asi+etr6a de direcciona+iento, con la sig! pri+itivas:
Enviar(.,+ensae): enviar un +ensae al proceso .!
(eci8ir(Id,+ensae) : reci8ir un +ensae de cualquier proceso con el que ;u8o co+unicacin!
Aqu6 slo el e+isor no+8ra al destinatario< el destinatario no 9sta o8ligado a no+8rar al e+isor!
Com!ni#a#i$n indire#ta:
Aqu6 los +ensaes se env6an a, " se reci8en de, buzones (ta+8i9n lla+ados .-E('0*)! -n 8uIn puede
considerarse en lo a8stracto co+o un o8eto en el que los procesos pueden colocar +ensaes " del cual se pueden
sacar +ensaes! /ada 8uIn tiene una identi#cacin 4nica! Aqu6 dos proceso se pueden co+unicarse slo si
co+parten un 8uIn! Las pri+itivas se de#nen co+o:
Enviar (A,+ensae): enviar un +ensae al 8uIn A!
(eci8ir (A,+ensae): reci8ir un +ensae del 8uIn A!
-n enlace de co+unicacin tiene las sig! propiedades:
*e esta8lece un enlace entre un par de procesos slo si tienen un 8uIn co+partido!
-n enlace puede estar asociado a +,s de dos procesos!
Entre cada par de procesos en co+unicacin puede ;a8er varios enlaces distintos, cada uno de los cuales
corresponder, a un 8uIn!
Los enlaces pueden ser unidireccionales o 8idereccionales!
Ha" varias $or+as de designar el dueo de " los usuarios de un 8uIn dado! -na posi8ilidad es per+itir que un
proceso declare varia8les de tipo 8uIn! El proceso que declara un 8uIn es el dueo de ese 8uIn! /ualquier otro
proceso que conoIca el no+8re de dic;o 8uIn podr, usarlo!
.or otro lado, un 8uIn propiedad del *!0 tiene e@istencia propia< es independiente " no est, unido a ning4n
proceso espec6#co! El *!0 esta8lece un +ecanis+o que per+ite a un proceso:
/rear un 8uIn nuevo
Enviar " reci8ir +ensaes a trav9s del 8uIn
2estruir un 8uIn!
(ttp:''(tml.rincondelvago.com'sistemas2operativos>7?.(tml
$omunicacin entre procesos &I.$(
Los procesos en $-*. no comparten memoria, ni siquiera los padres con sus (ios. +or tanto,
(ay que establecer alg!n mecanismo en caso de que se quiera comunicar informacin entre
procesos concurrentes. "l sistema operativo $-*. define tres clases de (erramientas de
comunicacin entre procesos (*+%): los sem&foros, la memoria compartida y los mensaes.
"l tipo de llamadas al sistema para estos *+%s es an&logo al de los sem&foros: e@isten sendas
funciones shmget y msgget para crear o enla#arse a un segmento de memoria compartida o a
una cola de mensaes, respectivamente. +ara alterar propiedades de estos *+%s, incluyendo su
borrado, est&n las funciones shmctl y msgctl.
+ara enviar o recibir mensaes, se utili#an las funciones msgsnd y msgrcv.
"n este apartado se describir&n brevemente algunas llamadas al sistema disponibles para el uso
de las *+%s dentro de la programacin en %.
Sem"*oros
ABu es un sem&foro para el $-*.C Dormalmente es muy similar a la definicin cl&sica de
0i9stra, en el sentido de que es una variable entera con operaciones atmicas de iniciali#acin,
incremento y decremento con bloqueo.
"l $-*. define tres operaciones fundamentales sobre sem&foros:
E semget %rea o toma el control de un sem&foro
E semctl Fperaciones de lectura y escritura del estado del sem&foro. 0estruccin del sem&foro
E semop Fperaciones de incremento o decremento con bloqueo
%omo el lenguae % no tiene un tipo "sem&foro" predefinido, si queremos usar sem&foros
tenemos que crearlos mediante una llamada al sistema (semget). "sta llamada permite crear un
conunto de sem&foros, en lugar de uno solo. Las operaciones se reali#an atmicamente sobre
todo el conuntoG esto evita interbloqueos y oscuras programaciones en muc(os casos, pero para
esta pr&ctica es m&s bien un engorro.
8l crear un sem&foro se nos devuelve un n!mero identificador, que va a funcionar casi igual que
los identificadores de fic(ero de las llamadas open, creat, etc. La funcin semget nos permite
adem&s "abrir" un sem&foro que ya est creado. 8s,, por eemplo, si un proceso crea un sem&foro,
otros procesos pueden sincroni#arse con aqul (con ciertas restricciones) disponiendo del
sem&foro con semget.
+ara darle un valor inicial a un sem&foro, se utili#a la funcin semctl.
"l $-*. no ofrece las funciones cl&sicas + y H o equivalentes, sino que dispone de una funcin
general llamada semop que permite reali#ar una gama de operaciones que incluyen las + y H.
semctl tambin se emplea para destruir un sem&foro.
Llama(as al sistema para sem"*oros
"sta es una descripcin resumida de las tres llamadas al sistema para operar con sem&foros
(semget, semctl y semop). +ara una informacin m&s completa y fidedigna, dir,anse al manual
de llamadas al sistema (seccin 7).
+ara el correcto uso de todas estas funciones, (an de incluir el fic(ero cabecera <sys/sem.h>
Las tres funciones devuelven 23 si algo (a ido mal y en tal caso la variable errno informa del
tipo de error.
Apertura o #rea#i'$ (e u$ sem"*oro
Sinta@is:
int semget ( key_t key, int nsems, int semflg )G
semget devuelve el identificador del sem&foro correspondiente a la clave 9ey. +uede ser un
sem&foro ya e@istente, o bien semget crea uno nuevo si se da alguno de estos casos:
a) 9ey vale IPC_PRI!"#. "ste valor especial obliga a semget a crear un nuevo y !nico
identificador, nunca devuelto por ulteriores llamadas a semget (asta que sea liberado con
semctl.
b) 9ey no est& asociada a ning!n sem&foro e@istente, y se cumple que (semflg I IPC_CR#!") es
cierto.
8 un sem&foro puede accederse siempre que se tengan los permisos adecuados.
Si se crea un nuevo sem&foro, el par&metro nsems indica cu&ntos sem&foros contiene el conunto
creadoG los 4 bits inferiores de semflg contienen los permisos estilo $-*. de acceso al sem&foro
(usuario, grupo, otros).
semflg es una m&scara que puede contener IPC_CR#!", que ya (emos visto, o IPC_#$C%, que
(ace crear el sem&foro, pero fracasando si ya e@ist,a.
"emplo:
int semid & semget ( IPC_PRI!"#, ', IPC_CR#!" ( )*++ ),
Opera#io$es (e #o$trol sore sem"*oros
Sinta@is:
int semctl ( int semid, int semnum, int cmd... ),
"sta es una funcin complea (y de interfa# poco elegante) para reali#ar ciertas operaciones con
sem&foros. semid es un identificador de sem&foro (devuelto previamente por semget) y
semnum, el sem&foro del conunto sobre el que quieren trabaar. cmd es la operacin aplicadaG a
continuacin puede aparecer un par&metro opcional seg!n la operacin definida por cmd.
Las operaciones que les interesan a ustedes son
-#"!% semctl retorna el valor actual del sem&foro
.#"!% se modifica el valor del sem&foro (un cuarto par&metro entero da el nuevo valor)
IPC_R/I0 destruye el sem&foro
"emplos:
valor & semctl (semid,semn1m,-#"!%),
semctl (semid,semn1m,.#"!%,n1evo_valor),
Opera#io$es sore sem"*oros
Sinta@is:
int semop ( int semid, str1ct sem2134 sops, 1nsigned nsops ),
"sta funcin reali#a atmicamente un conunto de operaciones sobre sem&foros, pudiendo
bloquear al proceso llamador. semid es el identificador del sem&foro y sops es un apuntador a un
vector de operaciones. nsops indica el n!mero de operaciones solicitadas.
La estructura sem213 tiene estos campos:
struct sembuf {
unsigned short sem_num; // nmero del sem!foro dentro del
con"unto
short sem_op; // clase de operaci#n
// segn sea $%& '% o ((%
short sem_flg; // modificadores de operaci#n
);
%ada elemento de sops es una operacin sobre alg!n sem&foro del conunto de semid. "l
algoritmo simplificado de la operacin reali#ada es ste (semval es el valor entero contenido en el
sem&foro donde se aplica la operacin).
si semop'%
si sem*al $( +semop+
sem*al -( +semop+
si sem*al ' +semop+
si ,semflag - ./0_1O23.456(%
la funci#n semop,5 retorna
si no
bloquearse hasta que sem*al $( +semop+
sem*al -( +semop+
si semop$%
sem*al 7( semop
si semop((%
si sem*al ( %
S8./
si sem*al 6( %
si ,semflag - ./0_1O23.456(%
la funci#n semop,5 retorna
si no
bloquearse hasta que sem*al (( %
:esumiendo un poco, si el campo semop de una operacin es positivo, se incrementa el valor del
sem&foro. 8simismo, si semop es negativo, se decrementa el valor del sem&foro si el resultado no
es negativo. "n caso contrario el proceso espera a que se d esa circunstancia. "s decir,
semopJJ3 produce una operacin H y semopJJ23, una operacin +.
E!emplos (e uso
+ara ilustrar de forma concreta el empleo de sem&foros bao $-*., les mostramos unos eemplos
de subrutinas en % que les pueden servir como modelos para elaborar sus rutinas de
sincroni#acin en las pr&cticas de la asignatura.
"n concreto, son unas funciones que implementan las operaciones + y H de un sem&foro cl&sico
(iniciali#acin, incremento y decremento con posible bloqueo del proceso llamador). 8s,
definidas, o con pocas modificaciones, les pueden servir como la interfa# para uso de sem&foros
en sus aplicaciones.
9include 'sys/types:h$ /; para <ey_t ;/
/; 0rea un sem!foro con un *alor inicial& dada una cla*e ;/
/; De*uel*e el identificador ,*!lido o no5 del sem!foro ;/
int crea_sem , <ey_t cla*e& int *alor_inicial 5;
/; Operaciones / y = sobre un sem!foro ;/
*oid sem_/ , int semid 5;
*oid sem_= , int semid 5;
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
/;;;;;;;; .>/?@>@1430.A1 ;;;;;;;/
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
9include 'sys/ipc:h$
9include 'sys/sem:h$
9define /@R>.SOS %BCC
/; crea_semD abre o crea un sem!foro ;/
int crea_sem , <ey_t cla*e& int *alor_inicial 5
{
int semid ( semget, /; 3bre o crea un sem!foro::: ;/
cla*e& /; con una cierta cla*e ;/
E& /; con un solo elemento
;/
./0_0R@34+/@R>.SOS /; lo crea ,./0_0R@345 con
unos /@R>.SOS ;/
5;
if , semid((-E 5 return -E;
/; Da el *alor inicial al sem!foro ;/
semctl , semid& %& S@4=3?& *alor_inicial 5;
return semid;
)
/; abre_semD 3brir un sem!foro que otro proceso ya cre# ;/
int abre_sem ,<ey_t cla*e5
{
return semget,cla*e&E&%5;
)
/; Operaciones / y = ;/
*oid sem_/ , int semid 5 /; Operaci#n / ;/
{
struct sembuf op_/ FG (
{
%& -E& % /; Decrementa sem*al o bloquea si cero ;/
);
semop , semid& op_/& E 5;
)
*oid sem_= , int semid 5 /; Operaci#n = ;/
{
struct sembuf op_= FG (
{
%& E& % /; .ncrementa en E el sem!foro ;/
);
semop , semid& op_=& E 5;
)
(ttp:''labsopa.dis.ulpgc.es'prog>c'*+%.)<;
Unidad 2 /dministracin de procesos y del
procesador.
Aer arc"ivoE Unidad2.pdf
2.@ $oncepto de proceso.
(n proceso es un pro&rama en ejecuci$n. (n proceso simple tiene un )ilo de ejecuci$n, por el momento
dejemos esta 5ltima definici$n como un concepto, lue&o se ver en ms detalle el concepto de )ilo. (na
ve+ definido !ue es un proceso nos podr.amos pre&untar cul es la diferencia entre un pro&rama y un
proceso, y %sicamente la diferencia es !ue un proceso es una actividad de cierto tipo !ue contiene un
pro&rama, entradas salidas y estados.
<os procesos pueden ser cooperantes o independientes, en el primer caso se entiende !ue los procesos
interact5an entre s. y pertenecen a una misma aplicaci$n. En el caso de procesos independientes en
&eneral se de%e a !ue no interact5an y un proceso no re!uiere informaci$n de otros o %ien por!ue son
procesos !ue pertenecen a distintos usuarios.
K .roceso : un pro&rama en ejecuci$n7 la ejecucuci$n del proceso de%e pro&resar de manera
secuencial.
K (n proceso incluye8
L pro&ram counter
L stacE
L data section
Estados de los procesos
K *uevo8 El proceso es creado.
K !9ecucin8 1e ejecutan instrucci$nes.
K !spera8 El proceso esta en espera por la ocurrencia de al&5n evento.
K ,isto8 El proceso esta esperando a !ue le asi&nen el procesador.
K Terminado8 El proceso finali+a su ejecuci$n.
K /ia&rama de estados de los procesos.
?nformaci$n asociada con cada proceso8
K Estado del proceso
K #ro&ram counter
K De&istros del '#(
K ?nformaci$n de planificaci$n del '#(
K Memoria
K ?nformaci$n para administraci$n
K ?nformaci$n de estatus de E/1
Pro#eso+
programa o comando en eecucin.
%aracter,sticas:
$n proceso consta de cdigo, datos y pila.
Los procesos e@isten en una erarqu,a de &rbol (varios )ios, un slo padre).
"l sistema asigna un identificador de proceso (+*0) !nico al iniciar el proceso.
"l planificador de tareas asigna un tiempo compartido para el proceso seg!n su
prioridad (slo root puede cambiar prioridades).
E!e#u#i'$ e$ ,er pla$o+
proceso iniciado por el usuario o interactivo.
E!e#u#i'$ e$ -o pla$o+
proceso no interactivo que no necesita ser iniciado por el usuario.
Demo$io+
proceso en 7o plano siempre disponible, que da servicio a varias tareas (debe ser
propiedad del usuario root).
Pro#eso &omi+
proceso parado que queda en la tabla de procesos (asta que termine su padre. "ste (ec(o
se produce cuando el proceso padre no recoge el cdigo de salida del proceso (io.
Pro#eso .u/r*a$o+
proceso en eecucin cuyo padre (a finali#ado. "l nuevo identificador de proceso padre
(++*0) coincide con el identificador del proceso i$it (3).
Co$#epto (e pro#eso.
$n proceso es b&sicamente como un programa en eecucin. %onsta del programa
eecutable, los datos y la pila del programa, su contador de programa, apuntador de pila y otros
registros, y la otra informacin que se necesita para eecutar el programa.
La manera sencilla de tener una nocin intuitiva de lo que es un proceso consiste en
pensar en los sistemas con tiempo compartido. "n forma peridica el sistema operativo decide
suspender la eecucin de un proceso y dar inicio a la eecucin de otro, por eemplo, porque el
primero (aya tomado ya m&s de su parte del tiempo del %+$, en terrenos del segundo.
%uando un proceso se suspende temporalmente como ste, debe reiniciarse despus
e@actamente en el mismo estado en que se encontraba cuando se detuvo. "sto significa que toda
la informacin relativa al proceso debe guardarse en forma e@pl,cita en alg!n lugar durante la
suspensin.
"n muc(os sistemas operativos, toda la informacin referente a cada proceso, diferente
del contenido de su espacio de direcciones, se almacena en una tabla de sistema operativo,
llamada tabla de procesos, la cual es un arreglo o lista enla#ada de estructuras, una para cada
proceso en e@istencia corriente.
Si un proceso puede crear uno o m&s procesos diferentes (conocidos como proceso (io) y
estos procesos a la ve# originan procesos (ios, se llega r&pidamente a la estructura del &rbol de
procesos, observe figura # 14.
Figura # 14. Estru#tura (e "rol. Pro#eso Pa(re 0 1i!o.
"l proceso 8 cre dos procesos derivados, M y %. "l proceso M cre tres derivados, 0, " y D.
Se dispone de otras llamadas al sistema para solicitar m&s memoria ( o para liberar
memoria no utili#ada), esperar a que termine un proceso (io y cubrir su programa con uno
diferente.
"n un sistema de multiprogramacin, el (%+$) tambin cambia de un programa a otro,
eecutando cada uno en decenas o cientos de milisegundos. "n tanto que, en rigor, en cualquier
instante de tiempo, el %+$ est& eecutando slo un programa, en el curso de un segundo puede
trabaar en varios programas, con la ilusin de paralelismo.
Proceso: *nformalmente se define como la actividad que resulta cuando un proceso eercita un
programa, y formalmente consiste en un vector formado por lo siguiente, figura # 15:
P 2 3 C4 Co4 E4 S4 A 5
Algoritmo
Datos (e sali(a
Co$!u$to (e (atos (e e$tra(a 6E,4 E-4 ... E$7
Co$te8to i$i#ial
Co$!u$to (e #o$te8to i$i#ial 6C94 C,4 C-4 ... C$7

Figura # 15.
$n proceso puede tomar diferentes estados, puede estar corriendo, puede estar libre o
puede estar detenido. Si consideramos que todo proceso esta constituido de una serie finita de
actividades elementales una regin crtica de un proceso se define como el conunto de
actividades elementales cuya eecucin e@ige el monopolio de recursos compartidos.
Dormalmente se define como el conunto de partes de los conte@tos internos compartidos.
Figura # 16
Figura # 16. egiones crticas.
Los problemas que deben resolverse en un conte@to de procesos concurrentes (como regiones
cr,ticas) son los siguientes:
2 "@clusin mutua.
2 Sincroni#acin.
2 0ead loc9 (8braso mortal *nterbloqueo)
)ttp8//eduadis.itlapiedad.edu.m3/X)oce&ueras/so9/so9Y299.)tml
2.? !stados y transiciones de los procesos
(n proceso puede estar en cual!uiera de los si&uientes tres estados8 <isto, En ejecuci$n y 6lo!ueado.
<os procesos en el estado listo son los !ue pueden pasar a estado de ejecuci$n si el planificador los
selecciona. <os procesos en el estado ejecuci$n son los !ue se estn ejecutando en el procesador en
ese momento dado. <os procesos !ue se encuentran en estado %lo!ueado estn esperando la respuesta
de al&5n otro proceso para poder continuar con su ejecuci$n. #or ejemplo operaci$n de E/1.
(n proceso puede variar entre 5 distintos estados8
*eH8 cuando el proceso esta siendo creado.
7unnin08 cuando el proceso se esta ejecutando.
Iaitin08 cuando el proceso esta esperando !ue se cumpla al&5n otro evento.
7eady8 cuando el proceso esta pronto para ejecutar, esperando por la '#(.
Terminated8 cuando el proceso esta terminado.
!stado de los .rocesos.
<os %lo!ues de control de los procesos se almacenan en colas, cada una de las cuales representa un
estado particular de los procesos, e3istiendo en cada %lo!ue, entre otras informaciones. <os estados de
los procesos son internos del sistema operativo y transparentes al usuario.
<os estados de los procesos se pueden dividir en dos tipos8 activos e inactivos.
9.: Estados activos8 1on a!uellos !ue compiten con el procesador o estn en condiciones de )acerlo. 1e
dividen en8
Ejecuci$n. Estado en el !ue se encuentra un proceso cuando tiene el control del procesador. En un
sistema monoprocesador este estado s$lo lo puede tener un proceso.
#reparado. 4!uellos procesos !ue estn dispuestos para ser ejecutados, pero no estn en ejecuci$n por
al&una causa (?nterrupci$n, )a%er entrado en cola estando otro proceso en ejecuci$n, etc.).
6lo!ueado. 1on los procesos !ue no pueden ejecutarse de momento por necesitar al&5n recurso no
disponi%le (&eneralmente recursos de entrada/salida).
2.: Estados inactivos8 1on a!uellos !ue no pueden competir por el procesador, pero !ue pueden volver a
)acerlo por medio de ciertas operaciones. En estos estados se mantiene el %lo!ue de control de proceso
aparcado )asta !ue vuelva a ser activado. 1e trata de procesos !ue no )an terminado su tra%ajo !ue lo
)an impedido y !ue pueden volver a activarse desde el punto en !ue se !uedaron sin !ue ten&an !ue
volver a ejecutarse desde el principio.
1on de dos tipos8
1uspendido %lo!ueado. Es el proceso !ue fue suspendido en espera de un evento, sin !ue )ayan
desaparecido las causas de su %lo!ueo.
1uspendido pro&ramado. Es el proceso !ue )an sido suspendido, pero no tiene causa parta estar
%lo!ueado.
Esta(os (e los pro#esos
K -uevo: "l proceso es creado.
K "ecucin: Se eecutan instruccines.
K "spera: "l proceso esta en espera por la ocurrencia de alg!n evento.
K Listo: "l proceso esta esperando a que le asignen el procesador.
K <erminado: "l proceso finali#a su eecucin.
K 0iagrama de estados de los procesos.
I$*orma#i'$ aso#ia(a #o$ #a(a pro#eso+
K "stado del proceso
K +rogram counter
K :egistros del %+$
K *nformacin de planificacin del %+$
K ;emoria
K *nformacin para administracin
K *nformacin de estatus de "'S
Crea#i'$ (e Pro#esos.
"n $-*. el lan#amiento de procesos se reali#a a travs de la llamada al sistema fork().
+ara utili#ar esta llamada al sistema se emplea el (eader Nunistd.(O.
Su sinta@is es:
+idJfor9()G
$na llamada e@itosa a for9() crea un proceso que es una copia del proceso que lo invoco. 0uplica
las variables del proceso original con una e@cepcin, el nuevo proceso creado recibe le nombre
de proceso (io. "l proceso que lo creo se denomina proceso padre, y el sistema devuelve un 6 al
proceso (io y un valor positivo distinto de 6 (pid del (io) al proceso padre.
0espus de la llamada e@itosa a for9(), tanto el proceso padre como el (io corren en forma
simultanea a partir del punto siguiente a la invocacin del for9.
La figura siguiente muestra esta situacin:
8ntes
222222222222222222222222222222222222222222 for9 222222222222222222222222222222222222222222222222222222222222
0espus
P..
+rintf(Q8ntes del for9 RnS)G
+idJfor9()G
+rintf(Q0espus del for9RnS)G
PP.
8%
8
P..
+rintf(Q8ntes del for9 RnS)G
+idJfor9()G
+rintf(Q0espus del for9RnS)G
PP.
P..
+rintf(Q8ntes del for9 RnS)G
+idJfor9()G
+rintf(Q0espus del for9RnS)G
PP.
"n la figura se muestran T l,neas de cdigo de un procesoG un printf, un for9 y otro printf.
)ay 7 secciones en la figura: antes y despus. La seccin antes muestra la situacin antes de la
invocacin al for9. Slo e@iste el proceso 8. "l 8puntador 8% (apuntador de cdigo) seUala a la
instruccin que se est& eecutando. %omo se est& indicando el primer printf *mprime el te@to
Q8ntes del for9S.
La seccin despus muestra la situacin inmediatamente despus de la llamada a for9. "@isten
a(ora 7 procesos: 8y M. 8 es el proceso original, es decir, el proceso padre. M es una copia de 8,
es decir el proceso (io. 8mbos corren en forma simult&nea. 0ado que el apuntador 8%, seUala al
!ltimo printf, se imprime el te@to Q0espus del for9S. Se imprime 7 veces, una por parte del
padre y la otra por parte del (io.
)ttp8//***.itte)uacan.edu.m3/lol&uin/#rocesosYfinal.doc
Des#riptor (e pro#esos : re#ursos.
"s una estructura de datos asociada a una entidad inform&tica ya sea un (:ecurso o
+roceso), en la cual se indica y actuali#a todas las informaciones relativas a dic(a entidad.
"n el caso de un proceso la informacin general que contiene es:
,;.0 I(e$ti*i#a(or+ Bue puede ser interno y e@terno.
0 I$ter$o+ Sistemas.
0 E8ter$o+ $suario.
-;.0 Des#rip#i'$ (e la m"%ui$a virtual aso#ia(a: como espacio virtual asignado, tipo de
mapeo, tipo de acceso.
<;.0 Des#rip#i'$ (e los re#ursos (e la m"%ui$a %ue usa #omo: Lista de recursos que el
proceso tiene derec(o a solicitar, direccin real en la memoria principal, estado de las
variables internas del %+$, prioridad, etc.
=;.0 Esta(os *u$#io$ales (el pro#eso+ Los estados de los procesos son internos del
sistema operativo y transparente al usuario. +ara ste, su proceso estar& siempre en
eecucin independientemente del estado en que se encuentre internamente el sistema.
Los procesos se pueden encontrar en tres estados, observe *igura > <=.
8%
8
8%
M

Figura > <=. Esta(os (e los pro#esos.
$n proceso puede encontrarse en estado de eecucin, bloqueado o listo (que tambin se
llama eecutable).
0e estos estados de los procesos se derivan las siguientes transiciones y estados:
Tra$si#i'$: "l paso de un estado a otro.
Tra$si#io$es+
3. "l proceso se bloquea en la entrada.
7. "l planificador elige otro proceso.
T. "l planificador elige este proceso.
V. La entrada se vuelve disponible.
Esta(os+
,. E!e#u#i'$ (que en realidad (ace uso del %+$ en ese instante).
-. ?lo%uea(o (incapa# de correr (asta que suceda alg!n evento e@terno.
<. Listo (eecutableG se detiene temporalmente para permitir que se eecute otro
proceso).
E$ estos tres esta(os so$ posiles #uatro tra$si#io$es+
,. Fcurre cuando un proceso descubre que no puede continuar. "n alg!n sistema el proceso
debe eecutar una llamada al sistema, MLF%W, para entrar en estado bloqueado.
- : <. Son ocasionadas por el planificador del proceso, que es parte del sistema operativo sin que
el proceso llegue a saber de ella.
-. Fcurre cuando el planificador decide que el proceso en eecucin ya (a corrido el tiempo
suficiente y es tiempo de permitir que otro proceso tome tiempo de %+$.
<. Fcurre cuando todos los procesos (an utili#ado su parte del tiempo y es (ora de que el
primer proceso vuelva a correr.
=. Fcurre cuando aparece el evento e@terno que estaba esperando un proceso (como el arribo
de alguna entrada). Si ning!n otro proceso corre en ese instante, la transicin T se
activar& de inmediato y el proceso iniciara su eecucin, de lo contrario tendr& que
esperar, en estado listo.
Los estados de los procesos se pueden dividir en dos tipos: a#tivos e i$a#tivos.
@ Esta(os a#tivos.
Son aquellos que compiten por el procesador o est&n en condiciones de (acerlo. Se
dividen en, observe la *igura > <A.
Figura > <A. Esta(os (e u$ pro#eso : sus tra$si#io$es.
. E!e#u#i'$. "stado en el que se encuentra un proceso cuando tiene el control del
procesador. "n un sistema monoprocesador este estado slo lo puede tener
proceso.
. Listo. 8quellos procesos que est&n dispuestos para ser eecutados, pero no
est&n en eecucin por alguna causa (interrupcin, (aber entrado, en la cola
estando otro proceso en eecucin, etc.
. ?lo%uea(os. Son los procesos que no pueden eecutarse de momento por necesitar
alg!n recurso no disponible (generalmente recursos de "'S).
@ Esta(os i$a#tivos.
Son aquellos que no pueden competir por el procesador, pero que puedan volver a (acerlo
por medio de ciertas operaciones. "n estos estados se mantiene el bloque de control de proceso
suspendido (asta que vuelva a ser activado.
!on de dos tipos:
Suspe$(i(o lo%uea(o.
"s el proceso que fue suspendido en espera de un evento, sin que (ayan
desaparecido las causas de su bloqueo.
Suspe$(i(o prepara(o.
"s el proceso que (a sido suspendido, pero no tiene causa para estar bloqueado.
Tra$si#io$es (e esta(o.
<odo proceso a lo largo de su e@istencia puede cambiar de estado varias veces. %ada uno
de estos cambios se denomina transicin de estado.
<ransiciones de estado de proceso, *igura > <B.
Figura > <B. Tra$si#io$es (e esta(o.
La asignacin del %+$ al primer proceso de la lista de listos es llamada despac(o, y es eecutado
por la entidad del sistema llamada despac(ador. *ndicamos esta transicin de la manera siguiente:
"espac#o $nom%re del proceso&: 'isto en e(ecucin.
;ientras el proceso tenga %+$, se dice que esta en eecucin. +ara prevenir que
cualquier proceso monopolice el sistema, ya sea de manera accidental o maliciosamente el
sistema operativo austa un relo de interrupcin del (ard/are para permitir al usuario eecutar su
proceso durante un intervalo de tiempo especifico o cuanto. Si el proceso no abandona
voluntariamente el %+$, antes de que e@pire el intervalo, el relo genera una interrupcin,
(aciendo que el sistema operativo recupere el control. "l sistema operativo (ace que el proceso
que anteriormente se (allaba en estado de eecucin pase al de listo, y (ace que el primer proceso
de la lista de listos pase al estado de eecucin.
Estas tra$si#io$es (e esta(o se i$(i#a$ #omo+
) tiempo e*cedido $nom%re del proceso&: en e(ecucin 'isto
) %lo+ueado $nom%re del proceso&: en e(ecucin %lo+ueado
El pro#eso #amia (el esta(o lo%uea(o al esta(o listo+
) despertar $ nom%re del proceso&: %lo+ueado 'isto.
Co$ esto te$emos (e*i$i(as = tra$sa##io$es (e esta(o.
0 despac#o $ nom%re del proceso&: 'isto en e(ecucin
) tiempo e*cedido $ nom%re del proceso&: en e(ecucin 'isto
) %lo+ueado $ nom%re del proceso&: en e(ecucin %lo+ueado
) despertar $ nom%re del proceso &: %lo+ueado 'isto.
Suspe$si'$ : Rea$u(a#i'$.
$n proceso suspendido no puede proseguir sino (asta que lo reanuda otro proceso.
:eanudar (o activar) un proceso implica reiniciarlo a partir del punto en el que se suspendi.
Las operaciones de suspensin y reanudacin son importantes por diversa ra#ones:
E Si un sistema est& funcionando mal y es probable que falle, se puede suspender los
procesos activos para reanudarlos cuando se (aya corregido el problema.
E $n usuario que desconf,e de los resultados parciales de un proceso puede suspenderlo
(en ve# de abortarlo) (asta que verifique si el proceso funciona correctamente o no.
E 8lgunos procesos se puede suspender como respuesta a las fluctuaciones a corto pla#o
de la carga del sistema y reanudarse cuando las cargas regresen a niveles normales.
La figura # ,-. Muestra los procesos con suspensin y reanudacin.
Figura > <C. Tra$si#io$es (e esta(os (e los pro#esos #o$ suspe$si'$ : rea$u(a#i'$.
La *igura > <C, muestra el diagrama de transiciones de estado de los procesos,
modificado para incluir las operaciones de suspensin y reanudacin. Se (an aUadido dos nuevos
estados, denominados suspendido2listo y suspendido bloqueadoG no (ay necesidad de un estado
suspendido2eecutado. Sobre la l,nea discontinua se encuentran los estados activos, y debao de
ella los estados suspendidos.
$na suspensin puede ser iniciada por el propio proceso o por otro. "n un sistema con un
solo procesador el proceso en eecucin puede suspenderse a si mismoG ning!n otro proceso
podr,a estar en eecucin al mismo tiempo para reali#ar la suspensin (aunque otro proceso s,
podr,a solicitar la suspensin cuando se eecute). "n un sistema de m!ltiples procesadores, un
proceso en eecucin puede suspender a otro que se est eecutando en ese mismo momento en un
procesador diferente.
Solamente otro proceso puede suspender un proceso listo. La transicin correspondiente
es:
,; Suspe$(er D$omreE(elEpro#eso;+ Listo Suspe$(i(o0Listo.
$n proceso puede (acer que otro proceso que se encuentre en el estado suspendido2listo pase al
estado listo. La transicin correspondiente es:
-; rea$u(ar D $omreE(elEpro#eso;+ Suspe$(i(o0Listo Listo.
$n proceso puede suspender a otro proceso que est bloqueado. La transicin
correspondiente es:
<; suspe$(er D $omreE(elEpro#eso;+ ?lo%uea(o Suspe$(i(o0?lo%uea(o.
$n proceso puede reanudar otro proceso que est suspendido2bloqueado. La transicin
correspondiente es:
=; rea$u(ar D $omreE(elEpro#eso;+ Suspe$(i(o0?lo%uea(o ?lo%uea(o.
%omo la suspensin es por lo general una actividad de alta prioridad, se debe reali#ar de
inmediato. %uando se presenta finalmente el trmino de la operacin ( si es que termina),
el proceso suspendido2bloqueado reali#a la siguiente transicin.
A; #ompletarD$omreE(el Epro#eso;+ suspe$(i(o0lo%uea(o suspe$(i(o0listo.
B; suspe$(er D$omreE(elEpro#eso;+ E!e#u#i'$ Suspe$(i(o0Listo.
"n conclusin los sistemas que administran procesos deben ser capaces de reali#ar ciertas
operaciones sobre procesos y con ellos. <ales operaciones incluyen:
2 %rear un proceso.
2 0estruir un proceso.
2 Suspender un proceso.
2 :eanudar un proceso.
2 %ambiar la prioridad de un proceso.
2 Mloquear un proceso.
2 0espertar un proceso.
2 0espac(ar un proceso.
2 +ermitir que un proceso se comunique con otro (esto se denomina
comunicacin entre procesos).
Crear u$ pro#eso impli#a opera#io$es #omo+
2 0ar un nombre a un proceso.
2 *nsertarlo en la lista de procesos conocidos del sistema ( o tabla de procesos)
2 0eterminar la prioridad inicial de proceso.
2 %rear el bloque de control de proceso.
2 8signar los recursos iniciales al proceso.
$n proceso puede crear un nuevo proceso. Si lo (ace el proceso creador se denomina
proceso padre, y el proceso creado, proceso (io. Slo se necesita un padre para crear un (io. <al
creacin origina una estructura er&rquica de procesos. -o se puede destruir un proceso cuando
este (a creado otros procesos.
0estruir un proceso implica eliminarlo del sistema. Se le remueve de la tabla o listas del
sistema, sus recursos se devuelven al sistema y su bloque de control de proceso se borra (es decir,
el espacio de memoria ocupado por su +%M se devuelve al espacio de memoria disponible.
)ttp8//eduadis.itlapiedad.edu.m3/X)oce&ueras/so9/so9Y499.)tml
Opera#io$es (e pro#esos : re#ursos.
Los sistemas operativos poseen una serie de funciones cuyo obetivo es el de la
manipulacin de los procesos. "n general las operaciones que se pueden (acer sobre un proceso
son las siguientes:
. Crear el pro#eso. Se produce con la orden de eecucin del programa y suele necesitar
varios argumentos, como el nombre y la prioridad del proceso, *igura > <C.

Figura > <C. Crea#i'$ (e u$ pro#eso.
La #rea#i'$ (e u$ pro#eso pue(e ser (e (os tipos+
. Fer"r%ui#a. "n ella cada proceso que se crea es (io del proceso creador y (ereda el entorno
de eecucin de su padre. "l primer proceso que eecuta un usuario ser& (io del intrprete de
comandos con el que interact!a, *igura > <G.
Figura > <G. Ferar%u)a (e pro#esos.
. No !er"r%ui#o. %ada proceso creado por otro proceso se eecuta independientemente de su
creador con un entorno diferente. "s un tipo de creacin que no suele darse en los sistemas
operativos actuales.
A(em"s (e los (os tipos a$teriores se pue(e$ reali&ar las opera#io$es siguie$tes+
. "estruir un proceso. Se trata de la orden de eliminacin del proceso con la cual el
sistema operativo destruye su PC? D Pro#es #o$trol ?lo#H;.
. !uspender un proceso. "s una operacin de alta prioridad que parali#a un proceso que
puede ser reanudado posteriormente. Suele utili#arse en ocasiones de mal funcionamiento
o sobrecarga del sistema.
. eanudar un proceso. <rata de activar un proceso que (a sido previamente
suspendido.
. %ambiar la prioridad de un proceso.
. .empori/ar la e(ecucin de un proceso. )ace que un determinado proceso se eecute
cada cierto tiempo (segundos, minutos, (oras,...) por etapas o de una sola ve#, pero
transcurrido un periodo de tiempo fio.
. Despertar u$ pro#eso. "s una forma de desbloquear un proceso que (abr& sido
bloqueado previamente por tempori#acin o cualquier otra causa.
)ttp8//eduadis.itlapiedad.edu.m3/X)oce&ueras/so9/so9Y492.)tml
2.C .rocesos li0eros &-ilos o "ebras(.
.rocesos li0eros
<os procesos li&eros son pro&ramas en ejecuci$n son %sicamente procesos pero a diferencia de -stos
5ltimos !ue solo tienen un )ilo de ejecuci$n los primeros tienen el )ilo principal ms )ilos secundarios o
)ijos, en -ste caso todos los procesos )ijos comparten la informaci$n del )ilo principal pero adems
puede cada )ilo tener su informaci$n privada.
/entro de la informaci$n propia tenemos8
'ontador de pro&rama
#ila
De&istros.
Estado del proceso li&ero.
/entro de la informaci$n compartida tenemos8
Jaria%les &lo%ales.
4rc)ivos a%iertos
1e2ales
1emforos.
'onta%ilidad.
<os hilos o procesos ligeros son una parte de c$di&o o minipro&rama !ue puede ser
ejecutada independientemente, de forma !ue una aplicaci$n o un applet puede tener
varios )ilos ejecutndose simultneamente y efectuando distintas tareas7 estos )ilos se
encuentran dentro de un pro&rama y son parte de -l.
<os hilos, a veces tam%i-n llamados contextos de ejecucin, pueden ser utili+ados para
la implementaci$n de al&oritmos paralelos o procesos concurrentes, sin ser necesario
disponer de e!uipos con estructura de multiprocesador. En el caso de un solo
procesador, los procesos li&eros incorporan mecanismos para compartirlo,
esta%leci-ndose prioridades
entre ellos y tam%i-n facilidades de sincroni+aci$n, cuando es necesario.
Multiproceso se refiere a dos pro&ramas !ue se ejecutan ;aparentemente; a la ve+, %ajo
el control del sistema operativo.
Multihilo se refiere a !ue dos o mas tareas se ejecutan ;aparentemente; a la ve+, dentro
de un mismo pro&rama.
"ttpE>>HHH.mono0rafias.com>traba9os2D>paradi0mas=de=
pro0ramacion>paradi0mas=de=pro0ramacion.s"tml
ver arc"ivoE procesosli0eros.doc e "ilos.pdf
2.1D $oncurrencia y secuenciabilidad.
Pro#esos #o$#urre$tes.
Los procesos son concurrentes si e@isten simult&neamente. Los procesos concurrentes
pueden funcionar en forma totalmente independiente unos de otros, o pueden ser as,ncronos, lo
cual significa que en ocasiones requiere cierta sincroni#acin y cooperacin.
'as siguientes definiciones son esenciales para comprender los conceptos de
concurrencia y secuencialidad.
@ A#tivi(a(.
. Pro#esos: "s un programa en eecucin.
. Tarea: Son las distintas partes de un proceso que se eecutan simult&neamente.
@ Sistemas+
. Multiprograma#i'$: 8dmiten varias actividades que comparten el procesador, pero slo
una puede estar eecut&ndose en un momento dado.
. Multipro#eso: Las actividades se eecutan en sus propios procesadores, conectados
a travs de una red de comunicaciones.
@ Paralelismo+
"s la eecucin de diversas actividades simult&neamente en varios procesadores. Si slo
e@iste un procesador gestionando multiprogramacin, se puede decir que e@iste pseudo2
paralelismo. Se trata de un concepto f,sico producido por la e@istencia de varios procesadores.
@ Co$#urre$#ia+
"s la e@istencia de varias actividades eecut&ndose simult&neamente, y necesitan
sincroni#arse para actuar conuntamente. Se trata, en este caso, de un concepto lgico, ya que
slo (ace referencia a las actividades, sin importar el n!mero de procesadores presentes.
+ara que dos actividades, sean concurrentes, es necesario que tengan relacin entre s,,
como puede ser la cooperacin en un trabao determinado o el uso de informacin compartida.
"n un sistema monoprocesador, la e@istencia de multiprogramacin es condicin
necesaria, pero no suficiente para que e@ista concurrencia, ya que los procesos pueden eecutarse
independientemente. +or eemplo, un editor y un compilador pueden estar eecut&ndose
simult&neamente en una computadora sin que e@ista concurrencia entre ellos. +or otro lado si un
programa se est& eecutando y se encuentra grabando datos en un arc(ivo, y otro programa
tambin en eecucin est& leyendo datos de ese mismo arc(ivo, s, e@iste concurrencia entre ellos,
pues el funcionamiento de uno interfiere en el funcionamiento de otro.
Si un sistema es multiprocesador, tambin pueden presentarse situaciones de concurrencia
siempre y cuando las actividades necesiten actuar entre s,, bien por utili#ar informacin com!n, o
por cualquier otra causa.
Los procesos del sistema pueden eecutarse concurrentemente, puede (aber m!ltiples
tareas en el %+$ con varios procesos. "@isten varias ra#ones para permitir la eecucin
concurrente:
E 0ompartir recursos fsicos.
Xa que los recursos del (ard/are de la computadora son limitados, nos podemos ver
obligados a compartirlos en un entorno multiusuario.
@ Compartir re#ursos l'gi#os.
+uesto que varios usuarios pueden interesarse en el mismo elemento de informacin (por
eemplo un arc(ivo compartido), debemos proporcionar un entorno que permita el acceso
concurrente a estos tipos de recursos.
1 2celerar los c3lculos.
Si queremos que una tarea se eecute con mayor rapide#, debemos dividirla en subtareas,
cada una de las cuales se eecutara, en paralelo con las dem&s.
@ Mo(ulari(a(.
+odremos construir el sistema en forma modular, dividiendo las funciones del sistema en
procesos separados.
1 0omodidad .
$n usuario puede tener que eecutar varias tareas a la ve#, por eemplo puede editar,
imprimir y compilar en paralelo.
La eecucin concurrente que requiere la cooperacin entre procesos necesita un
mecanismo para la sincroni#acin y comunicacin de procesos, e@clusin mutua y
sincroni#acin.
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G212."tml
.roblemas de $oncurrencia
En los sistemas de tiempo compartido (a!uellos con varios usuarios, procesos, tareas, tra%ajos !ue
reparten el uso de '#( entre estos) se presentan muc)os pro%lemas de%ido a !ue los procesos
compiten por los recursos del sistema. ?ma&ine !ue un proceso est escri%iendo en la unidad de cinta y
se le termina su turno de ejecuci$n e inmediatamente despu-s el proceso ele&ido para ejecutarse
comien+a a escri%ir so%re la misma cinta. El resultado es una cinta cuyo contenido es un desastre de
datos me+clados. 4s. como la cinta, e3isten una multitud de recursos cuyo acceso de%e der controlado
para evitar los pro%lemas de la concurrencia.
El sistema operativo de%e ofrecer mecanismos para sincroni+ar la ejecuci$n de procesos8 semforos,
env.o de mensajes, GpipesG, etc. <os semforos son rutinas de soft*are (!ue en su nivel ms interno se
au3ilian del )ard*are) para lo&rar e3clusi$n mutua en el uso de recursos. #ara entender este y otros
mecanismos es importante entender los pro%lemas &enerales de concurrencia, los cuales se descri%en
ense&uida.
'ondiciones de 'arrera o 'ompetencia8 <a condici$n de carrera (race condition) ocurre cuando
dos o ms procesos accesan un recurso compartido sin control, de manera !ue el resultado com%inado
de este acceso depende del orden de lle&ada. 1upon&a, por ejemplo, !ue dos clientes de un %anco
reali+an cada uno una operaci$n en cajeros diferentes al mismo tiempo.
El usuario 4 !uiere )acer un dep$sito. El 6 un retiro. El usuario 4 comien+a la transacci$n y lee
su saldo !ue es 9000. En ese momento pierde su turno de ejecuci$n (y su saldo !ueda como 9000) y el
usuario 6 inicia el retiro8 lee el saldo !ue es 9000, retira 200 y almacena el nuevo saldo !ue es A00 y
termina. El turno de ejecuci$n re&resa al usuario 4 el cual )ace su dep$sito de 900, !uedando saldo U
saldo T 900 U 9000 T 900 U 9900. 'omo se ve, el retiro se perdi$ y eso le encanta al usuario 4 y 6, pero
al %an!uero no le convino esta transacci$n. El error pudo ser al rev-s, !uedando el saldo final en A00.
#oster&aci$n o 4pla+amiento ?ndefinido(a)8 Esto se mencion$ en el apartado anterior y consiste
en el )ec)o de !ue uno o varios procesos nunca reci%an el suficiente tiempo de ejecuci$n para terminar
su tarea. #or ejemplo, !ue un proceso ocupe un recurso y lo mar!ue como GocupadoG y !ue termine sin
marcarlo como GdesocupadoG. 1i al&5n otro proceso pide ese recurso, lo ver GocupadoG y esperar
indefinidamente a !ue se GdesocupeG.
'ondici$n de Espera 'ircular8 Esto ocurre cuando dos o ms procesos forman una cadena de
espera !ue los involucra a todos. #or ejemplo, supon&a !ue el proceso 4 tiene asi&nado el recurso GcintaG
y el proceso 6 tiene asi&nado el recurso GdiscoG. En ese momento al proceso 4 se le ocurre pedir el
recurso GdiscoG y al proceso 6 el recurso GcintaG. 4)i se forma una espera circular entre esos dos procesos
!ue se puede evitar !uitndole a la fuer+a un recurso a cual!uiera de los dos procesos.
'ondici$n de Ho 4propiaci$n8 Esta condici$n no resulta precisamente de la concurrencia, pero
jue&a un papel importante en este am%iente. Esta condici$n especifica !ue si un proceso tiene asi&nado
un recurso, dic)o recurso no puede arre%atrsele por nin&5n motivo, y estar disponi%le )asta !ue el
proceso lo GsuelteG por su voluntad.
'ondici$n de Espera Ocupada8 Esta condici$n consiste en !ue un proceso pide un recurso !ue
ya est asi&nado a otro proceso y la condici$n de no apropiaci$n se de%e cumplir. Entonces el proceso
estar &astando el resto de su time slice c)ecando si el recurso fue li%erado. Es decir, desperdicia su
tiempo de ejecuci$n en esperar. <a soluci$n ms com5n a este pro%lema consiste en !ue el sistema
operativo se d- cuenta de esta situaci$n y mande a una cola de espera al proceso, otor&ndole
inmediatamente el turno de ejecuci$n a otro proceso.
'ondici$n de E3clusi$n Mutua8 'uando un proceso usa un recurso del sistema reali+a una serie
de operaciones so%re el recurso y despu-s lo deja de usar. 4 la secci$n de c$di&o !ue usa ese recurso se
le llama Gre&i$n cr.ticaG. <a condici$n de e3clusi$n mutua esta%lece !ue solamente se permite a un
proceso estar dentro de la misma re&i$n cr.tica. Esto es, !ue en cual!uier momento solamente un
proceso puede usar un recurso a la ve+. #ara lo&rar la e3clusi$n mutua se ideo tam%i-n el concepto de
Gre&i$n cr.ticaG. #ara lo&ar la e3clusi$n mutua &eneralmente se usan al&unas t-cnicas para lo&rar entrar a
la re&i$n cr.tica8 semforos, monitores, el al&oritmo de /eEEer y #eterson, los GcandadosG. #ara ver una
descripci$n de estos al&oritmos consulte
'ondici$n de Ocupar y Esperar un Decurso8 'onsiste en !ue un proceso pide un recurso y se le
asi&na. 4ntes de soltarlo, pide otro recurso !ue otro proceso ya tiene asi&nado.
<os pro%lemas descritos son todos importantes para el sistema operativo, ya !ue de%e ser capa+ de
prevenir o corre&irlos. Fal ve+ el pro%lema ms serio !ue se puede presentar en un am%iente de
concurrencia es el Ga%ra+o mortalG, tam%i-n llamado Gtra%a+$nG y en in&l-s deadlocE. El deadlocE es una
condici$n !ue nin&5n sistema o conjunto de procesos !uisiera e3)i%ir, ya !ue consiste en !ue se
presentan al mismo tiempo cuatro condiciones necesarias8 <a condici$n de no apropiaci$n, la condici$n
de espera circular, la condici$n de e3clusi$n mutua y la condici$n de ocupar y esperar un recurso. 4nte
esto, si el deadlocE involucra a todos los procesos del sistema, el sistema ya no podr )acer al&o
productivo. 1i el deadlocE involucra al&unos procesos, -stos !uedarn con&elados para siempre.
2.1D.1 !1clusin mutua de secciones criticas.
E8#lusi'$ Mutua.
%onsiste en garanti#ar que durante la eecucin de una regin cr,tica los recursos
compartidos solo se asignen a uno y solo a uno de los procesos.
Si un recurso compartido es una variable, la e@clusin mutua asegura que a lo m&s un
proceso a la ve# (a accedido a ella durante la actuali#acin cr,tica que conduce a valores
temporalmente inestables. %onsecuentemente los otros procesos ven solamente valores estables
de las variables compartidas. %on los dispositivos compartidos la necesidad para la e@clusin
mutua puede ser incluso m&s obvia cuando uno considera el problema que puede provocar sus
usos.
+or eemplo, supongamos que en el sistema e@iste un arc(ivo formado por registros
compuestos por Y campos, figura # 14:
Figura # 14. Registro (e A #ampos.
+ara que un registro sea valido debe estar totalmente actuali#ado, es decir, si se modifica
el valor del campo 8, el resto de los campos deben ser co(erentes con el nuevo valor de dic(o
campo, ya que de otro modo el registro ser,a inconsistente.
Si en el momento en que un proceso escribe o modifica un registro y e@iste otro proceso
que reali#a la lectura de ese mismo registro, y el primero de ellos slo (ubiese tenido tiempo de
modificar el campo 8, la informacin obtenida por el segundo proceso seria inconsistente. +ara
evitar esto se deben sincroni#ar los procesos de manera que mientras uno escribe, otro pueda leer.
"sto no ocurre en aquellos casos en que dos procesos tratan de leer en el mismo arc(ivo,
a!n coincidiendo en el mismo registro.
Zenerali#ando. Supongamos que los dos procesos que coinciden en el mismo registr,
uno esta escribiendo y el otro leyendo, llamados "S%:*M*: y L"":, se encuentran en un
sistema monoprocesador multiprogramado y son los !nicos presentes en ese momento, ver figura
# 15
Figura # 15. Co$#urre$#ia
"n el momento de un cambio de proceso del uno al otro se pueden producir las siguientes
situaciones:
. Si$ si$#ro$i&a#i'$ e$tre pro#esos. +uede darse el caso de que "S%:*M*: est actuali#ando un
registro y se quede a med,as, sorprendindole el cambio de proceso, por tanto, terminar& de
escribirlo cuando vuelva a (acer uso del procesador. %on el cambio le tocar& el turno al proceso
L"":, que acceder& a dic(o registro pudiendo leerlo completamente. "s evidente que los datos
le,dos ser&n inconsistentes.
. Co$ si$#ro$i&a#i'$ e$tre pro#esos. Supongamos alg!n mecanismo que pro(,ba la lectura
(bloqueo de registros) a cualquier proceso, mientras el proceso "S%:*M*: est reali#ando alguna
operacin. "n este caso, L"":, al (acer uso del procesador que se encuentra bloqueado, quedar,a
en espera de que el registro quede totalmente escrito y se proceda a su desbloqueo, L"": pasar,a
a estado bloqueado, "S%:*M*: terminar,a su trabao sobre el registro y en el siguiente cambio
L"": proceder,a a (acer el suyo.
"sta sincroni#acin por la cual una actividad impide que otras puedan tener acceso a un
dato mientras se encuentra reali#ando una operacin sobre el mismo es lo que se conoce como
e@clusin mutua.
La #ona de cdigo de un proceso que no puede ser interrumpida por otro, por los motivos
e@puestos anteriormente se le llama :egin %r,tica.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso,Iso,E-,=..tml
Regio$es #r)ti#as.
"s el conunto de actividades elementales cuya eecucin e@ige el monopolio de recursos.
+or eemplo, para indicar que alguna accin se reali#ar& con acceso e@clusivo a ciertos datos
compartidos.
egin datos ) compartidos do accin
KComo evitar la regi'$ #riti#aL. La clave para prevenir el problema aqu, y en muc(as
otras situaciones en que interviene la memoria compartida, arc(ivos compartidos y todo lo que se
comparte, consiste en determinar alguna manera de pro(ibir que un proceso lea y escriba los
datos compartidos al mismo tiempo.
0e otra manera lo que se necesita es la sincroni#acin. $na manera de asegurar de que si
un proceso sta utili#ando una variable o arc(ivo compartido, es que los otros procesos no
pueden (acer lo mismo.
+ara tener una solucin adecuada a la regi'$ #r)ti#a se necesita que se cumplan cuatro
condiciones:
3. -unca dos procesos pueden encontrarse simult&neamente dentro de sus regiones cr,ticas.
7. -o se (acen suposiciones acerca de las velocidades relativas de los procesos o del
-!mero de %+$.
T. -ing!n proceso suspendido fuera de la regin cr,tica debe bloquear a otros procesos.
V. -unca un proceso debe querer entrar en forma arbitraria en su regin cr,tica.
:epresentacin de regiones criticas, observe figura # 1-
Figura # 1-. Represe$ta#i'$ (e regio$es #riti#as
%uando se diseUa un proceso que debe contener una o varias regiones cr,ticas se deben de tomar
en cuenta las siguientes consideraciones:
. La regin cr,tica debe ser eecutada lo m&s r&pido posible.
. $n programa no debe ,nter bloquearse en una regin cr,tica.
. Las regiones cr,ticas deben ser programadas con muc(o cuidado (no se permiten
%iclos indefinidos).
. ;ientras un proceso est& en su regin cr,tica otros procesos pueden continuar
"ecut&ndose fuera de las regiones cr,ticas.
. %uando se tienen procesos que comparten datos, si un proceso dea la regin
%r,tica otro de los procesos que espera a entrar en su regin cr,tica puede proceder.
%uando el proceso termina, voluntaria o involuntariamente, el sistema operativo debe de
reali#ar la limpie#a propia de fin de proceso y liberar la e@clusin mutua de otros procesos.
)ttp8//eduadis.itlapiedad.edu.m3/X)oce&ueras/so9/so9Y293.)tml
,a e1clusin mutua8 >orma de ase&urar !ue si un proceso est usando una varia%le o
arc)ivo compartido, los otros procesos !uedarn e3cluidos de )acer lo mismo.
<os procesos pueden tener en su c$di&o secciones en !ue reali+an clculos internos y
operaciones !ue no dan lu&ar a condiciones de competencia. 1in em%ar&o e3isten
secciones de pro&rama en !ue el proceso est accediendo a recursos compartidos !ue
pueden dar pi- a condiciones de competencia.
<a parte del pro&rama en !ue se accede a un recurso compartido se denomina seccin
o re0in crtica (re!uisito necesario, pero no suficiente). <os re!uisitos para !ue
procesos paralelos cooperen de manera correcta usando datos compartidos son los
si&uientes8
/os procesos nunca pueden estar simultneamente dentro de sus re&iones
cr.ticas.
Ho se puede suponer nada acerca de las velocidades de ejecuci$n de los
procesos o el n5mero de las '#(.
Hin&5n proceso !ue se ejecute fuera de su re&i$n cr.tica puede %lo!uear a otros
procesos.
Hin&5n proceso de%er tener una espera indefinida para entrar en su re&i$n
cr.tica.
<a e3clusi$n mutua de%e ponerse en prctica s$lo cuando los procesos o%tienen
acceso a datos compartidos modifica%les7 cuando los procesos reali+an operaciones
!ue no entran en conflicto con otras, de%en permitirse !ue procedan concurrentemente.
'uando un proceso o%tiene acceso a datos compartidos modifica%les, se dice !ue se
encuentra en una seccin crtica. Es evidente !ue, para evitar la clase de pro%lemas
o%servados en la secci$n anterior, de%e ase&urarse !ue cuando un proceso se
encuentre en una secci$n cr.tica, los dems procesos (o al menos los !ue ten&an
acceso a los datos compartidos) no pueden entrar a sus propias secciones cr.ticas.
Mientras un proceso se encuentra en su secci$n cr.tica, otros procesos pueden, claro
est, se&uir ejecutndose fuera de sus secciones cr.ticas. 'uando un proceso
a%andona su re&i$n cr.tica, otro proceso !ue espera entrar en su propia secci$n cr.tica
(si e3iste al&5n proceso en espera). <o&rar !ue se cumpla la e3clusi$n mutua es uno de
los pro%lemas fundamentales de la pro&ramaci$n concurrente. 1e )an propuesto
muc)as soluciones, al&unas de soft*are y otras de )ard*are, al&unas sencillas y otras
complejas, y al&unas !ue re!uieren la cooperaci$n voluntaria de los procesos y otras
!ue e3i&en un escrito ajuste a r.&idos protocolos.
Encontrarse dentro de una re&i$n cr.tica es un estado especial concedido a un proceso.
El proceso tiene acceso e3clusivo a los datos compartidos y los dems procesos !ue
re!uieran acceso a los datos en ese momento de%en esperar. 4s. pues, las secciones
cr.ticas de%en ejecutarse tan rpido como sea posi%le7 un proceso no se de%e %lo!uear
dentro de su propia secci$n cr.tica y las secciones cr.ticas de%en codificarse con muc)o
cuidado (para evitar, por ejemplo, la posi%ilidad de ciclos infinitos).
1i un proceso de una secci$n cr.tica termina, ya sea voluntaria o involuntariamente, el
sistema operativo, al reali+ar su mantenimiento de terminaciones, de%e li%erar la
e3clusi$n mutua de manera !ue otros procesos puedan entrar en sus re&iones cr.ticas.
!l problema de la Seccin $rtica
n procesos compitiendo para utili+ar al&5n dato compartido.
'ada proceso tiene un se&mento de c$di&o, llamado secci$n cr.tica, en el !ue se
accede al dato compartido.
#ro%lema P ase&urarse de !ue cuando un proceso esta ejecutndose en su
secci$n cr.tica, a nin&5n otro proceso se le permite ejecutar la suya.
Estructura del proceso #i
repeat
entry section
secci$n cr.tica
e3it section
secci$n restante
until false7
Solucin al problema de la Seccin $rtica
(na soluci$n al pro%lema de la secci$n cr.tica de%e satisfacer los si&uientes tres
re!uerimientos8
3. !1clusin 3+tua. 1i un proceso Pi esta ejecutandose en su secci$n
cr.tica, entonces nin&uno de los otros procesos puede estar en su secci$n
cr.tica
7. .ro0reso. 1i nin&5n proceso esta ejecutndose en su secci$n cr.tica y
e3isten procesos !ue !uieren entrar en su secci$n cr.tica, entonces la
selecci$n del pr$3imo proceso !ue entrar a la secci$n cr.tica no puede
ser pospuesta indefinidamente.
T. !spera limitada. /e%e e3istir un l.mite del n5mero de veces !ue se les
permite a otros procesos entrar en sus secciones cr.ticas en el intervalo
entre !ue un proceso )a )ec)o un re!uerimiento para entrar en su
secci$n cr.tica y !ue se le concede el permiso.
1e supone !ue cada proceso se ejecuta a velocidad distinta de cero.
Hin&una suposici$n respecto a la velocidad relativa de los n procesos.
Intentos iniciales para resolver el problema
?n)i%ir las interrupciones.
1olo dos procesos, #0 and #9
Estructura &eneral del proceso #i
repeat
entry section
secci$n cr.tica
e3it section
secci$n restante
until false7
<os procesos pueden compartir al&unas varia%les comunes para sincroni+ar sus
acciones.
/l0oritmo 1
Variables compartidas:
P var turn8 (0..9)7
inicialmente turn U 0
P turn U i Z #i puede entrar en su secci$n cr.tica
Proceso Pi
repeat
H"ile turn Z i do no:op7
secci$n cr.tica
turn 8U j7
secci$n restante
until false7
1atisface la condici$n de e3clusi$n m5tua, pero no la de pro&reso (si turnU0 y #9 esta
listo para entrar en su secci$n cr.tica, #9 no puede )acerlo, incluso aun!ue #0 este en
la secci$n restante)
/l0oritmo 2
Variables compartidas
P var fla&8 array R0..9S of %oolean7
inicialmente fla& R0S U fla& R9S U false.
P fla& RiS U true Z #i listo para entrar en su secci$n cr.tica
Proceso Pi
repeat
fla&RiS 8U true7
H"ile fla&RjS do no:op7
secci$n cr.tica
fla& RiS 8U false7
secci$n restante
until false7
1atisface la e3clusi$n m5tua, pero no el re!uerimiento de pro&reso. (#0 pone fla&R0 S
Utrue y #9 pone fla&R9 S Utrue7 cada uno esperando al otro indefinidamente)
/l0oritmo
: 'om%inaci$n de las varia%les compartidas de los al&oritmos 9 y 2.
: #roceso #i
repeat
fla& RiS 8U true7
turn 8U j7
H"ile (fla& RjS and turn U j) do no:op7
secci$n cr.tica
fla& RiS 8U false7
secci$n restante
until false7
: 'umple los tres re!uerimientos7 resuelve el pro%lema de la secci$n cr.tica para dos
procesos.
/l0oritmo del panadero
4ntes de entrar a su secci$n cr.tica, los procesos reci%en unn5mero. El !ue
posea el n5mero menor entra en la secci$n cr.tica.
1i los procesos #i y #j reci%en el mismo n5mero, si i V j, entonces #i es servido
primero7 si no lo es #j .
El es!uema de numeraci$n siempre &enera n5meros en orden creciente7 por
ejemplo 9,2,3,3,3,3,4,5...
2.1D.2 Sincroni2acin de procesos en S.$.
Si$#ro$i&a#i'$.
"n procesos concurrentes, la eecucin de un proceso se desarrolla en forma as,ncrona
respecto a los otros. Sin embargo cuando dos, o m&s procesos necesitan entrar en regin cr,tica,
es necesario que e@ista una sincroni#acin entre ellos a fin de garanti#ar que al menos uno y solo
un proceso entrar& en regin cr,tica.
Si una actividad desea impedir que otra acceda a ciertos datos compartidos, mientras no se
cumpla una determinada condicin, debemos sincroni#ar las actividades con dic(a condicin. +or
tanto, la sincroni#acin es un elemento necesario para asegurar la e@clusin mutua.
E8iste$ tres algoritmos (iseMa(os para este *i$4 so$ los siguie$tes+
Espera A#tiva.
Espera $o A#tiva
Me#a$ismos (e 1ar(Nare.
Algoritmo (e Espera a#tiva.
"stos algoritmos establecen la espera de entrada a la regin cr,tica con un bucle
que ser& roto en el momento en que se cumpla una determinada condicin. Se, les llama as, por
que el proceso no queda bloqueado en su eecucin, sino que constantemente compite por el
procesador. "ntre los distintos algoritmos de este tipo e@istentes podemos citar:
. Espera #o$ mute8. 8lgoritmo que utili#a un s/itc( (;$<".) a travs del
cual se produce la sincroni#acin.
. Alter$a$#ia. Ligeramente meor que el anterior, utili#a tambin una
variable turno para reali#ar el sincronismo entre los
+rocesos.
. Algoritmo (e DEOOER. :esuelve el problema mediante la solucin propuesta
por 0"WW":, basando su funcionamiento en una
<abla unidimensional de dos elementos lgicos
(S/itc(es).
Algoritmo (e Espera $o a#tiva.
Son los algoritmos que establecen la espera para entrar en la regin cr,tica bloqueando, el
proceso, (aciendo que dee de competir por el procesador (asta que se cumpla la condicin de
desbloqueo.
E$tre estos algoritmos e8iste$ los siguie$tes:
. Sem"*oros+ +ara eliminar los problemas que se producen con los algoritmos de espera activa,
fundamentalmente los referidos a la sobrecarga que producen en el sistema, 0i9stra(34?Y)
diseUo un mecanismo basado en una variable entera utili#ada como contador de peticiones de
entrada a una seccin cr,tica. "sta variable es compartida por todos los procesos del sistema. "ste
nuevo tipo de variable se denomin sem&foro, por su capacidad de gestionar el tr&fico de los
proceso que desean acceder a datos compartidos.
%on este sistema, cuando un proceso intente entrar en una regin cr,tica mientras otro
est& accediendo a los datos compartidos, se bloquear& de igual manera que cuando un proceso
accede a un recurso que est& ocupado.
$n sem&foro se define como una variable entera que puede iniciali#arse y su valor no
debe ser negativo y solo puede ser manipulada por las operaciones P y V.
. Opera#io$es P : V. "stas operaciones son indivisibles, es decir que cuando un proceso eecuta
una de ellas no puede ser interrumpida.
Opera#i'$ V+ "sta operacin consiste en incrementar en uno el valor del sem&foro sobre el que
act!a, tambin es conocida como signal. "s una operacin de liberacin.
8s,, si se tiene un sem&foro S4 V (e S VDS; o sig$alDS; causara S2SP,. VDMQTER; 0
libera
Opera#i'$ P+ Mloqueo, decrementa en uno el valor del sem&foro sobre el que act!a siempre y
cuando el valor del sem&foro es OJ9 (positivo) tambin se le conoce en la literatura inglesa
como Sait. +or eemplo si tenemos PDS;4 SaitDS; si S2S0,. PDMQTER; 2 "spera el proceso.
0e las definiciones anteriores se puede observar que el valor de un sem&foro esta
relacionado con el n!mero de veces que se eecutan, dic(as operaciones es decir, el valor del
sem&foro S es igual a su valor inicial m&s n!mero de operaciones V menos n!mero de
operaciones P reali#adas por ese sem&foro.
VALDS; 2 CDS; P NVDS; 0 NPDS; NPD ; 32 NVD ; P,
VALOR VALOR INICIAL
+or definicin se tiene que el valor del sem&foro debe ser mayor que cero, VALDS;59. "n
el caso cuando el valor del sem&foro es cero que relacin nos queda:
NPDS; 2 CDS; P NVDS;
"s importante seUalar que la relacin anterior ser& siempre valida independientemente del
n!mero de operaciones P y V eecutadas sobre el sem&foro.
. Regio$es #r)ti#as+ Son sistemas que permiten establecer protecciones contra una mala
utili#acin de los usuarios. +ara ello slo permiten que los datos compartidos se puedan acceder
desde determinadas regiones quedando transparentes desde el resto.
<iene inconvenientes relacionados con la sincroni#acin y no permite que varias actividades
puedan reali#ar operaciones de lectura simult&nea.
. Regio$es #riti#as #o$(i#io$ales+ "s una meora del mtodo anterior tratando de resolver
algunos problemas de sincroni#acin que se presentan.
. Mo$itores+ $no de los problemas en los mecanismos anteriores es que el programador tiene
que proporcionar de forma e@pl,cita el modo de sincroni#acin. +ara evitarlo ?. 1a$se$ :
C.A.R. 1oare desarrollarn un nuevo mecanismo denominado Mo$itor4 que debe ser soportado
por el lenguae correspondiente.
$n monitor permite compartir, segura y eficientemente, datos entre varias actividades,
garanti#ando la e@clusin mutua, sin necesidad de que el programador tenga que suministrarla
e@pl,citamente.
Se basa en dos premisas: la primera es la abstraccin de datos consistente en una tcnica
capa# de separar las operaciones a eecutar sobre los datos, de los detalles de diseUo propio de los
mismos (los lenguaes ;odula y 8da soportan este tipo de estructuras). La segunda es que
reali#an la e@clusin mutua de forma impl,cita.
La finalidad m&s !til de los monitores es reunir todas las funciones que operan sobre un
conunto de datos compartidos en un slo mdulo, de manera que todos los accesos a esos datos
estar&n for#ados a utili#ar dic(as funciones.
. Co$ta(ores (e eve$tos+ "s un mecanismo para sincroni#ar actividades sin que sea necesario
for#ar la e@clusin mutua, ya sea por que no deseamos limitar la concurrencia de las actividades,
o simplemente porque no lo necesitamos. Se basa en una variable entera que cuenta determinadas
operaciones.
. Me$sa!es+ ;ecanismo que permite intercambiar informacin necesaria durante el desarrollo
normal de un proceso en eecucin. "s m&s un mecanismo de cooperacin que de sincroni#acin.
E8iste$ (os tipos (e #omu$i#a#i'$ e$tre pro#esos+
0 Dire#ta: "nvi y recepcin de mensaes entre siG de manera que se asocia un enlace
vi direccional !nico entre cada dos procesos.
0 I$(ire#ta+ ;ensaes enviados y recibidos a travs de mail bo@ees o bu#ones de correo. %on
este mtodo cada proceso puede estar relacionado con tantos bu#ones como desee consiguiendo
comunicarse con tantos procesos como sea necesario.
Me#a$ismos (e 1ar(Nare
Son instrucciones (ard/are que aseguran la e@clusin mutua. "ntre las m&s utili#adas son
las siguientes:
. Des.ailitar i$terrup#io$es.
Se puede for#ar la e@clusin mutua des(abilitando las interrupciones mientras (aya
alguna actividad en la regin cr,tica. 0e este modo, dic(a actividad no podr& ser interrumpida y,
por tanto, no se podr& producir ning!n cambio de proceso. La (abilitacin y des(abilitacin se
reali#a con una instruccin m&quina, es una operacin r&pida.
. I$stru##i'$ TEST0AND0SET.
Dor#a la e@clusin mutua. La ventaa es que no puede ser interrumpida por que no muc(as
computadoras la poseen.
. Lo#H.
Se basa en la instruccin anterior y permite el acceso a la regin cr,tica a un proceso en
caso de no e@istir otra actividad dentro de su regin cr,tica, no permitiendo en caso contrario.
KComo resolver la e8#lusi'$ mutua usa$(o sem"*orosL.
+ara resolver el problema de debe (acer lo siguiente:
3.2 *dentificar todas las regiones cr,ticas.
7.2 0efinir tantos sem&foros como regiones cr,ticas se tengan, dic(os sem&foros se
iniciali#ar&n con 3.
T.2 %'$ de las regiones cr,ticas ser& antecedida por la operacin + y precedida por la
operacin H.
"emplo: ;$<". es el sem&foro
:egin cr,tica.
%on lo anterior solo un proceso podr& entrar a la regin cr,tica con lo que se esta asegurando la
e@clusin mutua.
MQTER 2 ,
E Bue pasa si se tiene:
A; PDMQTER; E$tra el pro#eso4 se (e#reme$ta e$ u$o el sem"*oro
SECCION CRITICA pero $o liera4 por lo ta$to .a: u$ (ea( lo#H4 $o
PDMQTER; .a: si$#ro$i&a#i'$ e$tre pro#esos $i e8#lusi'$
mutua
?; VDMQTER; Sale el pro#eso se i$#reme$ta e$ u$o el sem"*oro
SECCION CRITICA liera el pro#eso4 por lo ta$to $o .a: (ea( lo#H4 $o
VDMQTER; origi$a pro#eso (e e8#lusi'$ mutua.
C; VDMQTER; Sale el pro#eso se i$#reme$ta e$ u$o el sem"*oro
SECCION CRITICA pero $o liera4 por lo ta$to $o .a: (ea( lo#H.
PDMQTER;
D; PDMQTER; E$tra el pro#eso #o$sume : liera4 por lo ta$to $o
SECCION CRITICA .a: (ea( lo#H4 : (a solu#i'$ a la e8#lusi'$ mutua
VDMQTER; : a la si$#ro$i&a#i'$.
Pregu$ta. @ Harios procesos actuali#an en forma concurrente a una lista ligada.
a) Bue problema se puede producir.
:.2 Se puede producir un problema de sincroni#acin y no (ay e@clusin mutua.
b) "s un problema de e@clusin mutua.
:.2 "@clusin mutua.
c) %omo resolver el problema.
:.2 0ando solucin a la e@clusin mutua.
E Si las operaciones + y H no fueran atmicas, la e@clusin mutua seria violada.
:.2 Si por que los procesos pueden tomar el mismo valor y no se incrementa dos veces
sino solo una.
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G21%."tml
Prolemas #l"si#os (e si$#ro$i&a#i'$.
"ste tipo de problemas constituyen eemplos de una amplia clase de problemas de control
de concurrencia. "stos problemas se utili#an para probar casi todos los esquemas de
sincroni#acin propuestos. "n las soluciones se emplean sem&foros para la solucin.
@ El prolema (e u**er limita(o.
Supongamos que el depsito consiste en n buffers, cada uno capa# de almacenar un
elemento. "l sem&foro ;$<". proporciona la e@clusin mutua para los accesos al depsito de
buffers y se le asigna un valor inicial de 3. Los sem&foros vac,os y llenos cuentan el n!mero de
buffers vac,os y llenos, respectivamente. "l sem&foro vac,o recibe 3 un valor inicial nG al
sem&foro lleno se le asigna el valor inicial 6.
@ El prolema (e los le#tores : es#ritores.
$n obeto de datos (como un arc(ivo o un registro) va a ser compartido por varios
procesos concurrentes. 8lgunos de estos procesos slo quieren leer el contenido del obeto
compartido, mientras que otros quieren actuali#arlos (o sea, leerlo y escribirlo), (acemos una
distincin entre estos dos tipos de procesos refirindonos a los procesos interesados slo en leer
como lectores y escritores y a los dem&s como escritores. Fbviamente, el que dos lectores tengan
acceso simult&neo al obeto de datos compartido no tendr& ning!n efecto adversoG sin embargo, si
un escritor y otro proceso (ya sea lector o escritor) tiene acceso simult&neo al obeto compartido,
puede surgir el caos.
+ara asegurar que no suran estas dificultades, es necesario que los escritores tengan
acceso e@clusivo al obeto compartido. 8 este problema de sincroni#acin se le conoce como
problema de los lectores y escritores, el cual es (a utili#ado para probar casi todas las nuevas
primitivas de sincroni#acin.
@ El prolema (e los *il'so*os #ome$sales.
%inco filsofos pasan su vida comiendo u pensando. Los filsofos comparten una mesa
circular rodeada por cinco sillas, una para cada uno de ellos. "n el centro de la mesa se encuentra
una fuente de arro#, y tambin sobre la mesa (ay cinco palillos c(inos. %uando un filsofo
piensa, no interact!a con sus colegas. Fcasionalmente, un filsofo tiene (ambre y trata de coger
los dos palillos que est&n m&s cerca de l (los palillos colocados entre l y sus vecinos de la
derec(a y de la i#quierda). $n filsofo slo puede coger un palillo a la ve# y, obviamente, no
puede ser el que esta en la mano de un vecino. %uando un filsofo ambiento tiene sus dos palillos
al mismo tiempo come sin soltarlos. %uando termina de comer, coloca ambos palillos sobre la
mesa y comien#a a pensar otra ve#.
E Prolema (el pro(u#tor #o$sumi(or.
"n un conte@to de procesos concurrentes, se tiene un conunto de procesos productores de
mensaes y otro conunto de procesos consumidores de mensaes. La #ona donde se depositar&n y
recoger&n los mensaes es un buffer de tamaUo $ ($ localidades).
<anto productores como consumidores eecutaran c,clicamente los siguientes algoritmos.
6er figura # 78.
Figura # 78. Productor consumidor.
"l recurso que se va a compartir es el buffer por lo tanto la seccin critica ser& el acceso y
manipulacin de dic(o buffer.
E +ara resolver el problema de e@clusin mutua ser& necesario definir un sem&foro para controlar
el acceso al buffer, figura # 71.
Figura # 71. De*i$i#i'$ (e u$ sem"*oro para #o$trolar el a##e(o a u**er.
2 %uando el consumidor se apodera del buffer + ( ) [Sorpresa esta va#)o T
Pro(u#tor ga$a
se apo(era (el u**er
TTTsorpresa el u**er esta lle$oUUU
$o va a po(er (epositar
: por lo ta$to va a lierar el u**er
$u$#a .a#e VD ;.
+roductor consumidor utili#ando espera activa, *igura > --.
Pro(u#tor Co$sumi(or
Pro(u#e msg. Lo#H De8iste msg.;
Lo#H Despa#io (ispo$ile; Lo#H Da##eso a u**er;
Lo#H Da##eso a u**er; e8trae msg.
Deposita msg. Q$lo#H Da##eso a u**er;
Q$lo#H Da##eso a u**er; Q$lo#H Despa#io (ispo$ile;
Q$lo#H De8iste msg.; Co$sume msg.
Figura > --.
+roblema de sincroni#acin. La sincroni#acin entre productor y consumidor es necesaria
debido a lo siguiente: Los productores no deben depositar mensaes si el buffer se encuentra lleno
y los consumidores no deben accesar el buffer cuando este se encuentre vaci.
+ara resolver el problema de definir& un sem&foro que defina el espacio disponible y ser&
iniciali#ado con un valor igual a n y un sem&foro que defina la e@istencia de mensae el cual ser&
iniciali#ado con un 6.
Pro(u#tor Co$sumi(or
pro(u#e msg. P De8iste msg.;
R P Despa#io (ispo$ile; P Da##eso s u**er;
P Da##eso a u**er; e8trae msg.
@ (eposita msg V Da##eso a u**er;
V Da##eso a u**er; V Despa#io (ispo$ile;
R V De8iste msg; Co$sume msg.
Solu#i'$ a la e8#lusi'$ mutua R V
0 Solu#i'$ (e la si$#ro$i&a#i'$
2 Muffer lleno "spacio disponibleJ-, e@iste msgJ6.
%asos cr,ticos
2 Muffer vac,o
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G21)."tml
2.1D.2.1 3ecanismo de sem4foros.
Semforos
1on una )erramienta de sincroni+aci$n. Es una varia%le prote&ida !ue solo puede ser modificada por la
rutina de iniciali+aci$n y por otras dos operaciones at$micas8
#( ) V: *ait
J( ) V: si&nal
<as operaciones a las cuales se puede acceder son8
?niciali+aci$n8 'rea un nuevo semforo asi&nndole un valor inicial
#(s)8 *)ile (sU0) do noYop 4F[M?'4
s8Us:9
J(s)8 s8UsT9 4F[M?'4
E3isten %sicamente dos tipos de semforos8
1emforos contadores8 Foman valores positivos mayores o i&uales a 0. 1e utili+an para
sincroni+aci$n de procesos.
1emforos %inarios8 Foman los valores 0 $ 9 y se utili+an para e3clusi$n mutua.
4 continuaci$n se presenta una soluci$n mediante semforos del pro%lema productor/consumidor.
\define H 900
semap)ore mute3 U 97
semap)ore empty U H7
semap)ore full U 07
void productor(void)
]int item7
*)ile(9)]
produceYitem(item)7
do*n(empty)7
do*n(mute3)7
enterYitem(item)7
up(mute3)7
up(full)7^
^
void consumidor(void)
] int item7
*)ile(9)]
do*n(full)7
do*n(mute3)7
removeYitem(_item)7
up(mute3)7
up(empty)7
consumeYitem(item)7^
^
En este caso tenemos la utili+aci$n de 3 semforos, uno destinado al control de la e3clusi$n mutua y los
otros dos destinados a la sincroni+aci$n de los procesos para el control de %uffer lleno y vac.o.
#odr.amos utili+ar semforos para un al&oritmo de espera ocupada con n procesos, pero los n procesos
!ue estn ejecutando el *)ile de la funci$n #(s) van a la cola de ready en un instante de tiempo
reduciendo la performance &eneral del e!uipo.
#ara evitar la espera ocupada se crea un semforo !ue sea un re&istro de un nuevo tipo8
1emforo U Decord
Jalor8?nte&er
<8<istaYdeY#rocesos
End
#(s) ]
s.Jalor8U s.valor : 9
if s.Jalor V 0 t)en a&re&ar este proceso a s.<
%lo!uear7
end^
J(s)]
s.Jalor8Us.Jalor T 9
if s.Jalor 0 t)en !uitar un proceso y a s.<
despertar(y) ^
Sem"*oros
$n sem&foro es un tipo de datos abstracto que permite el uso de un recurso de manera e@clusiva
cuando varios procesos est&n compitiendo.
"l tipo de datos abstracto cumple la siguiente sem&ntica:
"l estado interno del sem&foro cuenta cuantos procesos todav,a pueden utili#ar el recurso.
Se puede reali#ar, por eemplo, con un n!mero entero que nunca llega a ser negativo.
"@iten tres operaciones con un sem&foro: init,5, Hait,5, y signal,5 que reali#an lo
siguiente:
init()
: *niciali#a el sem&foro antes de que cualquier proceso (aya eecutado ni una operacin
Hait,5 ni una operacin signal,5 al l,mite de n!mero de procesos que tengan derec(o a
acceder el recurso. Si se iniciali#a con 3, se (a contruido un sem&foro binario.
5ait()
: Si el estado indica cero, el proceso se queda atrapado en el sem&foro (asta que sea
despertado por otro proceso. Si el estado indica que un proceso m&s puede acceder el
recurso se decrementa el contador y la operacin termina con e@ito.
La operacin Hait,5 tiene que est&r implementada como una instruccin atmica. Sin
embargo, en muc(as implementaciones la operacin Hait,5 puede ser interrumpida.
-ormalmente e@iste una forma de comprobar si la salida del Hait,5 es debido a una
interrupcin o porque se (a dado acceso al sem&foro.
signal()
: $na ve# se (a terminado el uso del recurso, el proceso lo seUali#a al sem&foro. Si queda
alg!n proceso bloqueado en el sem&foro uno de ellos sea despertado, sino se incrementa
el contador.
La operacin signal,5 tambin tiene que est&r implementada como instruccin atmica.
"n algun&s implementaciones es posible comprobar si se (aya despertado un proceso con
e@ito en caso que (ubiera alguno bloqueado.
+ara despertar los procesos se puede implementar varias formas que se destinguen en sus
grados de usticia, por eemplo con un simple sistema tipo D*DF.
"l acceso mutuo a regiones cr,ticas se arregla con un sem&foro que permita el acceso a un slo
proceso
S:init,E5
/E /I
aD loop loop
bD S:Hait,5 S:Hait,5
cD critical region critical region
dD S:signal,5 S:signal,5
eD non-critical region non-critical region
fD endloop endloop
Fbservamos los siguiente detalles:
Si alg!n proceso no libera el sem&foro, se puede provocar un bloqueo.
-o (ace falta que un proceso libere su propio recurso, es decir, la operacin signal,5
puede sea eecutada por otro proceso.
%on simples sem&foros no se puede imponer un orden en los procesos accediendo a
diferentes recursos.
Si e@isten en un entorno solamente sem&foros binarios, se puede simular un sem&foro general
usando dos sem&foros binarios y un contador, por eemplo, con las variables delay, muteJ y
count.
La operacin init,5 iniciali#a el contador al n!mero m&@imo permitido. "l sem&foro muteJ
asegura acceso mutuamente e@clusivo al contador. "l sem&foro delay atrapa a los procesos que
superan el n!mero m&@imo permitido.
La operacin Hait,5 se implementa de la siguiente manera:
delay:Hait,5
muteJ:Hait,5
decrement count
if count greater % then delay:signal,5
muteJ:signal,5
y la operacin signal,5 se implementa de la siguiente manera:
muteJ:Hait,5
increment count
if count equal E then delay:signal,5
muteJ:signal,5
$nas principales desventaas de sem&foros son:
no se puede imponer el uso correcto de los Hait,5s y signal,5s
no e@iste una asociacin entre el sem&foro y el recurso
entre Hait,5 y signal,5 el usuario puede reali#ar cualquier operacin con el recurso
)ttp8//trevinca.ei.uvi&o.es/Xformella/doc/cd04/node"4.)tml
2.1D.2.2 3ecanismo de monitores.
Mo$itores
<odas las estructuras que (emos visto (asta a(ora siguen provocando problemas para el
programador:
el control sobre los recursos est& distribuido por varios puntos de un programa
no (ay proteccin de las variables de control que siempre fueron globales
+or eso se usa el concepto de monitores que implementan un nivel a!n m&s alto de abstraccin
facilitando el acceso a recursos compartidos.
$n monitor es un tipo de datos abstracto que contiene
un conunto de procedimientos de control de los cuales solamente un subconunto es
visible desde fuera
un conunto de datos privados, es decir, no visibles desde fuera
"l acceso al monitor est& permitido solamente a travs de los procedimientos p!blicos y el
compilador garanti#a e@clusin mutua para todos los procedimientos. La implementacin del
monitor controla la e@clusin mutua con colas de entrada que contengan todos los procesos
bloqueados. +ueden e@istir varias colas y el controlador del monitor elige de cual cola se va a
escoger el siguiente proceso para actuar sobre los datos. $n monitor no tiene acceso a variables
e@teriores con el resultado de que su comportamiento no puede depender de ellos.
$na desventaa de los monitores es la e@clusividad de su uso, es decir, la concurrencia est&
limitada si muc(os procesos (acen uso del mismo monitor.
$n aspecto que se encuentra en muc(as implementaciones de monitores es la sincroni#acin
condicional, es decir, mientras un proceso est& eecutando un procedimiento del monitor (con
e@clusin mutua) puede dar paso a otro proceso liberando el cerroo. "stas operaciones se suele
llamar Hait,5 o delay,5. "l proceso que (a liberado el cerroo se queda bloqueado (asta que
otro proceso le despierta de nuevo. "ste bloqueo temporal est& reali#ado dentro del monitor
(dic(a tcnica se reflea en 1ava con Hait,5 y notify,5).
La tcnica permite la sincroni#acin entre procesos porque actuando sobre el mismo recurso los
procesos pueden cambiar el estado del recurso y pasar as, informacin de un proceso al otro.
Lenguaes de alto nivel que facilitan la programacin concurrente suelen tener monitores
implementados dentro del lenguae (por eemplo ref1ava;onitores1ava usa el concepto de
monitores para reali#ar el acceso mutuamente e@clusivo a sus obetos).
"l uso de monitores es bastante costoso, porque se pierde eficiencia por tanto bloqueo de los
prosesos. +or eso se intenta aprovec(ar de primitivas m&s potentes para aliviar este problema,
como vemos en la siguiente seccin.
http://trevinca.ei.uvigo.es/~formella/doc/cd04/node67.html
Monitores
Es un tipo de procedimientos, varia%les y estructuras de datos !ue se a&rupan en un tipo de modulo
especial. Fienen una propiedad importante8 solo un proceso puede estar activo en un monitor en un
instante de tiempo.
<os monitores proveen un nuevo tipo de varia%les de condici$n con dos operaciones !ue operan so%re el
(solo se usan dentro del procedimiento de el monitor).
Wait -> waita! 8 produce !ue el proceso !ue ejecuta la instrucci$n sea interrumpido y removido de la cola
de ready )asta !ue otro proceso lo )a%ilite ejecutando la instrucci$n si&nal( )con la misma varia%le de
condici$n.
Signal -> signala! 8 Ca%ilita la ejecuci$n de al&5n proceso en espera por la ejecuci$n de la instrucci$n
*ait con la misma varia%le de condici$n.
2.1D. Interblo5ueo &Dead,oc6(.
Deadloc6s
1i un conjunto de procesos esta en estado de espera por recursos y nunca cam%ia de estado por!ue los
recursos por los !ue espera estn siendo utili+ados por otros procesos en estado de espera tenemos un
/E4/<O'O. <os recursos son la memoria, dispositivos de E/1, semforos, arc)ivos, etc. <a forma en
!ue un proceso )ace uso de un recurso es8
Solicitud8 si el recurso esta disponi%le se le otor&a, si no el proceso pasa a estado de espera.
"so8 El proceso utili+a el recurso
#iberacin8 el proceso de%e li%erar el recurso.
Condiciones $ecesarias para %ue se produ&ca '()'#*C+
1i se presentan simultneamente las cuatro si&uientes condiciones el sistema esta en /E4/<O'O.
9. EN'<(1?OH M(F(48 #or lo menos un proceso !ue ten&a otor&ado un recurso en forma
e3clusiva.
2. (1O M E1#ED48 /e%e e3istir al menos un proceso !ue este )aciendo uso de un recurso y !ue
este esperando por otros recursos asi&nados a otros procesos.
3. HO ?HFEDD(#'?OH8 <os recursos no pueden ser retirados al proceso. 1i un proceso )ace uso
de un recurso no le podr ser retirado )asta !ue voluntariamente el proceso lo li%ere.
4. E1#ED4 '?D'(<4D8 /e%e e3istir un conjunto de procesos ]#9.....#n^ tal !ue #9 espera por un
recurso utili+ado por #2,......,#n espera por un recurso utili+ado por #9.
,esourse )llocation -raph-ra.o de utili&acion de recursos!
'onjunto de J-rtices8 ( U# ( D
#U]#9,#2,....,#n^
DU]D9,D2,...,Dn^
'onjunto de 4ristas8
(na arista de un proceso #i a un Decurso Dj si&nifica !ue el proceso i esta )aciendo una solicitud por el
recurso Dj.
(na arista del recurso Dj al proceso #i, si&nifica !ue el recurso esta asi&nado al proceso.
1i un D4= no tiene ciclos el sistema no esta en /E4/<O'O, sis si los tiene no se puede afirmar nada.
Mecanismos para tratar con 'eadloc/s
Evasion de /eadlocEs
1i se tiene cuidado al en la forma de asi&nar los recursos se pueden evitar situaciones de /eadlocE.
1upon&amos un am%iente en el !ue todos los procesos declaren a priori la cantidad m3ima de recursos
!ue )a% de usar.
Estado 1e&uro8 un estado es se&uro si se pueden asi&nar recursos a cada proceso ()asta su m3imo) en
al&5n orden sin !ue se &enere /eadlocE. El estado es se&uro si e3iste un ordenamiento de un conjunto
de procesos ]#9...#n^ tal !ue para cada #i los recursos !ue #i podr utili+ar pueden ser otor&ados por los
recursos disponi%les mas los recursos utili+ados por los procesos #j,jVi. 1i los recursos solicitados por #i
no pueden ser otor&ados, #i espera a !ue todos los procesos #j )ayan terminado.
4l&oritmo del %an!uero de /ijEstra
4si&na peticiones de recursos siempre !ue las mismas den como resultado estados se&uros. 1olicitudes
!ue den como resultado estados inse&uros sern ne&adas )asta !ue puedan ser satisfec)as. Este
al&oritmos evita situaciones de /eadlocE asi&nando los recursos en forma correcta.
<as de%ilidades del al&oritmo son8 !ue re!uiere !ue la cantidad de recursos del sistema sea constante,
re!uiere una cantidad de procesos constante y re!uiere !ue los procesos &aranticen !ue los recursos van
a ser devueltos en un intervalo finito de tiempo.
En el rea de la informtica, el pro%lema del deadlocE )a provocado y producido una serie de estudios y
t-cnicas muy 5tiles, ya !ue -ste puede sur&ir en una sola m!uina o como consecuencia de compartir
recursos en una red.
En el rea de las %ases de datos y sistemas distri%uidos )an sur&ido t-cnicas como el Gt*o p)ase locEin&G
y el Gt*o p)ase commitG !ue van ms all de este tra%ajo. 1in em%ar&o, el inter-s principal so%re este
pro%lema se centra en &enerar t-cnicas para detectar, prevenir o corre&ir el deadlocE.
<as t-cnicas para prevenir el deadlocE consisten en proveer mecanismos para evitar !ue se presente una
o varias de las cuatro condiciones necesarias del deadlocE. 4l&unas de ellas son8
4si&nar recursos en orden lineal8 Esto si&nifica !ue todos los recursos estn eti!uetados con un
valor diferente y los procesos solo pueden )acer peticiones de recursos G)acia adelanteG. Esto es, !ue si
un proceso tiene el recurso con eti!ueta G5G no puede pedir recursos cuya eti!ueta sea menor !ue G5G. 'on
esto se evita la condici$n de ocupar y esperar un recurso.
4si&nar todo o nada8 Este mecanismo consiste en !ue el proceso pida todos los recursos !ue va
a necesitar de una ve+ y el sistema se los da solamente si puede drselos todos, si no, no le da nada y lo
%lo!uea.
4l&oritmo del %an!uero8 Este al&oritmo usa una ta%la de recursos para sa%er cuntos recursos
tiene de todo tipo. Fam%i-n re!uiere !ue los procesos informen del m3imo de recursos !ue va a usar de
cada tipo. 'uando un proceso pide un recurso, el al&oritmo verifica si asi&nndole ese recurso todav.a le
!uedan otros del mismo tipo para !ue al&uno de los procesos en el sistema todav.a se le pueda dar )asta
su m3imo. 1i la respuesta es afirmativa, el sistema se dice !ue est en Gestado se&uroG y se otor&a el
recurso. 1i la respuesta es ne&ativa, se dice !ue el sistema est en estado inse&uro y se )ace esperar a
ese proceso.
#ara detectar un deadlocE, se puede usar el mismo al&oritmo del %an!uero, !ue aun!ue no dice !ue )ay
un deadlocE, s. dice cundo se est en estado inse&uro !ue es la antesala del deadlocE. 1in em%ar&o,
para detectar el deadlocE se pueden usar las G&rficas de recursosG. En ellas se pueden usar cuadrados
para indicar procesos y c.rculos para los recursos, y flec)as para indicar si un recurso ya est asi&nado a
un proceso o si un proceso est esperando un recurso. El deadlocE es detectado cuando se puede )acer
un viaje de ida y vuelta desde un proceso o recurso. #or ejemplo, supon&a los si&uientes eventos8
evento 98 #roceso 4 pide recurso 9 y se le asi&na.
evento 28 #roceso 4 termina su time slice.
evento 38 #roceso 6 pide recurso 2 y se le asi&na.
evento 48 #roceso 6 termina su time slice.
evento 58 #roceso ' pide recurso 3 y se le asi&na.
evento "8 #roceso ' pide recurso 9 y como lo est ocupando el proceso 4, espera.
evento 78 #roceso 6 pide recurso 3 y se %lo!uea por!ue lo ocupa el proceso '.
evento A8 #roceso 4 pide recurso 2 y se %lo!uea por!ue lo ocupa el proceso 6.
En la fi&ura 5.9 se o%serva como el Gresource &rap)G fue evolucionando )asta !ue se present$ el
deadlocE, el cual si&nifica !ue se puede viajar por las flec)as desde un proceso o recurso )asta re&resar
al punto de partida. En el deadlocE estn involucrados los procesos 4,6 y '.
(na ve+ !ue un deadlocE se detecta, es o%vio !ue el sistema est en pro%lemas y lo 5nico !ue resta por
)acer es una de dos cosas8 tener al&5n mecanismo de suspensi$n o reanudaci$n R/eitelB3S !ue permita
copiar todo el conte3to de un proceso incluyendo valores de memoria y aspecto de los perif-ricos !ue
est- usando para reanudarlo otro d.a, o simplemente eliminar un proceso o arre%atarle el recurso,
causando para ese proceso la p-rdida de datos y tiempo.
Dea(lo#H
$n S.F. tiene un n!mero limitado de recursos y procesos que solicitan los recursos.
\%omo diseUador de un sistema operativo, Acu&l es el problema para ti si algunos
procesos un tu sistema est&n en deadloc9 esperando recursosC
Los recursos retenidos por los procesos en deadloc9 no est&n disponibles para otros
procesos, y los procesos en deadloc9 no pueden avan#ar (es mal para los dueUos de los
procesos).
;uc(os SS.FF. modernos no tienen apoyo especial para prevenir deadloc9 (porque
cuesta), pero es com!n en programacin de sistemas en general (e.g., en programacin
distribuida).
Cara#ter)sti#as (e (ea(lo#H
"l sistema tiene recursos de varios tipos: memoria, arc(ivos, grabadores, impresoras, etc.
+odemos tener m&s de un eemplar de un tipo de recurso (e.g., tres impresoras). %ada uno
de los eemplares pueden satisfacer un solicitud de un proceso para el recurso.
Los recursos son compartibles y permiten acceso a muc(os procesos (e.g., los arc(ivos de
slo lectura) o no compartibles (e.g., un grabador).
"emplo: <res procesos en un sistema con tres grabadores, cada proceso tiene un grabador
y cada uno necesita uno m&s.
%ondiciones necesarias de deadloc9:
o \ E8#lusi'$ mutua. +or lo menos un recurso debe retenerse no compartido. A+or
quC
o Rete$#i'$ : espera. 0ebe (aber un proceso que retenga por lo menos un recurso
y espere adquirir m&s recursos retenidos por otros.
o No apropia#i'$. Los recursos no se pueden e@propiar. Los procesos liberan
recursos slo voluntariamente.
o Espera #ir#ular. 0ebe (aber un conunto ]+6, +3, ..., +n^ de procesos en espera
tales que +6 espere un recurso de +3, +3 un recurso de +7, ..., y +n un recurso de +6.
+odemos usar un grafo de asignacin de recursos para describir deadloc9. <enemos
procesos (c,rculos), recursos (rect&ngulos con un punto para cada eemplar), aristas de
solicitud y de asignacin (cambio instant&neamente).
$n grafo sin ciclos implica que no (ay deadloc9. Si (ay un ciclo, es posible que e@ista
deadloc9. $n ciclo es una condicin necesaria pero no suficiente para deadloc9.
(ttp:''///.cs.virginia.edu'_9nabe'iic7TT7'notes6`.(tml
A$"lisis.
0efinicin. Araso Mortal DDea( lo#H; o tambin llamado )$ter lo%ueo. "n un
conte@to de procesos concurrentes, si el an&lisis de recursos a compartir no se (ace
cuidadosamente, se puede tener el riesgo de que dos o m&s procesos acaparen alg!n recurso y que
se pongan en espera de que otro u otros liberen los recursos para poder continuar su eecucin, de
tal manera que cada proceso permanecer& en una espera indefinida (infinita), observe el eemplo
de la figura # 7, "emplo: Se tienen 7 procesos +3 y +7. Se tiene 7 recursos *mpresora y $nidad
de disco:
Figura # 7,. Dea( Lo#H.
%uando un proceso espera un evento que nunca se va a dar y el otro tambin lo espera
Dea( lo#H (e u$ re#urso simple.
;uc(os de los dead loc9 se deben a que un proceso retiene un recurso que debe ser usado
en forma e@clusiva. "s decir, el proceso tiene un recurso que slo puede ser usado por un usuario
a la ve#. 8 estos recursos se les conoce como reutili#ables en serie.
Dea( lo#H e$ sistemas (e spool.
Los sistemas de spool suelen ser los m&s propensos al dead loc9. Harios trabaos
parcialmente compleos que generan l,neas de impresin a un arc(ivo de spool pueden
interbloquearse si el espacio disponible para trabaar se llena antes de completarse alguno de esos
trabaos. La solucin m&s com!n es limitar los spoolers de entrada de modo que no se lean m&s
arc(ivos cuando se llega al l,mite de su capacidad.
Posterga#i'$ i$(e*i$i(a.
"n los sistemas que mantienen procesos en espera mientras reali#an la asignacin de
recursos y'o procesan la planificacin de decisiones, es posible que un proceso sea postergado de
manera indefinida mientras otro reciben la atencin del sistema. 8 esta situacin se le conoce
como postergacin indefinida, es diferente del dead loc9 pero sus consecuencias son igual de
negativas.
"n algunos sistemas la postergacin indefinida se evita aumentando la prioridad de un
proceso mientras espera por un recurso, a esto se le llama enveecimiento.
Co$#eptos sore re#ursos.
$n sistema operativo es sobre todo un administrador de recursos, e@isten b&sicamente dos
tipos de recursos:
E Re#ursos $o apropiativos. $n recurso que no se puede liberar antes de completar su
actividad sin perder la valide# del proceso que lo usa, se dice que un recurso no apropiativo. $na
impresora o una unidad de cinta no pueden ser liberados (asta que no termine su trabao.
E Re#ursos apropiativos. $n recurso que puede ser usado temporalmente por varios
procesos sin comprometer el correcto funcionamiento de dic(os procesos se dice que es un
recurso apropiativo. "l CPQ y la memoria principal (mediante las tcnicas de paginacin) son
recursos que pueden ser asignados temporalmente por varios procesos. La apropiatividad de
recursos es e@tremadamente importante en los sistemas de multiprogramacin.
Los datos y los programas son recursos que tienen caracter,sticas especiales. "n un
sistema multiusuario donde se pueden compartir editores, compiladores y programas en general,
es ineficiente cargar una copia de ellos para cada usuario que lo solicite. "n lugar de ello se carga
una sola ve# a la memoria y se (acen varias copias de los datos, una por cada usuario.
"l cdigo que no cambia mientras est& en uso se llama #'(igo re/$trate. "l cdigo que
puede ser cambiado pero que se iniciali#a cada ve# que se usa se llama reutili&ale e$ serie. "l
cdigo rentrate puede ser compartido simult&neamente por varios procesos mientras que el
reutili#able en serie slo puede ser usado por un proceso a la ve#.
;todos para manear los 0ead Loc9, *igura > -=.
) Prevencin
) 9o permitirlos
) :vitarlos
) "ifcil y caro
) Permitirlos y recuperarlos ) Por perdida
) de informacin
Figura # 74. Prevencin de "ead 'ock.
"n principio e@isten cuatro &reas importantes en la investigacin del dead loc9, a saber:
,; Preve$#i'$+
"n las tcnicas de prevencin el inters se centra en condicionar un sistema para que
elimine toda probabilidad de que ocurra un dead loc9 (normalmente a costa de recursos).
-; Evita#i'$+
"n las tcnicas para evitar, la idea es poner condiciones menos estrictas que la prevencin,
para lograr una meor utili#acin de los recursos, pero procurando no caer en un dead loc9.
<; Dete##i'$+
Los mtodos de deteccin se usan en sistemas que permiten la ocurrencia de un dead loc9
de forma voluntaria o involuntaria.
=; Re#upera#i'$+
Los mtodos de recuperacin se usan para romper los dead loc9 en un sistema, para poder
liberarlo de ellos y los procesos estancados pueden continuar y llegar a su fin.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T33.(tml
Mo(elo (el sistema.
$n sistema se compone de un n!mero finito de recursos que se distribuyen entre varios
procesos que compiten por ellos. Los recursos se dividen en varios tipos, cada uno de los cuales
consiste en varios eemplares idnticos. Los ciclos del $%+, el espacio de memoria, los arc(ivos
y los dispositivos de "'S (como impresoras y unidades de cinta) son eemplos de tipos de
recursos.
$n proceso debe solicitar un recurso antes de usarlo, y liberarlo al terminar su uso. $n
proceso puede solicitar cuantos recursos quiera para llevar a cabo su tarea. Fbviamente, el
n!mero no puede e@ceder del total de recursos disponibles del sistema. "n otras palabras, un
proceso no puede solicitar tres impresoras si el sistema solo dispone de dos.
"n el modo de operacin normal, un proceso solo puede utili#ar un recurso en la
secuencia siguiente:
3. Solicitud. Si la solicitud no puede atenderse de inmediato (por eemplo, otro proceso
est& utili#ando ese recurso), entonces el proceso solicitante debe esperar (asta que pueda
adquirir el recurso.
7. $tili#acin. "l proceso puede trabaar con el recurso (por eemplo, si el recurso es una
impresora, el proceso puede imprimir en ella).
T. Liberacin. "l proceso libera el recurso.
La solicitud y liberacin de recursos son llamadas al sistema. 8lgunos eemplos son las
llamadas Solicitar y Liberar dispositivos, 8brir y %errar arc(ivos, y 8signar y Liberar memoria.
La solicitud y liberacin de otros recursos puede lograrse atreves de las operaciones espera (+) y
seUal (H) sobre sem&foros. 8dem&s la utili#acin de recursos solo puede conseguirse mediante
llamadas al sistema (por eemplo, para leer o escribir en un arc(ivo o dispositivo de "'S), de
modo que para cada utili#acin, el sistema operativo verifica que el proceso que dispone del
recurso ya lo (ab,a solicitado y ya se le (ab,a asignado. $na tabla del sistema registra si cada uno
de los recursos est& libre o asignado y, de estar asignado, a qu proceso. Si un proceso solicita un
recurso que se encuentra asignado a otro, puede aUadirse a la cola de procesos que esperan tal
recurso.
$n conunto de procesos se encuentra en estado de bloqueo mutuo cuando cada uno de
ellos espera un suceso que slo puede originar otro proceso del mismo conunto.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T37.(tml
Cara#teri&a#i'$.
0ebe ser obvio que los bloqueos mutuos son indeseables, pues cuando se dan, los
procesos nunca terminan su eecucin y los recursos del sistema se parali#an, impidiendo que se
inicien otros procesos. 8ntes de anali#ar los distintos mtodos para tratar el problema del bloqueo
mutuo se describir&n las circunstancias que los caracteri#an.
Co$(i#io$es $e#esarias para %ue o#urra u$ Dea( Lo#H.
Co**ma$4 Elp.i#H : S.os.a$i. "stablecieron las cuatro condiciones necesarias para que
se produ#ca un dead loc9.
3.2 Los procesos reclaman control e@clusivo de los recursos que solicitan (e8#lusi'$ mutua).
7.2 Los procesos mantienen los recursos que se les (an asignado mientras esperan por recursos
adicionales (#o$(i#i'$ (e espera).
T.2 -o se pueden tomar los recursos que los procesos tienen (asta su completa utili#acin
(#o$(i#i'$ (e $o apropiativi(a().
V.2 "@iste una cadena circular de procesos en la cual cada uno de ellos mantiene uno o m&s
recursos que son requeridos por el siguiente proceso de la cadena (#o$(i#i'$ (e espera
#ir#ular).
Se deben presentar las cuatro condiciones para que puede aparecer un 0ead Loc9. La
condicin de espera circular implica la condicin de retencin y espera, por lo que las cuatro
condiciones no son completamente independientes.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T3T.(tml
2.1D..1 .revencin.
Preve$#i'$.
"n las estrategias de prevencin de dead Loc9s, los recursos son otorgados a los procesos
solicitados, de tal manera que la solicitud de un recurso nunca llega a un 0ead Loc9. "sta
estrategia se cerciora de que cuando menos una de cuatro condiciones de 0ead Loc9 nunca llegue
a ocurrir.
@ E8#lusi'$ mutua.
La condicin de e@clusin mutua debe conservarse para recursos no compartibles. Los
recursos compartibles, no requieren acceso mutuamente e@cluyente y, por tanto, no pueden
participar en un dead loc9. Los arc(ivos de slo lectura son un buen eemplo de recursos
compartibles. Si varios procesos tratan de abrir al mismo tiempo un arc(ivo de slo lectura, se
les puede otorgar accesos simult&neos al arc(ivo, por lo general no es posible evitar dead loc9=s
negando la condicin de e@clusin mutua. +or su naturale#a algunos recursos no pueden
compartirse.
@ -egacin de la condicin de Wespera porW.
La primera estrategia de 1ave$(er requiere que todos los recursos que va a necesitar un
proceso sean pedidos de una sola ve#. "l sistema deber& asignarlos seg!n el principio Wto(o o
$a(aW. Si el conunto de recursos que necesita un proceso est& disponible se le asigna (todo) y se
le permite entrar en eecucin. Si no es as,, el proceso deber& esperar (asta que su conunto de
recursos est disponible. ;ientras un proceso espera. -o podr& tener ning!n recurso.
Esta estrategia prese$ta las siguie$tes (esve$ta!as+
E +uede llevar a la postergacin indefinida, ya que qui#& todos los recursos requeridos
estn disponibles al mismo tiempo (costos de operacin altos).
E +uede llevar un serio desperdicio de recursos, se requiere tener una gran cantidad de
recursos para poder responder a cumplir peticin.
E "s ineficiente por que decrementa la concurrencia del sistema.
$na variante consiste en dividir el programa en bloques que puedan ser eecutados con
relativa independencia uno del otro. "sto reduce el desperdicio, pero implica un trabao e@tra en
el diseUo de las aplicaciones.
@ Nega#i'$ (e la #o$(i#i'$ (e Wno apropiatividadW.
%uando un sistema cuenta con los recursos suficientes para que los procesos puedan
funcionar sin problemas (bloqueos). %uando el sistema permite compartir los recursos y los
procesos mantienen los que otros necesitan sucede un dead loc9.
La segunda estrategia sugiere que cuando a un proceso que mantiene recursos se le niegue
una peticin de recursos adicionales deber& liberar sus recursos y, si es necesario, pedirlos de
nuevo, unto con los adicionales.
8l retirar los recursos a un proceso que no puede avan#ar se niega la condicin de W$o
apropiativi(a(W. $n problema de esta pol,tica es la postergacin indefinida.
@ Nega#i'$ (e la #o$(i#i'$ (e Wespera #ir#ularW.
Si se da a los recursos una manera e@clusiva y se obliga a los procesos a pedirlos en forma
ascendente es imposible que ocurra una espera circular. "sta propuesta considera:
a Los recursos deben ser numerados refleando el orden en el cual la mayor,a de los trabaos
los usan, *igura > -A.
a Los procesos deben pedir los recursos en forma ascendente, figura # 75.
a +ara los procesos que requieren de los recursos en un orden diferente, los recursos
deber&n ser tomados y retenidos muc(o antes de su utili#acin. (*mplica el desperdicio de
los recursos mantenidos pero no usados).
Figura # 75. Or(e$amie$to li$eal (el re#urso.
"l ordenamiento lineal elimina la posibilidad de la espera circular, pero, obliga al
diseUador a trabaar m&s con sus cdigos. 8dem&s, los n!meros de recursos son asignados por la
instalacin y (ay que vivir con ellos durante largos periodos (meses o aUos). Si los n!meros
cambian se tienen que rescribir los programas y los sistemas e@istentes.
La forma m&s simple de prevenir un 0ead Loc9 es obteniendo todos los recursos
necesarios antes que el proceso continu y as, se elimine la W#o$(i#i'$ (e esperaW.
"n otro mtodo de prevencin de dead loc9, un proceso bloqueado devuelve los recursos
solicitados por un proceso activo, al igual que elimina la condicin de W$o apropiativi(a(W
osenkrant/ et al. )a propuesto la siguiente optimi#acin de este mtodo. <odos los procesos
son asignados a prioridades !nicas que pueden ser totalmente ordenadas. $n proceso de retencin
cede el derec(o de prioridad a otro proceso que sostiene el recurso necesario solo si el proceso de
retencin tiene el recurso necesario solo si el proceso de retencin tiene mayor prioridad.
"ste mtodo reduce los derec(os de prioridad al Y6b al igual que previene los dead
loc9s. "n el ordenamiento de )avendercs todos los recursos son ordenados de manera !nica y
todos los procesos solicitan los recursos de manera ascendente.
dnicamente eliminando la condicin de "espera circular". Si un proceso ya sostiene
algunos recursos, entonces puede pedir solo aquellos acomodos en un rango superior en el orden.
Fbteniendo recursos, de sta forma, previene la formacin de un ciclo o de un "9not".
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T3V.(tml
Preve$ir
Se puede prevenir el bloqueo siempre y cuando se consiga que alguna de las condiciones
necesarias para la e@istencia de un bloqueo no se produ#ca.
3. los procesos tienen que compartir recursos con e@clusin mutua:
o -o se de a un proceso directamente acceso e@clusivo al recurso, si no se usa otro
proceso que reali#a el trabao de todos los dem&s maneando una cola de tareas
(por eemplo, un demonio para imprimir con su cola de documentos por imprimir).
7. los procesos quieren acceder a un recurso m&s mientras ya tienen acceso e@clusivo a otro:
o Se e@ige que un proceso pida todos los recursos que va a utili#ar al comien#o de
su trabao
T. los recursos no permiten ser usados por m&s de un proceso al mismo tiempo:
o Se permite que un proceso aborte a otro proceso con el fin de obtener acceso
e@clusivo al recurso. )ay que tener cuidado de no caer en livelock
V. e@iste una cadena circular entre peticiones de procesos y alocacin de recursos:
o Se ordenan los recursos l,nealmente y se fuer#a a los procesos que accedan a los
recursos en el orden impuesto. 8s, es imposible que se produ#ca un ciclo.
"n las pr&cticas aplicamos dic(o mtodo para prevenir bloqueos en la lista concurrente.
)ttp8//trevinca.ei.uvi&o.es/Xformella/doc/cd04/node79.)tml
#revenci$n de /eadlocEs
<a estrate&ia consiste en anular al&una de las cuatro condiciones necesarias para !ue se produ+ca un
/eadlocE.
9. Ho puede ser anulada por!ue e3isten recursos !ue de%en ser usados en modalidad e3clusiva.
2. <a alternativa ser.a )acer !ue todos los procesos solicitaran todos los recursos !ue )a%rn de
utili+ar antes de utili+arlos al momento de su ejecuci$n lo cual ser.a muy ineficiente.
3. #ara anular esta condici$n cuando un proceso solicita un recurso y este es ne&ado el proceso
de%er li%erar sus recursos y solicitarlos nuevamente con los recursos adicionales. El pro%lema
es !ue )ay recursos !ue no pueden ser interrumpidos.
4. Espera 'ircular8 esta estrate&ia consiste en !ue el sistema operativo numere en forma e3clusiva
los recursos y o%li&ue a los procesos a solicitar recursos en forma ascendente. El pro%lema de
esto es !ue !uita posi%ilidades a la aplicaci$n.
Preve$#i'$ (e (ea(lo#H
\ 0eadloc9 no puede occurir a menos que tenemos todas las cuatro condiciones. Si
aseguramos que no puede occurir por lo menos una de las condiciones, no podemos tener
deadloc9.
\ E8#lusi'$ mutua. "n general, no podemos eliminar esta condicin. )ay recursos como
impresoras que no son compartibles.
\ Rete$#i'$ : espera. +ara no occurir esta condicin, cuando un proceso solicita
recursos, no puede retener otros. +rotocolos:
o $n proceso puede solicitar recursos solamente si no tiene ningunos.
o $n proceso tiene que solicitar todos los recursos antes de la eecucin.
\ +roblemas:
o La utili#acin de recursos puede ser baa.
o Starvation (bloqueo indefinido) si se necesitan algunos recursos populares.
No apropia#i'$. Si un proceso retiene varios recursos y solicita otro que no est&
disponible, se le e@propian todos los recursos que retiene. "l proceso tiene que recuperar
todos los recursos antes de eecutar otra ve#.
+ero en general no podemos e@proprian recursos como impresoras y grabadores.
Espera #ir#ular. )acemos una ordenacin de los tipos de recursos en el sistema (:3,
:7, ...). $n proceso tiene que solicitar sus recursos en orden (y todos los eemplares de un
tipo al mismo tiempo). Si necesita un tipo de recurso m&s baa en la ordenacin, tiene que
liberar los otros que retiene.
+roblemas con la prevencin de deadloc9: $tili#acin baa de recursos y reduccin de la
productividad del sistema.
"ttpE>>HHH.cs.vir0inia.edu>J6nabe>iic22>notesD@."tml
Evitar
"l sistema no da permiso de acceso a recursos si es posible que el proceso se bloquee en el
futuro. $n mtodo es el algoritmo del banquero (0i9stra) que es un algoritmo centrali#ado y por
eso posiblemente no muy practicable en muc(as situaciones.
Se garanti#a que todos los procesos actuan de la siguiente manera en dos fases:
3. primero se obtiene todos los cerroos necesarios para reali#ar una tarea, eso se reali#a
solamente si se puede obtener todos a la ve#,
7. despues se reali#a la tarea durante la cual posiblemente se liberan recursos que no son
necesarias.
E!emplo+
8sumimos que tengamos T procesos que actuan con varios recursos. "l sistema dispone de 37
recursos.
proceso recursos pedidos recursos reservados
8 V 3
M ? V
% 5 Y
suma 35 36
es decir, de los 37 recursos disponibles ya 36 est&n ocupados. La !nica forma que se puede
proceder es dar el acceso a los restantes 7 recursos al proceso M. %uando M (aya terminado va a
liberar sus ? recursos que incluso pueden estar distribuidos entre 8 y %, as, que ambos tambin
pueden reali#ar su trabao.
%on un argumento de induccin se verifica f&cilmente que nunca se llega a ning!n bloqueo.
"ttpE>>trevinca.ei.uvi0o.es>Jformella>doc>cdD#>node@D."tml
Evita#i'$.
$n mtodo para evitar los 0ead Loc9=s consiste en requerir informacin adicional sobre
cmo se solicitar&n los recursos. +or eemplo en un sistema con una unidad de cinta y una
impresora, podr,amos saber que el proceso + solicitar& primero la unidad de cinta y luego la
impresora, antes de liberar ambos recursos. "l proceso B, por otra parte, solicitar& primero la
impresora y despus la unidad de cinta. %on este conocimiento de la secuencia completa de la
solicitud y liberacin para cada proceso para cada solicitud requiere que el sistema considera los
recursos disponibles en ese momento, los actualmente asignados a cada proceso y las futuras
solicitudes y liberaciones de cada proceso para decidir si puede satisfacer la solicitud presente o
debe esperar para evitar un posible dead loc9 futuro.
Los diversos algoritmos difieren en la cantidad y tipo de informacin que requieren.
"l modelo m&s sencillo y !til requiere que cada proceso declare el nmero mximo de
recursos de cada tipo que puede necesitar. %on informacin a priori para cada proceso es posible
construir un algoritmo que asegure que el sistema nunca entrar& en estado de dead loc9. "ste
algoritmo define la estrategia de evitacin de dead loc9=s.
"l estado de asignacin de recursos viene definido por el n!mero de recursos disponibles
y asignados, y por la demanda m&@ima de los procesos. $n estado es seguro si el sistema puede
asignar recursos a cada proceso ((asta el m&@imo) siguiendo alg!n orden u aun as, evitar el dead
loc9.
;&s formalmente, un sistema se encuentra en estado seguro slo si e@iste una secuencia
segura. Si no e@iste esta secuencia, se dice que el estado del sistema es inseguro.
$n estado seguro no es un estado de dead loc9, y un estado de dead loc9 es un estado
inseguroG pero no todos los estados inseguros son dead loc9=s.
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G1%."tml
2.1D..2 Deteccin.
Dete#tar : a#tuar
Se implementa un proceso adicional que vigila si los dem&s forman una cadena circular.
;&s preciso, se define el grafo de asignacin de recursos:
Los procesos y los recursos representan los nodos de un grafo.
Se aUade cada ve# una arista entre un nodo tipo recurso y un nodo tipo proceso cuando el
proceso (a obtenido acceso e@clusivo al recurso.
Se aUade cada ve# una arista entre un nodo tipo recurso y un nodo tipo proceso cuando el
proceso est& pidiendo acceso e@clusivo al recurso.
Se eliminan las aristas entre proceso y recurso y al revs cuando el proceso ya no usa el
recurso.
%uando se detecta en el grafo resultante un ciclo, es decir, cuando ya no forma un grafo ac,clico,
se (a producido una posible situacin de un bloqueo.
Se puede reaccionar de dos maneras si se (a encontrado un ciclo:
-o se da permiso al !ltimo proceso de obtener el recurso.
S, se da permiso, pero una ve# detectado el ciclo se aborta todos o algunos de los procesos
involucrados.
Sin embargo, las tcnicas pueden dar como resultado que el programa no avance, incluso, el
programa se puede quedar atrapado (aciendo trabao in!til: crear situaciones de bloqueo y abortar
procesos continuamente.
)ttp8//trevinca.ei.uvi&o.es/Xformella/doc/cd04/node"B.)tml
/etecci$n y Decuperaci$n de /eadlocEs
4l&oritmos de /etecci$n de /eadlocE
9. 'uando )ay una 5nica ocurrencia de cada recurso. (variante del &rafo de ;wait .or graph;).
'onsiste en reducir el &rafo, retirando las aristas !ue van de recursos a procesos y de procesos a
recursos, colocando nuevas aristas !ue reflejan la situaci$n de espera entre procesos. 1i el &rafo
reducido tiene ciclos el sistema esta en /eadlocE. Orden de operaciones U n`2 , n U cantidad de
aristas.
2. 'uando )ay m5ltiples ocurrencias de cada recurso
#rocedure detectaYdeadlocE
var /isponi%le8arrayR9..nS of inte&er //\ de recursos
(sados8arrayR9..nS of inte&er
1olicitados8arrayR9..nS of inte&er
>inali+ado8arrayR9..nS of %oolean
6e&in
KorE8U/isponi%les7
>or i8U9..n do if(usadosRiSa0) t)en finis)RiS8Ufalse
Else finis)RiS8Utrue7
K)ile(encontrarYindiceYi U true) do ]
KorE8U*orE T usadosRiS7
>inis)RiS8Utrue7 ^
?f ((finis)RiS U false) para al&un i), 9bibn t)en El sistema esta en /eadlocE.
End
>unction encontrarYindiceYi 8 6oolean
6e&in
?f (e3iste i tal !ue (>inis)RiSUfalse __ solicitadosRiS b *orE)
F)en :c true
Else :c false
End
Dete##i'$ (e (ea(lo#H
La evitac,on de deadloc9 tiene un costo porque todos los estados inseguros no son estados
de deadloc9. "sto implica que (ay tiempos cuando algunos procesos tienen que esperar y
recursos est&n desocupados sin que es necesario.
"l sistema operativo puede c(equear de ve# en cuando si (ay un deadloc9. A%u&n
frecuentemente debieramos c(equear si (ay deadloc9C
o "l costo de algoritmo vs. el n!mero de procesos en deadloc9.
o Saber quien cre el deadloc9.
o \ %uando la utili#acin de la %+$ es baa.
<enemos que eliminar los deadloc9s que encontramos. +osibilidades:
o 8bortar todos los procesos en deadloc9. e"sto es un mtodo com!n[
o 8bortar procesos uno a la ve# (asta que no (aya deadloc9.
o :etroceder los procesos a alg!n punto y reiniciar. "l deadloc9 puede reocurrir.
o "@propiar recursos de procesos (asta que no (aya deadloc9. :etrocedemos los
procesos e@propiados.

<enemos que seleccionar un proceso para abortar o retroceder. Dactores:


o La prioridad
o "l tiempo que el proceso (a corrido
o "l n!mero y tipo de los recursos adquiridos
o La clase de proceso (batc( o interactiva)
La starvation es un problema.
"ttpE>>HHH.cs.vir0inia.edu>J6nabe>iic22>notesDC."tml
Dete##i'$ : Re#upera#i'$.
"s el (ec(o de determinar si e@iste o no un 0ead Loc9, e identificar cuales son los
procesos y recursos implicados en l. "l uso de algoritmos de deteccin de interbloqueo implica
una sobrecarga en el tiempo de eecucin. +ara ser correcto, un algoritmo de deteccin de
interbloqueo debe de cumplir dos criterios:
3) 0ebe detectar todos los dead loc9fs e@istentes en un tiempo finito.
7) -o debe reportar "falsos" 0ead Loc9cs.
Xra*o (e asig$a#i'$ (e re#ursos.
Los 0ead Loc9 pueden describirse con mayor precisin en funcin de un grafo dirigido
llamado grafo de asignacin de recursos, que consiste en un conunto de vrtices H y aristas 8. "l
conunto de vrtices H se divide en dos tipos, + J ]+3,+7, ... , +n^, el conunto formado por todos
los procesos del sistema, y : J]:3,:7, ... ,:n^, el conunto integrado por todos los tipos de
recursos del sistema.
Represe$ta#i'$ me(ia$te gra*os (el esta(o (el sistema.
"l estado de un sistema es din&micoG esto es, los procesos del sistema toman y liberan
recursos continuamente. La representacin del dead loc9 requiere la representacin del estado
de la interaccin procesos 2 recursos, la representacin se (ace mediante un grafo dirigido que se
conoce como gr&fica de asignacin de recursos .
"n los sistemas de bases de datos distribuidos (DD?S) est& representacin se conoce como
gr&fica de espera de transaccin (Tra$sa#tio$ Sait0For TSF).
Los dead loc9=s pueden describirse con mayor precisin en funcin de un grafo dirigido
llamado grafo de asignacin de recursos.
La simbologia es la siguiente de acuerdo a las figura # 76. a4 4 # : (.
Figura # 76. Xr"*i#a (e asig$a#i'$ : peti#i'$ (e re#ursos
La t/#$i#a para la re(u##i'$ (e gr"*i#as impli#a las #o$si(era#io$es siguie$tes+
E Si las peticiones de recursos de un proceso piden ser concedidas, entonces la gr&fica
puede
ser reducida.
E La reduccin de una gr&fica consiste en retirar las flec(as que van de los recursos a los
procesos y retirar las flec(as que van del proceso al recurso.
E Si una gr&fica puede ser reducida para todos sus procesos entonces no (ay dead loc9.
E Si una gr&fica no puede ser reducida para todos sus procesos, entonces los procesos
irreducibles constituyen la serie de procesos interbloqueados de la gr&fica.
E 0eteccin de interbloqueo mediante grafos.
Un grafo ; consiste de un conunto finito no vac!o.
V 2 CDX; de: P puntos (vrtices) conunto R de % pareas desordenadas de puntos de
VDaristas;.
cada par R 2 6Q4V7 de puntos en R y una l,nea de X por lo tanto R 2 QV.
$n grafo de p puntos y % l,neas se denomina un grafo Dp4%;, el grafo D,49; es trivial.
Peti#i'$ 2 Pro#eso 0 Re#urso
Pi
R8 R: "l proceso Pi tiene el recurso R8 y solicita el recurso R:.
+ara determinar si e@iste un ciclo en un grafo se puede usar la representacin matricial del
grafo dirigido. 0ado que se tienen pareas ordenadas 6R84 R:7, la matri# se construye colocando
un 3 en la diagonal en D848; y D:4:; y un 3 en la posicin D84:; de la matri#. "emplo figura # 7-.
Figura # 7-. Represe$ta#i'$ matri#ial (el gra*o.
:educcin de la matri# del grafo de la figura # 7- $%&. Fbserve figura # 74.
Figura # 74. Re(u##i'$ (e la matri& (el gra*o.
:educcin de la matri# de un grafo correspondiente. -o e@isten vrtices terminalesG los vrtices 3
y 7 son iniciales y pueden ser eliminadosG e@iste un *nter bloqueo.
"emplo, *igura > -G. Xra*o.
Figura # 75. a; Represe$ta#i'$ matri#ial ; Re(u##i'$ (e la matri& (el gra*o.
:epresentacin vectorial que solo almacena la informacin que presenta el grafo, de la figura #
75. "emplo figura # ,8.
Figura # ,8. Represe$ta#i'$ ve#torial
$n vrtice terminal slo aparece en la columna requiere y un vrtice inicial slo aparece
en la columna <iene. +ara reducir esta representacin se recorren de arriba a abao los vectores y
se buscan los vrtices terminales e iniciales y se elimina su rengln.
"l proceso se repite (asta:
,; No e8iste$ re$glo$es o
-; No se pue(e$ elimi$ar re$glo$es.
Si no se pueden eliminar renglones las transiciones producen un 0ead Loc9.
+ara el grafo de la Dfigura # ,8 $a& ; en el primer paso se eliminan los procesos +3 (vrtice
inicial), +7 y +T (vrtice terminal). "n el segundo paso se elimina el proceso +V (vrtice
terminal), inicial.
+ara el grafo de la Dfigura # ,8 $%&; el primero se eliminan los procesos +3,+7,+T (vrtices
iniciales), +V(vrtice inicial al eliminar el proceso +3), Los procesos restantes no pueden ser
eliminados, por lo tanto e@iste un dead loc9. "l resultado de la reduccin es, observe figura # ,1.
Figura # ,1. Re(u##i'$ (el ve#tor (el gra*o.
2.1D.. 7ecuperacin.
Decuperaci$n ante /eadlocEs
9. 'ancelaci$n de procesos
a. 'ancelaci$n de todos los procesos involucrados. Esto resuelve la situaci$n de /eadlocE
pero tiene un costo muy alto de reprocesamiento.
%. 'ancelacion de un proceso por ve+ )asta resolver la situaci$n de /eadlocE. <a ventaja
de esto es !ue el costo de reprosesamiento de la informaci$n es menor pero cada ve+
!ue se cancela un proceso de%e ejecutarse el al&oritmo de detecci$n de deadlocE. <os
criterios para ele&ir el candidato a ser cancelado son8 por prioridad, por tiempo de uso de
'#(, por cantidad de recursos utili+ados y por cuantos recursos adicionales )a%r de
utili+ar.
2. O%tenci$n de recursos (resourse #reemption). El sistema operativo selecciona un proceso y le
!uita los recursos otor&ados. <os criterios para seleccionar el candidato son los mismos !ue para
la cancelaci$n. El proceso seleccionado se le !uitan los recursos y se le lleva a un estado
consistente (Doll%acE).
Re#upera#i'$ (e u$ Dea( Lo#H.
La !nica forma en que el sistema operativo puede recuperarse de un interbloqueo es
retirando uno o m&s procesos y reclamar sus recursos para que otros procesos puedan terminar.
-ormalmente varios procesos perder&n una parte o la totalidad del trabao reali#ado (asta ese
momento. "ste puede parecer un precio pequeUo comparado con dear que el interbloqueo se
complique por varios factores.
E "n primer lugar, puede no estar claro que el sistema este bloqueado o no.
E ;uc(os sistemas tienen medios pobres para suspender un proceso por tiempo indefinido
y reanudarlo m&s tarde.
E 8!n cuando e@istan medios efectivos de suspensin 'reanudacin, con toda seguridad,
estos implicar&n una sobrecarga, considerable y pueden requerir la atencin de un
operador altamente calificado. -o siempre se dispone de tales operadores.
E :ecuperarse de un interbloqueo de proporciones modestas puede suponer una cantidad
ra#onable de trabao.
$na forma de elegir los procesos que pueden ser retirados es de acuerdo a las prioridades de los
procesos. +ero esto tambin tiene sus dificultades.
E Las prioridades de los procesos bloqueados pueden no e@istir, as, que el operador deber&
tomar una decisin arbitraria.
E Las prioridades pueden ser incorrectas, o un poco confusas debido a consideraciones
especiales.
E La decisin ptima de cu&les procesos retirar pueden requerir de un esfuer#o considerable
para determinarla.
"l enfoque m&s deseable a la recuperacin del 0ead Loc9 est&n un mecanismo efectivo de
Suspensin ' reanudacin. "sto permitir& detener temporalmente los procesos y despus
reanudarlos sin prdida del trabao.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T3?.(tml
MECANISMOS PARA EVITARLOS.
1ave$(er lleg a la conclusin de que si no se cumple una de las cuatro condiciones
necesarias para el interbloqueo es posible que ste ocurra.
+ara evitarlo sugiri:
E %ada proceso deber& pedir todos los recursos requeridos de una sola ve# y no podr&
proceder (asta que le (ayan sido asignados todos.
E Si un proceso que mantiene ciertos recursos se le niega una nueva peticin, este proceso
deber& liberar sus recursos originales y en caso necesario pedirlos de nuevo con los
recursos adicionales.
E Se impondr& la ordenacin lineal de los tipos de recursos en todos los procesos, es decir,
si a un proceso le (an sido asignados recursos de un tipo dado, en lo sucesivo slo podr&
pedir aquellos recursos de los tipos que siguen en el ordenamiento.
Ftra alternativa, para manear los dead loc9, es tener informacin acerca de como los
recursos se van a requerir, el modelo m&s simple y m&s !til requiere que en cada proceso declare
el m&@imo n!mero de recursos que van a requerir con lo cual es posible construir un algoritmo
que asegure que el sistema no entrara en dead loc9.
$n estado es seguro si el sistema puede asignar recursos a cada proceso en alg!n orden
evitando el dead loc9.
Dormalmente un sistema esta en estado seguro solamente si e@iste una secuencia segura.
$na secuencia de procesos N +3, +7, ... +nO esta en secuencia segura si para cada +i, los
recursos que +i pueda requerir pueden ser satisfec(os por los recursos disponibles m&s los
recursos que tuvieron los + donde N i. Si no se puede satisfacer +i entonces +i espera (asta
que los + terminen.
%uando +i termine +ia3 puede obtener sus recursos y as, sucesivamente.
"emplo, figura # ,7. Se tienen ,- u$i(a(es (e #i$ta se tiene < pro#esos A"se sistema esta en
estado seguro o noC.
Figura # ,7. Re%uerimie$to pro#esos 0 re#ursos.
:equerimiento m&@imo 2 -ecesidad actual J -ecesidad m&s (0isponible).
Se tiene 37 recursos por lo tanto 3724 J T, entonces la secuencia es segura.
La secuencia segura es 3 P,4P94P-5
)aga una situacin en la cual el sistema estar,a es estado inseguro.
$n estado seguro esta libre de dead loc9 y un estado de dead loc9, es un estado inseguro pero no
todos los estados inseguros producen dead loc9.
Si se esta en un estado seguro se puede pasar a un estado inseguro.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T3`.(tml
Estrategias para evitarlos.
"vitacin del interbloqueo y el algoritmo de Di!Hstra. Si las condiciones necesarias para
que tenga lugar un interbloqueo est&n en su lugar, a!n es posible evitar el interbloqueo teniendo
cuidado al asignar los recursos.
"l algoritmo de planificacin que pueda evitar los interbloqueos fue ideado por Di!Hstra
(34?Y) y se le conoce como algoritmo del banquero. "n ese algoritmo se modela la forma en que
un banquero puede tratar a un grupo de clientes a quienes les (a otorgado l,neas de crdito. en la
(figura # ,6 $a&) se observan cuatro clientes, a cada uno de los cuales se le (a otorgado cierto
n!mero de unidades de crdito. "l banquero sabe que los clientes no necesitan su l,mite de
crdito m&@imo de inmediato, de manera que slo (a reservado 36 unidades en lugar de 77 para
darles servicio.
Los clientes emprenden sus respectivos negocios, (aciendo solicitudes de prstamo de
cuando en cuando. "n cierto momento, la situacin es como la que se muestra en la (figura #
,,&. 8 una lista de clientes que muestra el dinero que ya se present y el m&@imo del crdito
disponible se le llama estado del sistema.
Figura # ,,. Tres esta(os (e asig$a#i'$ (e re#ursos
Da; Seguro. D; Seguro. D#; I$seguro.
$n estado es seguro si e@iste una secuencia de estados que lleva a todos los clientes que
obtienen prstamos (asta sus l,mites de crdito. "l estado de la (figura #,, $%& ) es seguro por
que con las dos restantes, el banquero puede demorar cualquier solicitud salvo la de %arlos, con
lo que permite que termine y devuelva sus cuatro recursos. %on cuatro unidades, el banquero
puede permitir que 0avid o M&rbara tengan las unidades que necesitan para terminar y as,
sucesivamente.
Si estando en el estado de la ( figura #,, $%& ) se le otorga una unidad m&s a M&rbara,
(Figura #,, $c& ), el banquero no podr& completar ninguna de la l,nea de crdito de su clientes.
$n estado inseguro no tiene que conducir a un interbloqueo, ya que un cliente podr,a no
necesitar su l,nea de crdito disponible, pero el banquero no puede confiar en ese
comportamiento.
)aciendo una analog,a con un Sistema Fperativo tenemos: "l estado actual del sistema se
denomina seguro, Si el Sistema Fperativo puede permitir a los usuarios actuales completar sus
trabaos en un intervalo de tiempo finito. 0e lo contrario se le denomina inseguro. "n otras
palabras: $n estado seguro es aquel en el cual la asignacin de recursos es tal que los usuarios
pueden llegar a terminar. $n estado seguro es aquel que puede llegar a terminar. $n estado
inseguro es aquel que puede llegar a un dead loc9, (nunca termina).
La asignacin de recursos por el algoritmo del banquero es la siguiente:
E Se permite todas las condiciones de e@clusin mutua, espera por y no apropiatividad.
E Se permite a los procesos mantener sus recursos mientras esperan por otros.
E "l sistema slo concede peticiones que den como resultado estados seguros.
@ El algoritmo (el a$%uero para $ re#ursos D(e Di!Hstra;.
Sea n un n!mero de proceso y m un n!mero de recurso y sea disponible un vector de
longitud m que indica el n!mero de recursos disponibles y sea m&@ima una matri# de ( n @ m)
que define la m&@ima demanda de cada proceso as, por eemplo si tuviramos m&@ima ( i, ) J 9
define los recursos asignados a cada proceso, por eemplo la asignacin ( i , ) J 9 quiere decir
que el proceso i tiene asignado W instancias del recurso necesidades ( n E m ), que indica los
recursos que requieren los procesos. -ecesidades ( i , ) J ;&@ima ( i , ) 2 8signacin ( i , ).
Se puede considera cada rengln de las matrices asignacin y necesidades como vectores
y referirnos como asignacin de i y necesidades de i.
Algoritmo+
Sea requerimiento de i un vector de requerimientos de proceso i.
%uando un requerimiento de un recurso es (ec(o por el proceso i se reali#aran las
siguientes acciones:
,;.0 Si Re%uerimie$to (e i 32 Ne#esi(a(es (e i ir al segu$(o paso. Si$o error.
-;.0 Si re%uerimie$to (e i 32 (ispo$ile ir al ter#er paso. Si $o re#urso $o (ispo$ile Pi
(ee esperar.
<;.0 1a#er Dispo$ile 2 Dispo$ile 0 Re%uerimie$to4
Asig$a#i'$ 2 Asig$a#i'$ P Re%uerimie$to4
Ne#esi(a(es 2 Ne#esi(a(es 0 Re%uerimie$to.
Si el estado es seguro se completa la transaccin de lo contrario el proceso debe esperar y
el estado anterior es restablecido.
Algoritmo para ver si el esta(o es seguro.
Sea trabao (m) y final (n) vectores de longitud m y n respectivamente, (acer
<rabao J 0isponible y final ( i ) J falso para i J 3,...n
,;.0 E$#ue$tre u$a i tal %ue *i$al D i ; (e i < falso : 9ecesidades $ i & =< .ra%a(o si $o
e8iste ir al pu$to tres.
-;.0 .ra%a(o < .ra%a(o > 2signacin $ i &4 Final $ i & < verdad ir al paso u$o.
<;.0 Si final $ i& < verdad para to(a i e$to$#es el sistema esta e$ esta(o seguro (e lo
#o$trario esta e$ esta(o i$seguro.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T35.(tml
2.11 *iveles8 ob9etivos y criterios de planificacin.
(no de los m$dulos ms importantes de un sistema operativo es la de administrar los procesos y tareas
del sistema de c$mputo. En esta secci$n se revisarn dos temas !ue componen o conciernen a este
m$dulo8 la planificaci$n del procesador y los pro%lemas de concurrencia.
#lanificaci$n del procesador
<a planificaci$n del procesador se refiere a la manera o t-cnicas !ue se usan para decidir cunto tiempo
de ejecuci$n y cuando se le asi&nan a cada proceso del sistema. O%viamente, si el sistema es
monousuario y monotarea no)ay muc)o !ue decidir, pero en el resto de los sistemas esto es crucial para
el %uen funcionamiento del sistema.
Hiveles de planificaci$n
En los sistemas de planificaci$n &eneralmente se identifican tres niveles8 el alto, em medio y el %ajo. El
nivel alto decide !ue tra%ajos (conjunto de procesos) son candidatos a convertirse en procesos
compitiendo por los recursos del sistema7 el nivel intermedio decide !ue procesos se suspenden o
reanudan para lo&rar ciertas metas de rendimiento mientras !ue el planificador de %ajo nivel es el !ue
decide !ue proceso, de los !ue ya estn listos (y !ue en al&5n momento paso por los otros dos
planificadores) es al !ue le toca a)ora estar ejecutndose en la unidad central de procesamiento. En este
tra%ajo se revisaran principalmente los planificadores de %ajo nivel por!ue son los !ue finalmente eli&en
al proceso en ejecuci$n.
O%jetivos de la planificaci$n
(na estrate&ia de planificaci$n de%e %uscar !ue los procesos o%ten&an sus turnos de ejecuci$n
apropiadamente, conjuntamente con un %uen rendimiento y minimi+aci$n de la so%recar&a (over)ead) del
planificador mismo. En &eneral, se %uscan cinco o%jetivos principales8
Iusticia o ?mparcialidad8 Fodos los procesos son tratados de la misma forma, y en al&5n momento
o%tienen su turno de ejecuci$n o intervalos de tiempo de ejecuci$n )asta su terminaci$n e3itosa.
Ma3imi+ar la #roducci$n8 El sistema de%e de finali+ar el mayor numero de procesos en por
unidad de tiempo.
Ma3imi+ar el Fiempo de Despuesta8 'ada usuario o proceso de%e o%servar !ue el sistema les
responde consistentemente a sus re!uerimientos.
Evitar el apla+amiento indefinido8 <os procesos de%en terminar en un pla+o finito de tiempo.
El sistema de%e ser predeci%le8 4nte car&as de tra%ajo li&eras el sistema de%e responder rpido y
con car&as pesadas de%e ir de&radndose paulatinamente. Otro punto de vista de esto es !ue si se
ejecuta el mismo proceso en car&as similares de todo el sistema, la respuesta en todos los casos de%e
ser similar.
'aracter.sticas a considerar de los procesos
Ho todos los e!uipos de c$mputo procesan el mismo tipo de tra%ajos, y un al&oritmo de
planificaci$n !ue en un sistema funciona e3celente puede dar un rendimiento p-simo en otro cuyos
procesos tienen caracter.sticas diferentes. Estas caracter.sticas pueden ser8
'antidad de Entrada/1alida8 E3isten procesos !ue reali+an una &ran cantidad de operaciones de
entrada y salida (aplicaciones de %ases de datos, por ejemplo).
'antidad de (so de '#(8 E3isten procesos !ue no reali+an muc)as operaciones de entrada y
salida, sino !ue usan intensivamente la unidad central de procesamiento. #or ejemplo, operaciones con
matrices.
#rocesos de <ote o ?nteractivos8 (n proceso de lote es ms eficiente en cuanto a la lectura de
datos, ya !ue &eneralmente lo )ace de arc)ivos, mientras !ue un pro&rama interactivo espera muc)o
tiempo (no es lo mismo el tiempo de lectura de un arc)ivo !ue la velocidad en !ue una persona teclea
datos) por las respuestas de los usuarios.
#rocesos en Fiempo Deal8 1i los procesos de%en dar respuesta en tiempo real se re!uiere !ue
ten&an prioridad para los turnos de ejecuci$n.
<on&evidad de los #rocesos8 E3isten procesos !ue tipicamente re!ueriran varias )oras para
finali+ar su la%or, mientras !ue e3isten otros !ue solonecesitan al&unos se&undos.
#lanificaci$n apropiativa o no apropiativa (preemptive or not preemptive)
<a planificaci$n apropiativa es a!uella en la cual, una ve+ !ue a un proceso le toca su turno de ejecuci$n
ya no puede ser suspendido, ya no se le puede arre%atar la unidad central de procesamiento. Este
es!uema puede ser peli&roso, ya !ue si el proceso contiene accidental o deli%eradamente ciclos infinitos,
el resto de los procesos pueden !uedar apla+ados indefinidamente. (na planificaci$n no apropiativa es
a!uella en !ue e3iste un reloj !ue lan+a interrupciones periodicas en las cuales el planificador toma el
control y se decide si el mismo proceso se&uir ejecutndose o se le da su turno a otro proceso. Este
mismo reloj puede servir para lan+ar procesos manejados por el reloj del sistema. #or ejemplo en los
sistemas (H?N e3isten los Gcronjo%sG y Gatjo%sG, los cuales se pro&raman en %ase a la )ora, minuto, d.a del
mes, d.a de la semana y d.a del a2o.
En una planificaci$n no apropiativa, un tra%ajo muy &rande apla+a muc)o a uno pe!ue2o, y si entra un
proceso de alta prioridad est- tam%i-n de%e esperar a !ue termine el proceso actual en ejecuci$n.
.lanificacin de procesos
<a planificaci$n es el proceso por el cual el sistema operativo selecciona !ue proceso ejecutar. <a
selecci$n del proceso se %asa en al&uno de los al&oritmos de planificaci$n !ue se descri%en ms a%ajo.
!1pulsin
Es la caracter.stica por el cual el sistema operativo puede o no e3pulsar del estado de ejecuci$n a un
proceso dado. En este sentido entonces tenemos la planificaci$n apropiativa en la cual el sistema
operativo puede cortar en cual!uier momento la ejecuci$n de un proceso y la planificaci$n no apropiativa
en la cual una ve+ !ue el proceso esta en ejecuci$n el sistema operativo no puede sacarlo de ese estado.
Ob9etivos de la planificacin
<os o%jetivos de la planificaci$n de proceso son8
E!uidad, todos los procesos de%en poder ejecutarse
Eficacia, mantener ocupada la '#( un 900W del tiempo
Fiempo de respuesta, minimi+ar el tiempo de respuesta al usuario
Fiempo de re&reso, minimi+ar el tiempo !ue de%en esperar los usuarios por lotes para o%tener
sus resultados
Dendimiento, ma3imi+ar el n5mero de tareas procesadas por )ora.
/l0oritmos de planificacin
<os al&oritmos de planificaci$n son los !ue definen !ue pol.tica se va a se&uir para !ue un proceso pase
al estado de ejecuci$n.
.lanificacin 7ound=7obin
En este tipo de planificaci$n cada proceso tiene asi&nado un !uantum de tiempo para ejecutarse y en el
caso de !ue no pueda terminar la ejecuci$n en su !uantum el proceso pasa de nuevo a la cola de
procesos para ser ejecutado por otro !uantum lue&o de recorrer la cola para ase&urarse !ue todos los
procesos reci%an ese !uantum de procesamiento.
.lanificacin por prioridad
En la planificaci$n round:ro%in todos los procesos son tratados con la misma prioridad. #ara el caso de
este tipo de planificaci$n a cada proceso se le asi&na una prioridad y los mismos son ejecutados
$olas m+ltiples
<as colas m5ltiples estn %asadas en una pila !ue sirve como .ndice de una lista de procesos !ue se
tienen !ue ejecutar.
#rimero el tra%ajo ms corto
Este tipo de al&oritmo de planificaci$n se usa para tra%ajos en %atc) o de procesamiento or lotes en los
cuales se puede sa%er cual es el tiempo de duraci$n de la ejecuci$n de cada proceso y entonces se
puede seleccionar primero el tra%ajo ms corto. El pro%lema !ue se presenta con -ste al&oritmo es !ue
los &randes procesos podr.an sufrir de inanici$n dado !ue cual!uier proceso pe!ue2o se ;cuela; so%re
uno de mayor tama2o y como resultado final se podr.a dar el caso !ue el proceso &rande nunca o%ten&a
procesamiento.
.lanificacin 0aranti2ada
En este modelo de planificaci$n se tiene en cuenta la cantidad de usuarios en el sistema y se le asi&na a
cada uno el tiempo de ejecuci$n de 9/n (siendo n la cantidad total de usuarios) de esa forma el
planificador tiene !ue llevar cuenta del tiempo de ejecuci$n de los procesos y %alancear el tiempo !ue
estn utili+ando el procesador para cumplir con la ecuaci$n previa.
Co$#eptos (e pla$i*i#a#i'$.
"l obetivo de la multiprogramacin es que en todo momento se eecute un proceso para
ma@imi#ar la utili#acin del %+$. "n un sistema monoprocesador nunca (abr& m&s de un
proceso en eecucin. Si (ay m&s procesos tendr&n que esperar a que el %+$ est libre y pueda
volver a planificarse.
"l concepto de multiprogramacin es muy sencillo: un proceso se eecuta (asta que tenga
que esperar, generalmente a que termine una solicitud de "'S. "n un sistema de computo sencillo,
el %+$ permanecer& inactivoG todo este tiempo de espera se desperdicia sin efectuar una
actividad !til. %on la multiprogramacin tratamos de emplear productivamente este tiempo.
Harios procesos se conservan en la memoria a la ve#, y cuando uno de ellos tiene que esperar, el
sistema operativo le quita el %+$ al proceso y se lo da a otroG este modelo contin!a, %ada ve#
que un proceso tiene que esperar, otro pueda utili#ar el %+$.
Los beneficios de la multiprogramacin son un aumento de la utili#acin del %+$ y una
mayor productividad.
)ttp8//eduadis.itlapiedad.edu.m3/X)oce&ueras/so9/so9Y495.)tml
Pla$i*i#a#i'$ (el CPQ
La planificacin es una funcin fundamental del sistema operativo. %asi todos los
recursos de una computadora se planifican antes de usarse. +or supuesto, el %+$ es una de los
principales
:ecursos de la computadora, de modo que su planificacin es parte modular del diseUo de
los sistemas operativos.
0 Ci#lo (e r"*aga (el CPQ : (e EIS.
"l @ito de la planificacin del %+$ depende de la siguiente prioridad observada de los
procesos: la eecucin de un proceso consiste en un ciclo de eecucindel %+$ y de "'S, y los
procesos se alternan entre estos dos estados. La eecucin del proceso se inicia con una rafaga de
%+$G a sta le siguen una r&faga de "'S, otra r&faga de %+$, una m&s de "'S, etc. Dinalmente, la
!ltima r&faga de %+$ terminar& con una solicitud al sistema para que concluya la eecucin, en
ve# de otra r&faga de "'S.
Las duraciones de estas r&fagas de %+$ se (an medido, y, aunque var,an
considerablemente de un proceso a otro y entre computadoras, tienden a presentar una curva de
frecuencias similar a la que se muestra en la figura # 41. Zeneralmente la curva se caracteri#a
como e@ponencial o (iper(e@ponencial. )ay un gran n!mero de r&fagas de %+$ de corta
duracin y un pequeUo n!mero de larga duracin.
Figura # 41. )istograma de tiempos de r&faga del %+$.
0 Pla$i*i#a(or (el CPQ.
Siempre que el %+$ queda inactivo, el sistema operativo debe seleccionar para su
eecucin uno de sus procesos de la cola de procesos listos. "l proceso de seleccin es revisado
por el planificador a corto pla#o. (o planificador del %+$). "l planificador selecciona uno de los
procesos en memoria que est&n listos para eecucin y le asigna el %+$.
0 Estru#tura (e pla$i*i#a#i'$.
Las decisiones de planificacin del %+$ pueden efectuarse en una de las cuatro
circunstancias siguientes:
3. %uando un proceso cambia del estado de eecucin a estado de espera (por eemplo,
solicitud de "'S peticin de esperar la terminacin de uno de los procesos (io).
7. %uando un proceso cambia del estado de eecucin al estado listo (por eemplo, cuando
ocurre una interrupcin)
T. %uando un proceso cambia del estado de espera al estado listo (por eemplo, al
completarse la "'S).
V. %uando termina un proceso.
)ttp8//eduadis.itlapiedad.edu.m3/X)oce&ueras/so9/so9Y49".)tml
2.12 T:cnicas de administracin del planificador.
Algoritmos (e pla$i*i#a#i'$.
Pla$i*i#a#i'$ a pla&o *i!o.
"n la planificacin a pla#o fio, ciertos trabaos se planifican para ser terminados en un
periodo espec,fico. "stos trabaos tienen un alto valor si se entregan a tiempo y pueden carecer
de valor si se entregan despus del l,mite. La planificacin a pla#o fio es complea por muc(as
ra#ones:
E Los usuarios deben proporcionar por adelantado y en forma precisa las necesidades de
recursos de su trabao. <al informacin rara ve# est& disponible.
E "l sistema debe eecutar el programa de pla#o fio sin una severa degradacin de
servicio para los otros usuarios.
E "l sistema debe planificar cuidadosamente las necesidades de recursos permitiendo un
libre tr&nsito del pla#o fio. "sto puede ser dif,cil debido a la llegada de programas nuevos
con demandas impredecibles.
E Si se activan muc(os trabaos de pla#o fio, la planificacin puede llegar a ser tan
complea que necesite mtodos de optimi#acin sofisticados para asegurar que el pla#o
fio se cumpla.
E "l maneo intenso de recursos requeridos por la planificacin de pla#o fio puede
generar una sobrecarga sustancial.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>V3`.(tml
2.12.1 FIFO
Pla$i*i#a#i'$ Primero e$ llegar 0 Primero e$ Salir DFIFO;.
"s la disciplina m&s simple4 *igura > =-. Los procedimientos son despac(ados de acuerdo
al orden de llegada a la cola de listos. $na ve# que un proceso tiene el %+$, se eecuta (asta su
terminacin. "sta planificacin es -o apropiativaG es usta en el sentido formal, pero algo inusta
porque los grandes procesos (acen esperar a trabaos pequeUos y, los trabaos sin importancia
(acen esperar a los trabaos importantes.
Figura > =-. Pla$i*i#a#i'$ primero e$ llegar primero e$ salir.
La +lanificacin FIFO ofrece una varian#a en tiempo de respuesta relativamente pequeUa
y es, por tanto, m&s predecible que otros esquemasG no es un esquema !til en la planificacin de
procesos interactivos porque no garanti#a buenos tiempos de respuesta.
>?>O (>irs ?n >irst Out).:
4socia a cada p&ina el tiempo en !ue fue car&ada en memoria. 'uando de%e reempla+ar una p&ina, se
selecciona la !ue )ace mas tiempo !ue esta en memoria. Fam%i-n se puede implementar mediante la
utili+aci$n de una lista. 1e reempla+an las p&inas de la ca%e+a y se a&re&an al final.
Pla$i*i#a#i'$ (el Primero e$ E$trar Primero e$ Salir DFIFO;
"s muy simple, los procesos se despac(an de acuerdo con su tiempo de llegada a la cola de listos.
$na ve# que el proceso obtiene la cpu, se eecuta (asta terminar, ya que es una disciplina Qno
apropiativaS.
+uede ocasionar que procesos largos (agan esperar a procesos cortos y que procesos no
importantes (agan esperar a procesos importantes.
"s m&s predecible que otros esquemas.
-o puede garanti#ar buenos tiempos de respuesta interactivos.
Suele utili#arse integrado a otros esquemas, por eemplo, de la siguiente manera:
Los procesos se despac(an con alg!n esquema de prioridad.
Los procesos con igual prioridad se despac(an QD*DFS.
SC1EDEFIFO+ Pla$i*i#a#i'$ FIFO D,Y e$ e$trar4 ,Y e$ salir;.
"#$%&'()(* slo puede emplearse con prioridades est&ticas mayores que 6, lo que significa
que cuando un proceso "#$%&'()(* se convierte en eecutable, siempre prevalecer&
inmediatamente sobre cualquier otro proceso normal "#$%&'*+$%, eecut&ndose.
"#$%&'()(* es un simple algoritmo de planificacin sin rodaas de tiempo. +ara procesos
planificados bao la pol,tica "#$%&'()(*, se aplican las siguientes reglas: $n proceso
"#$%&'()(* que (a sido apropiado por otro proceso de mayor prioridad permanecer& en la
cabe#a de la lista para su prioridad y reanudar& su eecucin tan pronto como todos los procesos
de prioridad m&s alta se bloqueen de nuevo. %uando un proceso "#$%&'()(* llegue a ser
eecutable, se insertar& al final de la lista para su prioridad. $na llamada a s#.e(Esets#.e(uler o
a s#.e(Esetparam pondr& el proceso "#$%&'()(* identificado por pid al final de la lista si era
eecutable. $n proceso que llame a s#.e(E:iel( ser& colocado al final de la lista. -ing!n otro
suceso mover& un proceso planificado bao la pol,tica "#$%&'()(* en la lista de espera de
procesos eecutables con igual prioridad est&tica. $n proceso "#$%&'()(* se eecuta (asta que
es bloqueado por una peticin de "'S, (asta que sea apropiado por un proceso de m&s alta
prioridad, o (asta que llame a s#.e(E:iel(.
)ttp8//***.)ispafuentes.com/)f:doc/man/man2/sc)edYsetsc)eduler.2.)tml
2.12.2 S;F
Pla$i*i#a#i'$ (el traa!o m"s #orto DSFF;.
La disciplina del trabao m&s corto primero es -F apropiativa y en ella el trabao o
proceso con tiempo estimado de eecucin (asta terminacin m&s corto, es el siguiente en ser
eecutado. "l S1D reduce el tiempo de espera de los procesos, sin embargo, tiene una varian#a
mayor (es decir, es menos predecible) que en D*DF, sobre todo para los trabaos largos.
S1D favorece a los procesos cortos a costa de los procesos largos. 8dem&s, selecciona los
trabaos que ser&n atendidos y que dear&n el sistema lo antes posible. "sto !ltimo traduce en
listas de espera cortas. "l S1D es -F apropiativo por lo que resulta de poca utilidad en ambientes
de tiempo compartido.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso,Iso,E=,C..tml
Pla$i*i#a#i'$ (el Traa!o M"s Corto Primero DSFF;
"s una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo
compartido.
"l proceso en espera con el menor tiempo estimado de eecucin (asta su terminacin es el
siguiente en eecutarse.
Los tiempos promedio de espera son menores que con QD*DFS.
Los tiempos de espera son menos predecibles que en QD*DFS.
Davorece a los procesos cortos en detrimento de los largos.
<iende a reducir el n!mero de procesos en espera y el n!mero de procesos que esperan detr&s de
procesos largos.
:equiere un conocimiento preciso del tiempo de eecucin de un proceso, lo que generalmente se
desconoce.
Se pueden estimar los tiempos en base a series de valores anteriores.
Pla$i*i#a#i'$ (el Tiempo Resta$te M"s Corto DSRT;
"s la contraparte apropiativa del S1D.
"s !til en sistemas de tiempo compartido.
"l proceso con el tiempo estimado de eecucin menor para Pnali#ar es el siguiente en ser
eecutado.
$n proceso en eecucin puede ser apropiado por un nuevo proceso con un tiempo estimado de
eecucin menor.
<iene mayor sobrecarga que la planificacin S1D.
0ebe mantener un registro del tiempo de servicio transcurrido del proceso en eecucin, lo que
aumenta la sobrecarga.
Los trabaos largos tienen un promedio y una varian#a de los tiempos de espera a!n mayor que en
S1D.
La apropiacin de un proceso a punto de terminar por otro de menor duracin recin llegado
podr,a significar un mayor tiempo de cambio de conte@to (administracin del procesador) que el
tiempo de finali#acin del primero.
-l dise.arse los "istemas *perativos se debe considerar cuidadosamente la sobrecarga de los
mecanismos de administracin de recursos comparndola con los beneficios esperados.
Pla$i*i#a#i'$ el Siguie$te #o$ Rela#i'$ (e Respuesta M"8ima D1RN;
%orrige algunas de las debilidades del S1D, tales como el e@ceso de peruicio (acia los procesos
(trabaos) largos y el e@ceso de favoritismo (acia los nuevos trabaos cortos.
"s una disciplina no apropiativa.
La prioridad de cada proceso est& en funcin no slo del tiempo de servicio del trabao, sino que
tambin influye la cantidad de tiempo que el trabao (a estado esperando ser servido.
%uando un proceso (a obtenido la cpu, corre (asta terminar.
Las prioridades, que son din&micas, se calculan seg!n la siguiente frmula, donde pr es la
/prioridad0, te es el /tiempo de espera0 y ts es el /tiempo de servicio01
Pla$i*i#a#i'$ (el tiempo resta$te m"s #orto primero DSRT;.
La S:< es apropiativa, en ella el proceso con el tiempo estimado de eecucin menor para
llegar a su terminacin es el siguiente en ser eecutado, incluyendo las nuevas llegadas. "n la
disciplina S1D, una ve# que el trabao comien#a su eecucin sigue (asta que termina. "n S:<, un
proceso en eecucin puede ser apropiado por un nuevo proceso con n tiempo estimado de
eecucin menor.
La S:< tiene una sobrecarga mayor que la S1D. 0ebe mantener un registro del tiempo de
servicio transcurrido del trabao en eecucin y debe controlar las apropiaciones ocasionales.
Pla$i*i#a#i'$ el siguie$te #o$ rela#i'$ (e respuesta m"8ima D1RT;.
?ri$#. 1a$se$ (34`3) desarroll la estrategia el siguiente con relacin de respuesta
m&@ima ():<), que corrige algunas de las debilidades de S1D, en especial el favoritismo por los
tamaUos pequeUos. La ):< es una disciplina de planificacin -F apropiativa en la cual la
prioridad de cada trabao est& en funcin, no slo del tiempo de servicio del trabao, sino del
tiempo que un proceso (a estado esperando a ser servido, $na ve# que un trabao obtiene el %+$,
se eecuta (asta su terminacin. Las prioridades din&micas en ):< se calculan seg!n la frmula
Tiempo de espera + Tiempo de servicio
Prioridad =
Tiempo de servicio
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>V3`.(tml
2.12. 77
Pla$i*i#a#i'$ Rou$( Roi$ DRR;.
"n esta planificacin, *igura > =<. Los procesos son despac(ados en D*DF, pero, se les
otorga una cantidad limitada de tiempo de %+$ llamada divisin de tiempo (time 2 slice) o cuanto
(quantum). Si un proceso no termina antes de que se termine su tiempo de %+$, el %+$ es
apropiado y asignado al siguiente proceso en espera. "l proceso apropiado se coloca al final de la
lista de listos.
Figura > =<. Pla$ea#i'$ rou$( roi$.
"l esquema ound ro%in es efectivo en un ambiente de tiempo compartido en el cual el
sistema necesita garanti#ar un tiempo de respuesta ra#onable para los usuarios interactivos. La
sobre carga de la apropiacin se mantiene baa mediante eficientes mecanismos de cambio de
conte@to y proporcionado suficiente memoria para que los procesos residan en ella al mismo
tiempo.
"@iste una variante de este esquema llamada selfis# round ro%in $!&. "n este esquema
los procesos que entran al sistema se colocan primero en una lista de espera (asta que su
prioridad alcan#a el nivel de proceso para la lista de activos. ;ientras un proceso est& en la lista
de espera, su prioridad aumenta en una relacin a? cuando un proceso entra a la lista de activos su
prioridad se incrementa en una relacin %.
TamaMo (el #ua$to.
La determinacin del tamaUo del cuanto es decisiva para la operacin efectiva de un
sistema computacional. A0ebe ser pequeUo o grande el cuantoC A0ebe ser fio o variableC A0ebe
ser el mismo para todos los usuarios, o debe ser diferente para cada grupo de usuariosC.
%uando se tiene un cuanto grande cada proceso pude recibir todo el tiempo que necesita
para su terminacin, de manera que el esquema round robin se convierte en un D*DF. %uando el
cuanto es pequeUo, la sobrecarga por el intercambio de conte@to se convierte en un factor
dominante y el rendimiento del sistema se degrada.
A%u&l es el cuanto ptimo C "s claro que cambia de un sistema a otro y que varia de
acuerdo a la carga del sistema.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>V3`.(tml
SC1EDERR+ Pla$i*i#a#i'$ #ir#ular DRou$( Roi$;.
"#$%&',, es una meora simple de "#$%&'()(*. <odo lo descrito arriba para "#$%&'()(*
se aplica tambin a "#$%&',,, e@cepto que a cada proceso slo se le permite eecutarse durante
un cuanto de tiempo m&@imo. Si un proceso "#$%&',, (a estado eecut&ndose durante un
periodo de tiempo igual o mayor que el cuanto de tiempo, ser& puesto al final de la lista para su
prioridad. $n proceso "#$%&',, que (a sido apropiado por un proceso de m&s alta prioridad y
subsecuentemente reanuda su eecucin como un proceso en eecucin, completar& la porcin no
e@pirada de su cuanto de tiempo de asignacin en rueda. La cantidad del cuanto de tiempo puede
ser obtenida con s#.e(ErrEgetEi$terval.
.ttp+IINNN..ispa*ue$tes.#omI.*0(o#Ima$Ima$-Is#.e(Esets#.e(uler.-..tml
Pla$i*i#a#i'$ (e Asig$a#i'$ e$ Rue(a DRR+ Rou$( Roi$;
Los procesos se despac(an en QD*DFS y disponen de una cantidad limitada de tiempo de cpu,
llamada Qdivisin de tiempoS o QcuantoS.
Si un proceso no termina antes de e@pirar su tiempo de cpu ocurren las siguientes acciones:
3. La cpu es apropiada.
7. La cpu es otorgada al siguiente proceso en espera.
T. "l proceso apropiado es situado al final de la lista de listos.
"s efectiva en ambientes de tiempo compartido.
La sobrecarga de la apropiacin se mantiene baa mediante mecanismos eficientes de intercambio
de conte@to y con suficiente memoria principal para los procesos.
TamaMo (el Cua$to o Zua$tum
La determinacin del tamaUo del cuanto es decisiva para la operacin efectiva de un sistema
computacional g`, 0eitelh.
Los interrogantes son: Acuanto pequeUo o grandeC, Acuanto fio o variableC y Acuanto igual para
todos los procesos de usuarios o determinado por separado para cada uno de ellosC.
Si el cuanto se (ace muy grande, cada proceso recibe todo el tiempo necesario para llegar a su
terminacin, por lo cual la asignacin en rueda (Q::S) degenera en QD*DFS.
Si el cuanto se (ace muy pequeUo, la sobrecarga del intercambio de conte@to se convierte en un
factor dominante y el rendimiento del sistema se degrada, puesto que la mayor parte del tiempo
de cpu se invierte en el intercambio del procesador (cambio de conte@to) y los procesos de
usuario disponen de muy poco tiempo de cpu.
"l cuanto debe ser lo suficientemente grande como para permitir que la gran mayor,a de las
peticiones interactivas requieran de menos tiempo que la duracin del cuanto, es decir que el
tiempo transcurrido desde el otorgamiento de la cpu a un proceso (asta que genera una peticin
de "ntrada ' Salida debe ser menor que el cuanto establecido, de esta forma, ocurrida la peticin
la cpu pasa a otro proceso y como el cuanto es mayor que el tiempo transcurrido (asta la peticin
de "ntrada ' Salida, los procesos trabaan al m&@imo de velocidad, se minimi#a la sobrecarga de
apropiacin y se ma@imi#a la utili#acin de la
"ntrada ' Salida.
"l cuanto ptimo var,a de un sistema a otro y con la carga, siendo un valor de referencia 366
mseg (cien milisegundos).
2.12.# <ueves multi=level.
Pla$i*i#a#i'$ (e Dos Niveles
Los esquemas anali#ados (asta a(ora suponen que todos los procesos eecutables est&n en la
memoria principal.
Si la memoria principal es insuficiente, ocurrir& lo siguiente g7T, <anenbaumh:
)abr& procesos eecutables que se mantengan en disco.
)abr& importantes implicaciones para la planificacin, tales como las siguientes:
o "l tiempo de alternancia entre procesos para traer y procesar un proceso del disco
es considerablemente mayor que el tiempo para un proceso que ya est& en la
memoria principal.
o "s m&s eficiente el intercambio de los procesos con un planificador de dos niveles.
"l esquema operativo de un planificador de dos niveles es como sigue:
3. Se carga en la memoria principal cierto subconunto de los procesos eecutables.
7. "l planificador se restringe a ellos durante cierto tiempo.
T. +eridicamente se llama a un planificador de nivel superior para efectuar las siguientes
tareas:
3. "liminar de la memoria los procesos que (ayan permanecido en ella el tiempo
suficiente.
7. %argar a memoria los procesos que (ayan estado en disco demasiado tiempo.
V. "l planificador de nivel inferior se restringe de nuevo a los procesos eecutables que se
encuentren en la memoria.
Y. "l planificador de nivel superior se encarga de despla#ar los procesos de memoria a disco
y viceversa.
Los criterios que podr,a utili#ar el planificador de nivel superior para tomar sus decisiones son los
que se indican a continuacin:
A%u&nto tiempo (a transcurrido desde el !ltimo intercambio del procesoC.
A%u&nto tiempo de cpu (a utili#ado recientemente el procesoC.
ABu tan grande es el procesoC (generalmente los procesos pequeUos no causan tantos
problemas en este sentido).
ABu tan alta es la prioridad del procesoC.
"l planificador de nivel superior podr,a utili#ar cualquiera de los mtodos de planificacin
anali#ados.
2.12.% 3ulti=level feedbac6 5ueves.
Colas (e Retroalime$ta#i'$ (e Niveles M[ltiples
+roporcionan una estructura para lograr los siguientes obetivos:
Davorecer trabaos cortos.
Davorecer trabaos limitados por la "ntrada ' Salida para optimi#ar el uso de los
dispositivos de "ntrada ' Salida.
0eterminar la naturale#a de un trabao lo m&s r&pido posible y planificar el trabao
(proceso) en consecuencia.
$n nuevo proceso entra en la red de l,nea de espera al final de la cola superior.
Se mueve por esta cola QD*DFS (asta obtener la cpu.
Si el trabao termina o abandona la cpu para esperar por la terminacin de una operacin de
"ntrada ' Salida o la terminacin de alg!n otro suceso, el trabao abandona la red de l,nea de
espera.
Si su cuanto e@pira antes de abandonar la cpu voluntariamente, el proceso se coloca en la parte
trasera de la cola del siguiente nivel inferior.
"l trabao recibe servicio al llegar a la cabe#a de esta cola si la primera est& vac,a.
;ientras el proceso contin!e consumiendo totalmente su cuanto en cada nivel, continuar&
movindose (acia el final de las colas inferiores.
Zeneralmente (ay una cola en la parte m&s profunda a travs de la cual el proceso circula en
asignacin de rueda (asta que termina.
"@isten esquemas en los que el cuanto otorgado al proceso aumenta a medida que el proceso se
mueve (acia las colas de los niveles inferiores, en tal caso, cuanto m&s tiempo (aya estado el
proceso en la red de l,nea de espera, mayor ser& su cuanto cada ve# que obtiene la cpu y no podr&
obtener la cpu muy a menudo debido a la mayor prioridad de los procesos de las colas superiores.
$n proceso situado en una cola dada no podr& ser eecutado (asta que las colas de los niveles
superiores estn vac,as.
$n proceso en eecucin es apropiado por un proceso que llegue a una cola superior.
"s un mecanismo adaptable, es decir que se adapta a cargas variables.
8 los efectos de una revisin gr&fica de lo enunciado precedentemente, ver la figura 7.Y g`,
0eitelh.
(ttp:''e@a.unne.edu.ar'depar'areas'informatica'SistemasFperativos'SF7.(tmi++
Unidad
/dministracin de memoria.
.% .oltica y filosofa.
POLITICAS \ FILOSOFIA DE LA ADMINISTRACION DE LA MEMORIA.
La memoria principal es el lugar donde el %+$ lee las instrucciones a eecutar, asi
como algunos datos a emplear.
$na de las funciones basicas que debe implementar un SF es la 8dministracion de la
;emoria para tener un control sobre los lugares donde estan almacenados los procesos
y datos que actualmente se estan utili#ando.
"L retiro del administrador de la memoria del 9ernel es un eemplo de la separacin de
pol,tica y mecanismo. Las decisiones acerc& de que proceso se colocar& en que sitio de
la memoria (pol,tica) son tomadas por el administrador de la mempria. La colocacin
real de mapa de memoria para los procesos (mecanismo) es reali#ado por la tarea
contenida en 9ernel. "sta divisin facilita en forma relativa el cambio de la pol,tica de
administracin de la memoria (algoritmos,ect) sin tener que modificar los estratos
inferiores del sistema operativo.
3.? *mplantacin de mecanismo de memeoria virtual. M8S" L*;*<". $na solucin alternativa a
los problemas de recoleccin y proteccin consiste en equipar la m&quina con dos registros
especiales de (ard/are, llamados registro de base y de l,mite. %uando se programa un proceso, el
registro de base se craga con la direccin del inicio de su particin y el registro de l,mite se
encarga con la longitud de la particin. <oda direccin de la memoria generada automaticamente
tiene el contenido de registro de base sumado a l antes de enviarselo a la memoria. Las
direcciones tambien se verifican contra el registro de limite para asegurar que no intentan
direccionar la memoria fuera de la particin corriente. "l (ard/are protege los registro de base y
de l,mite para evitar que los programas de los usuaris los modifiquen. $na ventaa adicional de
utili#ar un registro de base para la recolocacin es que un programa se pueda despla#ar a la
memoria despues de que (aya iniciado la eecucin. 0espus de que sa (a movido, todo lo que se
necesita (acer para dearlo listo para la eecucin es cambiar el valor del registro de base.
.) 3emoria real.
Memoria real
<a memoria real o principal es en donde son ejecutados los pro&ramas y procesos de
una computadora y es el espacio real !ue e3iste en memoria para !ue se ejecuten los
procesos. #or lo &eneral esta memoria es de mayor costo !ue la memoria secundaria,
pero el acceso a la informaci$n contenida en ella es de ms rpido acceso. 1olo la
memoria cac)e es ms rpida !ue la principal, pero su costo es a su ve+ mayor.
"ttpE>>HHH.mono0rafias.com>traba9os1>0esme>0esme.s"tml
.).1/dministracin de almacenamiento.
4si&naci$n del espacio de almacenamiento
El su%sistema de arc)ivos se de%e encar&ar de locali+ar espacio li%re en los medios de almacenamiento
para &uardar arc)ivos y para despu-s %orrarlos, renom%rarlos o a&randarlos. #ara ello se vale de
localidades especiales !ue contienen la lista de arc)ivos creados y por cada arc)ivo una serie de
direcciones !ue contienen los datos de los mismos. Esas localidades especiales se llaman directorios.
Orga$i&a#i'$ : A(mi$istra#i'$ (el Alma#e$amie$to
Orga$i&a#i'$ (el Alma#e$amie$to
)istricamente el almacenamiento principal se (a considerado como un recurso costoso, por lo
cual su utili#acin deb,a optimi#arse g`, 0eitelh.
+or organi#acin del almacenamiento se entiende la manera de considerar este almacenamiento:
A se coloca un solo programa de usuario o varios C.
Si se encuentran varios programas de usuario:
o A se concede a cada uno la misma cantidad de espacio o se divide el
almacenamiento en porciones o /particiones0 de diferente tamaUo C.
o A se utili#ar& un esquema r,gido de n!mero y tamaUo de particiones o un esquema
din&mico y adaptable C.
o A se requerir& que los trabaos de los usuarios sean diseUados para funcionar en
una particin espec,fica o se permitir& que se eecuten en cualquiera donde quepan
C.
o A se requerir& o no que cada trabao sea colocado en un bloque contiguo de
memoria C.
A(mi$istra#i'$ (el Alma#e$amie$to
*ndependientemente del esquema de organi#acin (ay que decidir las estrategias que se utili#ar&n
para optimi#ar el rendimiento.
Las /estrategias de administracin0 deben considerar:
A cu&ndo se consigue un nuevo programa para colocar en la memoria C:
o A cuando el sistema lo pide espec,ficamente o se intenta anticiparse a las
peticiones C.
A dnde se colocar& el programa que se eecutar& a continuacin C:
o A se priori#a el tiempo de carga o la optimi#acin en el uso del almacenamiento C.
A con qu criterio se despla#ar&n programas C.
)ttp8//e3a.unne.edu.ar/depar/areas/informatica/1istemasOperativos/1O3.)tm\O44
.).2;erar5ua.
Ferar%u)a (e Alma#e$amie$to
Los programas y datos tienen que estar en la memoria principal para poder eecutarse o ser
referenciados g`, 0eitelh.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el
almacenamiento secundario.
"l almacenamiento principal es m&s costoso y menor que el secundario pero de acceso m&s
r&pido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar
el movimiento de programas y datos entre niveles (ver Digura T.3 g`, 0eitelh).
$n nivel adicional es el /cac230 o memoria (e alta velo#i(a(, que posee las siguientes
caracter,sticas:
"s m&s r&pida y costosa que la memoria principal.
*mpone al sistema un nivel m&s de traspaso:
o Los programas son traspasados de la memoria principal al cac( antes de su
eecucin.
Los programas en la memoria cac( eecutan muc(o m&s r&pido que en la memoria
principal.
8l utili#ar memoria cac( se espera que:
o La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro
sea muc(o menor que la meora en el rendimiento obtenida por la posibilidad de
una eecucin muc(o m&s r&pida en la cac(.
.).!strate0ia de administracin de memoria.
Estrategias (e A(mi$istra#i'$ (el Alma#e$amie$to
"st&n dirigidas a la obtencin del meor uso posible del recurso del almacenamiento principal g`,
0eitelh.
Se dividen en las siguientes #ategor)as+
"strategias de b!squeda:
o "strategias de b!squeda por demanda.
o "strategias de b!squeda anticipada.
"strategias de colocacin.
"strategias de reposicin.
Las /estrategias de bs4ueda0 est&n relacionadas con el (ec(o de cu&ndo obtener el siguiente
fragmento de programa o de datos para su insercin en la memoria principal.
"n la /bs4ueda por demanda0 el siguiente fragmento de programa o de datos se carga al
almacenamiento principal cuando alg!n programa en eecucin lo referencia.
Se considera que la /bs4ueda anticipada0 puede producir un meor rendimiento del sistema.
Las /estrategias de colocacin0 est&n relacionadas con la determinacin del lugar de la memoria
donde se colocar& (cargar&) un programa nuevo.
Las /estrategias de reposicin0 est&n relacionadas con la determinacin de qu fragmento de
programa o de datos despla#ar para dar lugar a los programas nuevos.
Intercambio
El o%jetivo del intercam%io es dar ca%ida a la ejecuci$n de mas aplicaciones de las !ue
pueden residir simultneamente en la memoria del sistema8
'onsiste en trasladar el c$di&o y los datos de un proceso completo de memoria al
sistema de almacenamiento secundario , para car&ar otro previamente almacenado, no
permite a un proceso utili+ar mas memoria D4M de la !ue realmente e3iste en el
sistema. Esta t-cnica puede ser ineficiente ya !ue se tiene !ue )acer el intercam%io
completo del proceso, aun!ue -ste solo vaya a ejecutar una pe!ue2a porci$n del
c$di&o.
/urante el intercam%io un proceso puede ser sacado temporalmente de memoria y
llevado a un lu&ar especial del disco y posteriormente vuelto a memoria y continuada su
ejecuci$n..
El lu&ar de almacenamiento temporal suele ser un espacio suficientemente &rande
como para acomodar copias de las im&enes de meoria de todos los usuarios.
4si&nacion 'onti&ua
<a memoria principal normalmente se divide en dos particiones8
1istema operativo residente, normalmente en la parte %aja de memoria con los vectores de
interrupci$n.
#rocesos de usuario en la parte alta.
4si&naci$n de partici$n simple8
#uede utili+arse un es!uema de re&istro de relocali+aci$n y limite para prote&er un
proceso de usuario de otro y de cam%ios del c$di&o y datos del sistema operativo .
El re&istro de relocali+aci$n contiene la direcci$n contiene la direcci$n f.sica mas
pe!ue2a7 el re&istro limite contiene el ran&o de las direcciones l$&icas cada direcci$n
l$&ica de%e ser menor al re&istro limite
4si&naci$n de particiones m5ltiples8
6lo!ues de distintos tama2os estn distri%uidos en memoria , cuando lle&a un proceso
se le asi&na un )ueco suficientemente &rande para acomodarle.
El sistema operativo de%e tener informaci$n so%re8
a. #articiones asi&nadas
%. #articiones li%res ()uecos)
4si&naci$n de partici$n dinmica
El proceso de compactaci$n es una instancia particular del pro%lema de asi&naci$n de
memoria dinmica, el cual es el c$mo satisfacer una necesidad de tama2o n con una
lista de )uecos li%res. E3isten muc)as soluciones para el pro%lema. El conjunto de
)uecos es anali+ado para determinar cul )ueco es el ms indicado para asi&narse.
<as estrate&ias ms comunes para asi&nar al&5n )ueco de la ta%la son8
#rimer ajuste8 'onsiste en asi&nar el primer )ueco con capacidad suficiente. <a %5s!ueda puede
iniciar ya sea al inicio o al final del conjunto de )uecos o en donde termin$ la 5ltima %5s!ueda. <a
%5s!ueda termina al encontrar un )ueco lo suficientemente &rande.
Mejor ajuste8 6usca asi&nar el espacio ms pe!ue2o de los espacios con capacidad suficiente.
<a %5s!ueda se de%e de reali+ar en toda la ta%la, a menos !ue la ta%la est- ordenada por tama2o. Esta
estrate&ia produce el menor desperdicio de memoria posi%le.
#eor ajuste8 4si&na el )ueco ms &rande. (na ve+ ms, se de%e de %uscar en toda la ta%la de
)uecos a menos !ue est- or&ani+ada por tama2o. Esta estrate&ia produce los )uecos de so%ra ms
&randes, los cuales pudieran ser de ms uso si lle&an procesos de tama2o mediano !ue !uepan en ellos.
1e )a demostrado mediante simulacros !ue tanto el primer y el mejor ajuste son
mejores !ue el peor ajuste en cuanto a minimi+ar tanto el tiempo del almacenamiento.
Hi el primer o el mejor ajuste es claramente el mejor en t-rminos de uso de espacio,
pero por lo &eneral el primer ajuste es ms rpido.
#ro%lema8 <a fra&mentaci$n.
#. Fra0mentacin
<a fra&mentaci$n es la memoria !ue !ueda desperdiciada al usar los m-todos de
&esti$n de memoria !ue se vieron en los m-todos anteriores. Fanto el primer ajuste,
como el mejor y el peor producen fra&mentaci$n e3terna.
<a fra&mentaci$n es &enerada cuando durante el reempla+o de procesos !uedan
)uecos entre dos o ms procesos de manera no conti&ua y cada )ueco no es capa+ de
soportar nin&5n proceso de la lista de espera.
<a fra&mentaci$n puede ser8
>ra&mentaci$n E3terna8 e3iste el espacio total de memoria para satisfacer un re!uerimiento, pero
no es conti&ua.
>ra&mentaci$n ?nterna8 la memoria asi&nada puede ser li&eramente mayor !ue la re!uerida7 esta
referencia es interna a la partici$n, pero no se utili+a.
<a fra&mentaci$n e3terna se puede reducir mediante la compactaci$n para colocar toda
la memoria li%re en un solo &ran %lo!ue, pero est a solo es posi%le si la relocali+aci$n
es dinmica y se )ace en tiempo de ejecuci$n.
%. .a0inacin
Es una t-cnica de manejo de memoria, en la cual el espacio de memoria se divide en
secciones f.sicas de i&ual tama2o, denominadas marcos de p&ina. <os pro&ramas se
dividen en unidades l$&icas, denominadas p&inas, !ue tienen el mismo tama2o !ue
los marcos de p&inas. /e esta forma, se puede car&ar una p&ina de informaci$n en
cual!uier marco de p&ina.
<as p&inas sirven como unidad de almacenamiento de informaci$n y de transferencia
entre memoria principal y memoria au3iliar o secundaria. 'ada marco se identifica por
la direcci$n de marco, !ue esta en la posici$n f.sica de la primera pala%ra en el marco
de p&ina.
<as p&inas de un pro&rama necesitan estar conti&uamente en memoria, aun!ue el
pro&ramador lo o%serve de esta forma. <os mecanismos de pa&inaci$n permiten la
correspondencia correcta entre las direcciones virtuales (dadas por los pro&ramas) y las
direcciones reales de la memoria !ue se reverencien.
'ada pa&ina consiste en + pala%ras conti&uas7 un espacio de direcciones H de un
pro&rama consiste de n pa&inas (0,9,2,3dn:9) (ne+ direcciones virtuales) y el espacio
de memoria consiste de m marcos de pa&inas (0,+,2+,d,(m:9)+)(me+ posiciones). (na
direcci$n virtual a es e!uivalente a una direcci$n dada como una dupla (p, d), en la cual
p es el n5mero de la p&ina y d el n5mero de la pala%ra dentro de la p&ina, de acuerdo
con la relaci$n8
aUpe+Td (0VUdV+)
pU(a/+) (parte entera de la division)
dUa mod + (resto de divisor a/+)
En las ma!uinas !ue usan aritm-tica %inaria, el calculo de (p, d) es trivial, si + es
potencia de 2. #or ejemplo, si el campo de direcciones de la instrucci$n es de m %its
(mc"), los cuatro %its mas si&nificativos indican el numero de la pa&ina y los m:4 %its
restantes, el despla+amiento.
#ara tener el control de las p&inas, de%e mantenerse una ta%la en memoria !ue se
denomina ta%la de Mapas de #a&ina (#MF) para cada uno de los procesos.
Casta a)ora, los m-todos !ue )emos visto de la administraci$n de la memoria principal,
nos )an dejado con un pro%lema8 fra&mentaci$n, ()uecos en la memoria !ue no pueden
usarse de%ido a lo pe!ue2o de su espacio) lo !ue nos provoca un desperdicio de
memoria principal.
(na posi%le soluci$n para la fra&mentaci$n e3terna es permitir !ue espacio de
direcciones l$&icas lleve a ca%o un proceso en direcciones no conti&uas, as.
permitiendo al proceso u%icarse en cual!uier espacio de memoria f.sica !ue est-
disponi%le, aun!ue est- dividida. (na forma de implementar esta soluci$n es a trav-s
del uso de un es!uema de pa&inaci$n. <a pa&inaci$n evita el considera%le pro%lema de
ajustar los peda+os de memoria de tama2os varia%les !ue )an sufrido los es!uemas de
manejo de memoria anteriores. /ado a sus ventajas so%re los m-todos previos, la
pa&inaci$n, en sus diversas formas, es usada en muc)os sistemas operativos.
4l utili+ar la memoria virtual, las direcciones no pasan en forma directa al %us de
memoria, sino !ue van a una unidad administradora de la memoria (MM( PMemory
Mana&ement (nit). Estas direcciones &eneradas por los pro&ramas se llaman
direcciones virtuales y conforman el )ueco de direcciones virtuales. Este )ueco se
divide en unidades llamadas p&inas. <as unidades correspondientes en la memoria
f.sica se llaman marcos para p&ina o frames. <as p&inas y los frames tienen siempre
el mismo tama2o.
Fa%las de p&inas
'ada p&ina tiene un n5mero !ue se utili+a como .ndice en la ta%la de p&inas, lo !ue
da por resultado el n5mero del marco correspondiente a esa p&ina virtual. 1i el %it
presente / ausente es 0, se provoca un se2alamiento (trap) )acia el sistema operativo.
1i el %it es 9, el n5mero de marco !ue aparece en la ta%la de p&inas se copia en los
%its de mayor orden del re&istro de salida, junto con el ajuste (offset) de 92 %its, el cual
se copia sin modificaciones de la direcci$n virtual de entrada. Iuntos forman una
direcci$n f.sica de 95 %its. El re&istro de salida se coloca entonces en el %us de la
memoria como la direcci$n en la memoria f.sica.
En teor.a, la asociaci$n de las direcciones virtuales con las f.sicas se efect5a se&5n lo
descrito. El n5mero de p&ina virtual se divide en un n5mero de p&ina virtual (los %its
superiores)y un ajuste (los %its inferiores). El n5mero de p&ina virtual se utili+a como
un .ndice en la ta%la de p&inas para encontrar la entrada de esa p&ina virtual. El
n5mero de marco (si e3iste) se determina a partir de la ta%la de p&inas. El n5mero de
marco se asocia al e3tremo superior del ajuste y reempla+a al n5mero de p&ina virtual
para formar una direcci$n f.sica !ue se puede enviar a la memoria.
<a finalidad de la ta%la de p&inas es asociar las p&inas virtuales con los marcos. En
t-rminos matemticos, la ta%la de p&inas es una funci$n, cuyo ar&umento es el
n5mero de p&ina virtual y como resultado el n5mero del marco f.sico. Mediante el
resultado de esta funci$n, se puede reempla+ar el campo de la p&ina virtual de una
direcci$n virtual por un campo de marco, lo !ue produce una direcci$n en la memoria
f.sica. 1in em%ar&o )ay !ue enfrentar dos aspectos fundamentales8
9. <a ta%la de p&inas puede ser demasiado &rande.
2. <a asociaci$n de%e ser rpida.
El primer punto proviene del )ec)o de !ue las computadoras modernas utili+an
direcciones virtuales de al menos 32 %its. #or ejemplo, si el tama2o de p&ina es de 4O,
un )ueco de direcciones de 32 %its tiene un mill$n de p&inas7 en el caso de un )ueco
de direcciones de "4 %its, se tendr.a ms informaci$n de la !ue uno !uisiera
contemplar.
El se&undo punto es consecuencia del )ec)o de !ue la asociaci$n virtual P f.sica de%e
)acerse en cada referencia a la memoria. (na instrucci$n com5n tiene una pala%ra de
instrucci$n y tam%i-n un operando de memoria. Entonces es necesario )acer una, dos
o ms referencias a la ta%la de p&inas por cada instrucci$n.
'aracter.sticas de la pa&inaci$n8
El espacio de direcciones l$&ico de un proceso puede ser no conti&uo.
1e divide la memoria f.sica en %lo!ues de tama2o fijo llamados marcos (frames).
1e divide la memoria en %lo!ues de tama2o llamados pa&inas.
1e mantiene informaci$n en los marcos li%res.
#ara correr un pro&rama de n pa&inas de tama2o, se necesitan encontrara n marcos y car&ar el
pro&rama.
1e esta%lece una ta%la de pa&inas para trasladar las direcciones l$&icas a f.sicas.
1e produce fra&mentaci$n interna.
Jentajas de la pa&inaci$n
9. Es posi%le comen+ar a ejecutar un pro&rama, car&ando solo una parte del mismo en memoria, y
el resto se car&ara %ajo la solicitud.
2. Ho es necesario !ue las pa&inas est-n conti&uas en memoria, por lo !ue no se necesitan
procesos de compactaci$n cuando e3isten marcos de pa&inas li%res dispersos en la memoria.
3. Es fcil controlar todas las p&inas, ya !ue tienen el mismo tama2o.
4. El mecanismo de traducci$n de direcciones (/4F) permite separar los conceptos de espacio de
direcciones y espacios de memoria. Fodo el mecanismo es transparente al usuario.
5. 1e li%era al pro&ramador de la restricci$n de pro&ramar para un tama2o f.sico de memoria, con lo
!ue s e aumenta su productividad. 1e puede pro&ramar en funci$n de una memoria muc)o ms
&rande a la e3istente.
". 4l no necesitarse car&ar un pro&rama completo en memoria para su ejecuci$n, se puede
aumentar el numero de pro&ramas multipro&ramndose.
7. 1e elimina el pro%lema de fra&mentaci$n e3terna.
/esventajas de la pa&inaci$n
9. El costo de )ard*are y soft*are se incrementa, por la nueva informaci$n !ue de%e manejarse y
el mecanismo de traducci$n de direcciones necesario. 1e consume muc)o mas recursos de
memoria, tiempo en el '#( para su implantaci$n.
2. 1e de%en reservar reas de memoria para las #MF de los procesos. 4l no ser fija el tama2o de
estas, se crea un pro%lema semejante al de los pro&ramas (como asi&nar un tama2o $ptimo sin
desperdicio de memoria, u ;ovear)ead; del procesador).
3. 4parece el pro%lema de fra&mentaci$n interna. 4s., si se re!uieren 5O para un pro&rama, pero
las pa&inas son de 4O, de%ern asi&nrseles 2 pa&inas (AE), con lo !ue !uedan 3O sin utili+ar. <a
suma de los espacios li%res dejados de esta forma puede ser mayor !ue el de varias pa&inas,
pero no podr ser utili+ados. /e%e asi&narse un tama2o promedio a las p&inas, evitando !ue si
son muy pe!ue2as, se necesiten F46<41 6MF y #MF muy &randes, y si son muy &randes, se
incremente el &rado de fra&mentaci$n interna.
Fraducci$n de /irecciones
<a direcci$n &enerada por la '#( se divide en8
Humero de pa&ina (p)8 utili+ado como indice en la ta%la de pa&ins !ue contiene la direcci$n %ase
de cada pa&ina en la memoria fisica.
Offset de la pa&ina (d)8 com%inado con la direcci$n %ase dfine la direccion fisica !ue ser enviada
a la unidad de memoria.
Ejemplo de pa&inaci$n8
). Se0mentacin
Es un es!uema de manejo de memoria mediante el cual la estructura del pro&rama
refleja su divisi$n l$&ica7 llevndose a ca%o una a&rupaci$n l$&ica de la informaci$n en
%lo!ues de tama2o varia%le denominados se&mentos. 'ada uno de ellos tienen
informaci$n l$&ica del pro&rama8 su%rutina, arre&lo, etc. <ue&o, cada espacio de
direcciones de pro&rama consiste de una colecci$n de se&mentos, !ue &eneralmente
reflejan la divisi$n l$&ica del pro&rama.
<a se&mentaci$n permite alcan+ar los si&uientes o%jetivos8
9. Modularidad de pro&ramas8 cada rutina del pro&rama puede ser un %lo!ue sujeto a cam%ios y
recopilaciones, sin afectar por ello al resto del pro&rama.
2. Estructuras de datos de lar&o varia%le8 ejm. 1tacE, donde cada estructura tiene su propio tama2o
y este puede variar.
3. #rotecci$n8 se puede prote&er los m$dulos del se&mento contra accesos no autori+ados.
4. 'omparici$n8 dos o ms procesos pueden ser un mismo se&mento, %ajo re&las de protecci$n7
aun!ue no sean propietarios de los mismos.
5. Enlace dinmico entre se&mentos8 puede evitarse reali+ar todo el proceso de enlace antes de
comen+ar a ejecutar un pro&rama. <os enlaces se esta%lecern solo cuando sea necesario.
Jentajas de la se&mentaci$n
El es!uema de se&mentaci$n ofrece las si&uientes ventajas8
El pro&ramador puede conocer las unidades l$&icas de su pro&rama, dndoles un tratamiento
particular.
Es posi%le compilar m$dulos separados como se&mentos el enlace entre los se&mentos puede
suponer )asta tanto se )a&a una referencia entre se&mentos.
/e%ido a !ue es posi%le separar los m$dulos se )ace ms fcil la modificaci$n de los mismos.
'am%ios dentro de un modulo no afecta al resto de los m$dulos.
Es fcil el compartir se&mentos.
Es posi%le !ue los se&mentos cre+can dinmicamente se&5n las necesidades del pro&rama en
ejecuci$n.
E3iste la posi%ilidad de definir se&mentos !ue aun no e3istan. 4s., no se asi&nara memoria, sino
a partir del momento !ue sea necesario )acer usos del se&mento. (n ejemplo de esto, serian los arre&los
cuya dimensi$n no se conoce )asta tanto no se comien+a a ejecutar el pro&rama. En al&unos casos,
incluso podr.a retardar la asi&naci$n de memoria )asta el momento en el cual se referencia el arre&lo u
otra estructura de dato por primera ve+.
/esventajas de la se&mentaci$n
Cay un incremento en los costos de )ard*are y de soft*are para llevar a ca%o la implantaci$n,
as. como un mayor consumo de recursos8 memoria, tiempo de '#(, etc.
/e%ido a !ue los se&mentos tienen un tama2o varia%le se pueden presentar pro%lemas de
fra&mentaci$n e3ternas, lo !ue puede ameritar un plan de reu%icaci$n de se&mentos en memoria
principal.
1e complica el manejo de memoria virtual, ya !ue los discos almacenan la informaci$n en
%lo!ues de tama2os fijos, mientras los se&mentos son de tama2o varia%le. Esto )ace necesaria la
e3istencia de mecanismos ms costosos !ue los e3istentes para pa&inaci$n.
4l permitir !ue los se&mentos var.en de tama2o, puede ser necesarios planes de reu%icaci$n a
nivel de los discos, si los se&mentos son devueltos a dic)o dispositivo7 lo !ue conlleva a nuevos costos.
Ho se puede &aranti+ar, !ue al salir un se&mento de la memoria, este pueda ser tra.do fcilmente
de nuevo, ya !ue ser necesario encontrar nuevamente un rea de memoria li%re ajustada a su tama2o.
<a comparticion de se&mentos permite a)orrar memoria, pero re!uiere de mecanismos
adicionales da )ard*are y soft*are.
Estas desventajas tratan de ser minimi+adas, %ajo la t-cnica conocida como
1e&mentaci$n pa&inada.
@. Se0mentacin .a0inada
#a&inaci$n y se&mentaci$n son t-cnicas diferentes, cada una de las cuales %usca
%rindar las ventajas enunciadas anteriormente.
#ara la se&mentaci$n se necesita !ue est-n car&adas en memoria, reas de tama2os
varia%les. 1i se re!uiere car&ar un se&mento en memoria7 !ue antes estuvo en ella y
fue removido a memoria secundaria7 se necesita encontrar una re&i$n de la memoria lo
suficientemente &rande para contenerlo, lo cual no es siempre facti%le7 en cam%io
;recar&ar; una pa&ina implica solo encontrar un merco de pa&ina disponi%le.
4 nivel de pa&inaci$n, si !uiere referenciar en forma c.clicas n pa&inas, estas de%ern
ser car&adas una a una &enerndose varias interrupciones por fallas de pa&inas7 %ajo
se&mentaci$n, esta pa&ina podr.a conformar un solo se&mento, ocurriendo una sola
interrupci$n, por falla de se&mento. Ho o%stante, si %ajo se&mentaci$n, se desea
acceder un rea muy pe!ue2a dentro de un se&mento muy &rande, este de%er
car&arse completamente en memoria, desperdicindose memoria7 %ajo pa&inaci$n solo
se car&ara la p&ina !ue contiene los .tems referenciados.
#uede )acerse una com%inaci$n de se&mentaci$n y pa&inaci$n para o%tener las
ventajas de am%as. En lu&ar de tratar un se&mento como una unidad conti&ua, este
puede dividirse en p&inas. 'ada se&mento puede ser descrito por su propia ta%la de
p&inas.
<os se&mentos son usualmente m5ltiplos de p&inas en tama2o, y no es necesario !ue
todas las p&inas se encuentren en memoria principal a la ve+7 adems las p&inas de
un mismo se&mento, aun!ue se encuentren conti&uas en memoria virtual7 no necesitan
estarlo en memoria real.
<as direcciones tienen tres componentes8 (s, p,d), donde la primera indica el numero del
se&mento, la se&unda el numero de la pa&ina dentro del se&mento y la tercera el
despla+amiento dentro de la pa&ina. 1e de%ern usar varias ta%las8
1MF (ta%la de mapas de se&mentos)8 una para cada proceso. En cada entrada de la 1MF se
almacena la informaci$n descrita %ajo se&mentaci$n pura, pero en el campo de direcci$n se indicara la
direcci$n de la #MF (ta%la de mapas de p&inas) !ue descri%e a las diferentes p&inas de cada
se&mento.
#MF (ta%la de mapas de p&inas)8 una por se&mento7 cada entrada de la #MF descri%e una
p&ina de un se&mento7 en la forma !ue se presento la pa&ina pura.
F6M (ta%la de %lo!ues de memoria)8 para controlar asi&naci$n de p&inas por parte del sistema
operativo.
IF (ta%la de Io%s)8 !ue contiene las direcciones de comien+o de cada una de las 1MF de los
procesos !ue se ejecutan en memoria.
En el caso, de !ue un se&mento sea de tama2o inferior o i&ual al de una pa&ina, no se
necesita tener la correspondiente #MF, actundose en i&ual forma !ue %ajo
se&mentaci$n pura7 puede arre&larse un %it adicional (1) a cada entrada de la 1MF, !ue
indicara si el se&mento esta pa&inado o no.
Jentajas de la se&mentaci$n pa&inada
El es!uema de se&mentaci$n pa&inada tiene todas las ventajas de la se&mentaci$n y la
pa&inaci$n8
/e%ido a !ue los espacios de memorias son se&mentados, se &aranti+a la facilidad de implantar
la comparticion y enlace.
'omo los espacios de memoria son pa&inados, se simplifican las estrate&ias de almacenamiento.
1e elimina el pro%lema de la fra&mentaci$n e3terna y la necesidad de compactaci$n.
/esventajas de la se&mentaci$n pa&inada
<as tres componentes de la direcci$n y el proceso de formaci$n de direcciones )ace !ue se
incremente el costo de su implantaci$n. El costo es mayor !ue en el caso de de se&mentaci$n pura o
pa&inaci$n pura.
1e )ace necesario mantener un n5mero mayor de ta%las en memoria, lo !ue implica un mayor
costo de almacenamiento.
1i&ue e3istiendo el pro%lema de fra&mentaci$n interna de todas: o casi: todas las
p&inas finales de cada uno de los se&mentos. 6ajo pa&inaci$n pura se desperdician
solo la 5ltima p&ina asi&nada, mientras !ue %ajo se&mentaci$n P pa&inada el
desperdicio puede ocurrir en todos los se&mentos asi&nados.
)ttp8//***.mono&rafias.com/tra%ajos93/&esme/&esme.s)tml
.).#/si0nacin conti0ua v.s. no conti0ua.
#ara asi&narle espacio a los arc)ivos e3isten tres criterios &enerales !ue se descri%en ense&uida.
4si&naci$n conti&ua8 'ada directorio contiene la los nom%res de arc)ivos y la direcci$n del
%lo!ue inicial de cada arc)ivo, as. como el tama2o total de los mismos. #or ejemplo, si un arc)ivo
comien+a en el sector 97 y mide 90 %lo!ues, cuando el arc)ivo sea accesado, el %ra+o se mover
inicialmente al %lo!ue 97 y de a). )asta el 27. 1i el arc)ivo es %orrado y lue&o creado otro ms pe!ue2o,
!uedarn )uecos in5tiles entre arc)ivos 5tiles, lo cual se llama fra&mentaci$n e3terna.
4si&naci$n encadenada8 'on este criterio los directorios contienen los nom%res de arc)ivos y por
cada uno de ellos la direcci$n del %lo!ue inicial !ue compone al arc)ivo. 'uando un arc)ivo es le.do, el
%ra+o va a esa direcci$n inicial y encuentra los datos iniciales junto con la direcci$n del si&uiente %lo!ue y
as. sucesivamente. 'on este criterio no es necesario !ue los %lo!ues est-n conti&uos y no e3iste la
fra&mentaci$n e3terna, pero en cada ;esla%$n; de la cadena se desperdicia espacio con las direcciones
mismas. En otras pala%ras, lo !ue se crea en el disco es una lista li&ada.
4si&naci$n con .ndices ( inde3ada )8 En este es!uema se &uarda en el directorio un %lo!ue de
.ndices para cada arc)ivo, con apuntadores )acia todos sus %lo!ues constituyentes, de ma%nera !ue el
acceso directo se a&ili+a nota%lemente, a cam%io de sacrificar varios %lo!ues para almacenar dic)os
apuntadores. 'uando se !uiere leer un arc)ivo o cual!uiera de sus partes, se )acen dos accesos8 uno al
%lo!ue de .ndices y otro a la direcci$n deseada. Este es un es!uema e3celente para arc)ivos &randes
pero no para pe!ue2os, por!ue la relaci$n entre %lo!ues destinados para .ndices respecto a los
asi&nados para datos es incostea%le.
Asig$a#i'$ Co$tigua (e Alma#e$amie$to Versus No Co$tigua
"n la /asignacin contigua0 cada programa ocupa un bloque contiguo y sencillo de
locali#aciones de almacenamiento.
"n la /asignacin no contigua0 un programa se divide en varios bloques o /segmentos0 que
pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que
es m&s complea pero m&s eficiente que la asignacin continua.
Asig$a#i'$ Co$tigua (e Alma#e$amie$to (e Q$ Solo Qsuario
Se consideran S. F. que ya poseen desarrollado el /sistema de control de entrada 5 salida0:
*F%S: input ' output control system (ver Digura T.7 g`, 0eitelh).
"l tamaUo de los programas est& limitado por la cantidad de memoria principal, pero se puede
superar este l,mite con tcnicas de /recubrimientos0, con las siguientes caracter,sticas (ver
Digura T.T g`, 0eitelh):
Si una seccin particular del programa ya no es necesaria, se carga otra seccin desde el
almacenamiento secundario ocupando las &reas de memoria liberadas por la seccin que
ya no se necesita.
La administracin manual por programa del recubrimiento es complicada y dificulta el
desarrollo y el mantenimiento.
Prote##i'$ e$ los sistemas (e u$ solo usuario
"l usuario tiene un completo control sobre la totalidad del almacenamiento principal:
"l almacenamiento se divide en porciones que contienen el S. F., el programa del usuario
y una porcin sin usar.
"l programa del usuario podr,a destruir &reas del S. F. que podr,an:
o 0etener el sistema.
o +roducir salidas errneas.
"l S. F. debe estar protegido contra el proceso usuario:
o La proteccin se instrumenta mediante un /registro de l!mites0 incorporado a la
cpu:
%ontiene la direccin de la instruccin m&s alta utili#ada por el S. F.
Si se intenta ingresar al S. F. la instruccin es interceptada y el proceso
finali#a.
Pro#esamie$to por lotes (e *lu!o [$i#o
Los sistemas de un solo usuario se dedican a un trabao durante m&s tiempo del que toma su
eecucin.
Los trabaos requieren de:
/tiempo de instalacin01 el necesario para preparar el entorno operativo requerido.
/tiempo de descarga01 el necesario para desmontar el entorno operativo que fue
requerido.
0urante la instalacin y descarga de los trabaos la cpu no est& eecutando dic(os trabaos
requeridos, por lo cual:
8utomati#ar la /transicin de trabao a trabao0 reduce la cantidad de tiempo perdido
entre trabaos.
Surgieron los sistemas de /procesamiento por lotes0.
"n el /procesamiento por lotes de fluo nico0 los trabaos se agrupan en /lotes0 encol&ndose
para su eecucin.
"l /procesador de fluos de trabaos01
Lee las instrucciones del /lenguae de control de trabaos0.
Dacilita la preparacin del trabao siguiente.
"mite instrucciones al operador del sistema.
8utomati#a funciones anteriormente manuales.
%uando finali#a un trabao efect!a las /operaciones de mantenimiento0 apropiadas para
facilitar la transicin del siguiente trabao.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
M]TODOS DE ASIXNACIN DE ESPACIO EN DISCO.
$n mtodo de asignacin de espacio en disco determina la manera en que un Sistema
Fperativo controla los lugares del disco ocupados por cada arc(ivo de datos. Se debe controlar
b&sicamente la identificacin del arc(ivo, sector de inicio y sector final.
+ara el control del espacio ocupado en disco se puede utili#ar como base alguno de los
mtodos tericos: 2signacin 0ontigua@ 2signacin 'igada@ 2signacin Ande*ada.

ASIXNACIN CONTIXQA.
"ste mtodo consiste en asignar el espacio en disco de tal manera que las direcciones de todos los
bloques correspondientes a un arc(ivo definen un orden lineal. +or eemplo:





VENTAFAS DESVENTAFAS
2 La cabe#a de lectura no se mueve demasiado
en la lectura de un arc(ivo.
2 +roduce fragmentacin e@terna.
ASIXNACIN LIXADA
"n este mtodo, cada arc(ivo es una lista ligada de bloques de disco. "n el directorio (ay un
apuntador al bloque de inicio y un apuntador al bloque final para cada arc(ivo. "n cada uno de
los bloques donde se encuentra un arc(ivo (ay un apuntador al siguiente bloque de la lista. +or
eemplo:


VENTAFAS DESVENTAFAS
2 -o produce fragmentacin e@terna.

La cabe#a de lectura se puede mover
demasiado en la lectura de un arc(ivo.
2 Si una liga se pierde, se perder& el
arc(ivo completo.
"s ineficiente para la implementacin de
arc(ivos directos.
Se necesita un campo e@tra para el
apuntador.
ASIXNACIN INDERADA
%omo ya se vio, la asignacin ligada resuelve problemas de fragmentacin e@terna, sin embargo,
la asignacin ligada no soporta eficientemente el acceso directo a los arc(ivos. La asignacin
inde@ada resuelve este problema poniendo todos los apuntadores en una sola localidad: %l blo4ue
!ndice.
%ada arc(ivo tiene su bloque ,ndice, "l cual es un arreglo de direcciones de bloques de disco.
La i63sima entrada en el bloque ,ndice apunta al i63simo bloque que conforma el arc(ivo. "n el
directorio se controla la direccin del bloque ,ndice de cada arc(ivo, por eemplo:



VENTAFAS DESVENTAFAS
-o produce fragmentacin e@terna.
"ficiente para la implementacin de
arc(ivos directos.

"@iste desperdicio cuando (ay arc(ivos
muy c(icos.
0esbordamiento de bloque ,ndice.
(Solucin: creacin de un esquema
ligadoG el ultimo bloque ,ndice apunta a
otro ,ndice)
"ttpE>>HHH.itlp.edu.m1>publica>tutoriales>sistemasoperativos2>unidad#."tmK/SIB
*/$IL*M2D$O*TIBU/.
.).%3ultipro0ramacin de particin fi9a8 particin
variable8 con intercambio de almacenamiento.
Multipro&ramaci$n de partici$n fija.:
<a memoria se divide en particiones de tama2o fijo (puede ser distinto el tama2o de cada partici$n).
Ori&inalmente los pro&ramas se compila%an y linE edita%an para ejecutar en una partici$n en particular
(direcciones a%solutas). #osteriormente los compiladores y linE editores &eneran c$di&o reu%ica%le para
!ue un pro&rama pudiera ejecutar en cual!uier partici$n de memoria suficientemente &rande.
'on esta estructura de administraci$n de memoria se desperdicia memoria y tiempo de '#( (si )ay un
pro&rama corriendo los dems !uedan encolados aun!ue )aya otra partici$n li%re).
Multipro&ramaci$n de partici$n varia%le.:
'ada pro&rama o usuario utili+a tanta memoria como sea necesaria siempre !ue !uepa en el
almacenamiento real. 'uando los pro&ramas van terminando su ejecuci$n se van &enerando a&ujeros en
memoria.
#articiones fijas o particiones varia%les
En el es!uema de la multipro&ramaci$n en memroia real se manejan dos alternativas para asi&narle a
cada pro&rama su partici$n correspondiente8 particiones de tama2o fijo o particiones de tama2o varia%le.
<a alternativa ms simple son las particiones fijas. /ic)as particiones se crean cuando se enciende el
e!uipo y permanecern con los tama2os iniciales )asta !ue el e!uipo se apa&ue. Es una alternativa muy
vieja, !uien )ac.a la divisi$n de particiones era el operador anali+ando los tama2os estimados de los
tra%ajos de todo el d.a. #or ejemplo, si el sistema ten.a 592 Eilo%ytes de D4M, podia asi&nar "4 E para el
sistema operativo, una partici$n ms de "4 E, otra de 92AE y una mayor de 25" E. Esto era muy simple,
pero infle3i%le, ya !ue si sur&.an tra%ajos ur&entes, por ejemplo, de 400E, ten.an !ue esperar a otro d.a o
reparticionar, iniciali+ando el e!uipo desde cero. <a otra alternativa, !ue sur&i$ despu-s y como
necesidad de mejorar la alternativa anterior, era crear particiones conti&uas de tama2o varia%le. #ara
esto, el sistema ten.a !ue mantener ya una estructura de datos suficiente para sa%er en d$nde )a%.an
)uecos disponi%les de D4M y de d$nde a d$nde )a%.an particiones ocupadas por pro&ramas en
ejecuci$n. 4s., cuando un pro&rama re!uer.a ser car&ado a D4M, el sistema anali+a%a los )uecos para
sa%er si )a%.a al&uno de tama2o suficiente para el pro&rama !ue !ueria entrar, si era as., le asi&na%a el
espacio. 1i no, intenta%a relocali+ar los pro&ramas e3istentes con el prop$sito de )acer conti&uo todo el
espacio ocupado, as. como todo el espacio li%re y as. o%tener un )ueco de tama2o suficiente. 1i a5n as.
el pro&rama no ca%.a, entonces lo %lo!uea%a y toma%a otro. El proceso con el cual se juntan los )uecos o
los espacios ocupados se le llama Qcompactaci$nG. El lector se )a%r dado cuenta ya de !ue sur&en
varios pro%lemas con los es!uemas de particiones fijas y particiones varia%les8 f En %ase a !u- criterio
se eli&e el mejor tama2o de partici$n para un pro&rama Z #or ejemplo, si el sistema tiene dos )uecos,
uno de 9AE y otro de 24 E para un proceso !ue desea 20 E, f 'ual se le asi&na Z E3isten varios
al&oritmos para darle respuesta a la pre&unta anterior, los cuales se ennumeran y descri%en ense&uida.
#rimer 4juste8 1e asi&na el primer )ueco !ue sea mayor al tama2o deseado.
Mejor 4juste8 1e asi&na el )ueco cuyo tama2o e3ceda en la menor cantidad al tama2o deseado.
De!uiere de una %5s!ueda e3)austiva.
#eor 4juste8 1e asi&na el )ueco cuyo tama2o e3ceda en la mayor cantidad al tama2o deseado.
De!uiere tam%i-n de una %5s!ueda e3)austiva.
El 1i&uiente 4juste8 Es i&ual !ue el Qprimer ajusteG con la diferencia !ue se deja un apuntador al
lu&ar en donde se asi&n$ el 5ltimo )ueco para reali+ar la si&uiente %5s!ueda a partir de -l.
4juste Dpido8 1e mantienen listas li&adas separadas de acuerdo a los tama2os de los )uecos,
para as. %uscarle a los procesos un )ueco ms rpido en la cola correspondiente.
Otro pro%lema !ue se vislum%ra desde a!u. es !ue, una ve+ asi&nado un )ueco, por ejemplo, con ;el
peor ajuste;, puede ser !ue el proceso re!uiriera 92 Eilo%ytes y !ue el )ueco asi&nado fuera de "4
Eilo%ytes, por lo cual el proceso va a desperdiciar una &ran cantidad de memoria dentro de su partici$n, lo
cual se le llama Qfra&mentaci$n internaG.
#or otro lado, conforme el sistema va avan+ando en el d.a, finali+ando procesos y comen+ando otros, la
memoria se va confi&urando como una secuencia conti&ua de )uecos y de lu&ares asi&nados,
provocando !ue e3istan )uecos, por ejemplo, de 92 E, 2AE y 30 E, !ue sumados dan 70E, pero !ue si en
ese momento lle&a un proceso pidi-ndolos, no se le pueden asi&nar ya !ue no son localidades conti&uas
de memoria ( a menos !ue se realice la compactaci$n ). 4l )ec)o de !ue apare+can )uecos no conti&uos
de memoria se le llama Qfra&mentaci$n e3ternaG.
/e cual!uier manera, la multipro&ramaci$n fue un avance si&nificativo para el mejor aprovec)amiento de
la unidad central de procesamiento y de la memoria misma, as. como dio pie para !ue sur&ieran los
pro%lemas de asi&naci$n de memoria, protecci$n y relocali+aci$n, entre otros.
<os overlays
(na ve+ !ue sur&i$ la multipro&ramaci$n, los usuarios comen+aron a e3plorar la forma de ejecutar
&randes cantidades de c$di&o en reas de memoria muy pe!ue2as, au3iliados por al&unas llamadas al
sistema operativo. Es as. como nacen los QoverlaysG.
Esta t-cnica consiste en !ue el pro&ramador divide l$&icamente un pro&rama muy &rande en secciones
!ue puedan almacenarse el las particiones de D4M. 4l final de cada secci$n del pro&rama ( o en otros
lu&ares necesarios ) el pro&ramador inserta%a una o varias llamadas al sistema con el fin de descar&ar la
secci$n presente de D4M y car&ar otra, !ue en ese momento resid.a en disco duro u otro medio de
almacenamiento secundario. 4un!ue esta t-cnica era efica+ ( por!ue resolv.a el pro%lema ) no era
eficiente ( ya !ue no lo resolv.a de la mejor manera ). Esta soluci$n re!uer.a !ue el pro&ramador tuviera
un conocimiento muy profundo del e!uipo de c$mputo y de las llamadas al sistema operativo. Otra
desventaja era la porta%ilidad de un sistema a otro8 las llamadas cam%ia%an, los tama2os de particiones
tam%i-n. Desumiendo, con esta t-cnica se pod.an ejecutar pro&ramas ms &randes !ue las particiones
de D4M, donde la divisi$n del c$di&o corr.a a cuenta del pro&ramador y el control a cuenta del sistema
operativo.
Multiprograma#i'$ (e Parti#i'$ Fi!a
Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a
que g`, 0eitelh (ver Digura T.V g`, 0eitelh):
%uando ocurre una peticin de e ' s la cpu normalmente no puede continuar el proceso
(asta que concluya la operacin de e ' s requerida.
Los perifricos de e ' s frenan la eecucin de los procesos ya que comparativamente la
cpu es varios rdenes de magnitud m&s r&pida que los dispositivos de e ' s.
Los sistemas de /multiprogramacin0 permiten que varios procesos usuarios compitan al mismo
tiempo por los recursos del sistema:
$n trabao en espera de e ' s ceder& la cpu a otro trabao que est listo para efectuar
cmputos.
"@iste paralelismo entre el procesamiento y la e ' s.
Se incrementa la utili#acin de la cpu y la capacidad global de eecucin del sistema.
"s necesario que varios trabaos residan a la ve# en la memoria principal.
Multiprograma#i'$ (e Parti#i'$ Fi!a+ Tra(u##i'$ : Carga Asolutas
Las QparticionesS del almacenamiento principal:
Son de tamaUo fio.
8loan un proceso cada una.
La cpu se cambia r&pidamente entre los procesos creando la ilusi'$ (e simulta$ei(a(.
Los trabaos se traduc,an con ensambladores y compiladores absolutos para ser eecutados solo
dentro de una particin espec,fica (ver Digura T.Y g`, 0eitelh).
"l S. F. resulta de implementacin relativamente sencilla pero no se optimi7a la utili7acin de la
memoria.
Multiprograma#i'$ (e Parti#i'$ Fi!a+ Tra(u##i'$ : Carga Relo#ali&ales
Los compiladores, ensambladores y cargadores de relocali#acin:
Se usan para producir programas relocali#ables que puedan ser eecutados en cualquier
particin disponible de tamaUo suficiente para aceptarlos (ver Digura T.? g`, 0eitelh).
Son m&s compleos que los absolutos.
;eoran la utili#acin del almacenamiento.
%onfieren m&s fle@ibilidad en el armado de la carga de procesos.
Prote##i'$ e$ los Sistemas (e Multiprograma#i'$
Si se utili#a asignacin contigua de memoria la proteccin suele implementarse con varios
/registros de l!mites0 (ver Digura T.` y Digura T.5 g`, 0eitelh).
Los e@tremos superior e inferior de una particin pueden ser:
0elineados con dos registros.
*ndicados el l,mite inferior o superior y el tamaUo de la particin o regin.
Fragme$ta#i'$ e$ la Multiprograma#i'$ (e Parti#i'$ Fi!a
La /fragmentacin de almacenamiento0 ocurre en todos los sistemas independientemente de su
organi#acin de memoria.
"n los S. F. de multiprogramacin de particin fia la fragmentacin se produce cuando:
Los trabaos del usuario no llenan completamente sus particiones designadas.
$na particin permanece sin usar porque es demasiado pequeUa para aloar un trabao que
est& en espera.
Multiprograma#i'$ (e Parti#i'$ Variale
Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio
disponible de memoria g`, 0eitelh (ver Digura T.4 g`, 0eitelh).
-o (ay l,mites fios de memoria, es decir que la particin de un trabao es su propio tamaUo.
Se consideran /es4uemas de asignacin contigua0, dado que un programa debe ocupar
posiciones adyacentes de almacenamiento.
Los procesos que terminan dean disponibles espacios de memoria principal llamados
/agueros01
+ueden ser usados por otros trabaos que cuando finali#an dean otros /agueros0
menores.
"n sucesivos pasos los /agueros0 son cada ve# m&s numerosos pero m&s pequeUos, por
lo que se genera un desperdicio de memoria principal.
Comi$a#i'$ (e agu!eros D"reas lires;
%onsiste en fusionar agueros adyacentes para formar uno sencillo m&s grande.
Se puede (acer cuando un trabao termina y el almacenamiento que libera tiene l,mites con otros
agueros.
Compresi'$ o Compa#ta#i'$ (e Alma#e$amie$to
+uede ocurrir que los agueros (&reas libres) separados distribuidos por todo el almacenamiento
principal constituyan una cantidad importante de memoria:
+odr,a ser suficiente (el total global disponible) para aloar a procesos encolados en espera
de memoria.
+odr,a no ser suficiente ning!n &rea libre individual (ver Digura T.36 g`, 0eitelh).
La tcnica de compresin de memoria implica pasar todas las &reas ocupadas del almacenamiento
a uno de los e@tremos de la memoria principal:
0ea un solo aguero grande de memoria libre contigua.
"sta tcnica se denomina /recogida de residuos0 (ver Digura T.33 g`, 0eitelh).
Pri$#ipales (esve$ta!as (e la #ompresi'$
%onsume recursos del sistema (ver Digura T.37 g`, 0eitelh).
"l sistema debe detener todo mientras efect!a la compresin, lo que puede afectar los tiempos de
respuesta.
*mplica la relocali#acin (reubicacin) de los procesos que se encuentran en la memoria:
La informacin de relocali#acin debe ser de accesibilidad inmediata.
Una alta carga de trabao significa mayor frecuencia de compresin 4ue incrementa el uso de
recursos.
Estrategias (e Colo#a#i'$ (el Alma#e$amie$to
Se utili#an para determinar el lugar de la memoria donde ser&n colocados los programas y datos
que van llegando y se las clasifica de la siguiente manera:
/%strategia de meor auste01
o $n trabao nuevo es colocado en el aguero en el cual quepa de forma m&s
austada:
0ebe dearse el menor espacio sin usar.
/%strategia de primer auste01
o $n trabao nuevo es colocado en el primer aguero disponible con tamaUo
suficiente para aloarlo.
/%strategia de peor auste01
o %onsiste en colocar un programa en el aguero en el que quepa de la peor manera,
es decir en el m&s grande posible:
"l aguero restante es tambin grande para poder aloar a un nuevo
programa relativamente grande.
Multiprograma#i'$ #o$ I$ter#amio (e Alma#e$amie$to
"n el esquema de /intercambio0 los programas del usuario no re4uieren permanecer en la
memoria principal 2asta su terminacin g`, 0eitelh.
$na variante consiste en que un trabao se eecuta (asta que ya no puede continuar:
%ede el almacenamiento y la cpu al siguiente trabao.
La totalidad del almacenamiento se dedica a un trabao durante un breve per,odo de
tiempo.
Los trabaos son /intercambiados0, d&ndose que un trabao puede ser intercambiado
varias veces antes de llegar a su terminacin.
"s un esquema ra#onable y eficiente para un n!mero relativamente reducido de procesos de
usuarios.
Los sistemas de intercambio fueron los predecesores de los sistemas de paginacin.
"l rendimiento de los sistemas de intercambio meora al reducir el tiempo (e i$ter#amio+
;anteniendo al mismo tiempo varias /imgenes de usuario o imgenes de memoria0 en
la memoria principal.
:etirando una imagen de usuario de la memoria principal solo cuando es necesario su
almacenamiento para una nueva imagen.
*ncrementando la cantidad de memoria principal disponible en el sistema.
Las im&genes de usuario (im&genes de memoria) retiradas del almacenamiento principal se
graban en el almacenamiento secundario (discos).
.@ Or0ani2acin de memoria virtual.
Multipro&ramaci$n en memoria virtual
<a necesidad cada ve+ ms imperiosa de ejecutar pro&ramas &randes y el crecimiento en poder de las
unidades centrales de procesamiento empujaron a los dise2adores de los sistemas operativos a implantar
un mecanismo para ejecutar automticamente pro&ramas ms &randes !ue la memoria real disponi%le,
esto es, de ofrecer Qmemoria virtualG.
<a memoria virtual se llama as. por!ue el pro&ramador ve una cantidad de memoria muc)o mayor !ue la
real, y en realidad se trata de la suma de la memoria de almacenamiento primario y una cantidad
determinada de almacenamiento secundario. El sistema operativo, en su m$dulo de manejo de memoria,
se encar&a de intercam%iar pro&ramas enteros, se&mentos o p&inas entre la memoria real y el medio de
almacenamiento secundario. 1i lo !ue se intercam%ia son procesos enteros, se )a%la entonces de
multipro&ramaci$n en memoria real, pero si lo !ue se intercam%ian son se&mentos o p&inas, se puede
)a%lar de multipro&ramaci$n con memoria virtual.
<a memoria virtual se apoya en varias t-cnicas interesantes para lo&rar su o%jetivo. (na de las teorias
ms fuertes es la del Qconjunto de tra%ajoG, la cual se refiere a !ue un pro&rama o proceso no est usando
todo su espacio de direcciones en todo momento, sino !ue e3isten un conjunto de localidades activas !ue
conforman el Qconjunto de tra%ajoG. 1i se lo&ra !ue las p&inas o se&mentos !ue contienen al conjunto de
tra%ajo est-n siempre en D4M, entonces el pro&rama se desempe2ar muy %ien.
Otro factor importante es si los pro&ramas e3)i%en un fen$meno llamado QlocalidadG, lo cual !uiere decir
!ue al&unos pro&ramas tienden a usar muc)o las instrucciones !ue estn cercanas a la localidad de la
instrucci$n !ue se est ejecutando actualmente.
.@.1!valuacin de las or0ani2aciones de
almacenamiento.
I$tro(u##i'$ a la Orga$i&a#i'$ (el Alma#e$amie$to Virtual
/-lmacenamiento virtual 0 significa la capacidad de direccionar un espacio de almacenamiento
muc2o mayor 4ue el disponible en el almacenamiento primario de determinado sistema de
computacin g`, 0eitelh.
"sta tecnolog,a apareci en 34?6 en la $niversidad de ;anc(ester (*nglaterra), en el sistema
Q8tlasS.
Los m/to(os m&s comunes de implementacin son mediante:
<cnicas de /paginacin0.
<cnicas de /segmentacin0.
$na combinacin de ambas tcnicas.
Las direcciones generadas por los programas en su eecucin no son, necesariamente, aquellas
contenidas en el almacenamiento primario (memoria real), ya que las (ire##io$es virtuales
suelen seleccionarse dentro de un n!mero muc(o mayor de direcciones que las disponibles dentro
del almacenamiento primario.
La evolu#i'$ e$ las orga$i&a#io$es (e alma#e$amie$to puede resumirse como sigue:
:eal:
o Sistemas dedicados a un solo usuario.
:eal:
o Sistemas de multiprogramacin en memoria real:
;ultiprogramacin en particin fia:
8bsoluta.
:elocali#able (reubicable).
;ultiprogramacin en particin variable.
Hirtual:
o ;ultiprogramacin en almacenamiento virtual:
+aginacin pura.
Segmentacin pura.
%ombinacin paginacin ' segmentacin.
Co$#eptos ?"si#os (e Alma#e$amie$to Virtual
La clave del concepto de memoria (almacenamiento) virtual esta en la disociacin:
0e las direcciones a las que (ace referencia un programa.
0e las direcciones disponibles en la memoria real (almacenamiento primario).
Los principales conceptos son los siguientes:
/&irecciones virtuales01
o Son las referidas por un proceso en eecucin.
/&irecciones reales01
o Son las disponibles dentro del almacenamiento primario.
/%spacio de direcciones virtuales (v)0 de un proceso:
o "s el n!mero de direcciones virtuales a que puede (acer referencia el proceso.
/%spacio de direcciones reales (r)0 de un computador:
o "s el n!mero de direcciones reales disponibles en el ordenador.
Los procesos 2acen referencia a direcciones virtuales pero stas deben eecutarse en el
almacenamiento real:
Las direcciones virtuales deben ser transformadas dentro de las direcciones reales,
mientras el proceso est& en eecucin.
La traduccin de direcciones deber& (acerse r&pidamente para no degradar al sistema.
"@isten varios medios para asociar las direcciones virtuales con las reales (ver Digura T.3T g`,
0eitelh).
Los mecanismos de /traduccin dinmica de direcciones0 (dat) convierten las direcciones
virtuales en reales al eecutarse el proceso.
Las direcciones contiguas dentro del espacio de direcciones virtuales de un proceso no tienen por
qu ser contiguas dentro del almacenamiento real, a esto se denomina /contig8idad artificial 0
(ver Digura T.3V g`, 0eitelh).
Orga$i&a#i'$ (el Alma#e$amie$to (e Niveles M[ltiples
Se deben proporcionar los medios para retener programas y datos en un gran almacenamiento
au@iliar para:
+ermitir que el espacio de direcciones virtuales de un usuario sea mayor que el espacio de
direcciones reales.
Soportar multiprogramacin de forma efectiva en un sistema con muc(os usuarios que
compartan el almacenamiento real.
Se utili#a un esquema de almacenamiento de dos niveles (ver Digura T.3Y g`, 0eitelh):
+rimer nivel: /almacenamiento real 01
o "n l se eecutan los procesos y en l deben estar los datos para que un proceso
pueda referirse a ellos.
Segundo nivel: /almacenamiento auxiliar9 secundario o adicional 01
o Zeneralmente consta de discos de gran capacidad que pueden mantener los
programas y datos que no caben al mismo tiempo en el m&s limitado
almacenamiento real.
%uando se va a eecutar un proceso su cdigo y datos se pasan al almacenamiento principal.
"l almacenamiento real es #omparti(o por varios procesos:
%ada proceso puede tener un espacio de direcciones virtuales muc(o mayor que el
almacenamiento real.
Solo se mantiene al mismo tiempo una pequeUa parte de los programas y datos de cada
proceso en el almacenamiento real.
Tra$s*orma#i'$ (e ?lo%ues
Los mecanismos de traduccin din&mica de direcciones deben mantener /mapas0 que ilustren
qu direcciones del almacenamiento virtual se encuentran en el almacenamiento real y dnde se
encuentran g`, 0eitelh.
La informacin se agrupa en /blo4ues01
"l sistema est& informado del lugar del almacenamiento real donde (an sido colocados los
bloques de almacenamiento virtual.
%uanto mayor sea el bloque menor ser& la fraccin del almacenamiento real que debe
dedicarse a contener la informacin del mapa.
%on bloques grandes:
o Se reduce la sobrecarga de almacenamiento del mecanismo de transformacin.
o Se incrementa el tiempo de transferencia entre los almacenamientos secundario y
primario.
o %onsumen m&s almacenamiento real pudiendo limitar el n!mero de procesos que
pueden compartirlo.
Los bloques pueden ser de tama.o1
o )gual 1 se denominan /pginas0 y la organi#acin de almacenamiento virtual
asociada se denomina /paginacin0.
o &iferente1 se denominan /segmentos0 y la organi#acin de almacenamiento
virtual asociada se denomina /segmentacin0.
Se pueden combinar ambas tcnicas: segmentos de tamaUo variable compuestos de
p&ginas de tamaUo fio.
Las direcciones son /bidimensionales0, es decir que una direccin virtual /v0 se indica por un
par ordenado /(b9d)09 donde:
QbS: n!mero del bloque donde reside.
QdS: despla#amiento a partir del inicio del bloque.
La traduccin de una direccin virtual Qv J (b,d)S a la direccin real QrS considera lo siguiente
(ver Digura T.3? y Digura T.3` g`, 0eitelh):
%ada proceso tiene su /tabla de mapa de blo4ues0 mantenida por el sistema en el
almacenamiento real.
$n registro especial del procesador llamado /registro origen de la tabla de blo4ues0 se
carga con la direccin real QaS de la Qtabla de mapa de bloquesS:
o %ontiene una entrada para cada bloque del proceso.
o Las entradas se mantienen en orden secuencial para el bloque 6, bloque 3, etc.
o Se aUade el bloque n!mero QbS a la direccin base QaS de la Qtabla de bloquesS
para formar la direccin real de la entrada de la Qtabla de mapa de bloquesS para el
bloque QbS:
%ontiene la direccin real Qb j S para el bloque QbS.
"l despla#amiento QdS se aUade a la direccin de inicio del bloque, Qb j S,
para formar la Qdireccin realS deseada: Qr J b j a dS.
La transformacin de blo4ues se efecta en forma dinmica mientras se eecuta un proceso, por
lo cual, si la implementacin no es eficiente, su sobrecarga puede causar una degradacin del
rendimiento que podr,a eliminar en parte las ventaas de la utili#acin del almacenamiento
virtual.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.@.2.a0inacin.
Co$#eptos ?"si#os (e Pagi$a#i'$
Drecuentemente se diferencia entre la /paginacin pura0 y la /combinacin de paginacin y
segmentacin0g`, 0eitelh.
Las p&ginas se transfieren del almacenamiento secundario al primario en bloques llamados
/marcos de pginas01
<ienen el mismo tamaUo que las p&ginas.
%omien#an en direcciones del almacenamiento real que son mltiplos enteros del tamaUo
fio de la p&gina.
+odr& colocarse una nueva p&gina dentro de cualquier /marco de pgina0 o /celda de
pgina0 disponible.
La /traduccin dinmica de direcciones0 incluye:
$n proceso en eecucin (ace referencia a una direccin virtual Qv J (p,d)S (ver Digura
T.35 g`, 0eitelh).
$n mecanismo de transformacin de p&ginas busca la p&gina QpS en la /tabla de
pginas0 y determina si la p&gina QpS se encuentra en el marco de p&gina Qp j S.
La direccin de almacenamiento real se forma por la concatenacin de Qp j S y QdS.
La tabla de /mapa de pginas0 debe indicar si se encuentra o no en el almacenamiento primario
la p&gina referenciada:
"n caso afirmativo dnde est& en la memoria real.
"n caso negativo dnde puede estar en el almacenamiento secundario.
La direccin de almacenamiento primario QaS, donde comien#a el marco de pagina Qp j S
(suponiendo un tamaUo de p&gina QpS), est& dada por: Qa J (p) (p j)SG se supone marcos de p&gina
numerados 6, 3, 7, etc. (ver Digura T.34, Digura T.76 y Digura T.73 g`, 0eitelh).
Tra(u##i'$ (e Dire##io$es (e Pagi$a#i'$ por Tra$s*orma#i'$ Dire#ta
$n proceso en eecucin (ace referencia a la direccin virtual v : (p9d).
8ntes que un proceso comience su eecucin, el S. F. carga la direccin de almacenamiento
primario de la /tabla de mapa de pginas0 en el /registro origen de la tabla de mapa de
pginas0 (Her Digura T.77 g`, 0eitelh).
La direccin base de la tabla de mapa de p&ginas es /b0.
"l n!mero de p&gina es /p0.
La direccin en el almacenamiento primario de la entrada en la tabla de mapa de p&ginas para la
p&gina /p0 es /b ; p01
*ndica que el marco de p&gina /p < 0 corresponde a la p&gina virtual.
/p < 0 se concatena con el despla#amiento /d0 par formar la direccin real /r0.
/%sto es un eemplo de transformacin directa debido a 4ue la tabla de mapa de pginas
contiene una entrada por cada una de las pginas del almacenamiento virtual de este proceso0.
La direccin virtual que se est& traduciendo y la direccin base de la tabla de mapa de p&ginas
son mantenidas en un registro de alta velocidad del control del procesador.
La tabla de mapa de p&ginas transformada directamente suele mantenerse en el almacenamiento
primario:
Las referencias a esta tabla requieren un ciclo completo de almacenamiento primario, que
generalmente es la parte m&s larga de un ciclo de eecucin de instrucciones.
Se requiere otro ciclo de eecucin de almacenamiento primario para la transformacin de
p&ginas, lo que puede ocasionar degradacin equivalente a un Y6b, para lo cual una
solucin ser,a tener la tabla completa de mapa de p&ginas de transformacin directa en la
/cac230 de muy alta velocidad.
Tra(u##i'$ (e Dire##io$es (e Pagi$a#i'$ por Tra$s*orma#i'$ Aso#iativa
$na forma de acelerar la traduccin din&mica de p&ginas consiste en colocar la tabla completa de
mapa de p&ginas en un /almacenamiento asociativo0 que tenga un tiempo de ciclo muc(o m&s
r&pido que el almacenamiento primario.
$na variante es la /transformacin asociativa pura0 (ver Digura T.7T g`, 0eitelh).
$n programa en eecucin (ace referencia a la direccin virtual v : (p9d).
%ada entrada en el almacenamiento asociativo se busca de forma simult&nea para la p&gina /p01
Se obtiene /p < 0 como el marco de p&gina correspondiente a la p&gina /p0.
Se concatena /p < 0 con /d0 formando la direccin real /r0.
%ada una de las clulas del almacenamiento asociativo se registra de manera simult&nea:
)ace costoso el almacenamiento asociativo.
*mplementar la transformacin asociativa pura resulta demasiado costoso, tal lo ocurrido
con la implementacin de la transformacin directa pura utili#ando /cac230.
Tra(u##i'$ (e Dire##io$es (e Pagi$a#i'$ por Comi$a#i'$ (e Tra$s*orma#i'$ Aso#iativa I
Dire#ta
Se utili#a un almacenamiento asociativo capa# de mantener solo un pequeUo porcentae del mapa
completo de p&ginas para un proceso (ver Digura T.7V g`, 0eitelh).
Las entradas de p&gina contenidas en este mapa reducido corresponden solo a las pginas
referenciadas recientemente1
Se presupone que una p&gina recientemente referenciada tendr& posibilidades de serlo de
nuevo pr@imamente.
Los rendimientos obtenidos con este esquema de mapa asociativo parcial superan
apro@imadamente en un 366 b a los rendimientos obtenidos con esquemas de mapa
asociativo de pgina completo.
$n programa (ace referencia a la direccin virtual v : (p9d).
"l mecanismo de traduccin de direcciones intenta encontrar la p&gina /p0 en el mapa de p&gina
asociativo parcial:
Si /p0 se encuentra all,:
o "l mapa asociativo devuelve /p < 0 como el n!mero de marco de p&gina
correspondiente a la p&gina virtual /p0.
o /p < 0 se concatena con el despla#amiento /d0 para formar la direccin real /r0
que corresponde a la direccin virtual v : (p9d).
Si /p0 no se encuentra en el mapa de pagina parcial:
o Se utili#a un mapa directo convencional.
o La direccin /b0 del registro de origen de la tabla de p&ginas se aUade a /p0 para
locali#ar la entrada apropiada a la p&gina /p0 en la tabla de mapa de p&ginas de
transformacin directa del almacenamiento primario.
o La tabla indica que /p < 0 es el marco de p&gina correspondiente a la p&gina
virtual /p0.
o /p < 0 se concatena con el despla#amiento /d0 para formar la direccin real /r0
correspondiente a la direccin virtual v : (p9d).
Compartimie$to (e Re#ursos e$ u$ Sistema (e Pagi$a#i'$
"n sistemas multiprogramados, especialmente en los de tiempo compartido, es com!n que m&s de
un usuario estn eecutando los mismos programas:
+ara optimi#ar el uso de la memoria real se comparten las p&ginas que pueden ser
compartidas:
o "l compartimiento debe ser cuidadosamente controlado para evitar que un proceso
modifique datos que otro proceso esta leyendo (ver Digura T.7Y g`, 0eitelh).
o Los programas se encuentran divididos en &reas separadas de /procedimiento0 y
/datos0.
o Los procedimientos no modificables se llaman /procedimientos puros
reentrantes0.
o Los datos y procedimientos modificables no pueden ser compartidos.
o Los datos no modificables (e.: tablas fias) son compartibles.
Se debe identificar cada p&gina como compartible o no.
)abr& marcos (celdas) de p&ginas compartidos por varios procesos.
"l compartimiento:
:educe la cantidad de almacenamiento primario necesario para la eecucin efica# de un
grupo de procesos.
+uede (acer posible que un sistema determinado mantenga una cantidad mayor de
usuarios (procesos).
)ttp8//e3a.unne.edu.ar/depar/areas/informatica/1istemasOperativos/1O3.)tm\O44
#a&inaci$n pura
<a pa&inaci$n pura en el majejo de memoria consiste en !ue el sistema operativo divide dinmicamente
los pro&ramas en unidades de tama2o fijo ( &eneralmente m5ltiplos de 9 Eilo%yte ) los cuales va a
manipular de D4M a disco y viceversa. 4l proceso de intercam%iar p&inas, se&mentos o pro&ramas
completos entre D4M y disco se le conoce como Qintercam%ioG o Qs*appin&G. En la pa&inaci$n, se de%e
cuidar el tam2o de las p&inas, ya !ue si -stas son muy pe!ue2as el control por parte del sistema
operativo para sa%er cules estn en D4M y cuales en disco, sus direcciones reales, etc7 crece y provoca
muc)a Qso%recar&aG (over)ead). #or otro lado, si las p&inas son muy &randes, el over)ead disminuye
pero entonces puede ocurrir !ue se desperdicie memoria en procesos pe!ue2os. /e%e )a%er un
e!uili%rio.
(no de los aspectos ms importantes de la pa&inaci$n, asi como de cual!uier es!uema de memoria
virtual, es la forma de traducir una direcci$n virtual a direcci$n real. #ara e3plicarlo, o%s-rvese la fi&ura
'omo se o%serva, una direcci$n virtual QvG U ( %,d) est formada por un n5mero de p&ina virtual Q%G y un
despla+amiento QdG. #or ejemplo, si el sistema ofrece un espacio de direcciones virtuales de "4 Eilo%ytes,
con p&inas de 4 Eilo%ytes y la D4M s$lo es de 32 Eilo%ytes, entonces tenemos 9" p&inas virtuales y A
reales. <a ta%la de direcciones virtuales contiene 9" entradas, una por cada p&ina virtual. En cada
entrada, o re&istro de la ta%la de direcciones virtuales se almacenan varios datos8 si la p&ina est en
disco o en memoria, !ui-n es el due2o de la p&ina, si la p&ina )a sido modificada o es de lectura nada
mas, etc. #ero el dato !ue nos interesa a)ora es el n5mero de p&ina real !ue le corresponde a la p&ina
virtual. O%viamente, de las 9" virtuales, s$lo oc)o tendrn un valor de control !ue dice !ue la p&ina est
car&ada en D4M, as. como la direcci$n real de la p&ina, denotada en la fi&ura 4.3 como %G . #or ejemplo,
sup$n&ase !ue para la p&ina virtual n5mero 94 la ta%la dice !ue, efectivamente est car&ada y es la
p&ina real 2 ( direcci$n de memoria A9B2 ). (na ve+ encontrada la p&ina real, se le suma el
despla+amiento, !ue es la direcci$n !ue deseamos dentro de la p&ina %uscada ( %G T d ).
<a ta%la de direcciones virtuales a veces est u%icada en la misma meoria D4M, por lo cual se necesita
sa%er en !u- direcci$n comien+a, en este caso, e3iste un re&istro con la direcci$n %ase denotada por la
letra QaG en la fi&ura 4.3.
'uando se est %uscando una p&ina cual!uiera y -sta no est car&ada, sur&e lo !ue se llama un Qfallo
de p&inaG (pa&e fault ). Esto es caro para el manejador de memoria, ya !ue tiene !ue reali+ar una serie
de pasos e3tra para poder resolver la direcci$n deseada y darle su contenido a !uien lo pide. #rimero, se
detecta !ue la p&ina no est presente y entonces se %usca en la ta%la la direcci$n de esta p&ina en
disco. (na ve+ locali+ada en disco se intenta car&ar en al&una p&ina li%re de D4M. 1i no )ay p&inas
li%res se tiene !ue esco&er al&una para enviarla )acia el disco. (na ve+ esco&ida y enviada a disco, se
marca su valor de control en la ta%la de direcciones virtuales para indicar !ue ya no est en D4M,
mientras !ue la p&ina deseada se car&a en D4M y se marca su valor para indicar !ue a)ora ya est en
D4M. Fodo este procedimiento es caro, ya !ue se sa%e !ue los accesos a disco duro son del orden de
decenas de veces ms lentos !ue en D4M. En el ejemplo anterior se mencion$ !ue cuando se necesita
descar&ar una p&ina de D4M )acia disco se de%e de )acer una elecci$n. #ara reali+ar esta elecci$n
e3isten varios al&oritmos, los cuales se descri%en ense&uida. Y <a primera en entrar, primera en salir8 1e
esco&e la p&ina !ue )aya entrado primero y est- car&ada en D4M. 1e necesita !ue en los valores de
control se &uarde un dato de tiempo. Ho es eficiente por!ue no aprovec)a nin&una caracter.stica de
nin&5n sistema. Es justa e imparcial. Y <a no usada recientemente8 1e esco&e la p&ina !ue no )aya sido
usada (referenciada) en el ciclo anterior. #retende aprovec)ar el )ec)o de la localidad en el conjunto de
tra%ajo.
<a usada menos recientemente8 Es parecida a la anterior, pero esco&e la p&ina !ue se us$ )ace
ms tiempo, pretendiendo !ue como ya tiene muc)o sin usarse es muy pro%a%le !ue si&a sin usarse en
los pr$3imos ciclos. Hecesita de una %5s!ueda e3)austiva.
<a no usada frecuentemente8 Este al&oritmo toma en cuenta no tanto el tiempo, sino el n5mero
de referencias. En este caso cual!uier p&ina !ue se use muy poco, menos veces !ue al&una otra.
<a menos frecuentemente usada8 Es parecida a la anterior, pero a!u. se %usca en forma
e3)austiva a!uella p&ina !ue se )a usado menos !ue todas las dems.
En forma aleatoria8 Eli&e cual!uier p&ina sin aprovec)ar nada. Es justa e imparcial, pero
ineficiente.
Otro dato interesante de la pa&inaci$n es !ue ya no se re!uiere !ue los pro&ramas est-n u%icados en
+onas de memoria adyacente, ya !ue las p&inas pueden estar u%icadas en cual!uier lu&ar de la
memoria D4M.
.@.Se0mentacin.
Segme$ta#i'$
"n los sistemas de /segmentacin0 un programa y sus datos pueden ocupar varios bloques
separados de almacenamiento real (ver Digura T.7? g`, 0eitelh).
Los blo4ues1
-o necesitan ser de igual tamaUo.
Los bloques separados no necesitan ser adyacentes.
0eben estar compuestos de posiciones contiguas de almacenamiento.
Se complica la proteccin de bloques de memoria de un proceso de usuario.
"s m&s dif,cil limitar el rango de acceso de cualquier programa g`, 0eitelh.
$n esquema posible de proteccin es el uso de claves de proteccin del almacenamiento (ver
Digura T.7` g`, 0eitelh):
Las claves est&n bao el control estricto del S. F.
$n programa de usuario, a quien corresponde una cierta clave en la cpu, solo puede (acer
referencia a los otros bloques del almacenamiento con igual clave de proteccin.
$na direccin virtual es un par ordenado v:(s9d) (ver Digura T.75 g`, 0eitelh):
/s0 es el n!mero del segmento del almacenamiento virtual en el cual residen los
elementos referidos.
/d0 es el despla#amiento en el segmento /s0 en el cual se encuentra el elemento referido.
$n proceso solo puede eecutarse si su segmento actual (como m,nimo) est& en el
almacenamiento primario.
Los segmentos se transfieren del almacenamiento secundario al primario como unidades
completas.
$n nuevo segmento puede ser colocado en una serie disponible de posiciones contiguas del
almacenamiento primario de tamaUo suficiente para aloar al segmento.
La traduccin din&mica de direcciones utili#a una /tabla de mapa de segmentos0.
I$i#io+ Fi$+
Co$trol (e A##eso e$ Sistemas (e Segme$ta#i'$
Se le otorga a cada proceso ciertos derec(os de acceso a todos los segmentos y se le niega
completamente el acceso a muc(os otros.
Si un proceso tiene /acceso de lectura0 a un segmento, puede obtener cualquier elemento de
informacin contenido en ese segmento.
Si un proceso tiene /acceso de escritura0 a un segmento, puede modificar cualquier contenido
del segmento y puede introducirle informacin adicional, incluso destruir toda la informacin del
segmento.
$n proceso con /acceso de eecucin0 de un segmento puede eecutarlo como si fuera un
programa.
$n proceso con /acceso de adicin0 puede escribir informacin adicional al final del segmento,
pero no puede modificar la informacin e@istente.
"n base a los /tipos de control de acceso0 indicados pueden crearse distintos /modos de control
de acceso0.
"emplos de combinacin de los accesos de lectura, escritura y eecucin para producir modos de
proteccin !tiles se dan en la <abla T.3 y en la <abla T.7 g`, 0eitelh.

Mo(o Le#tura Es#ritura E!e#u#i'$ E8pli#a#i'$
6 - - - -o (ay permiso de acceso
3 - - S Solo eecucin
7 S - - Solo lectura
T S - S Lectura ' eecucin
V S S -
Lectura ' escritura pero no
eecucin
Y S S S 8cceso no limitado
Tala <.,+ E!emplo (e #omi$a#i'$ (e a##esos.

Mo(o Apli#a#i'$
6 Seguridad
3
$n programa disponible a los usuarios, que no pueden copiarlo
ni modificarlo, pero s, eecutarlo
7 :ecuperacin de informacin
T
$n programa puede ser copiado o eecutado, pero no puede ser
modificado
V +rotege los datos contra un intento errneo de eecutarlos
Y "ste acceso se concede a los usuarios de confian#a
Tala <.-+ E!emplo (e apli#a#io$es (e la #omi$a#i'$ (e a##esos.
I$i#io+ Fi$+
Tra(u##i'$ (e Dire##io$es (e Segme$ta#i'$ por Tra$s*orma#i'$ Dire#ta
"@isten varias estrategias para la implementacin de la traduccin de direcciones de
segmentacin:
+or transformacin directa, asociativa o combinacin de asociativa ' directa.
%on cac( suficiente para aloar la tabla completa de mapa de segmentos o cac(
parciales que contengan solo las entradas de los segmentos de referencia ms reciente (ver
Digura T.74 g`, 0eitelh).
Se considerar& la traduccin de direcciones de segmentacin con la tabla completa de mapa de
segmentos en la cac(.
$n proceso en eecucin (ace referencia a la direccin virtual v : (s9d)1
"l segmento n!mero /s0 se aUade a la direccin base /b0 en el registro origen de la tabla
de mapa de segmentos formando la direccin de memoria real /b ; s0, de la entrada para
el segmento /s0 de la tabla de mapa de segmentos, que contiene la direccin del
almacenamiento primario /s < 0, donde comien#a el segmento.
"l despla#amiento /d0 se aUade a /s < 0 formando la direccin real /r : d ; s < 0,
correspondiente a la direccin virtual /v : (s9d)0.
$n /bit de residencia0, /r0, indica si en la actualidad el segmento se encuentra o no en el
almacenamiento primario.
Si el segmento se encuentra en el almacenamiento primario /s < 0 es la direccin en este
almacenamiento donde comien#a el segmento.
Si el segmento no se encuentra en el almacenamiento primario /a0 es la direccin en el
almacenamiento secundario de donde debe recuperarse antes que el proceso pueda continuar.
Se compara cada referencia a un segmento con los bits de proteccin para determinar si se
permite la operacin que se est& intentando.
Si el segmento buscado no est& en el almacenamiento primario se genera un /fallo de p3rdida de
segmento01
"l S. F. obtiene el control y carga el segmento referido desde la direccin /a0 del
almacenamiento secundario.
Se comprueba si el despla#amiento /d0 es menor o igual a la longitud del segmento /l 01
o Si no es as, se genera un /fallo de desbordamiento de segmento0 y el S. F.
obtiene el control y termina la eecucin del proceso.
o Si el despla#amiento est& en el rango del segmento se comprueban los bits de
proteccin para asegurarse si se permite la operacin que se est& intentando:
Si es as, entonces la direccin base del segmento, /s < 0, en el
almacenamiento primario se aUade al despla#amiento /d0 formando la
direccin de memoria real /r : s < ; d0, que corresponde a la direccin del
almacenamiento virtual /v : (s9d)0.
Si la operacin intentada no se permite se genera un /fallo de proteccin
de segmento0 y el S. F. obtiene el control y termina la eecucin del
proceso.
I$i#io+ Fi$+
Compartimie$to e$ u$ Sistema (e Segme$ta#i'$
$na de las ventaas de la segmentacin sobre la paginacin es que se trata m&s de un (ec(o
lgico que f,sico:
"n un sistema de segmentacin, una ve# que un segmento (a sido declarado como
compartido, entonces las estructuras que lo integran pueden cambiar de tamaUo.
Lo anterior no cambia el (ec(o lgico de que residen en un segmento compartido.
&os procesos pueden compartir un segmento con solo tener entradas en sus tablas generales que
apunten al mismo segmento del almacenamiento primario (ver Digura T.T6 g`, 0eitelh).
)ttp8//e3a.unne.edu.ar/depar/areas/informatica/1istemasOperativos/1O3.)tm\O44
1e&mentaci$n pura
<a se&mentaci$n se aprovec)a del )ec)o de !ue los pro&ramas se dividen en partes l$&icas, como son
las partes de datos, de c$di&o y de pila (stacE). <a se&mentaci$n asi&na particiones de memoria a cada
se&mento de un pro&rama y %usca como o%jetivos el )acer fcil el compartir se&mentos ( por ejemplo
li%rer.as compartidas ) y el intercam%io entre memoria y los medios de almacenamiento secundario.
#or ejemplo, en la versi$n de (H?N 1unO1 3.5, no e3ist.an li%rer.as compartidas para al&unas
)erramientas, por ejemplo, para los editores de te3to orientados al rat$n y men5s. 'ada ve+ !ue un
usuario invoca%a a un editor, se ten.a !ue reservar 9 me&a%yte de memoria. 'omo los editores son una
)erramienta muy solicitada y frecuentemente usada, se dividi$ en se&mentos para le versi$n 4.3 ( !ue a
su ve+ se dividen en p&inas ), pero lo importante es !ue la mayor parte del editor es com5n para todos
los usuarios, de manera !ue la primera ve+ !ue cual!uier usuario lo invoca%a, se reserva%a un me&a%yte
de memoria como antes, pero para el se&undo, tercero y resto de usuarios, cada editor e3tra s$lo
consum.a 20 Eilo%ytes de memoria. El a)orro es impresionante. O%s-rvese !ue en la se&mentaci$n pura
las particiones de memoria son de tama2o varia%le, en contraste con p&inas de tama2o fijo en la
pa&inaci$n pura. Fam%i-n se puede decir !ue la se&mentaci$n pura tiene una &ranularidad menor !ue la
pa&inaci$n por el taman$ de se&mentos versus tama2o de p&inas. Huevamente, para comprender mejor
la se&mentaci$n, se de%e dar un repaso a la forma en !ue las direcciones virtuales son traducidas a
direcciones reales, y para ellos se usa la fi&ura 4.4. #rcticamente la traducci$n es i&ual !ue la llevada a
ca%o en la pa&inaci$n pura, tomando en consideraci$2 !ue el tama2o de los %lo!ues a controlar por la
ta%la de traducci$n son varia%les, por lo cual, cada entrada en dic)a ta%la de%e contener la lon&itud de
cada se&mento a controlar. Otra ve+ se cuenta con un re&istro %ase !ue contiene la direcci$n del
comien+o de la ta%la de se&mentos. <a direcci$n virtual se compone de un n5mero de se&mento (s) y un
despla+amiento ( d ) para u%icar un %yte (o pala%ra ) dentro de dic)o se&mento. Es importante !ue el
despla+amiento no sea mayor !ue el tama2o del se&mento, lo cual se controla simplemente c)ecando
!ue ese valor sea mayor !ue la direcci$n del inicio del se&mento y menor !ue el inicio sumado al tama2o.
(na ves dada una direcci$n virtual vU( s,d ), se reali+a la operaci$n % T s para )allar el re&istro (o entrada
de la ta%la de se&mentos ) !ue contiene la direcci$n de inicio del se&mento en la memoria real, denotado
por sG. Ma conociendo la direcci$n de inicio en memoria real sG s$lo resta encontrar el %yte o pala%ra
deseada, lo cual se )ace sumndole a sG el valor del despla+amiento, de modo !ue la direcci$n real g r U
sGT d.
'ada entrada en la ta%la de se&mentos tiene un formato similar al mostrado en la fi&ura 4.5. 1e tienen
campos !ue indican la lon&itud, los permisos, la presencia o ausencia y direcci$n de inicio en memoria
real del se&mento.
1e&5n amplios e3perimentos R/eitelB3S su&ieren !ue un tama2o de p&inas de 9024 %ytes &eneralmente
ofrece un desempe2o muy acepta%le. ?ntuitivamente parecer.a !ue el tener p&inas del mayor tama2o
posi%le )ar.a !ue el desempe2o fuera $ptimo pero no es as., a menos !ue la p&ina fuera del tama2o del
proceso total. Ho es as. con tama2os &randes de p&ina menores !ue el proceso, ya !ue cuando se trae
a memoria principal una p&ina por motivo de un solo %yte o pala%ra, se estn trayendo muc).simos ms
%ytes de los deseados. <a dependencia entre el n5mero de fallas respecto al tama2o de las p&inas se
muestra en la fi&ura 4.".
(n )ec)o nota%le en los sistemas !ue manejan pa&inaci$n es !ue cuando el proceso comien+a a
ejecutarse ocurren un &ran n5mero de fallos de p&ina, por!ue es cuando est referenciando muc)as
direcciones nuevas por ve+ primera, despu-s el sistema se esta%ili+a, conforme el n5mero de marcos
asi&nados se acerca al tama2o del conjunto de tra%ajo.
El la fi&ura 4.7 se muestra la relaci$n entre el tiempo promedio entre fallas de p&ina y el n5mero de
marcos de p&ina asi&nados a un proceso. 4ll. se ve !ue el tiempo entre fallas decrece conforme se le
asi&nan ms p&inas al proceso. <a &rfica se curva en un punto, el cual corresponde a !ue el proceso
tiene un n5mero de p&inas asi&nado i&ual al !ue necesita para almacenar su conjunto de tra%ajo.
/espu-s de eso, el asi&narle a un proceso ms p&inas !ue las de su conjunto de tra%ajo ya no
conviene, ya !ue el tiempo promedio entre fallas permanece sin muc)a mejora. (n aspecto curioso de
aumentar el n5mero de p&inas a un proceso cuando el al&oritmo de selecci$n de p&inas candidatas a
irse a disco es la primera en entrar primera en salir es la llamada Qanomal.a >?>OG a Qanomal.a de 6eladyG.
6elady encontr$ ejemplos en los !ue un sistema con un n5mero de p&inas i&ual a tres ten.a menos
fallas de p&inas !ue un sistema con cuatro p&inas. El ejemplo descrito en RFan33S es injusto. 1i se mira
con cuidado, o%viamente si se compara un sistema con 90 p&inas contra otro de 5, ya de inicio el primer
sistema tendr 5 fallos de p&ina ms !ue el de 5, por!ue se necesitan die+ fallos para car&arlo. 4 esto
de%er.a llamrsele Qanomal.a de 6elady con correcci$n.
.@.#Sistemas de pa0inacin se0mentacin.
Sistemas (e Pagi$a#i'$ I Segme$ta#i'$
Ffrecen las ventaas de las dos tcnicas de organi#acin del almacenamiento virtual g`, 0eitelh.
"l tamaUo de los segmentos es m!ltiplo del de las p&ginas.
=o es necesario 4ue todas las pginas de un segmento se encuentren al mismo tiempo en el
almacenamiento primario.
Las p&ginas de almacenamiento virtual, que son contiguas en este almacenamiento, no necesitan
ser contiguas en el almacenamiento real.
"l direccionamiento es tridimensional con una direccin de almacenamiento virtual /v :
(s9p9d)01
/s0 es el n!mero del segmento.
/p0 es el n!mero de p&gina.
/d0 es el despla#amiento en la p&gina donde se encuentra asignado el elemento deseado.
I$i#io+ Fi$+
Tra(u##i'$ Di$"mi#a (e Dire##io$es e$ Sistemas (e Pagi$a#i'$ I Segme$ta#i'$
Se considera la traduccin din&mica de direcciones de virtuales a reales en un sistema de
paginacin ' segmentacin utili#ando la combinacin de transformacin asociativa ' directa (ver
Digura T.T3 g`, 0eitelh).
"l proceso en eecucin (ace referencia a la direccin virtual v : (s9p9d) (ver Digura T.T7 g`,
0eitelh).
Las pginas de referencia m&s reciente tienen entradas en un almacenamiento asociativo.
Se reali#a una b!squeda asociativa para intentar locali#ar (s9p) en el almacenamiento asociativo:
Si se encuentra (s9p), entonces el marco de p&gina /p < 0 en el cual reside dic(a p&gina en
la memoria real, se concatena al despla#amiento /d0 para formar la direccin de memoria
real /r0 correspondiente a la direccin virtual v: (s9p9d).
Si no se encuentra (s9p), entonces:
o La direccin base /b0 de la tabla de segmentos se aUade al n!mero de segmento
/s0 formando la direccin /b ; s0 de la entrada de la tabla de mapa de segmentos
para el segmento /s0 de la memoria real.
o La entrada de la tabla de mapa de segmentos indica la direccin base /s < 0 de la
tabla de p&ginas para el segmento /s0.
o "l n!mero de p&gina /p0 se aUade a /s < 0 formando la direccin /p ; s < 0 de la
entrada en la tabla de p&ginas para la p&gina /p0 del segmento /s01
*ndica que /p < 0 es el n!mero del marco correspondiente a la p&gina
virtual /p0.
/p < 0 se concatena con el despla#amiento /d0 formando la direccin real
/r 0 que corresponde a la direccin virtual v : (s9p9d).
Si el segmento /s0 no se encuentra en el almacenamiento primario se produce un /fallo de
p3rdida de segmento0, cuyo caso el S. F. locali#a el segmento en el almacenamiento secundario,
crea una tabla de p&ginas para el segmento y carga la p&gina apropiada en el almacenamiento
primario, pudiendo producir reempla#os de p&ginas.
Si el segmento /s0 est& en el almacenamiento primario y si la referencia a la tabla de mapa de
p&ginas indica que la p&gina deseada no se encuentra en el almacenamiento primario, se produce
un /fallo de p3rdida de pgina0, en tal caso el S. F. obtiene el control, locali#a la p&gina en el
almacenamiento secundario y la carga, pudiendo reempla#ar otra p&gina.
Si una direccin de almacenamiento virtual est& m&s all& del final del segmento se genera un
/fallo de desbordamiento de segmento0, el que debe ser atendido por el S. F.
Si los bits de proteccin indican que la operacin que se va a eecutar en la direccin virtual
referida no se permite, se genera un /fallo de proteccin de segmento0, el que tambin debe ser
atendido por el S. F.
Si se utili#a un mecanismo de transformacin directa pura, manteniendo el mapa completo dentro
del almacenamiento primario, la referencia promedio de almacenamiento virtual requerir,a:
$n ciclo de almacenamiento para acceder a la tabla de mapa de segmentos.
$n segundo ciclo de almacenamiento para (acer referencia a la tabla de mapa de
pginas.
$n tercer ciclo de almacenamiento para referenciar al elemento deseado del
almacenamiento real.
#ada referencia a un elemento comprende tres ciclos de almacenamiento1
"l sistema correr,a casi a 3 ' T de su velocidad nominal.
La traduccin de direcciones insumir,a 7 ' T del tiempo.
%on la utili#acin de registros asociativos (por e. 3? registros), se logran velocidades de
eecucin del 46 b o m&s de la velocidad total de procesamiento de sus procesadores de control.
La estructura de tablas de procesos, de mapas de segmentos y de mapas de p&ginas puede
consumir un porcentae importante del almacenamiento primario cuando se eecutan un gran
n!mero de procesos.
La traduccin procede muc(o m&s r&pido si todas las tablas est&n en el almacenamiento primario,
lo que resta espacio para los procesos.
I$i#io+ Fi$+
Compartimie$to e$ u$ Sistema (e Pagi$a#i'$ I Segme$ta#i'$
Se implementa disponiendo entradas en tablas de mapa de segmentos para diferentes procesos
que apunten a la misma tabla de mapa de pginas (ver Digura T.TT g`, 0eitelh).
"l compartimiento requiere una administracin cuidadosa por parte del S. F., ya sea en sistemas
de paginacin, segmentacin o paginacin ' segmentacin, pues se debe considerar qu suceder,a
si una nueva p&gina reempla#ara a otra p&gina compartida por muc(os procesos.
)ttp8//e3a.unne.edu.ar/depar/areas/informatica/1istemasOperativos/1O3.)tm\O44
1istemas com%inados
<a pa&inaci$n y la se&mentaci$n puras son m-todos de manejo de memoria %astante efectivos, aun!ue
la mayor.a de los sistemas operativos modernos implantan es!uemas com%inados, es decir, com%inan la
pa&inaci$n y la se&mentaci$n. <a idea de com%inar estos es!uemas se de%e a !ue de esta forma se
aprovec)an los conceptos de la divisi$n l$&ica de los pro&ramas (se&mentos) con la &ranularidad de las
p&inas. /e esta forma, un proceso estar repartido en la memoria real en pe!ue2as unidades (p&inas)
cuya li&a son los se&mentos. Fam%i-n es facti%le as. el compartir se&mentos a medida !ue las partes
necesitadas de los mismos se van referenciando (p&inas). #ara comprender este es!uema, nuevamente
se ver c$mo se traduce una direcci$n virtual en una localidad de memoria real. #ara la pa&inaci$n y
se&mentac.on puras se puede decir !ue el direccionamiento es Q%idimensionalG por!ue se necesitan dos
valores para )allar la direcci$n real. #ara el caso com%inado, se puede decir !ue se tiene un
direccionamiento QtridimensionalG. En la fi&ura 4.A R /eitelB3S se muestran las partes relevantes para lo&rar
la traducci$n de direcciones. El sistema de%e contar con una ta%la de procesos (F#). #or cada ren&l$n de
esa ta%la se tiene un n5mero de proceso y una direcci$n a una ta%la de se&mentos. Es decir, cada
proceso tiene una ta%la de se&mentos. 'uando un proceso )ace al&una referencia a memoria, se
consulta F# para encontrar la ta%la de se&mentos de ese proceso. En cada ta%la de se&mentos de
proceso (F1#) se tienen los n5meros de los se&mentos !ue componen a ese proceso. #or cada
se&mento se tiene una direcci$n a una ta%la de p&inas. 'ada ta%la de p&inas tiene las direcciones de
las p&inas !ue componen a un solo se&mento. #or ejemplo, el se&mento Q4G puede estar formado por
las p&inas reales QaG,G%G,GcG,GpG y Q3G. El se&mento Q6G puede estar compuesto de las p&inas QfG,G&G,GjG,G*G y
Q+G.
#ara traducir una direcci$n virtual vU(s,p,d) donde QsG es el se&mento, QpG es la p&ina y QdG el
despla+amiento en la p&ina se )ace lo si&uiente. #rimero se u%ica de !u- proceso es el se&mento y se
locali+a la ta%la de se&mentos de ese proceso en la F#. 'on QsG como .ndice se encuentra un ren&l$n
( re&istro) en la ta%la de se&mentos de ese proceso y en ese ren&l$n est la direcci$n de la ta%la de
p&inas !ue componen al se&mento. (na ve+ en la ta%la de p&inas se usa el valor QpG como .ndice para
encontrar la direcci$n de la p&ina en memoria real. (na ve+ en esa direcci$n de memoria real se
encuentra el %yte (o pala%ra) re!uerido por medio del valor de QdG.
4)ora, en este es!uema pueden )a%er dos tipos de fallos8 por fallo de p&ina y por fallo de se&mento.
'uando se )ace referencia a una direcci$n y el se&mento !ue la contiene no est en D4M ( aun!ue sea
parcialmente ), se provoca un fallo por falta de se&mento y lo !ue se )ace es traerlo del medio de
almacenamiento secundario y crearle una ta%la de p&inas. (na ve+ cara&ado el se&mento se necesita
locali+ar la p&ina correspondiente, pero -sta no e3iste en D4M, por lo cual se provoca un fallo de p&ina
y se car&a de disco y finalmente se puede ya traer la direcci$n deseada por medio del despla+amiento de
la direcci$n virtual.
<a eficiencia de la traducci$n de direcciones tanto en pa&inaci$n pura, se&mentaci$n pura y es!uemas
com%inados se mejora usando memorias asociativas para las ta%las de p&inas y se&mentos, as. como
memorias cac)e para &uardar los mapeos ms solicitados.
Otro aspecto importante es la estrate&ia para car&ar p&inas ( o se&mentos ) a la memoria D4M. 1e usan
ms comunmente dos estrate&ias8 car&ado de p&inas por demanda y car&ado de p&inas anticipada. <a
estrate&ia de cara&do por demanda consiste en !ue las p&inas solamente son llevadas a D4M si fueron
solicitadas, es decir, si se )i+o referencia a una direcci$n !ue cae dentro de ellas. <a car&a anticipada
consiste en tratar de adivinar !u- p&inas sern solicitadas en el futuro inmediato y car&arlas de
antemano, para !ue cuando se pidan ya no ocurran fallos de p&ina. Ese QadivinarG puede ser !ue se
aprovec)e el fen$meno de localidad y !ue las p&inas !ue se car&an por anticipado sean a!uellas !ue
contienen direcciones conti&uas a la direcci$n !ue se aca%a de refenciar. /e )ec)o, el sistema operativo
JM1 usa un es!uema com%inado para car&ar p&inas8 cuando se )ace referencia a una direcci$n cuya
p&ina no est en D4M, se provoca un fallo de p&ina y se car&a esa p&ina junto con al&unas p&inas
adyacentes. En este caso la p&ina solicitada se car&$ por demanda y las adyacentes se car&aron por
anticipaci$n.
.? /dministracin de memoria virtual.
.?.1!strate0ias de administracin.
Estrategias (e A(mi$istra#i'$ (el Alma#e$amie$to Virtual
Las diferentes orga$i&a#io$es (e alma#e$amie$to virtual generalmente implementadas son g`,
0eitelh:
+aginacin.
Segmentacin.
Segmentacin y paginacin.
Las estrategias para la administracin de sistemas de almacenamiento virtual condicionan la
conducta de los sistemas de almacenamiento virtual 4ue operan segn esas estrategias.
Se consideran las siguientes estrategias:
/%strategias de bs4ueda01
o <ratan de los casos en que una p&gina o segmento deben ser tra,dos del
almacenamiento secundario al primario.
o Las estrategias de /bs4ueda por demanda0 esperan a que se (aga referencia a
una p&gina o segmento por un proceso antes de traerlos al almacenamiento
primario.
o Los esquemas de /bs4ueda anticipada0 intentan determinar por adelantado a qu
p&ginas o segmentos (ar& referencia un proceso para traerlos al almacenamiento
primario antes de ser e@pl,citamente referenciados.
/%strategias de colocacin01
o <ratan del lugar del almacenamiento primario donde se colocar& una nueva p&gina
o segmento.
o Los sistemas toman las decisiones de colocacin de una forma trivial ya que una
nueva p&gina puede ser colocada dentro de cualquier marco de p&gina disponible.
/%strategias de reposicin01
o <ratan de la decisin de cu&l p&gina o segmento despla#ar para (acer sitio a una
nueva p&gina o segmento cuando el almacenamiento primario est& completamente
comprometido.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?.2 T:cnicas de reempla2o de p40inas.
Deempla+o de #&ina.:
1i al momento de &enerarse un pa&e fault no )u%iera nin&5n frame disponi%le, se de%e proceder a
reempla+ar una pa&ina de memoria. <4 rutina de pa&e fault de%e ser modificada para incluir reempla+o
de p&inas8
9. Encontrar un frame disponi%le.
2. 1i )ay un frame disponi%le usarlo
3. 1i no )ay frames disponi%les utili+ar al&oritmo de reempla+o de pa&inas para seleccionar la
v.ctima
4. Escri%ir la pa&ina v.ctima a disco y actuali+ar ta%la de pa&inas .
Estrategias (e Reposi#i'$ (e P"gi$a
Las principales son:
"l principio de optimi#acin.
:eposicin de p&ginas al a#ar.
+rimero en entrar 2 primero en salir.
;enos recientemente usada.
;enos frecuentemente usada.
-o usada recientemente.
%onuntos de trabao.
El Pri$#ipio (e Optimi&a#i'$
"l /principio de optimi7acin0 indica que para obtener un rendimiento ptimo, la p&gina que se
va a reponer es una que no se va a utili#ar en el futuro durante el per,odo de tiempo m&s largo.
"l problema es que no es factible predecir el futuro.
Reposi#i'$ (e P"gi$a al A&ar
%onsiste en escoger al a#ar la p&gina que va a ser reempla#ada.
<odas las p&ginas del almacenamiento principal deben tener la misma proaili(a( de ser
reempla#adas.
0ebe poder seleccionar cualquier p&gina, incluyendo la que va a ser referenciada a continuacin
(peor seleccin).
"ste esquema es raramente usado.
Reposi#i'$ (e P"gi$a por el Sistema (e Primero e$ E$trar 0Primero e$ Salir DFIFO;
Se registra el momento en que cada p&gina ingresa al almacenamiento primario.
+ara reempla#ar una p&gina, se selecciona aquella que (a estado m&s tiempo almacenada.
Se presenta el inconveniente de que se pueden reempla#ar p&ginas muy usadas, que ser&n
llamadas de nuevo al almacenamiento primario casi de inmediato.
Se puede presentar la llamada /anomal!a ()(*01
Melady, -elson y S(edler descubrieron que con la reposicin D*DF, ciertos patrones de
referencias de p&ginas causan m&s fallos de p&ginas cuando se aumenta el n!mero de
marcos (celdas) de p&ginas asignados a un proceso: en esto consiste la /anomal!a ()(*0.
Esta a$omal)a #o$tra(i#e a la i$tui#i'$ (ver Digura T.TV g`, 0eitelh).
Reposi#i'$ (e P"gi$a Me$os 0 Re#ie$teme$te 0 Qsa(a DLRQ;
"sta estrategia selecciona para ser reempla#ada la p&gina que no (a sido usada durante el mayor
per,odo de tiempo.
"e basa en la 2eur!stica de 4ue el pasado reciente es un buen indicador del futuro prximo.
:equiere que cada p&gina reciba un /sello de tiempo0 cada ve# que se referencia:
+uede significar una sobrecarga adicional importante.
-o se implementa frecuentemente.
La p&gina seleccionada para reempla#o podr,a ser la pr@ima en ser requerida, por lo que (abr,a
que paginarla de nuevo al almacenamiento principal casi de inmediato.
Reposi#i'$ (e P"gi$a Me$os 0 Fre#ue$teme$te 0 Qsa(a DLFQ;
8c& interesa la i$te$si(a( (e uso que (aya tenido cada p&gina.
La p&gina que ser& reempla#ada es aquella que (a sido usada con menos frecuencia o que (a sido
referida con menos intensidad.
"l inconveniente es que se puede seleccionar f&cilmente para su reposicin la p&gina equivocada:
".: La p&gina de uso menos frecuente puede ser la p&gina de entrada m&s reciente al
almacenamiento principal, y por lo tanto e@iste una alta probabilidad de que sea usada de
inmediato.
Reposi#i'$ (e P"gi$a No Qsa(a 0 Re#ie$teme$te DNQR;
+resupone que las p&ginas que no (an tenido uso reciente tienen poca probabilidad de ser usadas
en el futuro pr@imo y pueden ser reempla#adas por otras nuevas.
%s deseable reempla7ar una pgina 4ue no 2a sido cambiada mientras estaba en el
almacenamiento primario.
La estrategia -$: se implementa con la adicin de dos bits de 2ard>are por pgina1
/?it referenciado01
o J 6 si la p&gina no (a sido referenciada.
o J 3 si la p&gina (a sido referenciada.
/?it modificado0 (tambin llamado /bit sucio0):
o J 6 si la p&gina no (a sido modificada.
o J 3 si la p&gina (a sido modificada.
La seleccin de la p&gina que ser& reempla#ada comien#a buscando una p&gina que no (a sido
referenciada, pero si no la encuentra (abr& que reempla#ar una p&gina que (a sido referenciada.
Si una p&gina (a sido referenciada se comprueba si (a sido modificada o no:
Si no (a sido modificada se la reempla#a:
o Su reposicin representa menos sobrecarga que la de una p&gina modificada, ya
que deber,a grabarse de nuevo en el almacenamientos secundario.
Si no se encuentra una p&gina que no (a sido modificada ser& reempla#ada una p&gina
modificada.
%on el transcurso del tiempo la mayor,a de los /bits referenciados0 ser&n activados:
Se pierde la capacidad para distinguir las p&ginas m&s deseables para ser reempla#adas.
+ara evitarlo se austan peridicamente todos los /bits referenciados0 a Q6S:
o Se logra un nuevo inicio.
o Se vuelve vulnerable al reempla#o a!n a las p&ginas activas, pero solo
brevemente, mientras se reaustan los bits.
Los /bits modificados0 $o se austan peridicamente seg!n esta estrategia.
Lo#ali(a(
"l concepto de /localidad0 e@presa g`, 0eitelh:
/Los procesos tienden a 2acer referencia al almacenamiento en patrones no uniformes y
muy locali7ados0.
La /localidad0 se manifiesta en el /tiempo0 y en el /espacio01
"s una propiedad emp,rica (observada).
-unca est& garanti#ada pero es altamente probable.
".: Los procesos tienden a favorecer ciertos subconuntos de p&ginas, las que tienden a
ser adyacentes entre s, en el espacio de direcciones virtuales del proceso.
"st& relacionada con la forma en que se escriben los programas y se organi#an los datos.
/Localidad temporal 01 significa que las localidades de almacenamiento referenciadas
recientemente tienen una alta probabilidad de ser referenciadas en un futuro pr@imo:
Se apoya en la utili#acin de:
o Dormacin de ciclos (loops).
o Subrutinas.
o +ilas.
o Hariables usadas para contar y totali#ar.
/Localidad en el espacio01 significa que las referencias de almacenamiento tienden a acumularse
de manera tal que, una ve# que se (ace referencia a una localidad, es muy probable que las
localidades cercanas sean tambin referenciadas:
Se apoya en la utili#acin de:
o :ecorrido de arreglos.
o "ecucin secuencial de cdigo.
o <endencia de los programadores a colocar definiciones de variables relacionadas,
pr@imas entre s,.
Un programa puede eecutar eficientemente mientras su subconunto de pginas preferido se
encuentre en el almacenamiento primario.
"l n!mero de fallos de p&ginas de un proceso depende de la cantidad de almacenamiento
primario disponible para sus p&ginas.
Zeneralmente los procesos no muestran patrones de referencias aleatorios uniformemente
distribuidos por sus diferentes p&ginas.
8l reducir el n!mero de marcos (celdas) de p&ginas disponibles para un proceso e@iste un
intervalo durante el cual la ra#n de fallos de p&ginas no se afecta e@cesivamente.
"n determinado punto, cuando se reduce m&s el n!mero de marcos de p&ginas, el n!mero de
fallos de p&ginas aumenta dr&sticamente.
;ientras el subconunto de p&ginas favorecidas por un proceso permane#ca en el
almacenamiento primario, el n!mero de fallos de p&ginas no aumenta muc(o.
<an pronto como las p&ginas del subconunto favorecido son retiradas del almacenamiento
primario, la actividad de paginacin del proceso aumenta en gran medida al referenciar y traer de
nuevo estas p&ginas al almacenamiento primario.
Los /subconuntos favorecidos0 tambin son llamados /conuntos de trabao0 o />orking sets0
(ver Digura T.TY g`, 0eitelh).
I$i#io+ Fi$+
Co$!u$tos (e Traa!o
0enning desarroll un punto de vista de la actividad de paginacin de un programa llamado la
/teor!a de conunto de trabao del comportamiento de un programa0 g`, 0eitelh.
$n /conunto de trabao0 es una coleccin de pginas a las cuales un proceso 2ace activamente
referencia.
0enning sosten,a que para que un programa se eecutara eficientemente, su conunto de trabao
debe ser mantenido en el almacenamiento primario, para evitar la /2iperpaginacin0.
$na /pol!tica de administracin de almacenamiento por conunto de trabao0 trata de mantener
el conunto de trabao de los programas activos en el almacenamiento primario.
La decisin de aUadir un nuevo proceso al conunto activo de procesos (aumentar el nivel de
multiprogramacin):
Se basa en si (ay suficiente espacio disponible en el almacenamiento primario como para
acomodar el conunto de trabao del nuevo proceso.
Se toma generalmente de forma (eur,stica ya que es imposible para el sistema conocer por
anticipado el tamaUo del conunto de trabao de un proceso dado.
"l conunto de trabao de p&ginas de un proceso />(t9>)0 en el momento /t0 es el conunto de
p&ginas referidas por un proceso durante el intervalo de tiempo del proceso /t 6 >0 a /t 0 (ver
Digura T.T? g`, 0eitelh).
"l /tiempo del proceso0 es el tiempo durante el cual este proceso tiene la cpu.
La variable />0 se denomina /tama.o de la ventana del conunto de trabao01
La determinacin del tamaUo de />0 es muy importante.
8l aumentar el tamaUo de la ventana />0 aumenta el tamaUo del conunto de trabao (ver
Digura T.T` g`, 0eitelh).
/%l verdadero conunto de trabao de un proceso es el conunto de pginas 4ue deben estar en el
almacenamiento primario para la eecucin efica7 de este proceso0.
Los conuntos de trabao #amia$ mientras un proceso est& en eecucin:
%omplica la administracin precisa del almacenamiento primario en base a esta estrategia.
/Los conuntos de trabao son transitorios y el siguiente conunto de trabao del proceso
puede diferir substancialmente de su conunto de trabao anterior0.
Se debe evitar un e@ceso de compromiso del almacenamiento primario y la consecuente
(iperpaginacin.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?..a0inacin por demanda.
#a&inaci$n por demanda.:
Es similar a lo visto para la pa&inaci$n introduciendo el concepto de s*appin&. <os procesos residen en
el disco y al ser ejecutados de%en ser car&ados en memoria. 'uando un proceso va a ser ejecutado, el
mismo es s*appeado a memoria, utili+ando la+y s*appin&. El la+y s*appin& nunca trae pa&inas a
memoria si no van a ser ejecutadas. 1e necesita determinar si un pa&ina esta en memoria o en disco, por
lo cual se utili+a el %it de vlido / invlido de la ta%la de p&inas. 1i el %it U 9 la p&ina es valida y esta
car&ada en memoria si es 0 la p&ina es invlida y no esta car&ada en memoria (esta en disco).
'uando un proceso intenta acceder a una p&ina !ue no esta car&ada en memoria ocurre un page .ault
(tomo de p&ina). El procedimiento para manejar un pa&e fault es el si&uiente8
9. Jerificar si la referencia a la pa&ina es valida (se utili+a una ta%la interna (&eneralmente llevada
en #'6) donde se indica las pa&inas validas.
2. 1i la referencia no es valida, se cancela la ejecuci$n del proceso.
3. Encontrar un frame disponi%le para car&arla (la p&ina esta en disco)(por ejemplo de la free
frame list)
4. 1olicitar operaci$n de ?/O para leer la p&ina de disco car&arla en el frame o%tenido.
5. Modificar la ta%la interna y la ta%la de pa&inas para !ue a)ora esta pa&ina fi&ure como !ue esta
en memoria.
". 'ontinuar con la ejecuci$n del proceso en la instrucci$n en la !ue fue interrumpido.
Pagi$a#i'$ por Dema$(a
Las paginas son cargadas por demanda g`, 0eitelh.
-o se llevan p&ginas del almacenamiento secundario al primario (asta que son referenciadas
e@pl,citamente por un proceso en eecucin.
Las ra#ones del atractivo de esta estrategia son:
Los resultados de computabilidad, en especial el /problema de parada0, indican que el
camino 4ue tomar la eecucin de un programa no se puede predecir con exactitud.
Zaranti#a que solo las p&ginas que necesita el proceso sean tra,das al almacenamiento
principal.
La sobrecarga de proceso para decidir qu p&gina traer al almacenamiento principal es
m,nima.
"l principal inconveniente est& en los procesos que requieren acumular sus p&ginas una por una:
Los tiempos de espera de p&ginas son considerables.
"s creciente la cantidad de almacenamiento primario afectada al proceso que espera
p&ginas, por lo que el /producto espacio 6 tiempo0 se incrementa.
"l /producto espacio 6 tiempo0 indica la cantidad de almacenamiento que usa un proceso y la
cantidad de tiempo que lo usa.
/La reduccin del producto espacio 6 tiempo de las esperas de pginas de un proceso es una
meta importante de las estrategias de administracin del almacenamiento0 (ver Digura T.T5 g`,
0eitelh).
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?.#.a0inacin anticipada.
Pagi$a#i'$ A$ti#ipa(a
"l S. F. intenta predecir las p&ginas que un proceso va a necesitar y a continuacin precarga estas
p&ginas cuando (ay espacio disponible g`, 0eitelh.
;ientras el proceso eecuta sus p&ginas actuales, el sistema carga p&ginas nuevas que estar&n
disponibles cuando el proceso las pida, debido a ello, el tiempo de eecucin de un proceso se
puede reducir.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?.%,iberacin de p40ina.
Liera#i'$ (e P"gi$a
$n proceso usuario puede emitir una /liberacin voluntaria de pgina0 para liberar el marco de
p&gina cuando ya no necesitara esa p&gina g`, 0eitelh.
Se puede eliminar el /desperdicio0 y acelerar la eecucin.
"l inconveniente es que la incorporacin de mandatos de liberacin de p&ginas dentro de los
programas de usuarios puede ser peligroso y retrasar el desarrollo de aplicaciones.
/Los compiladores y ". *. deber!an detectar automticamente situaciones de liberacin de
pgina muc2o antes de lo 4ue es posible con estrategias de conuntos de trabao0.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?.)Tama'o de p40ina.
TamaMo (e P"gi$a
Zeneralmente el almacenamiento real se divide en marcos o celdas de p&gina de tamaUo fio g`,
0eitelh.
Los interrogantes tienen que ver con el tamaUo de las p&ginas, si todas las p&ginas tendr&n igual
tamaUo, si en caso de utili#ar p&ginas de diferente tamaUo las p&ginas mayores deben ser o no
m!ltiplos enteros de las menores, etc.
8lgunas consideraciones para determinar el tamaUo de p&gina son las siguientes:
%uanto m&s pequeUo sea el tamaUo de una p&gina, m&s p&ginas y marcos de p&ginas (abr&
y mayores ser&n las tablas de p&ginas:
o "l desperdicio de almacenamiento debido al tamaUo e@cesivo de las tablas de
p&gina se llama /fragmentacin de tablas0.
o "sto indica la necesidad de pginas ms grandes.
%on p&ginas grandes, grandes cantidades de informacin que nunca llegar,a a ser
referenciada, se paginar&n (acia el almacenamiento primario:
o "sto indica la necesidad de pginas ms pe4ue.as.
0ebido a que las transferencias de e ' s del disco (paginacin) consumen bastante tiempo,
se debe minimi#ar la paginacin que un proceso requiera:
o "sto indica la necesidad de pginas grandes.
Los programas tienden a mostrar la propiedad de localidad de referencia y esta localidad
tiende a ser pequeUa:
o "sto indica la necesidad de pginas pe4ue.as.
Los procedimientos y datos rara ve# comprenden un n!mero entero de p&ginas, por lo que
los sistemas de paginacin e@perimentan una /fragmentacin interna01
o "l desperdicio promedio es de 3 ' 7 p&gina no usada por segmento (grupo) de
p&ginas, que estar& en la !ltima p&gina del segmento.
o "sto indica la necesidad de pginas pe4ue.as.
Los tamaUos de pagina mas utili#ados son: Y37 b, 3 9b, 7 9b, V 9b.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
Unidad #
/dministracin de entrada>salida.
#.% Dispositivos y mane9adores de dispositivos &device
drivers(.
/ispositivos de Entrada : 1alida
<os dispositivos de entrada salida se dividen, en &eneral, en dos tipos8 dispositivos orientados a %lo!ues
y dispositivos orientados a caracteres. <os dispositivos orientados a %lo!ues tienen la propiedad de !ue
se pueden direccionar, esto es, el pro&ramador puede escri%ir o leer cual!uier %lo!ue del dispositivo
reali+ando primero una operaci$n de posicionamiento so%re el dispositivo. <os dispositivos ms comunes
orientados a %lo!ues son los discos duros, la memoria, discos compactos y, posi%lemente, unidades de
cinta. #or otro lado, los dispositivos orientados a caracteres son a!uellos !ue tra%ajan con secuencias de
%yes sin importar su lon&itud ni nin&5na a&rupaci$n en especial. Ho son dispositivos direcciona%les.
Ejemplos de estos dispositivos son el teclado, la pantalla o display y las impresoras.
<a clasificaci$n anterior no es perfecta, por!ue e3isten varios dispositivos !ue &eneran entrada o salida
!ue no pueden en&lo%arse en esas cate&or.as. #or ejemplo, un reloj !ue &enera pulsos. 1in em%ar&o,
aun!ue e3istan al&unos perif-ricos !ue no se puedan cate&ori+ar, todos estn administrados por el
sistema operativo por medio de una parte electr$nica : mecnica y una parte de soft*are.
'ontroladores de /ispositivos ( Ferminales y /iscos /uros)
<os controladores de dispositivos (tam%i-n llamados adaptadores de dispositivos) son la parte electr$nica
de los perif-ricos, el cual puede tener la forma de una tarjeta o un circuito impreso inte&rado a la tarjeta
maestra de la computadora. #or ejemplo, e3isten controladores de discos !ue se venden por separado y
!ue se insertan en una ranura de la computadora, o e3isten fa%ricantes de computadoras !ue inte&ran
esa funcionalidad en la misma tarjeta en !ue viene la unidad central de procesamiento (tarjeta maestra).
<os controladores de dispositivos &eneralmente tra%ajan con voltajes de 5 y 92 volts con el dispositivo
propiamente, y con la computadora a trav-s de interrupciones. Estas interrupciones viajan por el G%usG de
la computadora y son reci%idos por el '#( el cual a su ve+ pondr en ejecuci$n al&5n pro&rama !ue
sa%r !u- )acer con esa se2al. 4 ese pro&rama se le llama Gmanejador de dispositoG (device driver).
4l&unas veces el mismo controlador contiene un pe!ue2o pro&rama en una memoria de solo lectura o en
memoria de acceso aleatoria no voltil y re:escri%i%le !ue interact5a con el correspondiente manejador en
la computadora. En la fi&ura ".9 se muestra un es!uema simple de dispositivos orientados a %lo!ues y
otros a caracteres.
#or ejemplo, la terminal ('DF) tiene un Gc)ipG !ue se encar&a de enviar cadenas de %its por medio de un
ca%le serial !ue a su ve+ son reci%idos por un controlador de puerto serial en la computadora. Este Gc)ipG
tam%i-n se encar&a de leer secuencias de %its !ue a&rupa para su despie&ue en la pantalla o para
ejecutar al&unas funciones de control. <o importante en todos estos dispositivos es !ue se de%e ejercer
un mecanismo para sincroni+ar el env.o y lle&ada de datos de manera concurrente.
#ara intercam%iar datos o se2ales entre la computadora y los controladores, muc)as veces se usan
re&istros o secciones predefinidas de la memoria de la computadora. 4 este es!uema se le llama Gmanejo
de entrada : salida mapeado por memoriaG (memory mapped ?/O). #or ejmplo, para una ?6M #' se
muestran los vectores de interrupci$n y las direcciones para la entrada :salida en la ta%la ".9.
'ontrolador /irecci$n(Ce3) Jector de ?nterrupci$n
Deloj 040 : 043 A
Feclado 0"0 : 0"3 B
/isco /uro 320 : 32> 93
?mpresora 37A : 37> 95
Monitor Mono 3A0 : 36> :
Monitor 'olor 3/0 : 3/> :
/isco >le3i%le 3>0 : 3>7 94
Fa%la ".9 /irecciones de Mapeo de Entrada : 1alida
#.) 3ecanismos y funciones de los mane9adores de
dispositivos &device drivers(.
#.@ !structuras de datos para mane9o de dispositivos.
#.? Operaciones de !ntrada >salida.
Unidad %
Sistema de arc"ivos.
%.C $oncepto.
Sistema de )rchi0os8 <a estructura de un sistema de arc)ivos es en forma de r%ol. El sistema de
arc)ivos son los arc)ivos y directorios. <as funciones son crear y eliminar arc)ivos, compartir arc)ivos
para intercam%iar informaci$n, a&rupar arc)ivos en forma conveniente al usuario, respaldo y
recuperaci$n, el acceso de los usuarios a la informaci$n sin la necesidad de conocer la u%icaci$n f.sica
(sa%iendo solo los nom%res sim%$licos).
(n arc)ivo es un conjunto de informaci$n, !ue se encuentra almacenada o &uardada en la memoria
principal del computador, en el disco duro, en el dis!uete fle3i%le o en los discos compactos ('d:Dom).
4ntes de !ue un arc)ivo pueda leerse o escri%irse en -l, de%e a%rirse, momento en el cual se verifican los
permisos. Estos arc)ivos se a%ren especificando en el computador la ruta de acceso al arc)ivo desde el
directorio ra.+, !ue es la unidad principal del disco del computador, este puede ser un disco duro o disco
fle3i%le. Entonces el sistema operativo visuali+a el entorno al a%rir un arc)ivo.
(no de los pro%lemas mas frecuentes en el manejo de arc)ivos son los deadlocE, un deadlocE es una
situaci$n no deseada de espera indefinida y se da cuando en un &rupo de procesos, dos o ms procesos
de ese &rupo esperan por llevar a ca%o una tarea !ue ser ejecutada por otro proceso del mismo &rupo,
entonces se produce el %lo!ueo. <os %lo!ueos se dan tanto en los sistemas operativos tradicionales
como en los distri%uidos, solo !ue en estos 5ltimos es ms dif.cil de prevenirlos, evitarlos e incluso
detectarlos, y si se los lo&ra detectar es muy complicado solucionarlos ya !ue la informaci$n se encuentra
dispersa por todo el sistema.
(na ve+ !ue un deadlocE se detecta, es o%vio !ue el sistema est en pro%lemas y lo 5nico !ue resta por
)acer es una de dos cosas8 tener al&5n mecanismo de suspensi$n o reanudaci$n !ue permita copiar todo
el conte3to de un proceso incluyendo valores de memoria y aspecto de los perif-ricos !ue est- usando
para reanudarlo otro d.a, o simplemente eliminar un proceso o arre%atarle el recurso, causando para ese
proceso la p-rdida de datos y tiempo.
Fu$#io$es (el Sistema (e Ar#.ivos
Los usuarios deben poder crear, modificar y borrar arc(ivos.
Se deben poder compartir los arc(ivos de una manera cuidadosamente controlada g`, 0eitelh.
"l mecanismo encargado de compartir los arc(ivos debe proporcionar varios tipos de acceso
controlado:
".: /-cceso de Lectura0, /-cceso de %scritura0, /-cceso de %ecucin0, varias
combinaciones de estos, etc.
Se debe poder estructurar los arc(ivos de la manera m&s apropiada a cada aplicacin.
Los usuarios deben poder ordenar la transferencia de informacin entre arc(ivos.
Se deben proporcionar posibilidades de /respaldo0 y /recuperacin0 para prevenirse contra:
La prdida accidental de informacin.
La destruccin maliciosa de informacin.
Se debe poder referenciar a los arc(ivos mediante /=ombres "imblicos0, brindando
/)ndependencia de &ispositivos0.
"n ambientes sensibles, el sistema de arc(ivos debe proporcionar posibilidades de /#ifrado0 y
/&escifrado0.
"l sistema de arc(ivos debe brindar una interfase favorable al usuario:
0ebe suministrar una /visin lgica0 de los datos y de las funciones que ser&n
eecutadas, en ve# de una /visin f!sica0.
"l usuario no debe tener que preocuparse por:
o Los dispositivos particulares.
o 0nde ser&n almacenados los datos.
o "l formato de los datos en los dispositivos.
o Los medios f,sicos de la transferencia de datos (acia y desde los dispositivos.

El Sistema (e Ar#.ivos
$n /-rc2ivo0 es un conunto de registros relacionados g7T, <anenbaumh.
"l /"istema de -rc2ivos0 es un componente importante de un S. F. y suele contener g`, 0eitelh:
/M3todos de acceso0 relacionados con la manera de acceder a los datos almacenados en
arc(ivos.
/-dministracin de arc2ivos0 referida a la provisin de mecanismos para que los
arc(ivos sean almacenados, referenciados, compartidos y asegurados.
/-dministracin del almacenamiento auxiliar0 para la asignacin de espacio a los
arc(ivos en los dispositivos de almacenamiento secundario.
/)ntegridad del arc2ivo0 para garanti#ar la integridad de la informacin del arc(ivo.
"l sistema de arc(ivos est& relacionado especialmente con la administracin del espacio de
almacenamiento secundario, fundamentalmente con el almacenamiento de disco.
$na forma de organi#acin de un sistema de arc(ivos puede ser la siguiente:
Se utili#a una /ra!7 0 para indicar en qu parte del disco comien#a el /directorio ra!7 0.
"l /directorio ra!7 0 apunta a los /directorios de usuarios0.
$n /directorio de usuario0 contiene una entrada para cada uno de los arc(ivos del
usuario.
%ada entrada de arc(ivo apunta al lugar del disco donde est& almacenado el arc(ivo
referenciado.
Los nombres de arc(ivos solo necesitan ser !nicos dentro de un directorio de usuario dado.
"l nombre del sistema para un arc(ivo dado debe ser !nico para el sistema de arc(ivos.
"n sistemas de arc(ivo /err4uicos0 el nombre del sistema para un arc(ivo suele estar formado
como el /nombre de la trayectoria0 del directorio ra,# al arc(ivo.
)ttp8//e3a.unne.edu.ar/depar/areas/informatica/1istemasOperativos/1O4.)tm
%.1D*ocin de arc"ivo real y virtual.
No#i'$ (e ar#.ivo real : virtual.
$n arc(ivo virtual, es un arc(ivo de uso temporal que es utili#ado por los procesos del
sistema mientras se est&n eecutando dic(os procesos. "stos arc(ivos se crean durante la
eecucin de un sistema y los utili#a para el almacenamiento de informacin, intercambio y
organi#acin mientras se eecuta el sistema, su tamaUo es muy variable y terminan al detener la
eecucin del sistema, muc(os de ellos son borrados, por eemplo, los arc(ivos @.tmp
Ar#.ivo Real+ "s un obeto que contiene programas, datos o cualquier otro elemento.
"n QNIR se define un File S:stem como un sistema de soft/are dedicado a la creacin,
destruccin, organi#acin y lectura, escritura y control de acceso de los arc(ivos, funcionalmente
los componentes de un sistema de arc(ivos son lenguaes de comandos, interpretador de
comandos, maneador del almacenamiento secundario, sistema de entrada y salida y mecanismos
de respaldo y recuperacin.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso-Iso-E=-..tml
Ar#.ivos
Se considerar& el punto de vista del usuario.
Nomre (e los Ar#.ivos
Las reglas e@actas para los nombres de arc(ivos var,an de sistema a sistema g7T, <anenbaumh.
8lgunos sistemas de arc(ivos distinguen entre las letras may!sculas y min!sculas, mientras que
otros no.
;uc(os S. F. utili#an nombres de arc(ivo con dos partes, separadas por un punto:
La parte posterior al punto es la extensin de arc2ivo y generalmente indica algo relativo
al arc(ivo, aunque las e@tensiones suelen ser meras convenciones.
Estru#tura (e u$ Ar#.ivo
Los arc(ivos se pueden estructurar de varias maneras, las m&s comunes son g7T, <anenbaumh:
/"ecuencia de bytes01
o "l arc(ivo es una serie no estructurada de bytes.
o +osee m&@ima fle@ibilidad.
o "l S. F. no ayuda pero tampoco estorba.
/"ecuencia de registros01
o "l arc(ivo es una secuencia de registros de longitud fia, cada uno con su propia
estructura interna.
/@rbol 01
o "l arc(ivo consta de un &rbol de registros, no necesariamente de la misma
longitud.
o %ada registro tiene un #ampo He: (llave o #lave) en una posicin fia del registro.
o "l &rbol se ordena mediante el campo de clave para permitir una r&pida b!squeda
de una clave particular.
Tipos (e Ar#.ivos
;uc(os S. F. soportan varios tipos de arc(ivos, por e.: arc2ivos regulares9 directorios9 arc2ivos
especiales de caracteres9 arc2ivos especiales de blo4ues9 etc., donde g7T, <anenbaumh:
Los Ar#.ivos Regulares son aquellos que contienen informacin del usuario.
Los Dire#torios son arc(ivos de sistema para el mantenimiento de una estructura del
sistema de arc(ivos.
Los Ar#.ivos Espe#iales (e Cara#teres:
o <ienen relacin con la e ' s.
o Se utili#an para modelar dispositivos seriales de e ' s (terminales, impresoras,
redes, etc.).
Los Ar#.ivos Espe#iales (e ?lo%ues se utili#an para modelar discos.
A##eso a u$ Ar#.ivo
Los tipos de acceso m&s conocidos son:
A##eso Se#ue$#ial+ el proceso lee en orden todos los registros del arc(ivo comen#ando
por el principio, sin poder:
o Saltar registros.
o Leer en otro orden.
A##eso Aleatorio+ el proceso puede leer los registros en cualquier orden utili#ando dos
mtodos para determinar el punto de inicio de la lectura:
o %ada operacin de lectura (read) da la posicin en el arc(ivo con la cual iniciar.
o $na operacin especial (see9) establece la posicin de trabao pudiendo luego
leerse el arc(ivo secuencialmente.
Atriutos (e Ar#.ivo
%ada arc(ivo tiene:
Su nombre y datos.
"lementos adicionales llamados atriutos, que var,an considerablemente de sistema a
sistema.
8lgunos de los posiles atriutos de arc(ivo son g7T, <anenbaumh:
^Prote##i'$_+ quin debe tener acceso y de qu forma.
^Co$traseMa_+ contraseUa necesaria para acceder al arc(ivo.
^Crea(or_+ identificador de la persona que cre el arc(ivo.
^Propietario_+ propietario actual.
^?a$(era e8#lusivo 0 para 0 le#tura_+ 6 lectura ' escritura, 3 para lectura
e@clusivamente.
^?a$(era (e o#ultamie$to_+ 6 normal, 3 para no e@(ibirse en listas.
^?a$(era (e sistema_+ 6 arc(ivo normal, 3 arc(ivo de sistema.
^?a$(era (e iliote#a_+ 6 ya se (a respaldado, 3 necesita respaldo.
^?a$(era as#ii I i$ario_+ 6 arc(ivo en ascii, 3 arc(ivo en binario.
^?a$(era (e a##eso aleatorio_+ 6 solo acceso secuencial, 3 acceso aleatorio.
^?a$(era temporal_+ 6 normal, 3 eliminar al salir del proceso.
^?a$(eras (e #erra(ura_+ 6 no bloqueado, distinto de 6 bloqueado.
^Lo$gitu( (el registro_+ n!mero de bytes en un registro.
^Posi#i'$ (e la llave_+ auste de la llave dentro de cada registro.
^Lo$gitu( (e la llave_+ n!mero de bytes en el campo llave.
^Tiempo (e #rea#i'$_+ fec(a y (ora de creacin del arc(ivo.
^Tiempo (el [ltimo a##eso_+ fec(a y (ora del !ltimo acceso al arc(ivo.
^Tiempo (e la [ltima mo(i*i#a#i'$_+ fec(a y (ora de la !ltima modificacin al arc(ivo.
^TamaMo a#tual_+ n!mero de bytes en el arc(ivo.
^TamaMo m"8imo_+ tamaUo m&@imo al que puede crecer el arc(ivo.
Opera#io$es #o$ Ar#.ivos
Las llamadas m&s comunes al sistema relacionadas con los arc(ivos son g7T, <anenbaumh:
Create D#rear;+ el arc(ivo se crea sin datos.
Delete Delimi$ar;+ si el arc(ivo ya no es necesario debe eliminarse para liberar espacio en
disco. %iertos S. F. eliminan autom&ticamente un arc(ivo no utili#ado durante QnS d,as.
Ope$ Darir;+ antes de utili#ar un arc(ivo, un proceso debe abrirlo. La finalidad es
permitir que el sistema traslade los atributos y la lista de direcciones en disco a la
memoria principal para un r&pido acceso en llamadas posteriores.
Close D#errar;+ cuando concluyen los accesos, los atributos y direcciones del disco ya no
son necesarios, por lo que el arc(ivo debe cerrarse y liberar la tabla de espacio interno.
Rea( Dleer;+ los datos se leen del arc(ivoG quien (ace la llamada debe especificar la
cantidad de datos necesarios y proporcionar un buffer para colocarlos.
Srite Des#riir;+ los datos se escriben en el arc(ivo, en la posicin actual. "l tamaUo del
arc(ivo puede aumentar (agregado de registros) o no (actuali#acin de registros).
Appe$( DaMa(ir;+ es una forma restringida de Q/riteS. Solo puede aUadir datos al final
del arc(ivo.
SeeH Dus#ar;+ especifica el punto donde posicionarse. %ambia la posicin del apuntador
a la posicin activa en cierto lugar del arc(ivo.
Xet attriutes Dote$er atriutos;+ permite a los procesos obtener los atributos del
arc(ivo.
Set attriutes Destale#er atriutos;+ algunos atributos pueden ser determinados por el
usuario y modificados luego de la creacin del arc(ivo. La informacin relativa al modo
de proteccin y la mayor,a de las banderas son un eemplo obvio.
Re$ame D#amiar (e $omre;+ permite modificar el nombre de un arc(ivo ya e@istente.
Ar#.ivos Mapea(os a Memoria
8lgunos S. F. permiten asociar los arc(ivos con un espacio de direcciones de un proceso en
eecucin g7T, <anenbaumh.
Se utili#an las llamadas al sistema ^map_ y ^u$map_:
^Map_+ utili#a un nombre de arc(ivo y una direccin virtual y (ace que el S. F. asocie al
arc(ivo con la direccin virtual en el espacio de direcciones, por lo cual las lecturas o
escrituras de las &reas de memoria asociadas al arc(ivo se efect!an tambin sobre el
arc(ivo mapeado.
^Q$map_+ elimina los arc(ivos del espacio de direcciones y concluye la operacin de
asociacin.
"l mapeo de arc(ivos elimina la necesidad de programar la e ' s directamente, facilitando la
programacin.
Los principales problemas relacionados son:
*mposibilidad de conocer a priori la longitud del arc(ivo de salida, el que podr,a superar a
la memoria.
0ificultad para compartir los arc(ivos mapeados evitando inconsistencias, ya que las
modificaciones (ec(as en las p&ginas no se ver&n refleadas en el disco (asta que dic(as
p&ginas sean eliminadas de la memoria.
(ttp:''e@a.unne.edu.ar'depar'areas'informatica'SistemasFperativos'SFV.(tm
%.11$omponentes de un sistema de arc"ivos.
$O3.O*!*T! D! U* SIST!3/ D! /7$-IAO
E< 1?1FEM4 /E 4D'C?JO1 /E (H 1?1FEM4 O#ED4F?JO. <o conforman todas
a!uellas rutinas encar&adas de administrar todos los aspectos relacionados con el
manejo de 4rc)ivos.
'OM#OHEHFE1 /E< 1?1FEM4 /E 4D'C?JO1. En &eneral, un 1istema de 4rc)ivos
est compuesto por8 M-todos /e 4cceso, 4dministraci$n /e 4rc)ivos, 4dministraci$n
/e 4lmacenamiento 1ecundario, Mecanismos /e ?nte&ridad. M-todos /e 4cceso. 1e
ocupan de la manera en !ue se tendr acceso a la informaci$n almacenada en el
arc)ivo. Ejemplo8 1ecuencial, /irecto, inde3ado, etc.
4dministraci$n /e 4rc)ivos. 1e ocupa de ofrecer los mecanismos para almacenar,
compartir y ase&urar arc)ivos, as. como para )acer referencia a ellos. 4dministraci$n
/e 4lmacenamiento 1ecundario. 1e ocupa de asi&nar espacio para los arc)ivos en los
dispositivos de almacenamiento secundario.
Mecanismos /e ?nte&ridad. 1e ocupan de &aranti+ar !ue no se corrompa la informaci$n
de un arc)ivo, de tal manera !ue solo la informaci$n !ue de%a estar en el, se encuentre
a)..
Compo$e$tes (e u$ sistema (e ar#.ivos.
:eg. lgico
:eg. f,sico
Figura > ,. 0omponentes@ niveles de un sistema de arc#ivos.
3. %ontiene las diferentes rutinas y comandos atrav# de los cuales el usuario podr&
estructurar sus arc(ivos virtuales.
7. %onvierte los identificadores simblicos de los arc(ivos en identificadores internos,
los cuales apuntar&n a su descriptor o a una estructura que permite encontrar el
arc(ivo.
T. Su obetivo es el de activar y desactivar a travs de las rutinas de abrir y cerrar
arc(ivos y verifica el modo de acceso.
;"%8-*S;FS 0" F:Z8-*k8%*F-
LFZ*%8
0*:"%<F:*F 0"
*0"-<*D*%80F:"S
S*S<";8S <"F:*%FS 0"
8:%)*HFS
;"%8-*S;FS 0" F:Z8-*k8%*F-
D*S*%8
;"%8-*S;FS 0"
"'S
S%)"0$L*-Z
"'S
3l
7l
Tl
Vl
Yl
?l
V. <raslada las direcciones lgicas en direcciones f,sicas correspondientes a las
estructuras de memoria secundaria y los buffers en memoria principal necesarios para
la transferencia de datos.
Y. +or cada peticin de acceso al arc(ivo real, este mecanismo genera la secuencia de
operaciones elementales de entrada y salida que se necesita.
?. "n este nivel es donde se tiene el n!mero de peticiones pendientes as, como de las que
se est&n reali#ando y lleva el control y asignacin de tiempo de %+$ a las diferentes
peticiones de "'S.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so7'so7>VT.(tml
%.12Or0ani2acin l0ica y fsica.
O7B/*IN/$IL* ,OBI$/ O FISI$/
OD=4H?L4'?[H /E 4D'C?JO1
1e refiere a las diferentes maneras en las !ue puede ser or&ani+ada la informaci$n de
los arc)ivos, as. como las diferentes maneras en !ue -sta puede ser accesada.
/ado !ue )ay 2 niveles de visi$n de los arc)ivos (f.sico y l$&ico), se puede )a%lar
tam%i-n de 2 aspectos de or&ani+aci$n de arc)ivos8 Or&ani+aci$n de arc)ivos l$&icos y
de arc)ivos f.sicos.
/E 4D'C?JO1 <O=?'O1. 'ontempla la or&ani+aci$n desde el punto de vista l$&ico.
#or ejemplo, secuencial, directo, etc.
/E 4D'C?JO1 >?1?'O1. 'ontempla la administraci$n de arc)ivos desde la perspectiva
f.sica, particularmente la or&ani+aci$n del almacenamiento en disco a nivel de pistas y
sectores. Este tipo de or&ani+aci$n muestra a su ve+, 2 aspectos importantes8 M-todos
/e 4si&naci$n /e Espacio <i%re y 4si&naci$n /e Espacio /e 4lmacenamiento /el
4rc)ivo.
Orga$i&a#i'$ l'gi#a : *)si#a.
La organi#acin de arc(ivos es de dos tipos lgica y f,sica. Frgani#acin lgica, e@isten
tres organi#aciones comunes de un arc(ivo. La primera es una simple secuencia de bytes. Figura
# 7.
Los arc(ivos de $-*. se estructuran de esta
manera.
La segunda es una sucesin de registros de tamaUo fio.
+ueden leerse o escribirse registros
arbitrarios, pero no pueden insertarse o
suprimirse registros a la mitad de un arc(ivo.
La tercera organi#acin es un &rbol de bloques de disco, donde cada cavidad contiene n
registros con clave. Los registros pueden cerrarse por clave y pueden insertarse otros en cualquier
parte del &rbol.
3
Myte
)ormig
a
korra %erd
o
Zato Haca +erro %abr
a
Len M!(o +ony :ata Zusan
o
Zallin
a
*bis %order
o
3
:egistro
Digura i 7. Frgani#acin de arc(ivos
Si se agrega un registro a un bloque que est& repleto, ste se divide en su secuencia
alfabtica correcta. "ste mtodo se aplica en muc(as macrocomputadoras, donde se llaman *S8;
(mtodo de acceso secuencia indi#ado).
La organi#acin f,sica es llevada a cabo en un sistema por medio de 0irectorios.
+ara llevar el control de los arc(ivos, el sistema de arc(ivos proporciona directorios, los
cuales en muc(os sistemas, son arc(ivos. $n directorio suele tener varias entradas, una por
arc(ivo. Figura # ,.
0irectorio
"ntrada
"ntrada
"ntrada
"ntrada
Figura > <.
$n directorio puede tener varias entradas, donde cada un describe un arc(ivo. Las
entradas pueden contener cierta informacin acerca del arc(ivo o bien apuntar a otras estructuras
que la tengan.
La manera m&s simple consiste en que el sistema conserve un solo directorio que
contenga todos los arc(ivos de todos los usuarios. Si (ay muc(os usuarios y stos eligen los
mismos nombres de arc(ivos (por eemplo, mail y games), (abr& conflictos y la confusin
volver&n el sistema impracticable. "ste modelo de sistema es utili#ado solamente por los sistemas
operativos de microcomputadoras m&s primitivos.
$na meora a la idea de tener un solo directorio para todos los arc(ivos consiste en tener
un directorio por usuario. Figura # 4.
-ombre del arc(ivo
<ipo de arc(ivo
+ropietario
*nformacin de proteccin
%onteo de uso
<iempo de creacin
<iempo de la !ltima
modificacin
Lista de bloques del disco que
se usan
I$*orma#i'$ a#er#a (e #a(a
ar#.ivo
Figura # 4. Bn directorio por usuario.
"ste mtodo elimina conflictos de nombre entre los usuarios, pero no es muy satisfactorio
para usuarios con muc(os arc(ivos.
"s necesaria una erarqu,a general (o sea, un &rbol de directorios). %on este mtodo, cada
usuario puede tener tantos directorios como se necesiten de manera que los arc(ivos se puedan
agrupar en formas naturales.
%uando el sistema de arc(ivos se organi#a como un &rbol de directorios, se necesita contar
con alguna manera de especificar nombres de arc(ivos. %om!nmente se emplean dos mtodos:
-ombre de ruta absoluta. Bue consta de la ruta que va del directorio ra,# al arc(ivo.
"em: La ruta 'usr'ast'mailbo@ el directorio ra,# contiene un subdirectorio usr el cual
contiene un subdirectorio ast, que contiene el arc(ivo mailbo@. Los nombres de ruta
absoluta siempre comien#an en el directorio ra,# y son !nicos.
-ombre de ruta relativa. Se utili#a unto con el concepto directorio de trabao (
directorio actual). $n usuario puede designar un directorio como el directorio de
trabao actual. "n $-*., todos los nombres de ruta que comien#an con una diagonal '
son absolutosG todos los otros son relativos al directorio de trabao actual del usuario.
Si el directorio de trabao actual es 'usr'ast'mailbo@ puede referirse simplemente como
mailbo@.
)ttp8//eduadis.itlapiedad.edu.m3/X)oce&ueras/so2/so2Y44.)tml
%.13ecanismos de acceso a los arc"ivos.
%
% % %
M
M 8
8
8
0irectorio
:a,#
0irectorio del
usuario
8rc(ivo
Me#a$ismos (e a##eso a los ar#.ivos.
"@isten varios mecanismos para accesar los arc(ivos:
0irectorios, descriptores de arc(ivos, mecanismos de control de acceso y procedimientos
para abrir y cerrar arc(ivos.
Des#riptores (e ar#.ivos. 8 cada uno de los arc(ivos se le asigna un descriptor el cual
contendr& toda la informacin que necesitar& el sistema de arc(ivos para eecutar con l los
comandos que se le soliciten. "l descriptor se mantendr& en memoria principal desde que el
arc(ivo es abierto (asta que sea cerrado, y debe tener al menos la siguiente informacin,
identificacin del arc(ivo, lugar de almacenamiento, informacin del modo de acceso.
*dentificacin del arc(ivo consiste de dos partes que es el nombre simblico que es el que
le da el usuario y un identificador interno que es asignado por el sistema operativo (n!mero).
Lugar de almacenamiento as, como el tamaUo del arc(ivo.
;odo de acceso. Se debe indicar en forma e@pl,cita quien puede accesar el arc(ivo y
conque derec(o.
"l sistema de arc(ivos es un componente importante de cualquier sistema operativo, en
general contienen:
M/to(os (e a##eso+ Se ocupan de la forma en que se obtiene acceso a los datos
almacenados en arc(ivos.
A(mi$istra#i'$ (e ar#.ivo. Se ocupa de ofrecer los mecanismos para almacenar,
compartir y asegurar arc(ivos, y (acer referencia a ellos.
A(mi$istra#i'$ (e alma#e$amie$to se#u$(ario: Se ocupa de asignar espacio a los
arc(ivos en dispositivos de almacenamiento secundario.
Me#a$ismos (e i$tegri(a( (e los ar#.ivos: Se ocupan de garanti#ar que no se
corrompa la informacin en un arc(ivo. %uando se asegura la integridad de los
arc(ivos, cualquier informacin que debe estar en un arc(ivo estar& a(,, la
informacin que no deba estar en un arc(ivo se mantiene fuera de l.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so7'so7>VY.(tml
%.1#3ane9o de espacio en memoria secundaria.
Ma$e!o (el espa#io (e memoria se#u$(aria.
"l sistema de arc(ivos se ocupa primordialmente de administrar el espacio de
almacenamiento secundario, sobre todo el espacio en disco.
"l maneo del espacio libre en disco se lleva a cabo de la siguiente manera:
Hector de bits
Lista ligada (lista libre)
+or conteo (agrupacin)
Ve#tor (e its. "l espacio libre en disco es frecuentemente implementado como un mapa
de bits, donde cada blo9c es representado por un bit y si el bloc es libre el bit es cero de lo
contrario est& asignado.
33666333
Lista liga(a. $na lista ligada de todos los bloc9s libres. Ftra implantacin se consigue
guardando la direccin del primer bloc9 libre y el n!mero de los bloc9s libres contiguos
que le siguen. %ada entrada de la lista de espacio libre consiste de una direccin de disco
y un contador (por conteo), ver figura # 5.
7 T
Figura # 5. 'ista ligada.
Por agrupa#i'$. Se almacena la direccin en n bloc9s libres en el primer bloc9 libre y el
!ltimo contiene la direccin de otro bloc9 que contiene la direccin de otros bloc9s libres,
ver figura # 6.
Figura # 6. 2grupacin.
+ara manear los espacios en disco e@isten los siguientes mtodos:
%ontiguos
Ligados
*nde@ados
-l de bloc9 contiguos (7,7
y V)
Mloc libre de inicio
%ontiguos. "sta asignacin requiere que cada arc(ivo ocupe un conunto de
direcciones contiguas en el disco, su asignacin es definida por la direccin del primer
bloc y la longitud del arc(ivo.
8signacin ligada. %ada arc(ivo es una lista ligada de bloc9s y el directorio contiene
un apuntador al primer bloc y al !ltimo. (igura A B.
-ombre *nicio Dinal
8 3 Y6
Figura # -. 2signacin ligada.
8signacin *nde@ada. %ada arc(ivo tiene su propio bloc de ,ndice el cual es un arreglo
de direcciones de bloc
"n un sistema de cmputo, los elementos que se declaran para almacenamiento son los
F:le S:stem.
%u&ndo e@iste una solicitud de almacenamiento o maneo de bloc libres en un file system
surge una interrogante Acmo atenderlasC esto se lleva a cabo mediante una planificacin de
discos y para esto e@isten las siguientes pol,ticas de planificacin.
a; FCFS
; SSTF
; SCAN
#; SCAN (e $0pasos
(; C0SCAN
*; Es%uema Es#.e$a#.
3
Y6
8cceso
Secuencial
S,
0irecto
-o
NOTA+
2 Lento
2 "vita la
compactacin
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so7'so7>V?.(tml
%.1%3odelo 9er4r5uico.
%.1)3ecanismos de recuperacin en caso de falla.
Me#a$ismos (e re#upera#i'$ e$ #aso (e *allos.
La perdida de la informacin es uno de los factores que se le debe de dar mayor
importancia, por la sencilla ra#n de que al perder informacin se puede perder lo que no nos
podemos imaginar en cuanto a la misma y ocasionar perdidas (asta (ablar de una gran cantidad
de dinero.
+ara solucionar este o estos problemas todo sistema operativo cuenta con al menos una
(erramienta de soft/are que nos permite recuperar informacin perdida (asta cierta medida, esto
obedece de acuerdo al daUo causado o los daUos. Si el sistema no cuenta con la (erramienta
necesaria, deber& adquirirse el soft/are apropiado de alg!n fabricante especiali#ado en el ramo,
por eemplo -orton.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso-Iso-E=`..tml
Unidad )
.roteccin y se0uridad.
).1 $oncepto y ob9etivos de proteccin.
#roteccion.:
Defiere a los mecanismo para controlar el acceso de pro&ramas, usuarios o proceso a los recursos
definido en el sistema. (n sistema es un conjunto de recursos ('#(, memoria, impresoras, etc.) en
donde cada o%jeto o recurso tiene un nom%re 5nico. <as operaciones !ue se pueden )acer so%re cada
o%jeto dependen del o%jeto.
/ominios de proteccion.:
'ada proceso opera dentro de su dominio de protecci$n, !ue indica las operaciones !ue el proceso
puede )acer so%re un determinado conjunto de o%jetos. <a )a%ilidad de un proceso de ejecutar una
operaci$n so%re un o%jeto se denomina derec)o (acces ri&)t). (n dominio es un conjunto de derec)os
cada uno de los cuales es un par ordenado Pob9eto8 lista de derec"osQ
(n dominio puede estar definido de varias formas8
(n usuario es un dominio. El conjunto de o%jetos !ue pueden ser accedidos dependen de la identidad del
usuario.
(n proceso es un domino. El conjunto de o%jetos !ue pueden ser accedidos dependen de la identidad del
proceso.
(n procedimiento es un dominio.
Prote##i'$
La aparicin de la multiprogramacin introduo en los computadores la posibilidad de
compartir recursos entre varios usuarios. "ntre los recursos compartidos est&n la %+$, la
memoria, los dispositivos de entrada'salida, los programas y los datos. "l (ec(o de poder
compartir recursos es lo que introduo la necesidad de proteccin.
"@isten varios motivos por lo que la proteccin es necesaria. "l m&s obvio es la necesidad
de prevenir intentos de violacin de restricciones de acceso por parte de un usuario. "l m&s
importante es, sin embargo, la necesidad de asegurar que cada proceso use los recursos del
sistema de forma consistente de acuerdo con las pol,ticas establecidas para el uso de esos
recursos. "ste requisito es fundamental para que un sistema sea fiable.
"l papel de la proteccin en un sistema inform&tico es proporcionar un conunto de
mecanismos que permita llevar a cabo las pol,ticas que gobiernan el uso de los recursos. "stas
pol,ticas pueden ser fias, establecidas en el diseUo del sistema operativo, pueden ser formuladas
por el administrador del sistema, o incluso puede ser establecidas por los usuarios.
$n principio importante es la separacin entre pol,tica y mecanismo. Los mecanismos
determinan (acer cierta cosa, mientras que las pol,ticas deciden es lo que (ay que (acer. "n el
&mbito de la proteccin, la pol,tica define qu datos (an de ser protegidos y el mecanismo la
forma de llevar a cabo la pol,tica. "sta separacin favorece la fle@ibilidad. 0ebido a que las
pol,ticas pueden cambiar con el tiempo o con el lugar, es deseable que el sistema operativo
ofre#ca un conunto general de mecanismos por medio de los cuales se puedan establecer
pol,ticas diferentes.
<.=., Domi$ios (e Prote##i'$.
$n computador contiene un conunto de obetos que (an de ser protegidos. "stos obetos
pueden ser tanto (ard/are (%+$s, segmentos de memoria, discos, impresoras, etc.) como
soft/are (procesos, fic(eros, sem&foros, etc.). %ada obeto tiene un identificador !nico en el
sistema y un conunto de operaciones que le pueden ser aplicadas. Las operaciones posibles
dependen del obeto. +or eemplo, los segmentos de memoria pueden ser le,dos o escritos,
mientras que un fic(ero puede ser creado, abierto, le,do, escrito, cerrado y borrado. "l mecanismo
de proteccin (a de pro(ibir a los procesos el acceso a aquellos obetos.
+ara estudiar los diferentes mecanismos de proteccin se introduce el concepto de
(omi$io (e prote##i'$. $n dominio de proteccin es un conunto de pares o%(eto)derec#os, de
forma que cada par especifica un obeto y alg!n subconunto de operaciones que se pueden
reali#ar sobre dic(o obeto.
Figura #. - :(emplos de dominio de proteccin.
"n cada instante de tiempo, cada proceso se eecuta dentro de un dominio concreto. "ste dominio
puede cambiar durante la vida del proceso.
$n dominio puede ser varias cosas:
%ada usuario puede ser un dominio, en cuyo caso el conunto de obetos que puede ser accedido
depende de la identidad del usuario. Los cambios de dominio ocurren cuando se cambia de
usuario.
%ada proceso puede ser un dominio, en cuyo caso el conunto de obetos que puede ser
accedido depende de la identidad del proceso. Los cambios de dominio se producen cuando un
proceso env,a un mensae a otro y espera la respuesta.
%ada procedimiento puede ser un dominio, en cuyo caso el conunto de obetos que puede ser
accedido se corresponde con las variables locales definidas dentro del procedimiento. Los
cambios de dominio se producen cuando se reali#a una llamada a procedimiento.
"n $-*. el dominio de un proceso lo determina su uid y su gid. 0ado un par de estos
dos identificadores, es posible obtener un lista de todos los obetos que puede utili#ar, y si pueden
ser accedidos para lectura, escritura y'o eecucin. 8dem&s, en $-*. cada proceso tiene dos
partes, la parte de usuario y la parte de n!cleo. %uando un proceso invoca una llamada al sistema
pasa a eecutarse en modo n!cleo. "ste cambio de modo de eecucin da lugar a un cambio de
dominio. %uando un proceso $-*. reali#a una llamada exec() sobre un fic(ero que tiene uno
de los bits SETUID o SETGID a uno adquiere un nuevo uid o gid efectivo. "sto tambin
provoca un cambio de dominio.
"l sistema operativo debe de conocer en todo momento los obetos que pertenecen a cada
dominio. $na forma de llevar este control es tener una matri& (e a##eso, en la que las filas son
los dominios y las columnas los obetos. %ada elemento de la matri# muestra los derec(os de un
dominio sobre un obeto.
Figura #. 4 :(emplo de matri/ de acceso.
Los cambios de dominio se pueden incluir f&cilmente en la matri# de proteccin considerando
que cada dominio es a su ve# un obeto sobre el que e@iste una operacin que permite entrar en
l.
Figura #. 5 Catri/ de acceso con dominio.
"n la pr&ctica no es viable almacenar la matri# de proteccin porque es grande y tiene
muc(os (uecos (sparse matrix). La mayor,a de los dominios no tiene acceso a la mayor,a de los
obetos, por lo que almacenar una gran matri# casi vac,a desperdicia muc(o espacio en disco. 0os
soluciones pr&cticas consisten en almacenar la matri#, bien por filas, bien por columnas, y
almacenar !nicamente los elementos no vac,os. "n el primer caso se (abla de capacidades, y en
el segundo, de listas de control de acceso.
<.=.- Listas (e Co$trol (e A##eso.
%uando la matri# se almacena por columnas, a cada obeto se le asocia una lista ordenada
que contiene todos los dominios que pueden acceder al obeto y la forma de (acerlo. "sta lista se
denomina lista (e #o$trol (e a##eso (control access list o 8%L).
"n $-*. esta lista est& compuesta por tres grupos de tres bits, especificando cada grupo
los permisos para el propietario, grupo y resto de usuarios, y los tres bits indican si e@iste permiso
de lectura, escritura y'o eecucin. Sin embargo, un esquema basado en listas de control de
acceso puede ser m&s general:
"l propietario de un obeto puede modificar la lista de control de acceso del mismo. "l
!nico problema es que los cambios pueden no afectar a los usuarios que ya estn usando el
obeto.
<.=.< Capa#i(a(es
La otra forma de almacenar la matri# de proteccin es por filas. %on este mtodo, cada
proceso tiene una lista de los obetos a los que puede acceder as, como una indicacin de las
operaciones que est&n permitidas sobre cada uno de ellos. "sta lista se denomina lista (e
#apa#i(a(es (listas>% o #'lists), y cada elemento de la lista se llama capacidad.
%ada obeto est& representado por una capacidad. %uando un proceso quiere eecutar una
operacin sobre un obeto, (a de especificar la capacidad del obeto como par&metro. La simple
posesin de la capacidad permite que se conceda el acceso (siempre que ste est permitido sobre
el obeto).
%ada capacidad tiene un campo que indica el tipo del obeto, un campo de derec(os de
acceso, y un campo que identifica al obeto.
Figura #. 18 'ista de capacidades para el dominio 7 de la figura 4.
Las listas de capacidades se asocian a un dominio, pero los procesos que se eecutan en
ese dominio no deben de acceder a la lista de forma directa. +or el contrario, cada capacidad es
un obeto protegido que debe ser gestionado por el sistema operativo y !nicamente puede ser
accedido de forma indirecta por parte de los procesos. Zeneralmente, suelen ser referenciadas por
su posicin dentro de la lista de capacidades. Las listas de capacidades son tambin obetos, por
lo que pueden ser apuntadas desde otras listas, permitiendo el compartir subdominios.
+ara proporcionar proteccin, las capacidades se (an de distinguir de otro tipos de obetos.
%ada obeto tiene asociado una etiqueta que indica si se trata de un obeto o de una capacidad.
Las etiquetas no deben ser accesibles directamente por los programas de aplicacin. $na solucin
(ard/are consiste en aUadir a cada palabra de memoria un bit adicional que indica si la palabra
de memoria contiene una capacidad. "ste bit slo se puede ser modificado por el sistema
operativo. Si se aUaden m&s bits, el (ard/are podr& conocer los tipos de los obetos (si son
enteros, reales).
0ividir el espacio de direcciones de un programa en dos #onas. La primera es accesible al
programa y contiene las instrucciones y los datos. La segunda contiene la lista de capacidades y
es accesible !nicamente por el sistema operativo.
;antener las capacidades en el espacio de usuario, pero encriptadas con una clave secreta
desconocida para el usuario. "ste mtodo es empleado por el sistema operativo 8moeba.
Se tienen acceso relativos a cada obeto, las capacidades tienen permisos genricos que son
aplicables a todos los obetos. 8lgunos de estos permisos son:
Copiar #apa#i(a(: crear una nueva capacidad para el mismo obeto.
Copiar o!eto: %rear un obeto duplicado con una nueva capacidad.
Elimi$ar #apa#i(a(: borrar de forma permanente una entrada de la lista>%, pero deando
inalterado al obeto.
Elimi$ar o!eto: eliminar de forma permanente un obeto y su capacidad.
Los sistemas basados en capacidades se suelen organi#ar como una coleccin de mdulos,
siendo cada mdulo un gestor para cada tipo de obeto. +or eemplo, las operaciones sobre
fic(eros se env,an al gestor de fic(eros, mientras que las que tiene que ver con memoria se env,an
al gestor de memoria. %ada operacin va acompaUada de la capacidad correspondiente. $n
problema que tiene este esquema basado en mdulos gestores es que stos son, a su ve#,
programas ordinarios. +ong&monos en el caso de un gestor de fic(eros. Las capacidades
asociadas a fic(eros permiten a los programas las operaciones t,picas sobre stos (apertura,
lectura, etc.). Sin embargo, el gestor de fic(eros (a de ser capa# de acceder a la representacin
interna de los fic(eros (en $-*., por eemplo, (abr,a que acceder a los nodos ,ndice). +or lo
tanto, es esencial que los mdulos gestores tengan m&s atribuciones de las que las capacidades
permiten a los procesos ordinarios. "ste problema se resuelve en el sistema )ydra mediante una
tcnica llamada amplificacin de derec(os, que consiste en que a los mdulos gestores se les
asigna una plantilla de permisos que les permiten obtener m&s derec(os sobre los obetos de los
que les permiten las capacidades.
$n problema que se presentan en los sistemas basados en capacidades es que es dif,cil
revocar los accesos a un obeto, ya que ello supone locali#ar todas las capacidades que (acen
referencia al obeto, y stas se encuentran en las listas de capacidades, que se encuentran
repartidas por todo el disco. $na solucin a este problema consiste en que una capacidad no
apunte al obeto en s,, sino a un obeto indirecto que apunta al obeto. 0e esta forma, si se quiere
pro(ibir los accesos, basta con romper el enlace entre el obeto indirecto y el obeto. Ftra
posibilidad consiste en asociar a cada obeto un n!mero aleatorio, que tambin est& presente en la
capacidad. %uando se presenta una capacidad al solicitar un acceso, los dos n!meros son
comparados y el acceso se permite si la comparacin (a tenido @ito. La forma de revocar los
accesos consiste en que el propietario del obeto puede solicitar que el n!mero aleatorio del
obeto sea cambiado, lo que autom&ticamente invalida el resto de las capacidades.
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so2>so2G#."tml
).2 Funciones del sistema de proteccin.
FU*$IO*!S D! U* SIST!3/ D! .7OT!$$IL*.
/ado !ue los sistemas de computo se )an venido )aciendo cada ve+ ms sofisticados
en sus aplicaciones, la necesidad de prote&er su inte&ridad, tam%i-n )a crecido. <os
aspectos principales de protecci$n en un 1istema Operativo son8
9. #rotecci$n de los procesos del sistema contra los procesos de usuario.
2. #rotecci$n de los procesos de usuario contra los de otros procesos de usuario.
3. #rotecci$n de Memoria.
4. #rotecci$n de los dispositivos.
Fu$#io$es (e u$ sistema (e prote##i'$.
0ado que los sistemas de cmputo se (an venido (aciendo cada ve# m&s sofisticados en
sus aplicaciones, la necesidad de proteger su integridad, tambin (a crecido. Los aspectos
principales de proteccin en un Sistema Fperativo son:
3. +roteccin de los procesos del sistema contra los procesos de usuario.
7. +roteccin de los procesos de usuario contra los de otros procesos de usuario.
T. +roteccin de ;emoria.
V. +roteccin de los dispositivos.
Prote##i'$ 2 Co$trol (e empleo (e la i$*orma#i'$ P Re#ursos
FQNCIONES+
Las funciones de un sistema de proteccin son asegurar la independencia entre obetos
que lgicamente son independientes y la de asegurar el control de acceso a la informacin y
puede ser control asociado al tipo de informacin o puede ser el control asociado al usuario que
solicita el acceso.
<odos los mecanismos dirigidos a asegurar el sistema inform&tico, siendo el propio
sistema el que controla dic(os mecanismos, se engloban en lo que podemos denominar seguridad
interna.
Seguri(a( (el pro#esa(or
Los mecanismos de proteccin de procesador son:
"stados protegidos (kernel) o no protegidos (usuarios).
:elo (ard/are para evitar el bloqueo del procesador.
Seguri(a( (e la memoria
Se trata de mecanismos para evitar que un usuario acceda la informacin. "ntre ellos
citaremos dos:
:egistros l,mites o frontera.
"stado protegido y no protegido del procesador.
8dem&s se emplean para la memoria mtodos como el de utili#ar un bit de paridad o el
c(ec9sum.
Mit de paridad. %onsiste en aUadir un bit a cada octeto o palabra que se
transmita para con l conseguir que la suma de unos sea par (paridad par)
o impar (paridad impar). %on este mtodo se detectan errores al variar un
bit o un n!mero impar de ellos sin que se detecten variaciones de un
n!mero par de bits.
Si se prev que los daUos esperados en una transmisin no sean de un bit
en un octeto o palabra, sino en una secuencia de ellos, se puede utili#ar
un algoritmo que permita reali#ar una suma denominada suma de
c(equeo (c(ec9sum) y aplicar el mtodo denominado de redundancia
c,clica durante la transmisin, de tal forma que al terminar ste se repite
con el destino el mismo algoritmo de suma, comprob&ndose si el valor
final de la suma es el mismo.
Seguri(a( (e los ar#.ivos
La finalidad principal de las computadoras es el del tratamiento de la informacin que se
almacena permanentemente en los arc(ivos. La prdida o alteracin no deseada de la informacin
causa trastornos irreparables en algunos casos. +or eso es necesario tomar medidas de seguridad
que se deben enfocar desde dos aspectos diferentes: La disponibilidad y la privacidad de los
arc(ivos.
3) Dispo$iili(a( (e los ar#.ivos
$n arc(ivo debe tener la informacin prevista y estar disponible en el momento que un
usuario la necesite. Se debe de tener presente la necesidad de asegurar las circunstancias y se
deben reali#ar las siguientes acciones:
.Copias (e seguri(a( D?a#Hup;. %onsiste en que cada cierto tiempo ((ora, d,a, semana ...) se
realice una copia del contenido de los arc(ivos, de forma que si se destruyen stos, es posible la
recuperacin de los datos a partir de la !ltima de las copias. La operacin de reali#ar las copias y
la recuperacin a partir de las mismas, se reali#an por medio de programas de utilidad del sistema
operativo.
.Ar#.ivos log. Se usan en sistemas de tiempo compartido, con muc(os usuarios trabaando
simult&neamente, en estos sistemas se recurre a arc(ivos au@iliares donde se registran todas las
operaciones que reali#a un usuario sobre sus arc(ivos, almacen&ndose la nueva informacin o
aquella que difiere de la ya e@istente.
"stos arc(ivos reciben el nombre de arc(ivos log y son tratados por utilidades del sistema
operativo conuntamente con las copias de seguridad para los procesos de recuperacin. "sta
segunda tcnica permite asegurar la consistencia del contenido de los arc(ivos ante ca,das
inesperadas del sistema, evitando que una informacin se quede a medias de escribir.
+ara solucionar problemas de consistencia, algunos sistemas no dan la operacin de
escritura por reali#ada (asta que no se reflea en el log, y esto se (ace una ve# confirmada la
escritura en el disco. 8l volver a arrancar, el sistema inspecciona el log buscando operaciones
iniciadas y no acabadas, finali#&ndolas antes de permitir de nuevo el trabao de los usuarios.
-; Priva#i(a( (e los ar#.ivos
Los arc(ivos se deben proteger de posibles accesos no deseados, el sistema de proteccin
debe permitir acceso de forma controlada, seg!n reglas definidas y con las siguiente autori#acin:
E %ada usuario, al comen#ar la sesin en un sistema tras su identificacin, tiene asignado
por el sistema de proteccin un dominio compuesto de una serie de recursos y de operaciones
permitidas, por eemplo, una serie de arc(ivos a los que acceden, no teniendo permitido el acceso
al resto de arc(ivos.
"n general, los sistemas operativos almacenan la informacin relativa a los dominios en
los que se denomina matri# de dominios, cuyas filas indican los dominios e@istentes y las
columnas los recursos. %ada elemento de la matri# indica el derec(o a utili#ar el recurso
correspondiente en el dominio. Figura # 7.
A, A- A< A= AA AB I S
D, " L
D- L L," " "
D< L " L
(igura A C. Matri7 de acceso.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso-Iso-E<-..tml
). Implantacin de matrices de acceso.
Matri+ de 4cceso.:
El modelo de protecci$n puede ser visto mediante una matri+ de acceso. <as filas representan dominios y
las columnas representan o%jetos. <as entradas de la matri+ representan el conjunto de derec)os para el
o%jeto en cuesti$n, para determinado dominio.
I3.,/*T/$IO* D! 3/T7I$!S $O* D!7!$-OS D! /$$!SO.
(n modelo de protecci$n puede ser visto a%stractamente como una matri+, llamada
matri+ de derec)o. <os ren&lones de la matri+ representan dominios y las columnas
representan o%jetos. 'ada entrada en la matri+ contiene un conjunto de derec)os de
acceso. /ado !ue los o%jetos son definidos e3pl.citamente por la columna, se puede
omitir el nom%re del o%jeto en el derec)o de acceso. <a entrada ;Matri+Ri, jS; define el
conjunto de operaciones !ue un proceso ejecutndose en el dominio ;/j; puede reali+ar
so%re el o%jeto ;Oj;.
Cay 4 dominios y 5 o%jetos8 3 4rc)ivos (;49;, ;42;, ;43;) 9 #uerto 1erial y 9 impresora.
'uando un proceso se ejecuta en O9, puede leer los arc)ivos ;49; y ;43;.
(n proceso ejecutndose en el dominio ;/4; tiene los mismos privile&ios !ue en ;/9;,
pero adems puede escri%ir en los arc)ivos. H$tese !ue en el puerto serial y la
impresora solo se pueden ser ejecutados por procesos del dominio ;/2;.
E1FD('F(D41 /E #DOFE''?[H /?H4M?'41.
<as matrices de acceso vistas )asta el momento, en las !ue no cam%ian los derec)os
en cada dominio durante su ejecuci$n, son un ejemplo de Estructuras de #rotecci$n
Estticas. 'on el fin de ofrecer fle3i%ilidad y de implementar eficientemente la
protecci$n, un 1istema Operativo de%e soportar cam%ios en los derec)os de acceso.
#ara esto se re!uiere implementar al&una estructura de protecci$n dinmica.
En este caso continuaremos considerando las matrices de acceso, aun!ue en su
versi$n dinmica. 6sicamente se re!uieren cuatro nuevos derec)os de acceso8 'opia,
'am%io, #ropietario y 'ontrol.
/EDE'CO /E 4''E1O 'O#?4.
Este derec)o de acceso da la facultad a un proceso de copiar derec)os e3istentes en
un dominio )acia otro dominio para el o%jeto en cuesti$n. O sea, este derec)o &enera
copias en columnas.
En este caso estar indicado el derec)o copia a2adiendo el si&no (T) al nom%re de los
derec)os !ue pueden ser copiados.
En la ta%la se indica !ue un proceso ejecutndose en el dominio 9 podr copiar )acia
cual!uier otro dominio, el derec)o enviar so%re el o%jeto ;'OM9; y !ue un proceso
ejecutndose en el dominio ;/2; podr copiar el derec)o ;<eer; )acia cual!uier otro
dominio so%re el o%jeto ;4rc)ivo2;.
/e esta manera, en al&5n momento posterior, la situaci$n de la ta%la podr.a ser la
si&uiente8
En la !ue se )a copiado el derec)o ;Enviar; del dominio ;/9; al dominio ;/4; so%re el
o%jeto ;'OM9; y se )a copiado el derec)o ;<eer; del dominio ;/2; al dominio ;/9;
so%re el o%jeto ;4rc)ivo 2;.
#uede o%servarse !ue los derec)os ;copiados; no contienen el si&no (T), o sea, se )a
reali+ado una copia limitada. En &eneral se podr.a )a%lar de 3 variantes del derec)o
;copia;8 'opia <imitada, 'opia 'ompleta, Franslaci$n.
'O#?4 <?M?F4/4. <a copia no incluye el derec)o ;'opia;, con lo !ue no se podrn
)acer copias sucesivas del derec)o. 1e puede indicar con el si&no (T).
'O#?4 'OM#<EF4. <a copia incluye el derec)o ;'opia;, por lo !ue se pueden reali+ar
copias sucesivas del derec)o. 1e puede indicar con el si&no (e).
FD4H1<4'?[H. El derec)o en cuesti$n junto con el derec)o copia se eliminan del
dominio ori&inal y se coloca en el nuevo dominio. Esta es una forma %sica de retirar
derec)os de un dominio para asi&narlo a otro. 1e puede indicar con el si&no
/EDE'CO /E 4''E1O '4M6?O.
Este derec)o de acceso indica la posi%ilidad de un proceso para cam%iarse de un
dominio a otro. <a operaci$n cam%io act5a so%re dominios, o sea, en este caso los
dominios son los o%jetos. Entonces, para considerar este derec)o de acceso se
de%ern incluir los dominios como o%jetos adicionales en la matri+ de acceso.
'onsid-rese la si&uiente matri+ de acceso8
Esta ta%la indica !ue un proceso ejecutndose en ;/9; puede cam%iarse al dominio
;/4; (a)7 un proceso ejecutndose en ;/2; puede cam%iarse a ;/3;(%) y un proceso
ejecutndose en el dominio ;/4; puede cam%iarse a ;/9;(c).
).# .roteccin basada en el len0ua9e.
).% $oncepto de se0uridad.
I$tro(u##i'$ a la Seguri(a( (e los Sistemas Operativos
La evolucin de la computacin y de las comunicaciones en las !ltimas dcadas g`, 0eitelh:
)a (ec(o m&s accesibles a los sistemas inform&ticos.
)a incrementado los riesgos vinculados a la seguridad.
La vulnerabilidad de las comunicaciones de datos es un aspecto clave de la seguridad de los
sistemas inform&ticosG la importancia de este aspecto es cada ve# mayor en funcin de la
proliferacin de las redes de computadoras.
"l nivel de criticidad y de confidencialidad de los datos administrados por los sistemas
inform&ticos es cada ve# mayor:
".: correo personal, transferencia de fondos, control de manufactura, control de sistemas
de armas, control de tr&fico areo, control de implantes mdicos (marcapasos, etc.).
Los sistemas deben funcionar ininterrumpidamente y sin problemas.
"l sistema operativo, como administrador de los recursos del sistema:
%umple una funcin muy importante en la instrumentacin de la seguridad.
-o engloba a todos los aspectos de la seguridad.
0ebe ser complementado con medidas e@ternas al S. F.
La simple seguridad f!sica resulta insuficiente ante la posibilidad de acceso mediante equipos
remotos conectados.
La tendencia es que los sistemas sean ms ase4uibles y fciles de usar, pero la favorabilidad
(acia el usuario puede implicar un aumento de la vulnerabilidad.
Se deben identificar las amena7as potenciales, que pueden proceder de fuentes maliciosas o no.
%l nivel de seguridad a proporcionar depende del valor de los recursos 4ue 2ay 4ue asegurar.
Re%uisitos (e Seguri(a(
Los re4uisitos de seguridad de un sistema dado definen lo 4ue significa la seguridad, para ese
sistema g`, 0eitelh.
Los requisitos sirven de base para determinar si el sistema implementado es seguro1
Sin una serie de requisitos precisos tiene poco sentido cuestionar la seguridad de un
sistema.
Si los requisitos est&n dbilmente establecidos no dicen muc(o sobre la verdadera
seguridad del sistema.
8lgunos eemplos de formulacin de los requisitos de seguridad son los siguientes:
&irectiva &*& DCEE.CF (%%. UU.)1
o "specifica cmo debe manipularse la informacin clasificada en sistemas de
procesamiento de datos.
Manual de ,eferencia de +ecnolog!a de "eguridad de la #omputadora (%%. UU.)1
o "specifica cmo evaluar la seguridad de los sistemas de computacin de la Duer#a
8rea.
Ley de )ntimidad de GHBI (%%. UU.)1
o :equiere que las 8gencias Dederales aseguren la integridad y seguridad de la
informacin acerca de los individuos, especialmente en el conte@to del amplio uso
de las computadoras.
Q$ Tratamie$to Total (e la Seguri(a(
$n tratamiento total incluye aspectos de la seguridad del computador distintos a los de la
seguridad de los ". *. JB9 &eitelK.
La seguridad externa debe asegurar la instalacin computacional contra intrusos y desastres
como incendios e inundaciones:
%oncedido el acceso f,sico el S. F. debe identificar al usuario antes de permitirle el acceso
a los recursos: seguridad de la interfa7 del usuario.
La seguridad interna trata de los controles incorporados al (ard/are y al S. F. para asegurar la
confiabilidad, operabilidad y la integridad de los programas y datos.
Seguri(a( E8ter$a : Seguri(a( Opera#io$al
Seguri(a( E8ter$a
La seguridad externa consiste en g`, 0eitelh:
Seguridad f,sica.
Seguridad operacional.
La seguridad f!sica incluye:
+roteccin contra desastres.
+roteccin contra intrusos.
"n la seguridad f,sica son importantes los mecanismos de deteccin, algunos eemplos son:
0etectores de (umo.
Sensores de calor.
0etectores de movimiento.
La proteccin contra desastres puede ser costosa y frecuentemente no se anali#a en detalleG
depende en gran medida de las consecuencias de la prdida.
La seguridad f!sica trata especialmente de impedir la entrada de intrusos:
Se utili#an sistemas de identificacin f!sica1
o <aretas de identificacin.
o Sistemas de (uellas digitales.
o *dentificacin por medio de la vo#.
Seguri(a( Opera#io$al
%onsiste en las diferentes pol!ticas y procedimientos implementados por la administracin de la
instalacin computacional g`, 0eitelh.
La autori7acin determina qu acceso se permite y a quin.
La clasificacin divide el problema en subproblemas:
Los datos del sistema y los usuarios se dividen en clases1
o 8 las clases se conceden diferentes derec2os de acceso.
$n aspecto cr!tico es la seleccin y asignacin de personal1
La pregunta es si se puede confiar en la gente.
"l tratamiento que generalmente se da al problema es la divisin de responsabilidades1
o Se otorgan distintos conuntos de responsabilidades.
o -o es necesario que se cono#ca la totalidad del sistema para cumplir con esas
responsabilidades.
o +ara poder comprometer al sistema puede ser necesaria la cooperacin entre
muc(as personas:
Se reduce la probabilidad de violar la seguridad.
o 0ebe instrumentarse un gran n!mero de verificaciones y balances en el sistema
para ayudar a la deteccin de brec(as en la seguridad.
o "l personal debe estar al tanto de que el sistema dispone de controles, pero:
0ebe desconocer cu&les son esos controles:
Se reduce la probabilidad de poder evitarlos.
0ebe producirse un efecto disuasivo respecto de posibles intentos de violar
la seguridad.
+ara diseUar medidas efectivas de seguridad se debe primero:
"numerar y comprender las amena#as potenciales.
0efinir qu grado de seguridad se desea (y cu&nto se est& dispuesto a gastar en seguridad).
8nali#ar las contramedidas disponibles.
(ttp:''e@a.unne.edu.ar'depar'areas'informatica'SistemasFperativos'SF3V.(tmi*ntro
).) $lasificaciones de la se0uridad.
).@ Aalidacin y amena2as al sistema.
Tipos (e Ame$a&as.
Los tipos de amena#as a la seguridad de un sistema inform&tico los podemos caracteri#ar
teniendo en cuenta como esta informacin es suministrada por el sistema. "n general, (ay un
fluo de informacin de una fuente a un destino:
Figura #., Flu(o normal.
<eniendo esto en cuenta, podemos seUalar cuatro categor,as de amena#as:
I$terrup#i'$+ $n elemento del sistema es destruido o se (ace inservible. "s una amena#a a la
(ispo$iili(a(. "emplos son la destruccin de alg!n elemento (ard/are (discos, l,neas de
comunicacin, etc.) y la desactivacin del sistema de gestin de fic(eros.
Figura #. 4 Anterrupcin.
@ I$ter#ep#i'$+ $na parte no autori#ada obtiene acceso a un elemento relacionado con la
seguridad. "s una amena#a a la priva#i(a(. La parte no autori#ada puede ser una persona, un
programa o un computador. "emplos son la copia il,cita de programas y la visuali#acin de
fic(eros que (an de permanecer ocultos.
Figura #. 5 Antercepcin.
@ Mo(i*i#a#i'$+ $na parte no autori#ada no slo obtiene acceso sino que puede modificar un
elemento relacionado con la seguridad. "s una amena#a a la i$tegri(a(. "emplos son la
alteracin del contenido de un fic(ero y modificar un programa para que funcione de forma
diferente.
Figura #. 6 Codificacin.
@ Fari#a#i'$+ $na parte no autori#ada inserta nuevos elementos en el sistema. "s una amena#a
a la i$tegri(a(. "emplos son adicin de registros a un fic(ero y la inclusin de mensaes
esp!reos en una red.
La mayor,a de los mtodos de autenticacin se basan en identificar algo que el usuario
tiene o conoce. "l mecanismo m&s com!n de autenticacin consiste en que todo usuario (a de
introducir una , que es solicitada por el programa de cone@in cuando el usuario introduce su
nombre. "l inconveniente de este mtodo es que las contraseUas pueden ser f&cilmente
averiguables si el usuario utili#a su nombre, direccin, o similar como contraseUa. Ftra forma de
averiguar una contraseUa consiste en probar todas las combinaciones de letras, n!meros y
s,mbolos de puntuacin (asta adivinar la contraseUa.
"@isten variantes como que el sistema le aUada a cada contraseUa un n!mero aleatorio, o
asignarle a cada usuario un libro con una secuencia de contraseUas, de forma que cada ve# que se
conecta tiene que introducir la palabra de paso siguiente.
Ftros tipos de mecanismos de autenticacin se pueden basar en obetos que !nicamente
cada
usuario puede tener, como taretas con banda magntica, al estilo de los caeros autom&ticos. Ftra
posibilidad es medir o comprobar ciertas caracter,sticas que est&n indisolublemente unidas a cada
persona, como la vo#, escritura, (uellas dactilares, etc.
"n instalaciones en las que la seguridad es prioritaria, estas medidas se pueden
complementar con restricciones de acceso a la (abitacin en la que se encuentran los terminales,
asignar a cada usuario un terminal concreto, establecer un (orario concreto de trabao, etc.
Ame$a&as (e Orige$ So*tNare
$no de las los tipos m&s sofisticados de amena#as tienen su origen en programas que
e@plotan las debilidades de los sistemas. "stos programas se dividen en dos grupos: aquellos que
necesitan un programa anfitrin y aquellos que son independientes. Los primeros son tro#os de
programas que no pueden e@istir de forma autnoma, mientras que los segundos son programas
completos que pueden ser planificados y eecutados por el sistema operativo.
<ambin (ay que distinguir entre aquellos programas que no se replican y los que lo
(acen. "stos !ltimos son programas o tro#os de programas que cuando se eecutan pueden
generar una o m&s copias de ellos mismos, que ser&n posteriormente activadas en la
computadora.
+odemos distinguir seis tipos de amena#as de origen soft/are:
m ?oma L'gi#a: "s un cdigo incrustado en un programa que comprueba si ciertas condiciones
se cumplen, en cuyo caso eecuta alguna accin no autori#ada. "stas condiciones pueden ser la
e@istencia de ciertos fic(eros, una fec(a particular, la eecucin de una aplicacin concreta, etc.
$na ve# que la bomba e@plota, puede alterar o eliminar datos, parar el sistema, etc. $n eemplo
de uso de bomba lgica es el caso de un programador que vende un programa a una empresa. Si
transcurrido un cierto tiempo la empresa no (a pagado, el programador revela la e@istencia de la
bomba lgica con el fin de obtener su dinero.
m Puerta Falsa D.rapdoor;: "s un punto de entrada secreto en un programa, de forma que alguien
que cono#ca la e@istencia de dic(a puerta puede obtener permisos de acceso sin tener que pasar
por los mecanismos normales de autentificacin. La puerta falsa es un cdigo que reconoce
alguna secuencia de entrada especial o se dispara si es eecutado por cierto usuario o por la
ocurrencia de una secuencia determinada de sucesos.
m Caallo (e Tro:a D.ro(an Dorse;: "s una rutina oculta en un programa de utilidad. %uando el
programa se eecuta, se eecuta la rutina y sta reali#a acciones no autori#adas y perniciosas.
"stos programas permiten reali#ar de forma indirecta acciones que no puede reali#ar de forma
directa. +or eemplo, un programa caballo de troya puede ser un editor que cuando es eecutado
modifica los permisos de los fic(eros que edita de forma que stos puedan ser accedidos por
cualquier usuario. "l autor del programa suele inducir a su utili#acin coloc&ndolo en un
directorio com!n y d&ndole un nombre de forma que aparente ser un programa de utilidad.
m Virus: "s cdigo introducido en un programa que puede infectar otros programas mediante la
copia de s, mismo en dic(os programas. 8dem&s de propagarse, un virus reali#a alguna funcin
no permitida.
m ?a#teria: +rograma que consume recursos del sistema replic&ndose asimismo, pero no daUa
e@pl,citamente ning!n fic(ero. Se suele reproducir e@ponencialmente, por lo que puede acaparar
recursos como %+$, memoria y disco.
m Xusa$o DEorm;: "s un programa que usa las redes de computadores para pasar de unos
sistemas a otros. $na ve# que llega a un sistema, el gusano se puede comportar como un virus o
una bacteria, puede implantar programas caballo de troya, o puede reali#ar acciones no
autori#adas. +ara replicarse, los gusanos emplean algunos programas que proporcionan servicios
de red, como correo electrnico, eecucin remota de programas y cone@in a sistemas remotos.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso-Iso-E<<..tml
Ata%ues Xe$/ri#os a Sistemas Operativos
Los principales ataques genricos a los S. F. son los siguientes g`, 0eitelh:
-sincronismo1
Se tienen procesos m!ltiples que progresan asincrnicamente.
$n proceso podr,a modificar los par&metros ya validados por otro proceso pero a!n no
utili#ados.
$n proceso podr,a pasar valores malos a otro a!n cuando el segundo realice una
verificacin e@tensa.
,astreo1
$n usuario revisa el sistema intentando locali#ar informacin privilegiada.
%ntre l!neas1
Se utili#a una l,nea de comunicaciones mantenida por un usuario (abilitado que est&
inactivo.
#digo clandestino1
Se modifica el S. F. bao una presunta depuracin pero se incorpora cdigo que permite
ingresos no autori#ados.
Lro2ibicin de acceso1
$n usuario escribe un programa que bloquea el acceso o servicio a los usuarios leg,timos
mediante:
o %a,das del sistema, ciclos infinitos, monopolio de recursos, etc.
Lrocesos sincroni7ados interactivos1
Se utili#an las primitivas de sincroni#acin del sistema para compartir y pasarse
informacin entre s,.
&esconexin de l!nea1
"l intruso intenta acceder al trabao de un usuario desconectado:
o Luego de una descone@in de l,nea.
o 8ntes de que el sistema recono#ca la descone@in.
&isfra71
"l intruso asume la identidad de un usuario leg,timo luego de (aber obtenido la
identificacin apropiada por medios clandestinos.
-ta4ue /nak01
Si el S. F. permite a un usuario:
o *nterrumpir un proceso en eecucin mediante una /tecla0 de /reconocimiento
negativo0.
o :eali#ar otra operacin.
o :eanudar el proceso interrumpido.
$n intruso podr,a /encontrar0 al sistema en un estado no protegido y (acerse con el
control.
%nga.o al operador1
%on un engaUo se (ace reali#ar al operador una accin que comprometa la seguridad del
sistema.
Larsito1
;ediante equipamiento especial el intruso:
o *ntercepta los mensaes entre un usuario (abilitado y el procesador.
o Los modifica o reempla#a totalmente.
#aballo de +roya1
"l intruso coloca un cdigo dentro del sistema que luego le permita accesos no
autori#ados.
+uede permanecer en el sistema.
+uede borrar todo rastro de s, mismo luego de la penetracin.
Larmetros inesperados1
"l intruso suministra valores inesperados a una llamada al n!cleo.
*ntenta aprovec(ar una debilidad de los mecanismos de verificacin de la legalidad del S.
F.
.ttp+IIe8a.u$$e.e(u.arI(eparIareasIi$*ormati#aISistemasOperativosISO,=..tm>Crip
).? $ifrado.
Criptogra*)a
"l uso creciente de las redes de computadoras y la importancia del trafico cursado (ace
necesario proteger a los datos JB9 &eitelK.
La Fficina -acional de "st&ndares de "". $$. (-MS) (a adoptado la norma de cifrado de datos
(0"S) para la transmisin de informacin federal delicada.
La criptograf!a es el uso de la transformacin de datos para 2acerlos incomprensibles a todos9
excepto a los usuarios a 4uienes estn destinados.
"l problema de la intimidad trata de cmo evitar la obtencin no autori7ada de informacin de
un canal de comunicaciones.
"l problema de la autentificacin trata sobre cmo evitar que un oponente:
;odifique una transmisin.
Le introdu#ca datos falsos.
"l problema de la disputa trata sobre cmo proporcionar al receptor de un mensae pruebas
legales de la identidad del remitente, que ser,an el equivalente electrnico de una firma escrita.
Q$ Sistema (e I$timi(a( Criptogr"*i#a
"l remitente desea transmitir cierto mensae no cifrado (te@to simple) a un receptor leg,timo:
La transmisin se producir& a travs de un canal inseguro1
o Se supone que podr& ser verificado o conectado mediante un esp,a.
"l remitente pasa el texto simple a una unidad de codificacin que lo transforma en un texto
cifrado o criptograma1
-o es comprensible para el esp!a.
Se transmite en forma segura por un canal inseguro.
"l receptor pasa el te@to cifrado por una unidad de descifrado para regenerar el te@to
simple.
Criptoa$"lisis
"s el proceso de intentar regenerar el texto simple a partir del texto cifrado, pero desconociendo
la clave de ciframiento1
"s la tarea del esp,a o criptoanalista1
o Si no lo logra, el sistema criptogr&fico es seguro.
Sistemas (e Clave P[li#a
La distribucin de claves de un sistema criptogr&fico debe (acerse por canales muy seguros.
Los sistemas de clave pblica rodean el problema de distribucin de claves:
Las funciones de cifrado y descifrado est&n separadas y utili#an distintas claves.
-o es computacionalmente posible (en un tiempo /ra7onable0) determinar la clave de
desciframiento /&0 a partir de la clave de ciframiento /#0.
/#0 puede (acerse pblica sin comprometer la seguridad de /&0, que permanece
privada1
o Se simplifica el problema de la distribucin de claves.
Firmas Digitales
+ara que una firma digital sea aceptada como sustituta de una firma escrita debe ser:
D&cil de autentificar (reconocer) por cualquiera.
+roducible !nicamente por su autor.
"n los criptosistemas de clave pblica el procedimiento es:
"l remitente usa la clave privada para crear un mensae firmado.
"l receptor1
o $sa la clave pblica del remitente para descifrar el mensae.
o Zuarda el mensae firmado para usarlo en caso de disputas.
+ara mayor seguridad se podr,a actuar como sigue:
"l remitente puede codificar el mensae ya cifrado utili#ando la clave pblica del
receptor.
La clave privada del receptor permite recuperar el mensae cifrado firmado.
La clave pblica del remitente permite recuperar el texto simple original.
Apli#a#io$es
La criptograf!a es especialmente !til en los sistemas multiusuario y en las redes de
computadoras.
Se debe utili#ar para proteger a las contrase.as, almacen&ndolas cifradas.
Se puede utili#ar tambin para proteger todos los datos almacenados en un sistema de
computacinG se debe considerar el tiempo de cifrado ' descifrado.
<ambin es aplicable en los protocolos de redes de capas, que ofrecen varios niveles de cifrado.
"n el cifrado de enlace la red asume la responsabilidad de cifrado ' descifrado de cada nodo:
Los datos se transmiten cifrados entre los nodos.
"n cada nodo se descifran, se determina a dnde transmitirlos y se los vuelve a cifrar.
"n el cifrado punto a punto un mensae se cifra en su fuente y se descifra solo una ve#, en su
destino:
"@isten ciertas limitaciones tales como la legibilidad de la direccin de destino en cada
nodo:
o 0ebe ser legible para el encaminamiento del mensae.
o ".: sistemas de conmutacin de paquetes de almacenamiento y reenv,o con
cifrado punto a puntoG en este caso la direccin de destino asociada a un paquete
no puede ser cifrada.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO1#."tmK$ri
p
http:11www2monogra.ias2com1trabajos31hiso1hiso2shtml
http:11www2monogra.ias2com1trabajos41sistemas1sistemas2shtml
http:11www2monogra.ias2com1trabajos551oper1oper2shtml
http:11www2monogra.ias2com1trabajos541administ-procesos1administ-procesos2shtml
http:11www2monogra.ias2com1trabajos561hisis1hisis2shtml
http:11www2monogra.ias2com1trabajos541sistemas-operati0os1sistemas-operati0os2shtml
http:11www2monogra.ias2com1trabajos1so61so62shtml

Você também pode gostar