Está en la página 1de 233

Sistemas Operativos

Unidad Temas 1 Introduccin a los sistemas operativos. Subtemas 1.1 Definicin y concepto. 1.2 Funciones 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.1 2.2 2. 2.# $oncepto de proceso. !stados y transiciones de los procesos .rocesos li0eros &-ilos o "ebras(. $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. .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

/dministracin de procesos y del procesador.

/dministracin de memoria.

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. %.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.7 Modelo jer r!uico. %.? 3ecanismos de recuperacin en caso de falla. ).1 $oncepto y ob9etivos de proteccin. ).2 Funciones 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.

Sistema de arc"ivos.

.roteccin y se0uridad.

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. 4dem s, 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 pr cticos. 1e %uscaron medios m s 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 autom ticos, !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 est ndar7 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 7adem s 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 o =estionar el )ard*are.: 1e refiere al )ec)o de administrar de una forma m s eficiente los recursos de la m !uina. >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 m s f cil 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 an lo&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 m s conveniente el uso de una computadora. Eficiencia. (n 1istema Operativo permite !ue los recursos de la computadora se usen de la manera m s 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 r pido 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 f cil 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 c lculo, 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 o o o 'ar&adores. 'ompiladores. Ensam%ladores. 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 v lvulas ( 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. 4dem s 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 m 3ima 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 r pidamente 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 simult neamente 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&r ficamente 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 r pidamente. 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 contempor neo, 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 mec nicos 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 din mica 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 est ndares 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 c lculo mediante %ul%os. Estas m !uinas eran enormes y llena%an cuartos completos con decenas de miles de %ul%os, pero eran muc)o m s lentas !ue la computadora casera m s 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 m s %ul%os se !uemara durante la ejecuci$n. <a inmensa mayor.a de los pro%lemas eran c lculos num-ricos directos, por ejemplo, el c lculo 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 dem s 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 dem s r pidas 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 m s 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 est n 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 autom tica 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 m s 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 m s lento !ue la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simult neas. Sistema Operativo 3onotareas. <os sistemas operativos monotareas son m s 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 m s 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 est n 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 simult neamente las necesidades de dos o m s 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 m s &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 r pidas7 por ejemplo en un caso de peli&ro se necesitar.an respuestas inmediatas para evitar una cat strofe. Tiempo $ompartido. El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por m s 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 m s &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 traba os 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 e ecucin. %uando termina la e ecucin 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 cient ico 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* Plani icaci.n del procesador sencilla, tpicamente procesados en orden de llegada* Plani icaci.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. Tra a!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 mane o 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 de inici.n !a +ue soportan la ejecuci.n simultnea de m6ltiples tareas so2re di erentes 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 mane o 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 procesador 3time slot4* @esti.n de residentes* memoria del sistema asignando protecci.n a tiempos de

proporciona

programas

@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! espec icas como control de tr ico a)reo, 2olsas de valores, control de re ineras, 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 edi icios* 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 r agas de miles de interrupciones por segundo sin perder un solo suceso* Proceso se activa interrupci.n* tras ocurrencia de suceso, mediante

Proceso de ma!or prioridad expropia recursos* Por tanto generalmente se utili1a plani icaci.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 secundario ! memoria* programas entre almacenamiento

@esti.n de arc5ivos se orienta ms a velocidad de acceso +ue a utili1aci.n e iciente del recurso*

Sistemas Operativos (istri ui(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 di erentes, 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! con ia2les, !a +ue si un componente del sistema se compone otro componente de2e de ser capa1 de reempla1arlo* Entre los di erentes 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 ! so t8are*

@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 3 sico o no4, con el o2jetivo primordial de poder compartir los di erentes recursos ! la in ormaci.n del sistema* El primer Sistema Operativo de red esta2a en ocado 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 clasific ndose de diferentes maneras, dependiendo del uso o de la aplicaci$n !ue se les da%a. 4 continuaci$n se mostrar n 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 m s tra%ajos como sucede en el procesamiento

en serie. Estos sistemas son de los m s 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, an lisis 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 m s 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, est n 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 tr fico 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 est n creciendo muy r pidamente. 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 r pidos tiempos de respuesta. #rocesa r fa&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 est tica en &ran medida. #oco movimiento de pro&ramas entre almacenamiento secundario y memoria. =esti$n de arc)ivos se orienta m s 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 m s tra%ajos activos (!ue se est n 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 m 3imo 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 m s 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 simult nea 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 c lculos (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 m s 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 m s 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 est n8 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 m s 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 par metros y resultados, y cada una tiene la li%ertad de llamar a cual!uiera otra, si la 5ltima ofrece al&5n c lculo 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 4 3 2 9 0

Operador de FCE #ro&ramas del usuario 4dministraci$n de Entrada/1alida 'omunicaci$n entre el operador y el proceso 4dministraci$n de la memoria y el tam%or ma&n-tico /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 m s 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 dem s 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 par metros y resultados y cada uno de ellos es li%re de llamar a cual!uier otro, si este ultimo proporciona cierto c lculo 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 par metros 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 par metros 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 m s 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 est n 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+ &r fica 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 ejecut ndose 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 4 3 2 9 0

El operador #ro&ramas del usuario 'ontrol de entrada/salida 'omunicaci$n operador:proceso 4dministraci$n de la memoria y del disco 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. 4dem s 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 f cil de usar y de aprender, se&uro, r pido 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 par metros 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 est n )ec)os a medida, por lo !ue son eficientes y r pidos 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 jer r!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 did cticos. 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 pr cticamente 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 m s internas del sistema operativo o n5cleo del sistema estar n m s prote&idas de accesos indeseados desde las capas m s e3ternas. <as capas m s internas ser n, por tanto, m s 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 m s 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+, ser n 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 m s 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 e ecucin! Ha" varios tipos de interrupcin, que se clasi#ican 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'',-.I/(E) Las interrupciones I(&E'(A), pueden ser:

E%&'A.01I2/): /peraciones que *anipulan ele*entos internos del

procesador

&'A-) o E%.E-.I/(E)

La *isin del FLIH, est+ en el n3cleo, para dar una respuesta a cualquier tipo de seal que se produce en el siste*a! Al producirse una seal, la atrapa el Hard4are de interrupciones, que co*o *5ni*o, salva el contenido del -. en el -.6 del proceso! Ade*+s, puede que ta*7i8n salve el resto del entorno vol+til (ta*7i8n en el -.6)! &a*7i8n 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#t4are, es un proceso! 9a :e*os dic:o que el FLIH es )o#t4are, pues se trata de un sencillo progra*a de#inido so7re un +rea de *e*oria dedicada a 8l, un +rea de *e*oria espec5#ica; es decir, el FLIH sie*pre est+ en la *is*a parte de la *e*oria! El FLIH :ace dos cosas: <=) 1eter*ina el origen de la interrupcin (Averigua qu8 interrupcin se :a producido) >=) 1irecciona la rutina que trata esa interrupcin )i el FLIH es un progra*a, necesita parte del entorno vol+til: -., A.., !!! -or ello, de7e 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 Hard4are de interrupciones )i no lo salva el Hard4are 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#inen unos registros *+quina para uso e?clusivo por parte del )iste*a /perativo, para evitar tener que estar salvando " restaurando el contenido del entorno vol+til! Formas de determinar el ori en de !na interr!"#i$n: @E1IA(&E )/F&AA'E: @ediante una cadena de saltos o IFs (o con una .A)E) El FLIH, tiene !n %ni#o punto de entrada: Benta a: $ Es *u" sencillo 1esventa a: $ 'endi*iento *u" po7re (.uantas *+s interrupciones, peor

rendi*iento) -osi7le solucin:

-oner al principio de la cadena de saltos las co*pro7aciones de las

interrupciones *+s #recuentes! @E1IA(&E HA'1AA'E: @ediante el uso de un co*parador si*ult+neo, incluido en el Hard4are de interrupciones! El origen de la interrupcin, no lo va a detectar el FLIH, lo va a detectar el Hard4are de interrupciones! El FLIH, tiene ( puntos de entrada, siendo ( el n3*ero de interrupciones que reconoce el siste*a! Benta a: $ Es casi si*ult+neo, *uc:o *+s r+pido que la secuencia de IFs 1esventa a: $ .oste Elevado: ,n co*parador para *uc:as interrupciones es *u" caro ./@6I(A(1/ )/F&AA'E 9 HA'1AA'E: El co*parador distingue los &I-/) de interrupcin! Las interrupciones se agrupan por tipos! EL Hard4are de interrupciones: <=) )alva el contenido del entorno vol+til >=) @ediante un co*parador si*ult+neo, deter*ina el tipo al que pertenece la interrupcin producida C=) )e direcciona al FLIH, donde una pequea cadena de saltos deter*ina la interrupcin en concreto que se :a producido )i ( es el n3*ero de tipos de interrupciones, el FLIH tiene ( puntos de entrada! .uando el FLIH est+ atendiendo una interrupcin, pueden producirse otras! DEu8 :ace*os con esas otras interrupciones que se producenF

In:i7ir (ignorar) el resto de interrupciones *ientras se atiende una! -ero esto no puede :acerse sie*pre Las interrupciones *+s prioritarias de7en tratarse nada *+s producirse

-osi7le solucin:

1e#inir niveles de prioridad entre las interrupciones, de #or*a que si

se est+ atendiendo una interrupcin, quedar+n pendientes (o in:i7idas) las de *enor o igual prioridad! -ro7le*a:

)i se produce una interrupcin *+s prioritaria que la que se est+ atendiendo, de7e de arse de atender la que se esta7a atendiendo para atender la *+s prioritaria! -or lo tanto, de7e guardarse el entorno vol+til de la interrupcin que esta7a atendiendo! La interrupcin que pasa a ser atendida, ta*7i8n puede tener que de arse, al llegar otra de *a"or prioridad !!! -or tanto, es necesario un lugar a para al*acenar entornos vol+tiles, es decir, un -.6, por cada prioridad de interrupcin G <!

Ini#io del ser&i#io de !na interr!"#i$n: Las interrupciones no pueden estar in:i7idas *uc:o tie*po, es decir, el tie*po de trata*iento del FLIH de7e ser corto! -ro7le*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 a ena o e?terna a 8l, que realiHa el resto del trata*iento!

,na interrupcin puede i*plicar ca*7io(s) de estado en alg3n(os) proceso(s)! &I-/) 1E I(&E'',-.I/(E):

Interrupciones que provocan ca*7ios de estado del proceso en e ecucin Algunos e?tracdigos: -eticiones de EI) )eales de error para suspensin Interrupciones de relo : Interrupciones por e?piracin del te*poriHador Interrupciones que provocan ca*7ios de estado en procesos que no est+n en e ecucin Interrupciones de EI)

"ttpE>>"tml.rincondelva0o.com>sistemas=operativosG2C."tml 1.).2 Despac"ador&Sc"eduler(.


Schedulling.-

Colas de Schedulling8 <os procesos !ue est n 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 m s pe!ue2o. 1i )u%iera mas de uno utili+a >'>1 para desempatar. El mayor pro%lema de este al&oritmo radica en el c lculo 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 est n entre&ando los procesos mas cortos y el m s &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 par metros8 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 tu er)as. Siguiendo la met&fora, $-*. nos permite mane ar 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 a ustadas a la invocacin remota. 8moeba, por e emplo, 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, me ora de rendimiento y reconfigurabilidad. 0iversas variantes: como mensa es, 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 mane adores 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 " sincroniHar sus acciones! La *e or #or*a de proveer la co*unicacin entre procesos es *ediante un siste*a de *ensa es! La #uncin de un siste*a de *ensa e es per*itir a los procesos co*unicarse entre s5 sin tener que recurrir a varia7les co*partidas! ,n recurso I-. o#rece por los *enos > operaciones: en&iar (*ensa e) (send) " re#i'ir (*esan e) (re#ei&e)! )ea - " E dos procesos que requieren co*unicarse de7er+n enviarse *ensa es; para ello de7e e?istir un enlace de comunicacin entre ellos! Este enlace puede i*ple*entarse de diversas *aneras! Los *8todos para i*ple*entar lgica*ente un enlace " las operaciones de en&iar I re#i'ir son:

.o*unicacin directa o indirecta ,so de 7u##er auto*+tico o e?pl5cito Env5o por copia o env5o por re#erencia @ensa es de ta*ao #i o o varia7les

Com!ni#a#i$n dire#ta: Aqu5 cada proceso que desee co*unicarse de7e no*7rar e?pl5cita*ente el destinatario o el re*itente de la co*unicacin! Este esque*a se de#ine las pri*itivas de la sig! *anera: Enviar(-,*ensa e): Enviar un *ensa e al proceso -! 'eci7ir(E! @ensa e): 'eci7ir un *ensa e del proceso E! .on las siguientes propiedades:

)e esta7lece 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 7idireccional!

Este esque*a e?:i7e un si*etr5a de direcciona*iento; es decir, los procesos tanto e*isor co*o receptor necesitan no*7rar al otro para co*unicarse! /tra variante de este esque*a es utiliHar asi*etr5a de direcciona*iento, con la sig! pri*itivas:

Enviar(-,*ensa e): enviar un *ensa e al proceso -! 'eci7ir(Id,*ensa e) : reci7ir un *ensa e de cualquier proceso con el que :u7o co*unicacin! Aqu5 slo el e*isor no*7ra al destinatario; el destinatario no 8sta o7ligado a no*7rar al e*isor! Com!ni#a#i$n indire#ta: Aqu5 los *ensa es se env5an a, " se reci7en de, buzones (ta*7i8n lla*ados -,E'&/))! ,n 7uHn puede considerarse en lo a7stracto co*o un o7 eto en el que los procesos pueden colocar *ensa es " del cual se pueden sacar *ensa es! .ada 7uHn tiene una identi#icacin 3nica! Aqu5 dos proceso se pueden co*unicarse slo si co*parten un 7uHn! Las pri*itivas se de#inen co*o: Enviar (A,*ensa e): enviar un *ensa e al 7uHn A! 'eci7ir (A,*ensa e): reci7ir un *ensa e del 7uHn A! ,n enlace de co*unicacin tiene las sig! propiedades:

)e esta7lece un enlace entre un par de procesos slo si tienen un 7uHn co*partido! ,n enlace puede estar asociado a *+s de dos procesos! Entre cada par de procesos en co*unicacin puede :a7er varios enlaces distintos, cada uno de los cuales corresponder+ a un 7uHn! Los enlaces pueden ser unidireccionales o 7idereccionales!

Ha" varias #or*as de designar el dueo de " los usuarios de un 7uHn dado! ,na posi7ilidad es per*itir que un proceso declare varia7les de tipo 7uHn! El proceso que declara un 7uHn es el dueo de ese 7uHn! .ualquier otro proceso que conoHca el no*7re de dic:o 7uHn podr+ usarlo! -or otro lado, un 7uHn propiedad del )!/ tiene e?istencia propia; es independiente " no est+ unido a ning3n proceso espec5#ico! El )!/ esta7lece un *ecanis*o que per*ite a un proceso:

.rear un 7uHn nuevo Enviar " reci7ir *ensa es a trav8s del 7uHn 1estruir un 7uHn!

(ttp:''(tml.rincondelvago.com'sistemas2operativos>7?.(tml

$omunicacin entre procesos &I.$(


Los procesos en $-*. no comparten memoria, ni siquiera los padres con sus (i os. +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 mensa es.

"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 mensa es, respectivamente. +ara alterar propiedades de estos *+%s, incluyendo su borrado, est&n las funciones shmctl y msgctl. +ara enviar o recibir mensa es, 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 0i 9stra, 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 lengua e % 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 con unto de sem&foros, en lugar de uno solo. Las operaciones se reali#an atmicamente sobre todo el con untoG 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 e emplo, 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 semget

key, int nsems, int semflg )G

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 con unto 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 so re sem"*oros


Sinta@is:
int semctl ( int

semid, int semnum, int cmd... ),

"sta es una funcin comple a (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 con unto sobre el que quieren traba ar. 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) destruye el sem&foro

IPC_R/I0

" emplos:
valor & semctl (semid,semn1m,-#" !%), semctl (semid,semn1m,.#" !%,n1evo_valor),

Opera#io$es so re sem"*oros
Sinta@is:
int semop ( int

semid, str1ct sem2134 sops, 1nsigned nsops ),

"sta funcin reali#a atmicamente un con unto 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; // n mero del sem!foro dentro del con"unto short sem_op; // clase de operaci#n // seg n sea $%& '% o ((% short sem_flg; // modificadores de operaci#n );

%ada elemento de sops es una operacin sobre alg!n sem&foro del con unto 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 ba o $-*., les mostramos unos e emplos 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& E& ;/ ./0_0R@34+/@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; )

/; con una cierta cla*e ;/ /; con un solo elemento /; lo crea ,./0_0R@345 con unos /@R>.SOS ;/

/; 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 m s detalle el concepto de )ilo. (na ve+ definido !ue es un proceso nos podr.amos pre&untar cu l 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 K .roceso : un pro&rama en ejecuci$n7 la ejecucuci$n del proceso de%e pro&resar de manera secuencial. (n proceso incluye8 L L L pro&ram counter stacE data section

Estados de los procesos K K K K K K *uevo8 El proceso es creado. !9ecucin8 1e ejecutan instrucci$nes. !spera8 El proceso esta en espera por la ocurrencia de al&5n evento. ,isto8 El proceso esta esperando a !ue le asi&nen el procesador. Terminado8 El proceso finali+a su ejecuci$n. /ia&rama de estados de los procesos.

?nformaci$n asociada con cada proceso8 K K K K K K K Estado del proceso #ro&ram counter De&istros del '#( ?nformaci$n de planificaci$n del '#( Memoria ?nformaci$n para administraci$n ?nformaci$n de estatus de E/1

Pro#eso+ programa o comando en e ecucin.

%aracter,sticas: $n proceso consta de cdigo, datos y pila. Los procesos e@isten en una erarqu,a de &rbol (varios )i os, 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 &om i+ 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 (i o. Pro#eso .u/r*a$o+ proceso en e ecucin 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 e ecucin. %onsta del programa e ecutable, 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 e ecutar 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 e ecucin de un proceso y dar inicio a la e ecucin de otro, por e emplo, 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 (i o) y estos procesos a la ve# originan procesos (i os, se llega r&pidamente a la estructura del &rbol de procesos, observe figura # 14.

Figura # 14. Estru#tura (e "r ol. 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 (i o y cubrir su programa con uno diferente. "n un sistema de multiprogramacin, el (%+$) tambin cambia de un programa a otro, e ecutando cada uno en decenas o cientos de milisegundos. "n tanto que, en rigor, en cualquier instante de tiempo, el %+$ est& e ecutando slo un programa, en el curso de un segundo puede traba ar en varios programas, con la ilusin de paralelismo. Proceso: *nformalmente se define como la actividad que resulta cuando un proceso e ercita 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 con unto de actividades elementales cuya e ecucin e@ige el monopolio de recursos compartidos. Dormalmente se define como el con unto 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 est n ejecutando en el procesador en ese momento dado. <os procesos !ue se encuentran en estado %lo!ueado est n 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 est n 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 est n dispuestos para ser ejecutados, pero no est n 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 K K

-uevo: "l proceso es creado. " ecucin: Se e ecutan instruccines. "spera: "l proceso esta en espera por la ocurrencia de alg!n evento.

K K K K K K K K K K

Listo: "l proceso esta esperando a que le asignen el procesador. <erminado: "l proceso finali#a su e ecucin. 0iagrama de estados de los procesos.

I$*orma#i'$ aso#ia(a #o$ #a(a pro#eso+ "stado del proceso +rogram counter :egistros del %+$ *nformacin de planificacin del %+$ ;emoria *nformacin para administracin *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 (i o. "l proceso que lo creo se denomina proceso padre, y el sistema devuelve un 6 al proceso (i o y un valor positivo distinto de 6 (pid del (i o) al proceso padre. 0espus de la llamada e@itosa a for9(), tanto el proceso padre como el (i o corren en forma simultanea a partir del punto siguiente a la invocacin del for9. La figura siguiente muestra esta situacin:

P.. +rintf(Q8ntes del for9 RnS)G +idJfor9()G +rintf(Q0espus del for9RnS)G PP. 8

8%

8ntes 222222222222222222222222222222222222222222 for9 222222222222222222222222222222222222222222222222222222222222 0espus P.. P.. +rintf(Q8ntes del for9 RnS)G +rintf(Q8ntes del for9 RnS)G +idJfor9()G +idJfor9()G +rintf(Q0espus del for9RnS)G PP. +rintf(Q0espus del for9RnS)G PP.

8%

8%

"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& e ecutando. %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 (i o. 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 (i o.
)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 e ecucin independientemente del estado en que se encuentre internamente el sistema. Los procesos se pueden encontrar en tres estados, observe *igura > <=.

Figura > <=. Esta(os (e los pro#esos. $n proceso puede encontrarse en estado de e ecucin, bloqueado o listo (que tambin se llama e ecutable). 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 (e ecutableG se detiene temporalmente para permitir que se e ecute otro proceso). E$ estos tres esta(os so$ posi les #uatro tra$si#io$es+ ,. Fcurre cuando un proceso descubre que no puede continuar. "n alg!n sistema el proceso debe e ecutar 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 e ecucin 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 e ecucin, 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'$.

. Listo.

. ?lo%uea(os.

"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. 8quellos procesos que est&n dispuestos para ser e ecutados, pero no est&n en e ecucin por alguna causa (interrupcin, (aber entrado, en la cola estando otro proceso en e ecucin, etc. Son los procesos que no pueden e ecutarse 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 e ecutado 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 e ecucin. +ara prevenir que cualquier proceso monopolice el sistema, ya sea de manera accidental o maliciosamente el sistema operativo a usta un relo de interrupcin del (ard/are para permitir al usuario e ecutar 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 e ecucin pase al de listo, y (ace que el primer proceso de la lista de listos pase al estado de e ecucin. Estas tra$si#io$es (e esta(o se i$(i#a$ #omo+ ) tiempo e*cedido $nom%re del proceso&: en e(ecucin ) %lo+ueado $nom%re del proceso&: en e(ecucin El pro#eso #am ia (el esta(o lo%uea(o al esta(o listo+ 'isto %lo+ueado

) despertar $ nom%re del proceso&: %lo+ueado Co$ esto te$emos (e*i$i(as = tra$sa##io$es (e esta(o. 0 despac#o $ nom%re del proceso&: 'isto ) tiempo e*cedido $ nom%re del proceso&: en e(ecucin ) %lo+ueado $ nom%re del proceso&: en e(ecucin ) despertar $ nom%re del proceso &: %lo+ueado

'isto.

en e(ecucin 'isto %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 suspendido2e ecutado. Sobre la l,nea discontinua se encuentran los estados activos, y deba o 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 e ecucin puede suspenderse a si mismoG ning!n otro proceso podr,a estar en e ecucin al mismo tiempo para reali#ar la suspensin (aunque otro proceso s, podr,a solicitar la suspensin cuando se e ecute). "n un sistema de m!ltiples procesadores, un proceso en e ecucin puede suspender a otro que se est e ecutando en ese mismo momento en un procesador diferente. Solamente otro proceso puede suspender un proceso listo. La transicin correspondiente es: ,; Suspe$(er D$om reE(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 $om reE(elEpro#eso;+ Suspe$(i(o0Listo

Listo.

$n proceso puede suspender a otro proceso que est bloqueado. La transicin correspondiente es: <; suspe$(er D $om reE(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 $om reE(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; B; #ompletarD$om reE(el Epro#eso;+ suspe$(i(o0 lo%uea(o suspe$(er D$om reE(elEpro#eso;+ E!e#u#i'$ suspe$(i(o0listo. 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 (i o. Slo se necesita un padre para crear un (i o. <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 ob etivo 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 e ecucin del programa y suele varios argumentos, como el nombre y la prioridad del proceso, *igura > <C. necesitar

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 (i o del proceso creador y (ereda el entorno de e ecucin de su padre. "l primer proceso que e ecuta un usuario ser& (i o 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 e ecuta 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 e ecute cada cierto tiempo (segundos, minutos, (oras,...) por etapas o de una sola ve#, pero transcurrido un periodo de tiempo fi o.

. 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 m s )ilos secundarios o )ijos, en -ste caso todos los procesos )ijos comparten la informaci$n del )ilo principal pero adem s 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 1em foros. '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 ejecut ndose simult neamente 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 e ecucin. . Tarea: Son las distintas partes de un proceso que se e ecutan simult&neamente.

@ Sistemas+ . Multiprograma#i'$: 8dmiten varias actividades que comparten el procesador, pero slo una puede estar e ecut&ndose en un momento dado. . Multipro#eso: Las actividades se e ecutan en sus propios procesadores, conectados a travs de una red de comunicaciones. @ Paralelismo+ "s la e ecucin 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 e ecut&ndose simult&neamente, y necesitan sincroni#arse para actuar con untamente. 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 traba o 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 e ecutarse independientemente. +or e emplo, un editor y un compilador pueden estar e ecut&ndose simult&neamente en una computadora sin que e@ista concurrencia entre ellos. +or otro lado si un programa se est& e ecutando y se encuentra grabando datos en un arc(ivo, y otro programa tambin en e ecucin 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 e ecutarse concurrentemente, puede (aber m!ltiples tareas en el %+$ con varios procesos. "@isten varias ra#ones para permitir la e ecucin 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 e emplo 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 e ecute con mayor rapide#, debemos dividirla en subtareas, cada una de las cuales se e ecutara, 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 e ecutar varias tareas a la ve#, por e emplo puede editar, imprimir y compilar en paralelo. La e ecucin 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 sem foros, env.o de mensajes, GpipesG, etc. <os sem foros son rutinas de soft*are (!ue en su nivel m s 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 m s 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 m s 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 !uit ndole 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%at rsele 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 m s 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 sem foros, 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 m s 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 !uedar n con&elados para siempre.

2.1D.1
E8#lusi'$ Mutua.

!1clusin mutua de secciones criticas.

%onsiste en garanti#ar que durante la e ecucin 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 e emplo, 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 traba o 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 con unto de actividades elementales cuya e ecucin e@ige el monopolio de recursos. +or e emplo, 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 e ecutada 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 de a 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 !uedar n e3cluidos de )acer lo mismo. <os procesos pueden tener en su c$di&o secciones en !ue reali+an c lculos 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 simult neamente 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 pr ctica 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 dem s 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 ejecut ndose 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 dem s procesos !ue re!uieran acceso a los datos en ese momento de%en esperar. 4s. pues, las secciones cr.ticas de%en ejecutarse tan r pido 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 ejecut ndose 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 ejecut ndose 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
Si$#ro$i&a#i'$.

Sincroni2acin de procesos en S.$.

"n procesos concurrentes, la e ecucin 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 e ecucin, 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 me or 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 de e 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, 0i 9stra(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 e ecuta 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 e emplo 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 e ecutan, 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;
VALOR VALOR INICIAL

NPD ; 32 NVD ; P,

+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 e ecutadas 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 me ora 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 lengua e 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 e ecutar sobre los datos, de los detalles de diseUo propio de los mismos (los lengua es ;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 con unto 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 e ecucin. "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 mensa es entre siG de manera que se asocia un enlace vi direccional !nico entre cada dos procesos. 0 I$(ire#ta+ ;ensa es 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.a ilitar 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 venta a 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; SECCION CRITICA PDMQTER; E$tra el pro#eso4 se (e#reme$ta e$ u$o el sem"*oro pero $o li era4 por lo ta$to .a: u$ (ea( lo#H4 $o .a: si$#ro$i&a#i'$ e$tre pro#esos $i e8#lusi'$ mutua Sale el pro#eso se i$#reme$ta e$ u$o el sem"*oro li era el pro#eso4 por lo ta$to $o .a: (ea( lo#H4 $o origi$a pro#eso (e e8#lusi'$ mutua. Sale el pro#eso se i$#reme$ta e$ u$o el sem"*oro pero $o li era4 por lo ta$to $o .a: (ea( lo#H.

?;

VDMQTER; SECCION CRITICA VDMQTER; VDMQTER; SECCION CRITICA PDMQTER; PDMQTER; SECCION CRITICA VDMQTER;

C;

D;

E$tra el pro#eso #o$sume : li era4 por lo ta$to $o .a: (ea( lo#H4 : (a solu#i'$ a la e8#lusi'$ mutua : 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

Pro lemas #l"si#os (e si$#ro$i&a#i'$.


"ste tipo de problemas constituyen e emplos 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 pro lema (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 pro lema (e los le#tores : es#ritores. $n ob eto 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 ob eto 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 ob eto 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 ob eto compartido, puede surgir el caos. +ara asegurar que no sur an estas dificultades, es necesario que los escritores tengan acceso e@clusivo al ob eto 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 pro lema (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 Pro lema (el pro(u#tor #o$sumi(or. "n un conte@to de procesos concurrentes, se tiene un con unto de procesos productores de mensa es y otro con unto de procesos consumidores de mensa es. La #ona donde se depositar&n y recoger&n los mensa es es un buffer de tamaUo $ ($ localidades). <anto productores como consumidores e ecutaran 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 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 li erar el u**er $u$#a .a#e VD ;. +roductor consumidor utili#ando espera activa, *igura > --. Pro(u#tor Pro(u#e msg. Lo#H Despa#io (ispo$i le; Lo#H Da##eso a u**er; Deposita msg. Q$lo#H Da##eso a u**er; Q$lo#H De8iste msg.; Figura > --. Co$sumi(or

u**er.

Lo#H De8iste msg.; Lo#H Da##eso a u**er; e8trae msg. Q$lo#H Da##eso a u**er; Q$lo#H Despa#io (ispo$i le; Co$sume msg.

+roblema de sincroni#acin. La sincroni#acin entre productor y consumidor es necesaria debido a lo siguiente: Los productores no deben depositar mensa es 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 mensa e el cual ser& iniciali#ado con un 6. Pro(u#tor pro(u#e msg. P Despa#io (ispo$i le; P Da##eso a u**er; (eposita msg V Da##eso a u**er; V De8iste msg; Co$sumi(or P De8iste msg.; P Da##eso s u**er; e8trae msg. V Da##eso a u**er; V Despa#io (ispo$i le; Co$sume msg.

R @ R

Solu#i'$ a la e8#lusi'$ mutua R V 0 Solu#i'$ (e la si$#ro$i&a#i'$ 2 Muffer lleno %asos cr,ticos 2 Muffer vac,o "ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G21)."tml "spacio disponibleJ-, e@iste msgJ6.

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 sem foro asi&n ndole 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 sem foros8 1em foros contadores8 Foman valores positivos mayores o i&uales a 0. 1e utili+an para sincroni+aci$n de procesos. 1em foros %inarios8 Foman los valores 0 $ 9 y se utili+an para e3clusi$n mutua. 4 continuaci$n se presenta una soluci$n mediante sem foros 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 sem foros, 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 sem foros para un al&oritmo de espera ocupada con n procesos, pero los n procesos !ue est n 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 sem foro !ue sea un re&istro de un nuevo tipo8 1em foro 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 e emplo, 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 e ecutado 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 e emplo 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 aD loop bD S:Hait,5 cD critical region dD S:signal,5 eD non-critical region fD endloop /I loop S:Hait,5 critical region S:signal,5 non-critical region 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 e ecutada 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 e emplo, 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 desventa as 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 con unto de procedimientos de control de los cuales solamente un subcon unto es visible desde fuera un con unto 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 desventa a 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& e ecutando un procedimiento del monitor (con e@clusin mutua) puede dar paso a otro proceso liberando el cerro o. "stas operaciones se suele llamar Hait,5 o delay,5. "l proceso que (a liberado el cerro o se queda bloqueado (asta que otro proceso le despierta de nuevo. "ste bloqueo temporal est& reali#ado dentro del monitor (dic(a tcnica se refle a 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. Lengua es de alto nivel que facilitan la programacin concurrente suelen tener monitores implementados dentro del lengua e (por e emplo ref1ava;onitores1ava usa el concepto de monitores para reali#ar el acceso mutuamente e@clusivo a sus ob etos). "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 -> wait a! 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 -> signal a! 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.
Deadloc6s

Interblo5ueo &Dead,oc6(.

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 est n siendo utili+ados por otros procesos en estado de espera tenemos un /E4/<O'O. <os recursos son la memoria, dispositivos de E/1, sem foros, 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 simult neamente 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 m 3ima 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 m 3imo) 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 ser n 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 inform tica, 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 m s 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 est n 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 d rselos 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 cu ntos recursos tiene de todo tipo. Fam%i-n re!uiere !ue los procesos informen del m 3imo de recursos !ue va a usar de cada tipo. 'uando un proceso pide un recurso, el al&oritmo verifica si asi&n ndole 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 m 3imo. 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 cu ndo 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&r ficas 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 est n 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 e emplar de un tipo de recurso (e.g., tres impresoras). %ada uno de los e emplares 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 con unto ]+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 e emplar), 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. A raso 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 e ecucin, de tal manera que cada proceso permanecer& en una espera indefinida (infinita), observe el e emplo 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 traba os parcialmente comple os que generan l,neas de impresin a un arc(ivo de spool pueden interbloquearse si el espacio disponible para traba ar se llena antes de completarse alguno de esos traba os. 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 enve ecimiento. Co$#eptos so re 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 traba o. 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&a le 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 mane ar los 0ead Loc9, *igura > -=. ) Prevencin ) 9o permitirlos ) :vitarlos ) "ifcil y caro ) Por perdida ) de informacin

) Permitirlos y recuperarlos

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 me or 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 e emplares idnticos. Los ciclos del $%+, el espacio de memoria, los arc(ivos y los dispositivos de "'S (como impresoras y unidades de cinta) son e emplos 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 e emplo, otro proceso est& utili#ando ese recurso), entonces el proceso solicitante debe esperar (asta que pueda adquirir el recurso. $tili#acin. "l proceso puede traba ar con el recurso (por e emplo, si el recurso es una impresora, el proceso puede imprimir en ella). Liberacin. "l proceso libera el recurso. La solicitud y liberacin de recursos son llamadas al sistema. 8lgunos e emplos 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 e emplo, 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 con unto 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 con unto. (ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T37.(tml

7. T.

Cara#teri&a#i'$.
0ebe ser obvio que los bloqueos mutuos son indeseables, pues cuando se dan, los procesos nunca terminan su e ecucin 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 e emplo 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 con unto de recursos que necesita un proceso est& disponible se le asigna (todo) y se le permite entrar en e ecucin. Si no es as,, el proceso deber& esperar (asta que su con unto 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 estn disponibles al mismo tiempo (costos de operacin altos). requeridos

+uede llevar un serio desperdicio de recursos, se requiere tener una gran cantidad de recursos para poder responder a cumplir peticin.

"s ineficiente por que decrementa la concurrencia del sistema. $na variante consiste en dividir el programa en bloques que puedan ser e ecutados con relativa independencia uno del otro. "sto reduce el desperdicio, pero implica un traba o 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 a a Los recursos deben ser numerados refle ando el orden en el cual la mayor,a de los traba os los usan, *igura > -A. Los procesos deben pedir los recursos en forma ascendente, figura # 75. +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 traba ar 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 traba o de todos los dem&s mane ando una cola de tareas (por e emplo, 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 traba o 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%r n 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 e ecucin. \ +roblemas: La utili#acin de recursos puede ser ba a. 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 e ecutar otra ve#.
o o

+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 e emplares de un tipo al mismo tiempo). Si necesita un tipo de recurso m&s ba a en la ordenacin, tiene que liberar los otros que retiene. +roblemas con la prevencin de deadloc9: $tili#acin ba a de recursos y reduccin de la productividad del sistema.

"ttpE>>HHH.cs.vir0inia.edu>J6nabe>iic2

2>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 (0i 9stra) 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 cerro os 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 M % suma V ? 5 35 3 V Y 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 traba o. %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 e emplo 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>so1G 1%."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 traba o 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 ba a. <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>iic2
Dete##i'$ : Re#upera#i'$.

2>notesDC."tml

"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 e ecucin. +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 con unto de vrtices H y aristas 8. "l con unto de vrtices H se divide en dos tipos, + J ]+3,+7, ... , +n^, el con unto formado por

todos los procesos del sistema, y : J]:3,:7, ... ,:n^, el con unto 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. 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. Si una gr&fica puede ser reducida para todos sus procesos entonces no (ay dead loc9. 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. 0eteccin de interbloqueo mediante grafos.

E E E E

Un grafo ; consiste de un con unto finito no vac!o. V 2 CDX; de: VDaristas;. P puntos (vrtices) con unto R de % pare as desordenadas de puntos de

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 pare as 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 aba o 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. .
Decuperaci$n ante /eadlocEs

7ecuperacin.

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 traba o reali#ado (asta ese momento. "ste puede parecer un precio pequeUo comparado con de ar que el interbloqueo se complique por varios factores. E E E "n primer lugar, puede no estar claro que el sistema este bloqueado o no. ;uc(os sistemas tienen medios pobres para suspender un proceso por tiempo indefinido y reanudarlo m&s tarde. 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. :ecuperarse de un interbloqueo de proporciones modestas puede suponer una cantidad ra#onable de traba o.

$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 E

Las prioridades pueden ser incorrectas, o un poco confusas debido a consideraciones especiales. 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 traba o. (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 E %ada proceso deber& pedir todos los recursos requeridos de una sola ve# y no podr& proceder (asta que le (ayan sido asignados todos. 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. 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 mane ar 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 traba os 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 E E Se permite todas las condiciones de e@clusin mutua, espera por y no apropiatividad. Se permite a los procesos mantener sus recursos mientras esperan por otros. "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 e emplo si tuviramos m&@ima ( i, ) J 9 define los recursos asignados a cada proceso, por e emplo 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 -;.0 <;.0 Si Re%uerimie$to (e i 32 Ne#esi(a(es (e i ir al segu$(o paso. Si$o error. Si re%uerimie$to (e i 32 (ispo$i le ir al ter#er paso. Si $o re#urso $o (ispo$i le Pi (e e esperar. 1a#er Dispo$i le 2 Dispo$i le 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 traba o (m) y final (n) vectores de longitud m y n respectivamente, (acer <raba o J 0isponible y final ( i ) J falso para i J 3,...n ,;.0 -;.0 <;.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. .ra%a(o < .ra%a(o > 2signacin $ i &4 Final $ i & < verdad ir al paso u$o. 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 m s importantes de un sistema operativo es la de administrar los procesos y tareas del sistema de c$mputo. En esta secci$n se revisar n 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 cu nto 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 est n listos (y !ue en al&5n momento paso por los otros dos planificadores) es al !ue le toca a)ora estar ejecut ndose 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 r pido y con car&as pesadas de%e ir de&rad ndose 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 m s 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 ejecut ndose 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 m s 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 est n %asadas en una pila !ue sirve como .ndice de una lista de procesos !ue se tienen !ue ejecutar. #rimero el tra%ajo m s 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 m s 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 est n utili+ando el procesador para cumplir con la ecuaci$n previa.

Co$#eptos (e pla$i*i#a#i'$.
"l ob etivo de la multiprogramacin es que en todo momento se e ecute un proceso para ma@imi#ar la utili#acin del %+$. "n un sistema monoprocesador nunca (abr& m&s de un proceso en e ecucin. 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 e ecuta (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 e ecucin de un proceso consiste en un ciclo de e ecucindel %+$ y de "'S, y los procesos se alternan entre estos dos estados. La e ecucin 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 e ecucin, 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 e ecucin 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 e ecucin 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 e ecucin a estado de espera (por e emplo, solicitud de "'S peticin de esperar la terminacin de uno de los procesos (i o).

7. T. V.

%uando un proceso cambia del estado de e ecucin al estado listo (por e emplo, cuando ocurre una interrupcin) %uando un proceso cambia del estado de espera al estado listo (por e emplo, al completarse la "'S). %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 fi o, ciertos traba os se planifican para ser terminados en un periodo espec,fico. "stos traba os 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 fi o es comple a por muc(as ra#ones: E Los usuarios deben proporcionar por adelantado y en forma precisa las necesidades de recursos de su traba o. <al informacin rara ve# est& disponible. E "l sistema debe e ecutar el programa de pla#o fi o 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 fi o. "sto puede ser dif,cil debido a la llegada de programas nuevos con demandas impredecibles. E Si se activan muc(os traba os de pla#o fi o, la planificacin puede llegar a ser tan comple a que necesite mtodos de optimi#acin sofisticados para asegurar que el pla#o fi o se cumpla. E "l mane o intenso de recursos requeridos por la planificacin de pla#o fi o 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 e ecuta (asta su terminacin. "sta planificacin es -o apropiativaG es usta en el sentido formal, pero algo in usta porque los grandes procesos (acen esperar a traba os pequeUos y, los traba os sin importancia (acen esperar a los traba os 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 e ecuta (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 e emplo, 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 e ecutable, siempre prevalecer& inmediatamente sobre cualquier otro proceso normal "#$%&'*+$%, e ecut&ndose. "#$%&'()(* es un simple algoritmo de planificacin sin roda as de tiempo. +ara procesos planificados ba o 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 e ecucin tan pronto como todos los procesos de prioridad m&s alta se bloqueen de nuevo. %uando un proceso "#$%&'()(* llegue a ser e ecutable, 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 e ecutable. $n proceso que llame a s#.e(E:iel( ser& colocado al final de la lista. -ing!n otro suceso mover& un proceso planificado ba o la pol,tica "#$%&'()(* en la lista de espera de procesos e ecutables con igual prioridad est&tica. $n proceso "#$%&'()(* se e ecuta (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 tra a!o m"s #orto DSFF;.


La disciplina del traba o m&s corto primero es -F apropiativa y en ella el traba o o proceso con tiempo estimado de e ecucin (asta terminacin m&s corto, es el siguiente en ser e ecutado. "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 traba os largos. S1D favorece a los procesos cortos a costa de los procesos largos. 8dem&s, selecciona los traba os que ser&n atendidos y que de ar&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 Tra a!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 e ecucin (asta su terminacin es el siguiente en e ecutarse. 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 e ecucin 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 e ecucin menor para Pnali#ar es el siguiente en ser e ecutado. $n proceso en e ecucin puede ser apropiado por un nuevo proceso con un tiempo estimado de e ecucin menor. <iene mayor sobrecarga que la planificacin S1D. 0ebe mantener un registro del tiempo de servicio transcurrido del proceso en e ecucin, lo que aumenta la sobrecarga. Los traba os 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 per uicio (acia los procesos (traba os) largos y el e@ceso de favoritismo (acia los nuevos traba os cortos. "s una disciplina no apropiativa. La prioridad de cada proceso est& en funcin no slo del tiempo de servicio del traba o, sino que tambin influye la cantidad de tiempo que el traba o (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 e ecucin menor para llegar a su terminacin es el siguiente en ser e ecutado, incluyendo las nuevas llegadas. "n la disciplina S1D, una ve# que el traba o comien#a su e ecucin sigue (asta que termina. "n S:<, un proceso en e ecucin puede ser apropiado por un nuevo proceso con n tiempo estimado de e ecucin menor. La S:< tiene una sobrecarga mayor que la S1D. 0ebe mantener un registro del tiempo de servicio transcurrido del traba o en e ecucin 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 traba o est& en funcin, no slo del tiempo de servicio del traba o, sino del

tiempo que un proceso (a estado esperando a ser servido, $na ve# que un traba o obtiene el %+$, se e ecuta (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$( Ro i$ 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$( ro i$. "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 ba a 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 fi o 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$( Ro i$;.


"#$%&',, es una me ora simple de "#$%&'()(*. <odo lo descrito arriba para "#$%&'()(* se aplica tambin a "#$%&',,, e@cepto que a cada proceso slo se le permite e ecutarse durante un cuanto de tiempo m&@imo. Si un proceso "#$%&',, (a estado e ecut&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 e ecucin como un proceso en e ecucin, 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$( Ro i$; 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 ba a 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 fi o 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 traba an 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 e ecutables est&n en la memoria principal. Si la memoria principal es insuficiente, ocurrir& lo siguiente g7T, <anenbaumh:

)abr& procesos e ecutables que se mantengan en disco. )abr& importantes implicaciones para la planificacin, tales como las siguientes:

"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. "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 subcon unto de los procesos e ecutables. 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 e ecutables 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 ob etivos:

Davorecer traba os cortos. Davorecer traba os limitados por la "ntrada ' Salida para optimi#ar el uso de los dispositivos de "ntrada ' Salida. 0eterminar la naturale#a de un traba o lo m&s r&pido posible y planificar el traba o (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 traba o 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 traba o 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 traba o 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 e ecutado (asta que las colas de los niveles superiores estn vac,as. $n proceso en e ecucin 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 e ecutar, 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 e emplo 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 venta a 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 e ecucin. 0espus de que sa (a movido, todo lo que se necesita (acer para de arlo listo para la e ecucin 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 m s r pido acceso. 1olo la memoria cac)e es m s r pida !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 o

A se utili#ar& un esquema r,gido de n!mero y tamaUo de particiones o un esquema din&mico y adaptable C. A se requerir& que los traba os de los usuarios sean diseUados para funcionar en una particin espec,fica o se permitir& que se e ecuten en cualquiera donde quepan C. A se requerir& o no que cada traba o 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 e ecutar& 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 e ecutarse 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 e ecucin. Los programas en la memoria cac( e ecutan 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 me ora en el rendimiento obtenida por la posibilidad de una e ecucin 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 me or 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 e ecucin lo referencia. Se considera que la /bs4ueda anticipada0 puede producir un me or 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 simult neamente 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 est n 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 din mica El proceso de compactaci$n es una instancia particular del pro%lema de asi&naci$n de memoria din mica, 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 cu l )ueco es el m s indicado para asi&narse. <as estrate&ias m s 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 m s 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 m s &rande. (na ve+ m s, 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 m s &randes, los cuales pudieran ser de m s 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 m s r pido. #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 m s 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 din mica 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 estdisponi%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 matem ticos, 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 r pida.

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 m s 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 m s 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 f cil 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. Y. 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 m s &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&ram ndose. 7. 1e elimina el pro%lema de fra&mentaci$n e3terna.

/esventajas de la pa&inaci$n 3. 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%er n asi&n rseles 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 llev ndose 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 m s procesos pueden ser un mismo se&mento, %ajo re&las de protecci$n7 aun!ue no sean propietarios de los mismos. 5. Enlace din mico 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%lecer n 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, d ndoles 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 m s f cil la modificaci$n de los mismos. 'am%ios dentro de un modulo no afecta al resto de los m$dulos. Es f cil el compartir se&mentos. Es posi%le !ue los se&mentos cre+can din micamente 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 m s 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 f cilmente 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%er n ser car&adas una a una &ener ndose 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, desperdici ndose 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 adem s 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%er n 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, actu ndose 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 m s pe!ue2o, !uedar n )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 comple a 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 traba o durante m&s tiempo del que toma su e ecucin. Los traba os 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 traba os la cpu no est& e ecutando dic(os traba os requeridos, por lo cual: 8utomati#ar la /transicin de traba o a traba o0 reduce la cantidad de tiempo perdido entre traba os. Surgieron los sistemas de /procesamiento por lotes0. "n el /procesamiento por lotes de flu o nico0 los traba os se agrupan en /lotes0 encol&ndose para su e ecucin. "l /procesador de flu os de traba os01

Lee las instrucciones del /lengua e de control de traba os0. Dacilita la preparacin del traba o siguiente. "mite instrucciones al operador del sistema. 8utomati#a funciones anteriormente manuales. %uando finali#a un traba o efect!a las /operaciones de mantenimiento0 apropiadas para facilitar la transicin del siguiente traba o.

"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 e emplo:

VENTAFAS 2 La cabe#a de lectura no se mueve demasiado en la lectura de un arc(ivo. ASIXNACIN LIXADA

DESVENTAFAS 2 +roduce fragmentacin e@terna.

"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 e emplo:

VENTAFAS 2 -o produce fragmentacin e@terna.

DESVENTAFAS

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 e emplo:

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 dem s !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 m s simple son las particiones fijas. /ic)as particiones se crean cuando se enciende el e!uipo y permanecer n 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 m s 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 D pido8 1e mantienen listas li&adas separadas de acuerdo a los tama2os de los )uecos, para as. %uscarle a los procesos un )ueco m s r pido 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 m s &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 e ecucin 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 traba o en espera de e ' s ceder& la cpu a otro traba o 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 e ecucin del sistema. "s necesario que varios traba os residan a la ve# en la memoria principal.

Multiprograma#i'$ (e Parti#i'$ Fi!a+ Tra(u##i'$ : Carga A solutas Las QparticionesS del almacenamiento principal:

Son de tamaUo fi o. 8lo an un proceso cada una. La cpu se cambia r&pidamente entre los procesos creando la ilusi'$ (e simulta$ei(a(.

Los traba os se traduc,an con ensambladores y compiladores absolutos para ser e ecutados 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&a les Los compiladores, ensambladores y cargadores de relocali#acin:

Se usan para producir programas relocali#ables que puedan ser e ecutados en cualquier particin disponible de tamaUo suficiente para aceptarlos (ver Digura T.? g`, 0eitelh). Son m&s comple os que los absolutos. ;e oran 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 fi a la fragmentacin se produce cuando:


Los traba os del usuario no llenan completamente sus particiones designadas. $na particin permanece sin usar porque es demasiado pequeUa para alo ar un traba o que est& en espera.

Multiprograma#i'$ (e Parti#i'$ Varia le


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 fi os de memoria, es decir que la particin de un traba o es su propio tamaUo. Se consideran /es4uemas de asignacin contigua0, dado que un programa debe ocupar posiciones adyacentes de almacenamiento. Los procesos que terminan de an disponibles espacios de memoria principal llamados /agu eros01

+ueden ser usados por otros traba os que cuando finali#an de an otros /agu eros0 menores. "n sucesivos pasos los /agu eros0 son cada ve# m&s numerosos pero m&s pequeUos, por lo que se genera un desperdicio de memoria principal.

Com i$a#i'$ (e agu!eros D"reas li res; %onsiste en fusionar agu eros adyacentes para formar uno sencillo m&s grande. Se puede (acer cuando un traba o termina y el almacenamiento que libera tiene l,mites con otros agu eros. Compresi'$ o Compa#ta#i'$ (e Alma#e$amie$to +uede ocurrir que los agu eros (&reas libres) separados distribuidos por todo el almacenamiento principal constituyan una cantidad importante de memoria:

+odr,a ser suficiente (el total global disponible) para alo ar 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:

0e a un solo agu ero 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 traba o 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 me or a uste01 o $n traba o nuevo es colocado en el agu ero en el cual quepa de forma m&s a ustada: 0ebe de arse el menor espacio sin usar. /%strategia de primer a uste01 o $n traba o nuevo es colocado en el primer agu ero disponible con tamaUo suficiente para alo arlo. /%strategia de peor a uste01 o %onsiste en colocar un programa en el agu ero en el que quepa de la peor manera, es decir en el m&s grande posible: "l agu ero restante es tambin grande para poder alo ar a un nuevo programa relativamente grande.

Multiprograma#i'$ #o$ I$ter#am io (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 traba o se e ecuta (asta que ya no puede continuar:

%ede el almacenamiento y la cpu al siguiente traba o. La totalidad del almacenamiento se dedica a un traba o durante un breve per,odo de tiempo. Los traba os son /intercambiados0, d&ndose que un traba o 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 me ora al reducir el tiempo (e i$ter#am io+

;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+ m s 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 autom ticamente pro&ramas m s &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 m s 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 est n 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 e ecucin 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: Sistemas de multiprogramacin en memoria real: ;ultiprogramacin en particin fi a: 8bsoluta. :elocali#able (reubicable). ;ultiprogramacin en particin variable. Hirtual: o ;ultiprogramacin en almacenamiento virtual: +aginacin pura. Segmentacin pura. %ombinacin paginacin ' segmentacin.
o

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 e ecucin. /&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 e ecutarse en el almacenamiento real:

Las direcciones virtuales deben ser transformadas dentro de las direcciones reales, mientras el proceso est& en e ecucin. 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 e ecutarse 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 e ecutan 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 e ecutar 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 fi o.

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 o o

%ontiene una entrada para cada bloque del proceso. Las entradas se mantienen en orden secuencial para el bloque 6, bloque 3, etc. 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 e ecuta 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 venta as 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 fi o 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 e ecucin (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 e ecucin (ace referencia a la direccin virtual v : (p9d). 8ntes que un proceso comience su e ecucin, 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 e emplo 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 e ecucin de instrucciones. Se requiere otro ciclo de e ecucin 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 e ecucin (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 Com i$a#i'$ (e Tra$s*orma#i'$ Aso#iativa I Dire#ta

Se utili#a un almacenamiento asociativo capa# de mantener solo un pequeUo porcenta e 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 e ecutando 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 fi as) 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 e ecucin 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 din micamente 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 cu les est n 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 m s 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 tendr n 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 m s 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 m s 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 dem s. 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 ba o 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 e ecutarse 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 alo ar 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 e ecucin0 de un segmento puede e ecutarlo 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 e ecucin para producir modos de proteccin !tiles se dan en la <abla T.3 y en la <abla T.7 g`, 0eitelh.

Mo(o 6 3 7 T V Y

Le#tura Es#ritura S S S S S S

E!e#u#i'$ E8pli#a#i'$ S S S -o (ay permiso de acceso Solo e ecucin Solo lectura Lectura ' e ecucin Lectura ' escritura pero no e ecucin 8cceso no limitado

Ta la <.,+ E!emplo (e #om i$a#i'$ (e a##esos.

Mo(o Apli#a#i'$ 6 3 7 T V Y Seguridad $n programa disponible a los usuarios, que no pueden copiarlo ni modificarlo, pero s, e ecutarlo :ecuperacin de informacin $n programa puede ser copiado o e ecutado, pero no puede ser modificado +rotege los datos contra un intento errneo de e ecutarlos "ste acceso se concede a los usuarios de confian#a

Ta la <.-+ E!emplo (e apli#a#io$es (e la #om i$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 alo ar 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 e ecucin (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 e ecucin 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 e ecucin del proceso.

I$i#io+

Fi$+

Compartimie$to e$ u$ Sistema (e Segme$ta#i'$ $na de las venta as 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 f cil 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. #r cticamente 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 sum ndole 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 est n trayendo muc).simos m s %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 m s p &inas al proceso. <a &r fica 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 m s 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 m s !ue el de 5, por!ue se necesitan die+ fallos para car&arlo. 4 esto de%er.a llam rsele Qanomal.a de 6elady con correcci$n.

.@.#Sistemas de pa0inacin se0mentacin.


Sistemas (e Pagi$a#i'$ I Segme$ta#i'$
Ffrecen las venta as 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 e ecucin (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 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. 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. "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 e ecutar 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 e ecucin 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 porcenta e importante del almacenamiento primario cuando se e ecutan 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 m s solicitados. Otro aspecto importante es la estrate&ia para car&ar p &inas ( o se&mentos ) a la memoria D4M. 1e usan m s 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 ser n 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. %on untos de traba o.

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 pro a ili(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 a ustan peridicamente todos los /bits referenciados0 a Q6S: o Se logra un nuevo inicio.

Se vuelve vulnerable al reempla#o a!n a las p&ginas activas, pero solo brevemente, mientras se rea ustan los bits.

Los /bits modificados0 $o se a ustan 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 subcon untos 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 e ecutar eficientemente mientras su subcon unto 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 subcon unto 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 subcon unto 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 /subcon untos favorecidos0 tambin son llamados /con untos de traba o0 o />orking sets0 (ver Digura T.TY g`, 0eitelh).

I$i#io+

Fi$+

Co$!u$tos (e Tra a!o


0enning desarroll un punto de vista de la actividad de paginacin de un programa llamado la /teor!a de con unto de traba o del comportamiento de un programa0 g`, 0eitelh. $n /con unto de traba o0 es una coleccin de pginas a las cuales un proceso 2ace activamente referencia.

0enning sosten,a que para que un programa se e ecutara eficientemente, su con unto de traba o debe ser mantenido en el almacenamiento primario, para evitar la /2iperpaginacin0. $na /pol!tica de administracin de almacenamiento por con unto de traba o0 trata de mantener el con unto de traba o de los programas activos en el almacenamiento primario. La decisin de aUadir un nuevo proceso al con unto activo de procesos (aumentar el nivel de multiprogramacin):

Se basa en si (ay suficiente espacio disponible en el almacenamiento primario como para acomodar el con unto de traba o del nuevo proceso. Se toma generalmente de forma (eur,stica ya que es imposible para el sistema conocer por anticipado el tamaUo del con unto de traba o de un proceso dado.

"l con unto de traba o de p&ginas de un proceso />(t9>)0 en el momento /t0 es el con unto 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 con unto de traba o01

La determinacin del tamaUo de />0 es muy importante. 8l aumentar el tamaUo de la ventana />0 aumenta el tamaUo del con unto de traba o (ver Digura T.T` g`, 0eitelh).

/%l verdadero con unto de traba o de un proceso es el con unto de pginas 4ue deben estar en el almacenamiento primario para la e ecucin efica7 de este proceso0. Los con untos de traba o #am ia$ mientras un proceso est& en e ecucin:

%omplica la administracin precisa del almacenamiento primario en base a esta estrategia. /Los con untos de traba o son transitorios y el siguiente con unto de traba o del proceso puede diferir substancialmente de su con unto de traba o 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 v lido / inv lido 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 inv lida 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 e ecucin. 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 e ecucin 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 e ecuta 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 e ecucin de un proceso se puede reducir. "ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO ."tmKO//

.?.%,iberacin de p40ina.
Li era#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 e ecucin. "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 con untos de traba o0. "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 fi o 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 m s 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 est n administrados por el sistema operativo por medio de una parte electr$nica : mec nica 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 vol til 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 desplie&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 ejemplo, 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 m s 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 m s 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 e ecutadas, 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 con unto 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 e ecutando dic(os procesos. "stos arc(ivos se crean durante la e ecucin de un sistema y los utili#a para el almacenamiento de informacin, intercambio y organi#acin mientras se e ecuta el sistema, su tamaUo es muy variable y terminan al detener la e ecucin del sistema, muc(os de ellos son borrados, por e emplo, los arc(ivos @.tmp Ar#.ivo Real+ "s un ob eto 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 lengua es de comandos, interpretador de comandos, mane ador 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. Nom re (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 fi a, 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 fi a 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 traba o pudiendo luego leerse el arc(ivo secuencialmente.

Atri utos (e Ar#.ivo %ada arc(ivo tiene:

Su nombre y datos. "lementos adicionales llamados atri utos, que var,an considerablemente de sistema a sistema.

8lgunos de los posi les atri utos 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 i liote#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_+ a uste 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$ Da rir;+ 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#ri ir;+ 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 D us#ar;+ especifica el punto donde posicionarse. %ambia la posicin del apuntador a la posicin activa en cierto lugar del arc(ivo. Xet attri utes Do te$er atri utos;+ permite a los procesos obtener los atributos del arc(ivo. Set attri utes Desta le#er atri utos;+ 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 e emplo obvio. Re$ame D#am iar (e $om re;+ 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 e ecucin 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 refle adas 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.


3l 7l Tl Vl Yl ?l ;"%8-*S;FS 0" F:Z8-*k8%*FLFZ*%8 0*:"%<F:*F 0" *0"-<*D*%80F:"S S*S<";8S <"F:*%FS 0" 8:%)*HFS ;"%8-*S;FS 0" F:Z8-*k8%*FD*S*%8 ;"%8-*S;FS 0" "'S S%)"0$L*-Z "'S :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 ob etivo es el de activar y desactivar a travs de las rutinas de abrir y cerrar arc(ivos y verifica el modo de acceso.

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. 3 Myte

Los arc(ivos de $-*. se estructuran de esta manera.

La segunda es una sucesin de registros de tamaUo fi o.

3 :egistro +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.

)ormig korra %erd a o Zato Haca +erro %abr a *bis Len M!(o +ony :ata Zusan o

Zallin a

%order o

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

I$*orma#i'$ a#er#a (e #a(a -ombre del ar#.ivo 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

$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 e emplo, 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 me ora a la idea de tener un solo directorio para todos los arc(ivos consiste en tener un directorio por usuario. Figura # 4.

0irectorio :a,#

0irectorio del usuario %

8rc(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 traba o ( directorio actual). $n usuario puede designar un directorio como el directorio de traba o actual. "n $-*., todos los nombres de ruta que comien#an con una diagonal ' son absolutosG todos los otros son relativos al directorio de traba o actual del usuario. Si el directorio de traba o actual es 'usr'ast'mailbo@ puede referirse simplemente como mailbo@.

)ttp8//eduadis.itlapiedad.edu.m3/X)oce&ueras/so2/so2Y44.)tml

%.1 3ecanismos de acceso a los arc"ivos.


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 e ecutar 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 mane o 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. -l de bloc9 contiguos (7,7 y V)

Mloc libre de inicio

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 mane ar los espacios en disco e@isten los siguientes mtodos: %ontiguos

Ligados *nde@ados %ontiguos. "sta asignacin requiere que cada arc(ivo ocupe un con unto 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 8 *nicio 3 Dinal Y6

8cceso
Y6

Secuencial S, 0irecto -o

NOTA+ 2 Lento 2 "vita la compactacin

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 mane o 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#. (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 e emplo -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 introdu o 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 introdu o 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 con unto de mecanismos que permita llevar a cabo las pol,ticas que gobiernan el uso de los recursos. "stas pol,ticas pueden ser fi as, 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 con unto general de mecanismos por medio de los cuales se puedan establecer pol,ticas diferentes.

<.=., Domi$ios (e Prote##i'$.


$n computador contiene un con unto de ob etos que (an de ser protegidos. "stos ob etos pueden ser tanto (ard/are (%+$s, segmentos de memoria, discos, impresoras, etc.) como soft/are (procesos, fic(eros, sem&foros, etc.). %ada ob eto tiene un identificador !nico en el

sistema y un con unto de operaciones que le pueden ser aplicadas. Las operaciones posibles dependen del ob eto. +or e emplo, 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 ob etos. +ara estudiar los diferentes mecanismos de proteccin se introduce el concepto de (omi$io (e prote##i'$. $n dominio de proteccin es un con unto de pares o%(eto)derec#os, de forma que cada par especifica un ob eto y alg!n subcon unto de operaciones que se pueden reali#ar sobre dic(o ob eto.

Figura #. -

:(emplos de dominio de proteccin.

"n cada instante de tiempo, cada proceso se e ecuta 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 con unto de ob etos 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 con unto de ob etos que puede ser accedido depende de la identidad del proceso. Los cambios de dominio se producen cuando un proceso env,a un mensa e a otro y espera la respuesta. %ada procedimiento puede ser un dominio, en cuyo caso el con unto de ob etos 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 ob etos que puede utili#ar, y si pueden ser accedidos para lectura, escritura y'o e ecucin. 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 e ecutarse en modo n!cleo. "ste cambio de modo de e ecucin 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 ob etos 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 ob etos. %ada elemento de la matri# muestra los derec(os de un dominio sobre un ob eto.

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 ob eto 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 ob etos, 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 ob eto se le asocia una lista ordenada que contiene todos los dominios que pueden acceder al ob eto 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 e ecucin. Sin embargo, un esquema basado en listas de control de acceso puede ser m&s general:

"l propietario de un ob eto 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 ob eto.

<.=.< 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 ob etos 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 ob eto est& representado por una capacidad. %uando un proceso quiere e ecutar una operacin sobre un ob eto, (a de especificar la capacidad del ob eto como par&metro. La simple posesin de la capacidad permite que se conceda el acceso (siempre que ste est permitido sobre el ob eto). %ada capacidad tiene un campo que indica el tipo del ob eto, un campo de derec(os de acceso, y un campo que identifica al ob eto.

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 e ecutan en ese dominio no deben de acceder a la lista de forma directa. +or el contrario, cada capacidad es un ob eto 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 ob etos, 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 ob etos. %ada ob eto tiene asociado una etiqueta que indica si se trata de un ob eto 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 ob etos (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 ob eto, las capacidades tienen permisos genricos que son aplicables a todos los ob etos. 8lgunos de estos permisos son: Copiar #apa#i(a(: crear una nueva capacidad para el mismo ob eto. Copiar o !eto: %rear un ob eto duplicado con una nueva capacidad. Elimi$ar #apa#i(a(: borrar de forma permanente una entrada de la lista>%, pero de ando inalterado al ob eto. Elimi$ar o !eto: eliminar de forma permanente un ob eto 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 ob eto. +or e emplo, 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 e emplo, (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 ob etos 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 ob eto, ya que ello supone locali#ar todas las capacidades que (acen referencia al ob eto, 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 ob eto en s,, sino a un ob eto indirecto que apunta al ob eto. 0e esta forma, si se quiere pro(ibir los accesos, basta con romper el enlace entre el ob eto indirecto y el ob eto. Ftra posibilidad consiste en asociar a cada ob eto 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 ob eto puede solicitar que el n!mero aleatorio del ob eto 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+ m s 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. 7. T. V. +roteccin de los procesos del sistema contra los procesos de usuario. +roteccin de los procesos de usuario contra los de otros procesos de usuario. +roteccin de ;emoria. +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 ob etos 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$i ili(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 traba ando 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 con untamente 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 refle a 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 traba o 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 e emplo, 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, " AL A< L A= L," L AA AB " I " " S

D, DD<

(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 ejecut ndose 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 ejecut ndose en el dominio ;/4; tiene los mismos privile&ios !ue en ;/9;, pero adem s 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 Est ticas. '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 din mica. En este caso continuaremos considerando las matrices de acceso, aun!ue en su versi$n din mica. 6 sicamente 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 ejecut ndose 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 ejecut ndose 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 podr n )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%er n 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 ejecut ndose en ;/9; puede cam%iarse al dominio ;/4; (a)7 un proceso ejecut ndose en ;/2; puede cam%iarse a ;/3;(%) y un proceso ejecut ndose 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 e emplos 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 e emplos 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 <ar etas 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 con untos 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 flu o 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$i ili(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.

@ Fa ri#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 mensa es 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 ob etos que !nicamente cada usuario puede tener, como tar etas con banda magntica, al estilo de los ca eros 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 traba o, 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 e ecutados 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 e ecutan 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 ?om a L'gi#a: "s un cdigo incrustado en un programa que comprueba si ciertas condiciones se cumplen, en cuyo caso e ecuta alguna accin no autori#ada. "stas condiciones pueden ser la e@istencia de ciertos fic(eros, una fec(a particular, la e ecucin de una aplicacin concreta, etc. $na ve# que la bomba e@plota, puede alterar o eliminar datos, parar el sistema, etc. $n e emplo 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 e ecutado por cierto usuario o por la ocurrencia de una secuencia determinada de sucesos. m Ca allo (e Tro:a D.ro(an Dorse;: "s una rutina oculta en un programa de utilidad. %uando el programa se e ecuta, se e ecuta 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 e emplo, un programa caballo de troya puede ser un editor que cuando es e ecutado 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, e ecucin 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. ba o 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 traba o 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 e ecucin 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 mensa es 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 mensa e 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 mensa e 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

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 mensa e firmado. "l receptor1 o $sa la clave pblica del remitente para descifrar el mensa e. o Zuarda el mensa e firmado para usarlo en caso de disputas. +ara mayor seguridad se podr,a actuar como sigue: "l remitente puede codificar el mensa e ya cifrado utili#ando la clave pblica del receptor. La clave privada del receptor permite recuperar el mensa e 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 mensa e 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 mensa e. 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