Sie sind auf Seite 1von 168

SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS
RESUMEN

El texto presenta la evolucin de los sistemas operativos a lo largo de la historia, introduciendo los conceptos fundamentales relativos a stos, como podran ser la administracin de procesos. As mismo, se ha tratado de dar todas las referencias posibles sobre Sistemas Operativos desconocidos para la mayora y ue han !ugado un papel m"s o menos determinante en la historia. Se han incluido algunos ue no han pasado de vigencia, pero lo citamos como simple curiosidad. #e cual uier manera, la lista proporcionada es muy incompleta dado el gran n$mero de Sistemas Operativos ue existen o ue han existido.

INDICE GENERAL
%ES&'E( )))))))))))))))))))))))))))). v *(+%O#&,,*-( ))))))))))))))))))))))))).. xi CAPTULO 1 PANORAMA GENERAL )))))))))))))))))).. .

.... /0u Es &n Sistema Operativo1 )))))))))))))))))) . ..2. +ipos #e Sistemas Operativos ))))))))))))))))))))). 3 ..4. 5istoria #e 6os Sistemas Operativos 7 8eneraciones ))))))))))). 9 CAPTULO 2 ADMINISTRACIN DEL PROCESADOR ))))))...................... .2 2... *ntroduccin : #efiniciones Sobre ;rocesos ))))))))))))))).. .2 2.2. Estados #e ;rocesos ))))))))))))))))))))))))). .< 2.4. ;rocesamiento #e *nterrupciones )))))))))))))))))))). .= 2.>. El ($cleo #el Sistema Operativo )))))))))))))). )))))) 2? 2.5. Polticas De Planificacin De Procesos .. 21 2.3. (iveles #e ;lanificacin #el ;rocesador ))))))))).. ))))))). 22 2.=. Ob!etivos #e 6a ;lanificacin )))))))))))))))))))))) 2> 2.@. ,riterios #e ;lanificacin )))))))))))))))))......................... 2< 2.9. ;lanificacin Apropiativa Aersus (o Apropiativa )))).)))))))))) 2= 2..?. Algoritmos #e ;lanificacin #e ;rocesos )))))))))))))))).. 29 2..?... ;lanificacin ;rimero En Entrar, ;rimero En Servirse )))))))))).. 29 2..?.2. ;lanificacin Sigue El +raba!o '"s ,orto ))))))))))))))). 4. 2..?.4. ;lanificacin ;or ;rioridad )))))))))))))))))))))) 44 2..?.>. ;lanificacin +iempo %estante '"s Breve ))))))))))))))). 44 2..?.<. ;lanificacin %ound %obin )))))))))))))))))))))). 43 2..?.3. ;lanificacin #e ,olas #e 'ultiples (iveles )))))))))))))).. 49

CAPITULO 3 ADMINISTRACIN DE PROCESOS CONCURRENTES ))))....... >. 4... ;rocesos ,oncurrentes Asincrnicos ))))))))))))))))))). >. 4.2. ;rocesamiento En ;aralelo ))))))))))))))))))))))).. >. 4.4. &na Estructura ;ara *ndicar El ;aralelismoC ,obeginD,oend ))))))))). >2 4.>. Exclusin 'utua )))))))))))))))))))))))))))). >> 4.<. Secciones ,rticas )))))))))))))))))))))).................... >@ 4.3. ;rimitivas #e Exclusin 'utua )))))))))))))))))))))). >9 4.=. *mplementacin #e 6as ;rimitivas #e Exclusion 'utua ))))))))))).. <. 4.@. Algoritmos #e Exclusin 'utua )))))))))))))).. ))))))) <2 4.@... #esarrollo *ntuitivo )))))))))))))))))))))))))).. <2 4.9. Algoritmo #e #eEEer )))))))))))))))))))).. ))))).. 3. 4..?. Algoritmo #e ;eterson ))))))))))))))))))))))))) 3< 4.... Exclusion 'utua #e (F;rocesos ))))))))))))))))))))) 3@ 4...... Algoritmo #e #i!Estra ))))))))))))))))))))))))) 3@ 4....2. Algoritmo #e 6amport )))))))))))))))))))))))).. =. 4..2. Sem"foros )))))))))))))))))))))))))))))). =< 4..2... SincroniGacin #e ;rocesos ,on Sem"foros )))))))))))))).. =@ 4..2.2. Blo ueos 'utuos : Blo ueos *ndefinidos ))))))))))))))....... @? 4..4. 6a %elacin ;roductor 7 ,onsumidor )))))))))))))))))).. @< 4..>. Sem"foros ,ontadores )))))))))))))))))))))))).. @9 CAPTULO 4 ADMINISTRACIN DE LA MEMORIA )))))))))))))) 9? >... *ntroduccin Al Almacenamiento %eal ))))))))))))))))))) 9? >.2. %e uisitos ;ara 6a Administracin #e 6a 'emoria ))))))))))))) 9. >.2... %eubicacin ))))))))))))))))))))))))))))) 9. 4.2.2. ;roteccin ))))))))))))))))))))))))))))).. 94 >.2.4. ,omparticin ))))))))))))))))))))))))))))..

94 >.2.>. OrganiGacin 6gica ))))))))))))))))))))))))).. 9< >.2.<. OrganiGacin Hsica )))))))))))))))))))))))))) 9< >.4. ,arga #e ;rogramas En 'emoria ;rincipal )))))))))))))))). 93 >.4... ;articin Hi!a ))))))))))))))))))))))))))))) 93 >.4..... +amaIos #e ;articin )))))))))))))))))))))))) 93 4.3.1.2. Algoritmo De Ubicacin . 99 4.3.1.3. Particin Dinmica .. 101 4.3.1.4. Algoritmo De Ubicacin . 103 4.3.1.5. Algoritmos De eem!la"o . 105 >.4...3. %eubicacin )))))))))))))))))))))))))))). .?< >.>. 'emoria Airtual )))))))))))))))))))))))))))). .?3 >.>... Espacio #e #ireccionamiento : Espacio #e 'emoria ))))))))))) .?= >.<. ;roteccin #e 'emoria ))))))))))))))))))))))))) .?9 CAPTULO 5 ADMINISTRACN DE LOS ARCHIVOS ))))))))))))) ..? <... *ntroduccin )))))))))))))))))))))))))))))) ..? <.2. Hunciones #el Administrador #e Archivos )))))))))))))))).. ... <.4. El Sistema #e Archivos ))))))))))))))))))))))))) ..2 <.>. Archivos ))))))))))))))))))))))))))))))).. ..> <.>... (ombre #e 6os Archivos ))))))))))))))))))))))).. ..> <.>.2. Estructura #e &n Archivo ))))))))))))))))))))))). ..> <.>.4. +ipos #e Archivos ))))))))))))))))))))))))).. ... ..< <.>.>. Acceso A &n Archivo ))))))))))))))))))))))))) ..< <.>.<. Atributos #e Archivo ))))))))))))))))))))))))).. ..3 <.>.3. Operaciones ,on Archivos ))))))))))))))))))))))) ..= <.>.=. Archivos 'apeados A 'emoria ))))))))))))))))))))) ..@

<.<. #irectorios )))))))))))))))))))))))........................... ..9 <.<... Sistemas Jer"r uicos #e #irectorios ))))))))))))))).)). ..9 <.<.2. (ombre #e 6as %utas #e Acceso ))))))))))))))))))).. .2? <.<.4. Operaciones ,on #irectorios ))))))))))))))))))))... .2. <.3. *mplantacin #el Sistema #e Archivos : Sus %elaciones ,on 6a Asignacin : 6iberacin #e Espacio ))))))))))))))))))). .22 <.3... *mplantacin #e Archivos ))))))))))))))))))))).)) .24 <.3.2. *mplantacin #e #irectorios )))))))))))))))))))))). .4? <.3.4. Archivos ,ompartidos ))))))))))))))))))))))))) .4? CAPTULO 6 ENTRADA / SALIDA )))))))))..)))))))))))... .4> 3... *ntroduccin )))))))))))))))))))))))))))))) .4> 3.2. ;rincipios #el 5ardKare #e EDS ))))))))))))))))))))) .4> 3.2... #ispositivos #e EDS ))))))))))))))))))))))))).. .4< 3.2.2. ,ontroladores #e #ispositivos ))))))))))))))))))))) .43 3.2.4. Acceso #irecto A 'emoria L#maM ))))))))))))))))))).. .4@ 3.4. ;rincipios #el SoftKare #e EDS ))))))))))))))))))))).. .>? 3.4... Ob!etivos #el SoftKare #e EDS ))))))))))))))))))))) .>. 3.4.2. 'ane!adores #e *nterrupciones )))))))))))))))))))).. .>2 3.4.4. 'ane!adores #e #ispositivos ))))))))))))))))))))).. .>4 3.>. #iscos F 5ardKare ;ara #iscos ))))))))))))))))))))). .>> 3.>... #iscos ))))))))))))))))))))))))))))))). .>> 3.>.2. 5ardKare ;ara #iscos )))))))))))))))))))))))). .>> 3.<. Operacin #e Almacenamiento #e #isco #e ,abeGa 'vil ))))))))) .>< 3.3. Algoritmos #e ;rogramacin #el BraGo #el #isco ))))))))))))). .>= 3.=. ;or u Es (ecesaria 6a ;lanificacin #e #iscos ))))))))))))).. .>= 3.@. ,aractersticas #eseables #e 6as ;olticas #e ;lanificacin #e #iscos ))).. .>@

3.9. OptimiGacin #e 6a B$s ueda En #iscos )))))))))))))))).. .>9 3.9... ;lanificacin Hcfs L;rimero En 6legar, ;rimero En Ser ServidoM )))))). .>9 3.9.2. ;lanificacin Sstf L'enor +iempo #e B$s ueda ;rimeroM ))))))))) .>9 3.9.4. ;lanificacin Scan )))))))))))))))))))))))))) .<? 3.9.>. ;lanificacin Scan #e ( 7 ;asos )))))))))))))))))).). .<? 3.9.<. ;lanificacin , F Scan LB$s ueda ,ircularM ))))))))))))).)) .<. 3.9.3. Es uema Eschenbach )))))))))))))))))))).)))) .<. 3.9.=. ,onclusiones )))))))))))))))))))))))).)))) .<. B*B6*O8%AH*A ........................................................................................................ .<2

INDICE DE FIGURAS
...C ,omponentes de un sistema de cmputo )))))))))))))) 2 ..2C 'odelo del sistema operativo para un solo usuario ))))))))).. 2 ..4C Sistemas Operativos para %ed )))))))))))))))))). < ..>C 5ardKare del sistema de cmputo ))))))))))))))))... 3 2.1: Multiprogramacin de 4 programas .. 14 2.2C &n proceso puede estar en e!ecucin, blo ueado o listo ))))))). .< 2.4C (iveles de planificacin del procesador )))))))))))))).. 24 2.>C +ipos de planificacin del procesador ))))))))))))))). 2@ 2.<C #iagrama de secuencia para los traba!os de A,B,, ue utiliGa el algoritmo H,HS ))))))))))))))))))))))))). 4? 2.3C #iagrama de secuencia para los traba!os ,,B,A con el algoritmo H,HS .. 4? 2.=C #iagrama de tiempo de la secuencia de tareas B, #, A, ,, con el algoritmo SJ( )))))))))))))))))))))))))). 42 2.@C #iagrama de tiempo de la secuencia de traba!os A,B,,,# con el algoritmo apropiante S%+ ))))))))))))))))))))) 4> 2.9C 6nea de tiempo para la misma secuencia de traba!os A,B,,,#, con el algoritmo SJ( no apropiativa ))))))))))))))))))).. 4< 2..?C #iagrama de tiempo para la secuencia de traba!os A,B,,,# con el algoritmo de round robin apropiativo ))))))))))))))).. 4= 2...C ,ambios de contexto de el traba!o A con tres uantum de tiempo ))) 49 >..C %e uisitos de direccionamiento para un proceso ))))))))))) 92 >.2C E!emplo de participacin est"tica de una memoria de >'b )))))) 9@ >.4C Asignacin de memoria con participacin fi!a )))))))))))).. .?? >.>C Efectos de la participacin din"mica ))))))))))))))).). .?2 >.<C E!emplo de una configuracin de memoria antes y despus de asignar un blo ue de .3 Nb )))))))))))))))))))))))) .?4 >.3C %elacin entre espacios de direccin y de memoria en un sistema de memoria virtual )))))))))))))))))))))))))) .?@ >.=C +abla de memoria para mapear una direccin virtual ))))))))). .?9 <..C &n solo directorio compartido por todos los usuarios ))))))))).. ..9 <.2C &n directorio por usuario ))))))))))))))))))))).. .2? <.4C &n "rbol arbitrario por usuario ))))))))))))))))))). .2? <.>C Encadenamiento de blo ues o lista ligada de blo ues ))))))))) .2< <.<C Encadenamiento de blo ues de ndice ))))))))))))))). .23 <.3C +ransformacin de archivos orientada hacia blo ues ))))))))). .29 <.=C Es uema de un nodoFi )))))))))))))))))))))).. .4. 3..C &n controlador realiGa completamente una transferencia #'A ))))). .49 3.2C Hactores de separacinC sin separacin, separacin simple y separacin doble )))))))))))))))))))))))))))))). .>? 3.4C ,apas del sistema de entrada D salida y las principales funciones de cada capa )))))))))))))))))))))))))))))).. .>. 3.>C Es uema de un disco de cabeGa mvil ))))))))))))))).. .>< 3.<C ,omponentes del acceso a un disco )))))))))))))))).. .>3

INDICE DE TABLAS
2..C +ipos de interrupciones )))))))))))))))))))))). .@ 2.2. #isciplinas de planificacin del procesador )))))))))))))... 2@ 2.4C ,omparacin de los algoritmos de planificacin ))))))))))).. >? >... +cnicas de administracin de memoria ))))))))))))))) 9@ 3..C ,ontroladores de EDS, direcciones de EDS y vector de interrupciones )). .4=

INTRODUCCION

A finales de los >?Os el uso de computadoras estaba restringido a a uellas empresas o instituciones ue podan pagar su alto precio, y no existan los sistemas operativos. En su lugar, el programador deba tener un conocimiento y contacto profundo con el hardKare, y en el infortunado caso de ue su programa fallara, deba examinar los valores de los registros y p"neles de luces indicadoras del estado de la computadora para determinar la causa del fallo y poder corregir su programa, adem"s de enfrentarse nuevamente a los procedimientos de apartar tiempo del sistema y poner a punto los compiladores, ligadores, etcP para volver a correr su programa, es decir, enfrentaba el problema del procesamiento serial. Es decir, se comenG a ver ue las tareas mismas del operador podan plasmarse en un programa, el cual a travs del tiempo y por su enorme comple!idad se le llam QSistema OperativoQ. As, tenemos entre los primeros sistemas operativos al Hortran 'onitor System L H'S M e *BS:S R+an92S. Al tratar de crear un solo sistema operativo para computadoras ue

podan dedicarse a un propsito, al otro o ambos, puso en evidencia la problem"tica del traba!o en e uipos de an"lisis, diseIo e implantacin de sistemas grandes. Surge tambin en la tercera generacin de computadoras el concepto de la multiprogramacin, por ue debido al alto costo de las computadoras era necesario idear un es uema de traba!o ue mantuviese a la unidad central de procesamiento m"s tiempo ocupada, as como el encolado Lspooling M de traba!os para su lectura hacia los lugares libres de memoria o la escritura de resultados. Sin embargo, se puede afirmar ue los sistemas durante la tercera generacin siguieron siendo b"sicamente sistemas de lote. En la cuarta generacin la electrnica avanGa hacia la integracin a gran escala, pudiendo crear circuitos con miles de transistores en un centmetro cuadrado de silicn y ya es posible hablar de las computadoras personales y las estaciones de traba!o. Surgen los conceptos de interfaces amigables intentando as atraer al p$blico en general al uso de las computadoras como

10

herramientas cotidianas. Se hacen populares el 'SF#OS y &(*T en estas m" uinas. +ambin es com$n encontrar clones de computadoras personales y una multitud de empresas pe ueIas ensambl"ndolas por todo el mundo. ;ara mediados de los @?Os, comienGa el auge de las redes de computadoras y la necesidad de sistemas operativos en red y sistemas operativos distribuidos. 6a red mundial *nternet se va haciendo accesible a toda clase de instituciones y se comienGan a dar muchas soluciones Ly problemasM al uerer hacer convivir recursos residentes en computadoras con sistemas operativos diferentes. ;ara los 9?Os el paradigma de la programacin orientada a ob!etos cobra auge, as como el mane!o de ob!etos desde los sistemas operativos. 6as aplicaciones intentan crearse para ser e!ecutadas en una plataforma especfica y poder ver sus resultados en la pantalla o monitor de otra diferente Lpor e!emplo, e!ecutar una simulacin en una m" uina con &(*T y ver los resultados en otra con #OSM. 6os niveles de interaccin se van haciendo cada veG m"s profundos. En este libro ofrece una cobertura a los fundamentos de sistemas operativosC ,aptulo . ;anorama 8eneral, ,aptulo 2 Administracin #el ;rocesador, ,apitulo 4 Administracin #e ;rocesos ,oncurrentes, ,aptulo > Administracin #e 6a 'emoria, ,aptulo < Administracin #e 6os Archivos : ,aptulo 3 Entrada D SalidaP en estos captulos se examinan los desarrollos recientes m"s importantes ue se han alcanGado en el diseIo de los sistemas operativos. El ob!etivo principal de este texto es proporcionar al lector una comprensin slida de los mecanismos clave de los sistemas operativos modernos, las concisiones y las decisiones ue acarrean el diseIo de un sistema operativo y el contexto en ue este opera.

6os Autores

11

SISTEMAS OPERATIVOS

12

L%evs de la ,ar"tulaM

Este libro trata sobre los aspectos referidos a los Sistemas Operativos. ;ara a uellos lectores ue solo deseen ad uirir o refrescar conocimientos relacionados con los sistemas operativos en generalP ser" suficiente con la lectura de la primera parte, en tanto ue para a uellos ue deseen un conocimiento m"s profundo, teniendo presente la problem"tica de los sistemas operativos modernos, ser" necesario avanGar en la lectura del primer grupo de temasP as mismo, si adem"s se desea incursionar aspectos complementarios m"s importantes se sugiere la lectura del mencionado texto en su forma total. Es preciso seIalar adem"s ue este libro esta destinado a los alumnos de una carrera de grado en sistemas e inform"tica, ue deban hacer un curso de sistemas operativos, pudiendo ser de utilidad seg$n la profundidad del curso, ue aborda el mencionado texto.

6os Autores.

13

CAPTULO 1 PANORAMA GENERAL

1.1. U! ES UN SISTEMA OPERATIVO" &na de las definiciones m"s com$nmente aceptadas expresaC F Es un programa ue act$a como intermediario entre el usuario de una computadora y el hardKare. F &n S. O. es un grupo de programas de proceso con las rutinas de control (ecesarias para mantener continuamente operativos dichos programasU. El ob!etivo primario de un Sistema Operativo esC OptimiGar todos los recursos del sistema para soportar los re uerimientos y hacer de un sistema de cmputo. &tiliGable de manera cmodaP por el usuario y el ob!etivo secundario es usar el hardKare de la computadora de la forma eficiente. F 6os programas de sistema controlan la operacin de la computadora en s y los programas de aplicacin resuelven problemas para los usuarios. En este contexto, el Sistema Operativo es el programa fundamental de todos los programas de sistema. El S. O. protege y libera a los programadores de la comple!idad del hardKare, coloc"ndose un nivel de softKare sobre el hardKare para poder controlar todas las partes del sistema, presentar al usuario una interfaG o m" uina virtual. El es uema tpico de un sistema de cmputos se muestre en la figura .... ste puede dividirse en > componentesP el hardKare, el sistema operativo, programas de aplicacin y los usuarios.

14

Usuario 1
Compilador

Usuario 2
ensamblador

&&&

Usuario

n
sistema de base de datos

!istema Programas de sistema "perati#o y de aplicaci n $ard%are de la computadora

F#$%&' 1.1( C)*+),-,.-/ 0- %, /#/.-*' 0- 12*+%.).

En trminos mas simples, el S.O. es el gerente e!ecutivo del sistema computo as

de

ue se encarga de la administracin del hardKare y el softKareP lo

ue es lo mismo administrar los archivos, memoria, procesador y dispositivosP mismo controla uien puede utiliGar el sistema y de ue manera LinterfaG de comando del usuarioM. ;or la tanto, cuando en usuario enva un comando el S.O. desde asegurarse ue se e!ecute y caso contrario indica el error ue no permita su e!ecucin. En la figura ..2. se muestra una pir"mide, ue nos permitir" extender me!or la funcin del sistema operativo.

'nter(a) del comando del usuario

*dministrador de procesador *dministrador de arc+i#os

*dministrador de medidas

*dministrador de arc+i#os

F#$%&' 1.2( M)0-3) 0-3 /#/.-*' )+-&'.#4) +'&' %, /)3) %/%'&#).

6a base de la pir"mide muestra los > VadministradoresU esenciales del todo el 15

sistema

operativoC administrador de memoria procesador, dispositivos y

archivosP estos administradores son la base de todos los sistemas operativos. 6a interfaG de comando del usuario es desde el cual las usuario, es desde el cual los usuarios emiten los comandos especifico en cada sistema operativo. Sin importar el tamaIo o configuracin del sistema, cada uno de los administradores deben realiGar las siguientes tareasC F F 'onitoreo constante de sus recursos. Obligar al cumplimiento de las polticas ue determinan, uien obtiene, cuando y cuanto tiempo. F F Asignar los recursos cuando es apropiada. 6iberar el recurso 7 recuperarlo 7 cuando es conveniente. al S.OP este es un componente

,itaremos algunas funciones relevantes de los administradores. F El administrador de memoria esta a cargo de la memoria principal o %A'. ,omprueba la valideG de cada solicitud de espacio de memoria y, si se trata de una solicitud legal, le asigna un porcin ue todava no este en usoP otra funcin es proteger el espacio en la memoria principal ue ocupa el sistema operativo...etc. F El administrador del procesador decide estado de cada proceso...etc. F El administrador de dispositivos vigila todos los dispositivos, cuales y unidades del sistema LperifricosM, este administrador dispositivo, inicia su operacin y lo libera. etc. F El administrador de archivo, lleva el control de todo el archivo en el sistema, incluyendo archivos de datos ensambladores, compiladores y programas de aplicacinP mediante el uso de polticas de acceso predeterminadas, obliga a cada archivo a cumplir las restricciones de acceso. Etc. asigna el como asignar la unidad de

procesamiento central L,;&MP otra funcin tambin es de controlar el

16

Estos administradores no solo cumplen sus tareas individuales. +ambin deben ser capaces de traba!ar en armona con los otros administradores. A continuacin programa. .. El administrador de dispositivos recibe impulsos elctricos del teclado, codifica el tecleo para formar el comando y enva el comando a la interfaG de comando del usuario, donde el administrador del procesador lo valida. 2. 6uego, el administrador del procesador manda un mensa!e de reconocimiento para ue apareGca en el monitor de video, de manera ue uien escribi sepa ue se envi el comando. 4. ,uando el administrador del procesador recibe el comando, determina si hay ue traer el programa correspondiente de donde est almacenado o si ya est" apropiado. >. Si el programa est" almacenado, el administrador de archivos debe calcular su localiGacin exacta en el disco y pasar el mismo y registrar su ubicacin exacta en la memoria. <. &na veG ue el programa se halla en la memoria, el administrador de sta debe controlar su localiGacin y progreso conforme lo e!ecuta el administrador del procesador. 3. ,uando termina la e!ecucin del programa, ste manda un mensa!e de VterminadoU de regreso al administrador del procesador. =. ;or $ltimo, el administrador del procesador manda el mensa!e de VterminadoU de vuelta al administrador de dispositivos, ue lo muestra en el monitor para ue lo vea el usuario. Aun ue sta es una demostracin simplificada de una operacin complicada, ilustra la increble precisin re uerida por el sistema operativo. %ecuerde, ning$n administrador por s solo puede llevar cooperacin activa de las dem"s partes. 6os sistemas operativos con capacidad de red tiene un uinto administrador 17 a cabo sus tareas sin la en la memoria, despus el cual notifica al administrador mostraremos los pasos ue se presentan al e!ecutar un

esencial, conocido como administrador de red

ue proporciona

una forma

conveniente para los usuarios, de compartir recursos y al mismo tiempo, controlar su acceso a los mismos. Estos recursos incluyen hardKare y softKareP a continuacin se muestra la figura ..4, donde se observa una pir"mide de cinco lados LbaseM.

A#'*(*S+%A#O% #E ;%O,ESA#O% A#'*(*S+%A#O% #E 'E'O%*A A#'*(*S+%A#O% #E #*S;OS*+*AOS A#'*(*S+%A#O% #E %E# A#'*(*S+%A#O% #E A%,5*AOS

F#$%&' 1.3( S#/.-*'/ O+-&'.#4)/ +'&' R-0.

;ara apreciar la funcin del sistema operativo, es necesario definir los aspectos esenciales del hardKare del sistema de la computadora, la ma uina fsica y sus componentes electrnicos, incluyendo los chips de memoria, los dispositivos de entradaDsalida, los dispositivos de almacenamiento y la unidad de procesamiento central. 6a memoria principal es donde se almacena los datos y las instrucciones para ser procesados. 6os dispositivos de entradaDsalida, incluyen toda la unidad perifrico del sistema, como impresora, unidad de discos, unidades de ,#, dispositivos de cinta magntica, etc. El ,;& es el VcerebroU ue apoyado en la circuitera electrnica. ,ontrola la interpretacin y e!ecucin de las instrucciones. En esencia controla la operacin de la totalidad de sistemas de cmputo, as como se ilustra en la figura. ..>.

18

Pantalla de #ideo

'nter(a) de #ideo
/emoria principal Controlad or de disco 'nter(a) serial *ccionador de discos
0iscos

Unidad aritm,tica y l gica -egistros .us de Control

m dem

,ontrol *nterno

CPU

'nter(a) paralela
'mpresora

'nter(a) de teclado

teclado

F#$%&' 1.4( H'&05'&- 0-3 /#/.-*' 0- 12*+%.).

1.2. TIPOS DE SISTEMAS OPERATIVOS 6os sistemas operativos para las computadoras grandes y pe ueIas se por su tiempo de

clasifican en cuatro clases, los cuales se distinguen

respuesta y la forma en ue se introducen los datos en el sistemaP estas sonC F F F F Sistemas por lotes. Sistemas interactivos. Sistemas en tiempo real. Sistemas hbridos.

L)/ S#/.-*'/ P)& L).-/ 6B'.178.9 Existen desde las primeras computadoras

19

ue se apoyan en tar!etas perforadas o en cinta, los cuales es introducida una tarea mediante la agrupacin de las tar!etas en un pa uete y se corra todo el pa uete a travs de un lector de tar!etas como un grupo LloteMP la eficiencia del sistemas se media en produccin Lcantidad de tareas completadas en un tiempo determinado L4? tareas D horaM este sistema no es com$n actualmente L)/ S#/.-*'/ I,.-&'1.#4)/ 6S#/.-*'/ 0- T#-*+) C)*+'&.#0)8.9 #an un tiempo de retorno m"s r"pido ue los Sistemas de tiempo real, de los cuales hablaremos m"s adelante. Se introdu!eron para satisfacer las demandas de usuarios ue necesitaban un tiempo de retorno r"pido al eliminar los errores de sus programas, el S. O. re uera el desarrollo de softKare de tiempo compartido, lo ue permitira a cada usuario interactuar directamente con el sistema del computo va comandos introducidos a partir de una terminal de tipo m" uina de escribir. El sistema operativo proporciona una retroalimentacin al usuario y el tiempo de respuesta se puede medir en minutos o en segundos, seg$n la cantidad de usuarios activos. L)/ S#/.-*'/ 0- T#-*+) &-'3: son lo m"s r"pido de l os cuatro y se le utiliGa en entornos de Vtiempo criticoU, donde los datos se deben procesar con suma rapideG por ue la salida afecta decisiones inmediatas. 6os sistemas de tiempo real se utiliGan para vuelos espaciales, control de trafico en aeropuertos, aeronaves de alta velocidad, procesos industriales, e uipo mdico complicado, distribucin de electricidad y conmutacin telefnica. &n sistema de tiempo rela debe ser .??W sensible. El tiempo de respuesta se mide en fracciones de segundo, aun ue esto en la pr"ctica es un ideal ue no se logra a menudo. L)/ /#/.-*'/ 7;0&#1)/, son una combinacin de sistemas en lotes e

interactivos. ;arecen interactivos por ue los usuarios individuales pueden tener acceso al sistema mediante terminales y obtener una respuesta r"pida,P pero cuando la carga interactiva es ligera, este tipo de sistemas acepta y opera programas en lotes en un segundo plano. &n sistema hdrico aprovecha el tiempo libre entre procedimiento para e!ecutar programas las demandas de

ue no necesitan ayuda significativa

20

del operador. 'uchos sistemas de cmputo grandes son hbridos ;or lo tanto podemos concluir con las principales funciones del S. OC Es ocultar toda esta comple!idad y brindar al programador un con!unto m"s conveniente de instrucciones para traba!ar. El S. O. e!ecuta en modo central o modo de supervisin, con m"xima prioridad y generalmente con proteccin por hardKare. 6os compiladores, editores y dem"s programas se e!ecutan en modo usuario. El S. O. es la serie de programas, dispuestos ya sea en el softKare o en la memoria LmicrocdigoM, ue hacen al hardKare utiliGable. 6os S. O. ponen el Vpoder computacional b"sicoU del hardKare

convenientemente a disposicin del usuario, pero consumen parte de ese poder computacional para funcionar. 6os S. O. son, en primer lugar, administradores de recursos, siendo el recurso primario el hardKare del sistema. 6as principales caractersticas de los S. O. sonC F F F F F F #efinir la V*nterfaG del &suarioU. ,ompartir el hardKare entre usuarios. ;ermitir a los usuarios compartir los datos entre ellos. ;lanificar recursos entre usuarios. Hacilitar la entrada D salida. %ecuperarse de los errores.

6os principales recursos administrados por los S. O. sonC F F F F ;rocesadores. Almacenamiento. #ispositivos de EDS. #atos.

6os S. O. es una interfaG conC

21

F F F F F F

6os Operadores. 6os ;rogramadores de aplicaciones. 6os ;rogramadores de sistemas Ladministradores del S. O.M. 6os ;rogramas. El 5ardKare. 6os &suarios.

El S. O. debe presentar al usuario el e uivalente de una m" uina extendida o m" uina virtual ue sea m"s f"cil de programar ue el hardKare subyacente.

1.3. HISTORIA DE LOS SISTEMAS OPERATIVOS 9 GENERACIONES 6os S. O. han estado relacionados histricamente con la ar uitectura de las computadoras en las cuales se e!ecutan, raGn por la cual su historia puede analiGarse seg$n las siguientes generaciones y sus principales caractersticasC G-,-&'1#2, C-&) Ldcada de .9>?MC F F ,arencia total de S. O. ,ompleto acceso al lengua!e de m" uina.

P&#*-&' $-,-&'1#2, L.9><F.9<<MC tubos de vaci y conexiones. F F ,arencia de S. O. En los aIos cincuenta comienGan como transicin entre traba!os, haciendo la misma m"s simple. S-$%,0' G-,-&'1#2, L.9<<F.93<MC transistores y sistemas de procesamiento por lotes LbatchMC F En los aIos sesenta aparecen los S. O. para sistemas compartidos conC M%3.#+&)$&'*'1#2,( varios programas de usuarios se encuentran al mismo tiempo en el almacenamiento principal, cambiando el procesador r"pidamente de un traba!o a otro. M%3.#+&)1-/'*#-,.)( varios procesadores se utiliGan en un mismo

22

sistema para incrementar el poder de procesamiento. F ;osteriormente aparece la independencia de dispositivoC El programa del usuario especifica las caractersticas de los dispositivos ue re uieren los archivos. El S. O. asigna los dispositivos correspondientes seg$n los

re uerimientos y las disponibilidades. T-&1-&' G-,-&'1#2, L.93<F.9@?MC circuitos integrados y multiprogramacinC F #ifusin de la multiprogramacinC ;articin de la memoria en porciones, con traba!os distintos en cada una de ellas. Aprovechamiento del tiempo de espera consecuencia de operaciones de EDS, para utiliGar la ,;& para otros procesos. F memoria. F Aparicin de tcnicas de spoolingC Simultaneous ;eripheral Operation On 6ineC operacin simult"nea y en lnea de perifricos. Almacenamiento de traba!os de entrada y de salida en dispositivos transitorios r"pidos LdiscosM, para disminuir el impacto de los perifricos m"s lentos. F Son sistemas de modos m$ltiples, es decir ue deben soportar sistemas de propsitos generalesP son grandes y comple!os pero muy poderosos. F F *nterponen una capa de softKare entre el usuario y el hardKare. Aparecen los lengua!es de control de traba!os, necesarios para especificar el traba!o y los recursos re ueridos. F Soportan timesharing Ltiempo compartidoM, variante de la multiprogramacin con usuarios conectados mediante terminales en lnea, ;roteccin por hardKare del contenido de cada particin de

23

permitiendo la operacin en modo interactivo o conversacional. F Aparecen los sistemas de tiempo real, ue re uieren tiempos de respuesta muy exigentes, especialmente para usos industriales o militares. F Se difunden las computadoras de rango medio.

C%'&.' G-,-&'1#2, L.9@?F.99?MC computadoras personalesC F Aparicin de softKare amigable con el usuario, destinado a usuarios no profesionales y con una interfase gr"fica muy desarrollada. F #esarrollo de sistemas operativos de red y sistemas operativos distribuidos. F Sistemas operativos de redC 6os usuarios est"n conscientes de la existencia de varias computadoras conectadas. ,ada m" uina e!ecuta su propio S. O. local. Son similares a los S.O. de un solo procesador pero con el agregado deC aM ,ontrolador de interfaG de la red y su softKare de ba!o nivel. bM SoftKare para conexin y acceso a archivos remotos, etc. F Sistemas operativos distribuidosC Aparece ante los usuarios como un S. O. de un solo procesador, a$n cuando de soporte a varios procesadores. 6os usuarios no son conscientes del lugar donde se e!ecutan sus programas donde se encuentran sus archivos, ya administrar el S. O. autom"ticamente. #eben permitir ue un programa se e!ecute mediante varios ue lo debe

procesadores a la veG, maximiGando el paralelismo. F Aparicin de emuladores de terminal para el acceso a e uipos remotos desde computadoras personales L;,M. F 8ran nfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones de datos. 24

El S. O. crea un ambiente de traba!o seg$n el concepto de m" uina virtual, ue lo asla del funcionamiento interno de la m" uina.

;roliferacin de sistemas de bases de datos, accesibles mediante redes de comunicacin.

CAPTULO 2 ADMINISTRACIN DEL PROCESADOR

2.1. INTRODUCCIN < DEFINICIONES SOBRE PROCESOS El concepto central de cual uier Sistema Operativo es el de procesoC una abstraccin de un programa en e!ecucin tambin llamada tarea. (o hay un acuerdo universal sobre una definicin de proceso, pero s algunas definiciones aceptadas tales comoC F F F &n programa ue se est" e!ecutando. &na actividad asincrnica. El emplaGamiento del control de un procedimiento siendo e!ecutado. F A uella ue se manifiesta por la existencia en el Sistema ue est"

Operativo de un blo ue de control de proceso. F Es conocida como una tarea, es una instancia de un programa e!ecutable. F F F A uella entidad a la cual son asignados los procesadores. 6a unidad despachable. Es una entidad activa ue re uiere un con!unto de recursos para llevar acabo su funcin, entre ellos un procesador y registros especiales. &na hebra de control es una porcin de un proceso ue se puede e!ecutar de manera independientemente. ;or e!emplo, si su sistema permite ue los procesos tengan una sola hebra de control y &d. #esea una serie de im"genes 25

en el sitio Keb de un amigo, puede instruir al navegador LBrouserM, para ue estableGca una conexin entre ambos sitios y descargar una imagen a la veG. Sin embargo, si su sistema permite ue sus procesos tengan m$ltiples hebras de control, puede solicitar varias im"genes al mismo tiempo y el navegador o explorador establecer" m$ltiples conexiones y descargar" varias im"genes a la veG. El procesador, tambin conocido como ,;& Lcentral unit processorM, es la parte de la ma uina ue lleva a caso los c"lculos y e!ecuta los programas. En sistemas de multiprogramacin la cpu alterna de programa en programa, en un es uema de seudoparalelismo, es decir ue la cpu e!ecuta en cierto instante un solo programa, intercambiando muy r"pidamente entre uno y otro. El paralelismo real de hardKare se da en las siguientes situacionesC F En e!ecucin de instrucciones de programa con m"s de un procesador de instrucciones en uso simult"neamente. F ,on la superposicin de e!ecucin de instrucciones de programa con la e!ecucin de una o m"s operaciones de entrada D salida. El ob!etivo es aumentar el paralelismo en la e!ecucin. El modelo de procesos posee las siguientes caractersticasC F +odo el softKare e!ecutable, inclusive el Sistema Operativo, se organiGa en varios procesos secuenciales o procesos. F &n proceso incluye al programa en e!ecucin y a los valores activos del contador, registros y variables del mismo. F F ,onceptualmente cada proceso tiene su propia cpu virtual. Si la cpu alterna entre los procesos, la velocidad a la ue e!ecuta un proceso no ser" uniforme, por lo ue es necesario aclarar lo siguienteC 0ue los procesos no deben programarse con hiptesis implcitas acerca del tiempo. 0ue normalmente la mayora de los procesos no son afectados por la multiprogramacin subyacente de la cpu o las velocidades

26

relativas de procesos distintos. &n proceso es una actividad de un cierto tipo, programa, entrada, salida y estado. &n solo procesador puede ser compartido entre varios procesos con cierto Valgoritmo de planificacinU, el cual determina cu"ndo detener el traba!o en un proceso y dar servicio a otro distinto. Higura 2.., y 2.2. En cuanto a las !erar uas de procesos es necesario seIalar ue los Sistemas Operativos deben disponer de una forma de crear y destruir procesos cuando se re uiera durante la operacin, teniendo adem"s presente ue los procesos pueden generar procesos hi!os mediante llamadas al Sistema Operativo, pudiendo darse e!ecucin en paralelo. %especto de los estados del proceso deben efectuarse las siguientes consideracionesC F ,ada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos. F 6os procesos pueden blo uearse en su e!ecucin por ueC #esde el punto de vista lgico no puede continuar por ue espera datos ue a$n no est"n disponibles. F El Sistema Operativo asign la cpu a otro proceso. 6os estados ue puede tener un proceso sonC En e!ecucinC utiliGa la cpu en el instante dado. 6istoC e!ecutable, se detiene en forma temporal para e!ecute otro proceso. Blo ueadoC no se puede e!ecutar debido a la ocurrencia de alg$n evento externo. F Son posibles cuatro transiciones entre estos estadosP tal como se muestra en la figura 2... y 2.2.
U1 C"12*0"- 03 P-"4-*/*

ue tiene un

ue se

* . C 0

*523-1*0"- 03 P-"C3!"! MODELO CONCEPTUAL DE CUATRO 27 PROCESOS SECUENCIALES INDEPENDIENTES


CU*2-" C"12*0"-3! 03 P-"4-*/*

F#$%&' 2.1( M%3.#+&)$&'*'1#2, 0- 4 +&)$&'*'/.


2-*1!*CC'"13! 312-3 5"! 3!2*0"!

EN

1& 3l proceso se blo6uea en espera de datos&

EJECUCIN

2 3

2& 3l plani(icador elige otro proceso& 3& 3l plani(icador elige este proceso& 4& 5os datos est7n disponibles&

4
BLOQUEAD O LISTO

F#$%&' 2.2( U, +&)1-/) +%-0- -/.'& -, -=-1%1#2,: >3)?%-'0) ) 3#/.).

2.2. ESTADOS DE PROCESOS #urante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias ue pueden hacer estado. #ebido a ello se puede establecer una @L#/.' 0- L#/.)/A para los procesos @3#/.)/A y una @L#/.' 0- B3)?%-'0)/A para los @>3)?%-'0)/A. 6a VL#/.' de L#/.)/U se mantiene en orden prioritario y la V L#/.' de B3)?%-'0)/U est" desordenada, ya ue los procesos se desblo uean en el orden en ue tienen lugar los eventos ue est"n esperando. Al admitirse un traba!o entre el sistema se crea un proceso e uivalente y es insertado en la $ltima parte de la VL#/.' de L#/.)/U. 6a asignacin de la cpu al primer proceso de la V L#/.' de L#/.)/U se denomina VD-/+'17)U, ue es e!ecutado por una entidad del Sistema Operativo llamada ue el mismo cambie de

28

@D-/+'17'0)&A. El @B3)?%-)A es la $nica transicin de estado iniciada por el propio proceso del usuario, puesto ue las otras transiciones son iniciadas por entidades a!enas al proceso. 6a manifestacin de un proceso en un Sistema Operativo es un VBlo ue de ,ontrol de ;rocesoU L;,BM con informacin ue incluyeC F F F F F F Estado actual del proceso. *dentificacin $nica del proceso. ;rioridad del proceso. Apuntadores para localiGar la memoria del proceso. Apuntadores para asignar recursos. Xrea para preservar registros.

,uando el Sistema Operativo cambia la atencin de la cpu entre los procesos, utiliGa las "reas de preservacin del PCB para mantener la informacin necesita para reiniciar el proceso cuando consiga de nuevo la cpu. 6os sistemas proceso. 6a V1&-'1#2,U de un proceso significaC F F F F F #ar nombre al proceso. *nsertar un proceso en la lista del sistema de procesos conocidos. #eterminar la prioridad inicial del proceso. ,rear el blo ue de control del proceso. Asignar los recursos iniciales del proceso. ue administran los procesos deben poder crear, destruir, ue

suspender, reanudar, cambiar la prioridad, blo uear, despertar y despachar un

&n proceso puede @1&-'& %, ,%-4) +&)1-/)A, en cuyo caso el proceso creador se denomina @+&)1-/) +'0&-A y el proceso creado @+&)1-/) 7#=)A y se obtiene una Vestructura !er"r uica de procesosU. 6a @0-/.&%11#2,A de un proceso implicaC 29

F F F F

Borrarlo del sistema. #evolver sus recursos al sistema. ;urgarlo de todas las listas o tablas del sistema. Borrar su blo ue de control de procesos. ue otro proceso lo

&n proceso @/%/+-,0#0)A no puede proseguir hasta fue suspendido.

reanude. %eanudar LreactivarM un proceso implica reiniciarlo en el punto donde

6a @0-/.&%11#2,A de un proceso puede o no significar la destruccin de los procesos hi!os, seg$n el Sistema Operativo. 8eneralmente se denomina @T'>3' 0- P&)1-/)/A al con!unto de informacin de control sobre los distintos procesos.

2.3. PROCESAMIENTO DE INTERRUPCIONES &na @#,.-&&%+1#2,A es un evento ue altera la secuencia en ue el procesador e!ecuta las instruccionesP es un hecho generado por el hardKare del computador. ,uando ocurre una interrupcin, el Sistema OperativoC F F Obtiene el control. Salva el estado del proceso interrumpido, generalmente en su blo ue de control de procesos. F F AnaliGa la interrupcin. +ransfiere el control a la rutina apropiada para la manipulacin de la interrupcin. &na interrupcin puede ser iniciada por un proceso en estado de e!ecucin o por un evento ue puede o no estar relacionado con un proceso en e!ecucin. 8eneralmente las interrupciones se pueden clasificar por tipos seg$n el siguiente #etalleC F VSVC 633'*'0' '3 /%+-&4#/)&8A( es una peticin generada por el usuario 30

para un servicio particular del sistema, por e!emplo, realiGacin de Entrada D Salida u obtencin de m"s memoria. F @E,.&'0' / S'3#0'A( son iniciadas por el hardKare de Entrada D Salida, indicando a la cpu ue ha cambiado el estado de un canal o dispositivo, por e!emplo, finaliGacin de Entrada D Salida u ocurrencia de un error.

T#+) 0- I,.-&&%+1#2, SA, Entrada D Salida Externa #e %einicio #e Aerificacin de ;rograma #e Aerificacin de '" uina

D-/1&#+1#2, 6lamada al Sistema Operativo ,ambio de estado de un canal o dispositivo Evento externo al sistema #e %einicio del procesamiento Errores de procesos Errores de hardKare

T'>3' 2.1( T#+)/ 0- #,.-&&%+1#),-/.

@EB.-&,'/A( son causadas por distintos eventos, por e!emplo, expiracin de un cuanto en un relo! de interrupcin o recepcin de una seIal de otro procesador en un sistema multiprocesador.

@D- &-#,#1#)A( ocurren al presionar la Vtecla de reinicioU o cuando llega una instruccin de reinicio de otro procesador en un sistema multiprocesador.

@D- 4-&#C#1'1#2, de programaUC son causadas por errores producidos durante la e!ecucin de procesos, por e!emploC &n intento de dividir por cero. &n intento de un proceso de usuario de e!ecutar una instruccin privilegiada. &n intento de e!ecutar un cdigo de operacin inv"lido. 4-&#C#1'1#2, 0*D?%#,'A( son ocasionadas por un mal

@D-

funcionamiento del hardKareP en la tabla 2... se puede observar los diferentes tipos de interrupciones. 31

El

Sistema

Operativo

incluye

rutinas

llamadas

@M',#+%3'0)&-/

0-

I,.-&&%+1#),-/6IH8A para procesar cada tipo diferente de interrupcin. ,uando se produce una interrupcin el Sistema Operativo efect$a las siguientes accionesC F F F Salva el estado del proceso interrumpido. #irige el control al manipulador de interrupciones adecuado. Se aplica la tcnica de @C'*>#) 0- C),.-B.)A. ue puede

6os Sistemas Operativos instrumentan informacin de control

aparecer como las @P'3'>&'/ 0- E/.'0) 0- P&)$&'*' 6PSE8A: las cuales controlan el orden de e!ecucin de las instrucciones y contienen informacin sobre el estado del proceso. Existen tres tipos de PSE, ue son la VactualU, la VnuevaU y la Vvie!aU. 6a VPSE ActualU almacena la direccin de la prxima instruccin VinhabilitadasU. En un sistema uniprocesador existeC F F F Solo una PSE actual. Seis PSE nuevas Luna para cada tipo de interrupcinM. Seis PSE vie!as Luna para cada tipo de interrupcinM. ue ser"

e!ecutada e indica los tipos de instrucciones actualmente VhabilitadasU e

6a PSE nueva para un tipo de interrupcin dado contiene la direccin en el hardKare donde reside el manipulador de interrupciones para este tipo especfico. ,uando ocurre una interrupcin para la cual el procesador no est" inhabilitado, ocurren las siguientes accionesC F El hardKare cambia las PSE en los casos siguientesC Al almacenar la PSE actual en la PSE vie!a, para este tipo de interrupcin. Al almacenar la PSE nueva en la PSE actual, para este tipo de

32

interrupcin. F 6uego de este Vintercambio de PSEUC 6a PSE actual contiene la direccin del manipulador de interrupcin adecuado. El manipulador de interrupciones procesa la interrupcin. 6uego de procesar la interrupcin, la cpu es enviada alC a8 ;roceso ue estaba en e!ecucin en el momento de la interrupcin. b8 ;roceso de listo de m"s alta prioridad. 6a accin precedente depende de si el proceso de interrupcin esC aM @A+&)+#'.#4)A C obtiene la cpu solo si no hay procesos de listos. bM @N) '+&)+#'.#4)U C obtiene de nuevo la cpu.

2.4. EL NFCLEO DEL SISTEMA OPERATIVO El Vn$cleoU del Sistema Operativo controla todas las operaciones ue implican procesos y representa solo una pe ueIa porcin del cdigo de todo el Sistema Operativo pero es de amplio uso. 8eneralmente permanece en el almacenamiento primario. El proceso de interrupciones se incluye en el n$cleo ya ue debe ser r"pido Lespecialmente en sistemas multiusuarioM, para optimiGar el uso de los recursos del sistema y proveer tiempos de respuesta aceptables a los usuarios interactivos. El n$cleo inhabilita las interrupciones mientras responde a una interrupcin. 6as interrupciones son habilitadas de nuevo despus de completar el proceso de una interrupcin. El n$cleo del Sistema Operativo generalmente realiGa las siguientes funcionesC F F 'anipulacin de interrupciones. ,reacin y destruccin de procesos.

33

F F F F F F F F F F F

,ambio de estados de procesos. #espacho. Suspensin y reanudacin de procesos. SincroniGacin de procesos. ,omunicacin entre procesos. 'anipulacin de blo ues de control de proceso. Soporte de las actividades de Entrada D Salida. Soporte de la asignacin y designacin de almacenamiento. Soporte del sistema de archivos. Soporte de un mecanismo de llamada D regreso al procedimiento. Soporte de ciertas funciones contables LestadsticasM del sistema.

2.5. POLTICAS DE PLANIFICACIN DE PROCESOS En un entorno de multiprogramacin existen por lo general m"s traba!os por e!ecutar de los sistemaC .M Existe un n$mero finito de recursos Lcomo unidades de disco, impresoras y unidades de cintaM. 2M Algunos recursos, una veG asignados, no pueden recibir otro traba!o Lcomo las impresorasM. 4M Algunos recursos re uieren la intervencin del operador 7 esto es, no se pueden reasignar de manera autom"tica de un traba!o a otro Lcomo las unidades de cintaM. C%D3 -/ %,' @>%-,'A +)3;.#1' 0- +3',#C#1'1#2, 0- +&)1-/)/" Se presentan a la mente varias opciones, pero note ue en la lista siguiente algunas se contradicen. F M'B#*#G'& 3' P&)0%11#2, e!ecutando tanto traba!os como sea posible en 34 ue se pueden correr en un momento dado. Antes ue el sistema operativo pueda planificarlos, necesita resolver tres limitaciones del

un tiempo

dado. Esto es f"cil

si se e!ecuta traba!os breves o sin

interrupciones. F M#,#*#G'& -3 T#-*+) 0- R-/+%-/.'. ,ontestando r"pidamente solicitudes interactivas, esto sera factible e!ecutando nada m"s traba!os interactivos y de!ando ue los traba!os por lotes esperen hasta ue la carga interactiva desapareGca. F M#,#*#G'& -3 T#-*+) 0- R-.)&,). *ntroduciendo y sacando con rapideG traba!o completo del sistema. ;ara esto se corren primero los traba!os por lotes Lpor ue estos se pueden agrupar para e!ecutarse con mayor eficiencia ue los traba!os interactivosM. F M#,#*#G'& -3 T#-*+) 0- E/+-&' sacando los traba!os de cola de LISTO tan r"pido como sea posible. Esto slo es posible reduciendo en n$mero de usuarios permitidos en el sistema, de manera ue el ,;& est disponible cada ue un traba!o entre en cola de LISTOS. F M'B#*#G'& 3' EC#1#-,1#' 0- 3' CPU manteniendo al ,;& ocupado al .?? por ciento del tiempo. Esto solo es viable e!ecutando traba!os limitados por el ,;& Lno por entradas y salidasM. F A/-$%&'& 3' H%/.#1#' +'&' .)0)/ 3)/ T&'>'=)/ dando a todos una cantidad igual de tiempo de ,;& y de EDS. Esto es posible sin dar tratamiento especial alguno a los traba!os, sean cuales sean sus caractersticas de procesamiento o prioridad. ,omo podemos ver, si el sistema da preferencia a un tipo de usuario, per!udica a otro y no utiliGa sus recursos con eficiencia. 6a decisin final es del diseIador del sistema, ue debe definir u criterios son de mayor importancia para dicho sistema. ;or e!emplo, usted podra decidir V'aximiGar la utiliGacin del ,;&, minimiGar el tiempo de respuesta y e uilibrar el uso de los componentes de sistema a travs de una meGcla de procesos limitados por entradas y salida y ,;&U. ;or lo tanto, seleccionara la poltica de planificacin ue satisfaga con mayor precisin sus criterios.

2.6. NIVELES DE PLANIFICACIN DEL PROCESADOR 35

Se consideran tres niveles importantes de planificacin, los ue se detallan a continuacinC F ;lanificacin de alto nivelC +ambin se denomina ;lanificacin de traba!os. #etermina a u traba!os se les va a permitir competir

activamente por los recursos del sistema, lo cual se denomina ;lanificacin de admisin. F ;lanificacin de nivel intermedioC cpu. %esponde a fluctuaciones a corto plaGo en la carga del sistema y efect$a VsuspensionesU y VactivacionesU LVreanudacionesUM de procesos. #ebe ayudar a alcanGar ciertas metas en el rendimiento total del sistema. F ;lanificacin de ba!o nivelC #etermina a u proceso listo se le asigna la cpu cuando esta ueda disponible y asigna la cpu al mismo, es decir ue VdespachaU la cpu al proceso. 6a efect$a el D-/+'17'0)& del Sistema Operativo, el ue opera muchas veces por segundo y reside siempre en el almacenamiento primario. 6os distintos Sistemas Operativos utiliGan varias ;olticas de ;lanificacin, ue se instrumentan mediante M-1',#/*)/ 0- P3',#C#1'1#2,P tal como se muestra en la figura 2.4.
2-*.*9"! 3!P3-*10" 312-*0* 312-*0* 03 2-*.*9"! 2-*.*9"! 3!P3-*10" '1'C'*C'"1 '1'C'*C';1 03 2-*.*9"! 2-*.*9"! !U!P310& 3!P3-*10" *C2':*C& !U!P3103P-"C3!"! *C2':"! P5*1'<'C*C';1 03 .*9" 1':35 P5*1'<'C*C';1 03 1':35 '123-/30'" P5*1'<'C*C';1 03 *52" 1':35

#etermina a u procesos se les puede permitir competir por la

*C2':*P-"C3!"! 31 393CUC';1

03!P*C$"

36
23-/'1*-

23-/'1*0"

F#$%&' 2.3( N#4-3-/ 0- +3',#C#1'1#2, 0-3 +&)1-/'0)&.

2.I. OBHETIVOS DE LA PLANIFICACIN 6os ob!etivos de la planificacin del procesador son los siguientes e involucran a los conceptos detallados seguidamenteC F Ser !ustaC F +odos los procesos son tratados de igual manera. (ing$n proceso es postergado indefinidamente.

'aximiGar la capacidad de e!ecucinC 'aximiGar el n$mero de procesos servidos por unidad de tiempo.

'aximiGar el n$mero de usuarios interactivos ue reciban unos tiempos de respuesta aceptablesC En un m"ximo de unos segundos.

Ser predecibleC &n traba!o dado debe e!ecutarse aproximadamente en la misma cantidad de tiempo independientemente de la carga del sistema.

F F F

'inimiGar la sobrecargaC (o suele considerarse un ob!etivo muy importante. E uilibrar el uso de recursosC Havorecer a los procesos ue utiliGar"n recursos infrautiliGados. E uilibrar respuesta y utiliGacinC 6a me!or manera de garantiGar buenos tiempos de respuesta es disponer de los recursos suficientes cuando se necesitan, pero la

37

utiliGacin total de recursos podr" ser pobre. F Evitar la postergacin indefinidaC Se utiliGa la estrategia del Venve!ecimientoU. 'ientras un proceso espera por un recurso su prioridad debe aumentar, as la prioridad llegar" a ser tan alta ue el proceso recibir" el recurso esperado. F Asegurar la prioridadC 6os mecanismos de planificacin deben favorecer a los procesos con prioridades m"s altas. F #ar preferencia a los procesos ue mantienen recursos clavesC &n proceso de ba!a prioridad podra mantener un recurso clave, ue puede ser re uerido por un proceso de m"s alta prioridad. Si el recurso es no apropiativo, el mecanismo de planificacin debe otorgar al proceso un tratamiento me!or del ue le correspondera normalmente, puesto clave. F #ar me!or tratamiento a los procesos Vcomportamiento deseableUC &n e!emplo de comportamiento deseable es una tasa ba!a de paginacin. F #egradarse suavemente con cargas pesadasC &n mecanismo de planificacin no debe colapsar con el peso de una exigente carga del sistema. Se debe evitar una carga excesiva mediante las siguientes accionesC a8 (o permitiendo carga ya es pesada. b8 #ando servicio a la carga m"s pesada al proporcionar un nivel ue se creen nuevos procesos cuando la ue muestren un ue es necesario liberar r"pidamente el recurso

38

'oderadamente reducido de servicio a todos los procesos. 'uchas de estas metas se encuentran en conflicto entre s, por lo planificacin se convierte en un problema comple!o. ue la

2.J. CRITERIOS DE PLANIFICACIN ;ara realiGar los ob!etivos de la planificacin, un mecanismo de planificacin debe considerar lo siguiente. F 6a limitacin de un proceso a las operaciones de Entrada D SalidaC cuando un proceso consigue la cpu, /la utiliGa solo brevemente antes de generar una peticin de EntradaD Salida1. F 6a limitacin de un proceso a la cpuC cuando un proceso obtiene la cpu, /tiende a usarla hasta ue expira su tiempo1. F Si un proceso es por lote LbatchM o interactivoC los usuarios interactivos deben recibir inmediato servicio para garantiGar buenos tiempos de respuesta. F /0u urgencia tiene una respuesta r"pida1C ;or e!emplo un proceso de tiempo real de un sistema de control ue supervise una ue deber" refinera de combustible re uiere una respuesta r"pida, m"s r"pida ue la respuesta re uerida, por un proceso en lotes LbatchM entregarse al da siguiente. F F 6a prioridad de un procesoC A mayor prioridad me!or tratamiento. Hrecuentemente un proceso genera fallas LcarenciasM de p"ginaC ;robablemente los procesos ue generan pocos fallos de p"gina hallan acumulado sus V,on!untos de traba!oU en el almacenamiento principal. 6os procesos ue experimentan gran cantidad de fallos de p"gina a$n no han establecido sus con!untos de traba!o. &n criterio indica favorecer a los procesos sus con!untos de traba!os. 39 ue han establecido

Otro criterio indican favorecer a los procesos con una taGa alta de fallos de p"gina ya ue r"pidamente generaran una peticin de EDS.

Hrecuentemente un proceso ha sido apropiado por otro de m"s alta prioridad, lo cual significa los siguienteC A menudo los procesos apropiados deben recibir un tratamiento menos favorable. ,ada veG ue el Sistema Operativo asume la sobrecarga para

hacer e!ecutar este proceso, el corto tiempo de e!ecucin antes de la apropiacin no !ustifica la sobrecarga de hacer e!ecutar al proceso en primer lugar. F C%D,.) .#-*+) 0- -=-1%1#2, &-'3 7' &-1#>#0) -3 +&)1-/)"( un criterio considera ue debe ser favorecido un proceso ue ha recibido muy poco tiempo de cpu. F C%D,.) .#-*+) '0#1#),'3 4' ' ,-1-/#.'& -3 +&)1-/) +'&' .-&*#,'&"( los tiempos promedio de espera pueden reducirse prioriGando los procesos ue re uieren de un tiempo de e!ecucin mnimo para su terminacin, pero pocas veces es posible conocer la cantidad de tiempo adicional ue cada proceso necesita para terminar.

2.K. PLANIFICACIN APROPIATIVA VERSUS NO APROPIATIVA 6as #isciplinas de ;lanificacin pueden ser Apropiativas o (o Apropiativas. 6as principales caractersticas de la planificacin apropiativa son las siguientes, ver figura 2.>. F r"pida. F Es importante para garantiGar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido. F +iene un costo en recursos, ya ue el intercambio de contexto Es $til cuando los procesos de alta prioridad re uieren atencin

implica sobrecarga y adem"s re uiere mantener muchos procesos en el

40

almacenamiento principal, en espera de la cpu, lo sobrecarga.

ue tambin implica

6as principales caractersticas de la planificacin no apropiativa son las siguientesC F VcortosU. F F 6ogra m"s e uidad en el tratamiento de los procesos. 6ogra hacer m"s predecibles los tiempos de respuesta puesto ue los traba!os nuevos de prioridad alta no pueden desplaGar a los traba!os en espera. El diseIo de un mecanismo apropiativo hace necesario considerar las arbitrariedades de casi cual uier es uema de prioridades, en raGn de ue muchas veces las propias prioridades no son asignadas en forma significativa. El mecanismo debera ser sencillo pero efectivo y significativo, a continuacin se muestra la tabla 2.2. donde se describe los conceptos de apropiativa y no apropiativa. Signifi ue los traba!os VlargosU hacen esperar a los traba!os

D#/1#+3#,' VApropiativaU V(o ApropiativaU

D-/1&#+1#2, &na veG ue se le ha otorgado la cpu a un proceso, le puede ser retirada. &na veG ue se le ha otorgado la cpu a un proceso, no le puede ser retirada

T'>3' 2.2( D#/1#+3#,'/ 0- +3',#C#1'1#2, 0-3 +&)1-/'0)&.

41

F#$%&' 2.4( T#+)/ 0- +3',#C#1'1#2, 0-3 +&)1-/'0)&.

2.1L. ALGORITMOS DE PLANIFICACIN DE PROCESOS El planificador de procesos se apoya traba!os por el sistema. 6os primeros sistemas operativos utiliGaban polticas no apropiativas, en un algoritmo de planificacin de

procesos, basado en una poltica especifica para asignar al CPU y mover los

diseIadas para mover los traba!os por lotes a travs del sistema con tanta eficiencia como era posible. 6a mayor parte de los sistemas actuales, con su nfasis en el uso interactivo del .#-*+) 0- &-/+%-/.', utiliGan un algoritmo ue se ocupa de las solicitudes inmediatas de usuarios interactivos. A u presentamos seis algoritmos de planificacin de procesos de uso muy difundido.

2.1L.1. PLANIFICACIN PRIMERO EN ENTRAR: PRIMERO EN SERVIRSE P&#*-&) -, -,.&'&: +&#*-&) -, -&4#&/- 6FCFS8 es un algoritmo de planificacin no apropiativa ue mane!a los traba!os de acuerdo con su tiempo de arriboC conforme entran son servicios. Es un algoritmo muy simple de implementar, por ue utiliGa un tipo de cola FIFO. Este algoritmo est" bien

42

para la mayor parte de los sistemas por lotes, pero es inaceptable para los sistemas interactivos por ue cortos de respuesta. ,on los FCFS, conforme un nuevo traba!o entra en el sistema su PCB ueda vinculado con el final de la cola de LISTO y es eliminado de la parte delantera de la cola cuando el procesador ueda disponible 7 esto es, despus ue ha procesado todos los traba!os ue existan en la cola. En un sistema FCFS ciento por ciento, no existen colas de BLO UEADO Lcada traba!o se e!ecuta hasta su terminacinM, aun ue pueden haber sistemas en ue el control LVcontextoUM pasa a una espera natural Lsolicitud de EDSM, luego de lo cual el traba!o se reanuda al terminar la operacin de EDS. 6os e!emplos ue siguen suponen un entorno FCFS por completo Lsin poltica los usuarios interactivos deben tener tiempos

multiprogramacinM E3 .#-*+) 0- &-.)&,) es impredecible con la FCFSP considere las siguientes tres tareasC

TRABAJO CICLO DE CPU * . C 15 2 1

;ara cada traba!o, el ciclo CPU contiene tanto el uso real del CPU como las solicitudes de EDSC el tiempo de e!ecucin total. 6a lnea de tiempo Ldiagrama de 8anttM ilustrada en la figura 2.<. usa un algoritmo FCFS con una secuencia de llegada A, B, ,.

Trabajo A 0 18 17 15

Trabajo B

Trabajo C

F#$%&' 2.5( D#'$&'*' 0- /-1%-,1#' +'&' 3)/ .&'>'=)/ 0- A:B:C ?%- %.#3#G' -3 '3$)&#.*) FCFS.

43

Si los tres traba!os llegan pr"cticamente de manera simult"nea, podemos calcular ue el tiempo de retorno para el traba!o A es .<, para el traba!o B, .= y para ,, .@. ;or lo ue el tiempo de retorno promedio esC

(15 + 17 + 18)
3

= 16&67

Sin embargo, si los traba!os llegasen en un orden diferente, digamos ,, B, A, los resultados seran seg$n se muestra en la figura 2.3, en caso de usar el mismo algoritmo FCFS. 2raba=o 0 C 1 2raba=o . 3 2raba=o * 18

F#$%&' 2.6( D#'$&'*' 0- /-1%-,1#' +'&' 3)/ .&'>'=)/ C:B:A 1), -3 '3$)&#.*) FCFS.

En este e!emplo el tiempo de retorno para el traba!o A es .@, B es 4, y para , es ..el tiempo promedio total esC

(18 +3 +1)
3

= 7&3

Esto es una verdadera me!ora sobre la primera secuencia. ;or desgracia, estos dos e!emplos ilustran la desventa!a principal del uso del concepto FCFSC los tiempos promedio de retorno varan de una manera muy amplia y rara veG se minimiGan. #e hecho, cuando hay tres traba!os en la cola de LISTO, el sistema slo tiene una oportunidad en seis de e!ecutar los traba!os en la secuencia m"s venta!osa L,,B,AM. ,on cuatro traba!os las oportunidades pasan a una en 2> y as sucesivamente.

2.1L.2. PLANIFICACIN SIGUE EL TRABAHO MMS CORTO S#$%- -3 .&'>'=) *D/ 1)&.) 6SHN8. Es un algoritmo de planificacin no

apropiada Ltambin conocido como .&'>'=) *D/ 1)&.) +&#*-&) ) SHF M ue mane!a los traba!os con base en la duracin de su ciclo de CPU. Es muy f"cil de implementar en entornos por lotes, donde casa usuario da por adelantado el tiempo estimado de CPU re uerido par e!ecutar el traba!o al inicio del mismo. Sin embargo, no funciona en sistemas interactivos, por ue los usuarios 44

no prevn el tiempo de CPU re uerido para e!ecutar sus traba!os. ;or e!emplo, a continuacin hay cuatro traba!os pro lotes, todos en la cola de LISTO, para la cual el ciclo de CPU, o tiempo de e!ecucin, se estima como sigueC

Trabajo * . C 0

Ciclado de CPU 5 2 6 4

El algoritmo SHN figura 2.=.

revisara los cuatro traba!os y los programara para

procesamiento en este orden B, #, A, ,, la lnea de tiempo aparecen en la

2raba=o 0 . 2

2raba=o 0 6

2raba=o * 11

2raba=o C 17

F#$%&' 2.I( D#'$&'*' 0- .#-*+) 0- 3' /-1%-,1#' 0- .'&-'/ B: D: A: C: 1), -3 '3$)&#.*) SHN.

El tiempo de retorno promedio esC

( 2 + 6 +11 +178 )
4 +ommonos un minuto para ver por

= 9&0

u este algoritmo puede demostrar ser

ptimo y dar el tiempo de retorno promedio mnimo. &saremos el e!emplo de arriba para deducir una formula de tipo general. En la figura 2.=. ;odemos ver ue el traba!o B termina en su tiempo dado ue tuvo ue

L2M, el traba!o # acaba en su tiempo dado, m"s el tiempo

esperar para ue se e!ecutara B L>Y2M, el traba!o A finaliGa en su tiempo dado m"s los tiempos de # mas B L<Y>Y2M y el traba!o , termina en su tiempo dado m"s de los tres anteriores L3Y<Y>Y2M, por lo 45 ue al calcular el promedio

tenemosC

[ ( 2) + ( 4 + 2) + ( 5 + 4 + 2) + ( 6 + 5 + 4 + 2) ] = 9&0
4
,omo puede ver el tiempo para el primer traba!o aparece en la ecuacin

cuatro veces 7 una para cada traba!o 7 en forma similar, el tiempo para el segundo traba!o aparece 4 veces Ln$mero de traba!os menos unoMP el tiempo del tercero, dos Ltraba!os menos dosM, y el tiempo del cuarto, una Lcantidad de traba!os menos 4M. As pues la ecuacin anterior se puede escribir de la formaC

(
#ado ue el tiempo

4 > 2 + 3 > 4 + 2 > 5 + 1> 6 ) Z9.? 4

para el primer traba!o aparece cuatro

veces en la ue la

ecuacin tiene cuatro veces m"s efecto sobre el tiempo promedio

duracin del cuarto traba!o, ue slo figura una veG. As pues, en el primer traba!o re uiere el tiempo de calculo m"s breve, seguido en orden por los dem"s traba!os, ordenadas desde el lapso mas corto hasta el m"s largo, el resultado ser" el promedio m"s pe ueIo posible.

2.1L.3. PLANIFICACIN POR PRIORIDAD L' +3',#C#1'1#2, +)& P&#)&#0'0: es un algoritmo no apropiativo y uno de los algoritmos de planificacin m"s comunes en sistemas por lotes, aun cuando para algunos usuarios pueden dar un tiempo de retorno m"s lento. Este algoritmo da tratamiento preferencial a los traba!os importantes. ;ermite procesar primero y en forma interrumpida los programas con la prioridad m"s elevada hasta ue sus ciclos CPU Ltiempo de e!ecucin se hayan completado o hasta ue ocurra una espera natural. Si hay dos o m"s traba!os

con prioridad igual en la cola de LISTOS, el procesador se asigna a la ue lleg primero Lprimero en entrar, primero en servirse dentro de la prioridadM.

2.1L.4. PLANIFICACIN TIEMPO RESTANTE MMS BREVE E3 .#-*+) &-/.',.- *D/ >&-4- 6SRT8 es la versin apropiativa del algoritmo

46

SHN. El procesador se asigna al traba!o ue est por terminar 7 pero incluso este traba!o se puede hacer a un lado si un traba!o m"s reciente en la cola de LISTO tiene un tiempo de terminacin m"s breve. Este algoritmo no es implementable en un sistema interactivo, por ue re uiere saber por adelantado cu"nto tiempo del CPU representa la terminacin de ada traba!o. A menudo se utiliGa en entornos por lotes, cuando es deseable dar preferencia a traba!os breves, aun cuando el SRT supone m"s carga general ue el SHN, por ue el sistema operativo tiene Vcambios de contextoU para los traba!os ue vigilar con frecuencia el ue se est"n intercambiando tiempo del CPU de todos los traba!os en la cola de LISTO y debe efectuar LVconmutandoUM en el momento de la apropiacin Lno necesariamente hacia el disco, aun ue esto tambin puede ocurrirM. &n e!emplo de la figura 2.@. muestra la forma en ue funciona el algoritmo SRT con cuatro traba!os ue han llegado en r"pida sucesin Lcon una diferencia de un ciclo de CPUM.

TRABAJO * . C 0

TIEMPO DE LLEGADA 0 1 2 3

CICLO DE CPU 6 3 1 4

A u el traba!o A es desplaGado por el traba!o B ya ue ste tiene menos tiempo de ,;& restante A u el traba!o B es desplaGado por el traba!o , ya ue ste tiene menos tiempo de ,;& restante Ahora el traba!o B puede continuar ya ue el traba!o , ha terminado Ahora el traba!o B puede continuar ya ue el traba!o , ha terminado. El traba!o # es el siguiente en correr ya ue necesita menos tiempo de ,;& para terminar ue el traba!o A.

A u el traba!o A se le permite terminar

2raba=o 2raba=o * 0 1 . 2

2raba=o C 3

2raba=o . 5

2raba=o 0 9

2raba=o * 14

47

F#$%&' 2.J( D#'$&'*' 0- .#-*+) 0- 3' /-1%-,1#' 0- .&'>'=)/ A:B:C:D 1), -3 '3$)&#.*) '+&)+#',.- SRT.

En ete caso el tiempo de retorno es el tiempo de teminacin de cada traba!o, menos su tiempo de llegadaC +raba!oC +iempo de retorno A .> B > , . # 3

;or lo ue el tiempo promedio de retorno esC

(14 + 4 + 1 + 6) = 6&25
4 /,om se compara lo anterior con el problema ue utiliGa la poltica SHN no

apropiativa1 6a figura 2.9 utiliGa la misma situacin con SHN.

+raba!o 0 A 7 10 14 6

+raba!o +raba!o , B

+raba!o #

F#$%&' 2.K( L;,-' 0- .#-*+) +'&' 3' *#/*' /-1%-,1#' 0- .&'>'=)/ A:B:C:D: 1), -3 '3$)&#.*) SHN ,) '+&)+#'.#4'.

Este caso el tiempo de retorno esC +raba!oC +iempo de retorno A 3 B 9 , < # ..

;or lo ue el tiempo promedio de retorno esC

( 6 + 9 + 5 + 11)
4

= 7&75

(ote en la figura 2.9. ue inicialmente A es el $nico traba!o

en la cola de

LISTO, por lo ue se e!ecuta primero y contin$a hasta ue est" temrinando por ue SHN es un algoritmo no apropiatio. El sigueinte traba!o ue se va a 48

e!ecutar es ,, por ue cuando termina A Len el tiempo 3M han llagado los dem"s traba!os LB, ,, y #M de estos tres , tiene un ciclo de CPU m"s breve, por lo ue es el siguiente ue se atiende, despus B y por $ltimo #. ue SHN en =.=<

;or lo tanto, con este e!emplo , SRT en 3.2< es mas r"pido

sin embargo, no incluimos el tiempo re uerido por el algoritmo SRT para efectuar el cambio de contexto, el cual se re uiere en todas los algoritmos preferentes. ,uando se opta por el traba!o A, procesamiento toda su informacin de posterior, cuando se debe guardar en su PCB para uso

prosiga su e!ecucin y el contenido del PCB del traba!o B se cargue en los registros apropiados de manera ue pueda volver a e!ecutarseP esto es un cambio de contexto. 6uego, cuando el traba!o A es reasiganado al procesador, ocurre otro cambio de contextoP cada veG la informacin del traba!o desplaGado se almacena en su ;,B y el contenido del ;,B del traba!o A se carga en los registros apropiados.

2.1L.5. PLANIFICACIN ROUND ROBIN R)%,0 R)>#,. Es un logaritmo de planificacin de procesos apropiante muy difundido en sistemas interactivos, ya ue es f"cil de implementar y no se basa en las caracteristicas del traba!o tiempo sino en una fraccin predeterminada de ue los procesos activos ue se da a cada traba!o, para asegurar

compartan por igual el CPU y ue ning$n traba!o lo monopolice. Esta fraccin de tiempo se conoce como ?%'.%* de tiempo y su tamaIo es vital para el desempeIo del sistema. ;or lo general varan de .?? milisegundos a . ? 2 segundos. 6os traba!os se colocan en la cola de LISTO utiliGando el es uema de primero en entrar, primero en servirse, y el planificador de procesos selecciona el primero en la parte delantera de cola, pone en marcha el relo! en el ?%',.%* de tiempo y asignar el CPU a este traba!o. Si elprocesamiento no ha terminado cuando expira el tiempo, se retira el traba!o, se coloca al final de la cola de LISTO y su informacin se guarda en su PCB. En caso ue le ciclo de CPU del traba!o sea m"s breve ue el ?%',.%* de 49

traba!o, ocurrir" una de dos situacionesC .M si se trata del $ltimo ciclo CPU del traba!o y ste ha terminado, todos los recursos asignados al mismos se liberan y el traba!o completando se devuelve al usuario. 2M su una solicitud de EDS ha interrumpido el ciclo del CPU, la informacin de la tarea se guarda en su PCB y ueda vinculada al final de la cola apropiada de entradas y salidas. 6uego una veG satisfecha la solicitud de EDS, se devuelve al final de la cola de LISTO para esperar asignacin de CPU. El e!emplo de la figura 2..?. ilustra un logaritmo de &)%,0 &)>#, con una fraccin de tiempo de > milisegundos Lse ignora las solicitudes de EDSMC

TRABAJO * . C 0

TIEMPO DE LLEGADA 0 1 2 3

CICLO DE CPU 8 4 9 5

2raba=o ? * @ .2 .3 2? 2> 2< > 94

2raba=o .

2raba=o C

2raba=o 0

2raba=o *

2raba=o C

2raba=o 0

2raba=o C

F#$%&' 2.1L( D#'$&'*' 0- .#-*+) +'&' 3' /-1%-,1#' 0- .&'>'=)/ A:B:C:D 1), -3 '3$)&#.*) 0- &)%,0 &)>#, '+&)+#'.#4).

El tiempo de retorno en el lapso en llegada. +raba!oC +iempo de retorno 2? A = B 2>

ue se termina, menos al tiempo de

, 22

;or lo ue el tiempo promedio de retorno esC

( 20 + 7 + 24 + 22)
4

= 18&25

50

(ote

ue la figura 2..?,

el traba!o A se hiGo

de lado una veG por ue

necesitaba @ milesegundos para completar su ciclo de CPU, en tanto ue el traba!o B termino en un tiempo de ?%',.%*. El traba!o , se retir dos veces por ue necesitaba 9 milesegundos para completar su ciclo de CPU y el traba!o # se retir una veG por ue re ueria < milesesundos. En su $ltima e!ecucin o intercambio en la memoria, los trana!os # y , utiliGaron el CPU durante un . milesegundo y terminaron antes ue expirara su tiempo de ?%',.%*: con lo ue libraron el CPU m"s aprisa. 6a eficiencia de &)%,0 &)>#, depende del tamaIo de ?%',.%* en relacin con el ciclo promedio del CPU. Si dicho ?%',.%* es demasiado grande 7 esto es mayor ue la generalidad de los ciclos CPU F el algoritmo se reduce a un sistema FCFS. Si es demasiado pe ueIo, la cantidad de cambios de contexto disminuyen la velocidad de e!ecucin de los traba!os y la carga general se inrementa en forma dram"tica, como lo demuestran los tres e!emplos de la figura 2.... El traba!o A tiene un ciclo de CPU de @ milisegunods. 6a cantidad de cambios de contexto se incrementa conforme se reduce de tamaIo el tiempo de ?%',.%*. En la figura 2.... El primer casoC aM +iene un tiempo de ?%',.%* de .? milesegundos y no hay cambio de contexto Lsin carga generalM, el ciclo del CPU termina antes ue expire el tiempo de ?%',.%* y el traba!o se e!ecuta hasta terminarse. ;ara ese traba!o con este ?%',.%* no hay diferencia entre los algoritmos de &)%,0 &)>#, y de FCFS. bM ,on un tiempo de ?%',.%* de < milesegundos, existe un cambio de contexto. El trana!o se retira una veG cuando el ?%',.%* expira, por lo ue existe algo base en la cantidad de otros traba!os en el sistema. cM ,on un tiempo de ?%',.%* de < milesegundo existe un cambios de contexto, el traba!o se retira una veG cuando el uantum expira por lo ue existe algo de carga general por cambio de contexto, y habra un tiempo de retorno retrasado con base en la cantidad de otros traba!os en el sistema. dM ,on un tiempo de uantum de . milisegundo hay siete cambios de

51

contexto, por ue el traba!o se retira cada ue expira el tiempo de uantumP la carga general se vuelve costosa, y por consiguiente el tiempo de retorno sufre. C%D3 -/ -3 .'*'N) *D/ '0-1%'0) 0-3 .#-*+) 0- ?%',.%*" 6a respuesta debe ser predecible en este momentoC depende del sistema. Si se trata de un entorno interactivo, se espera ue el sistema responda con rapideG a sus usuarios, en especial cuando hacen solicitudes simples. Si se trata de un sistema por lotes, el tiempo de respuesta no es un factor Lel tiempo de retorno lo esM y la carga general ad uiere importancia.

+raba!o A 0 +iempo de uantum Z .? 2raba=o * 0 +iempo de uantum Z < 2raba=o ? * > 4 = 3 < @ 2 . 2raba=o * 2raba=o * 2raba=o * 2raba=o * 2raba=o * 2raba=o * 2raba=o * 5 2raba=o * 8 8

+iempo de uantum Z .
F#$%&' 2.11( C'*>#)/ 0- 1),.-B.) 0- -3 .&'>'=) A 1), .&-/ ?%',.%* 0- .#-*+). E, '8 -3 .&'>'=) .-&*#,' ',.-/ ?%- -B+#&- -3 .#-*+) 0- ?%',.%* -, >8 O 18 -3 ?%',.%* -B+#&' +&#*-&) - #,.-&&%+*+- -3 .&'>'=).

Existen dos reglas pr"cticas generales para seleccionar el .M

uantum VcorrectoUC

#eben ser lo bastante largo para permitir ue @? por ciento de los ciclos CPU se e!ecutan hasta su terminacin.

2M

#ebe ser por lo menos cien veces mas largo ue el tiempo re uerido para llevar a cabo un cambio de contexto. Estas reglas se utuliGan en algunos sistemas, pero no son inflexibles. 52

2.1L.6. PLANIFICACIN DE COLAS DE MULTIPLES NIVELES 6as colas de multiples niveles no son en realidad un algoritmo de planificacin por separado, pero funcionan !unto con varios de los es uemas ya analiGados y se encuentran en sistemas con traba!os ue se pueden agrupar de acuerdo con una car"cteristica com$n. :a hemos presentado por lo menos un tipo de cola de multiples nivelesC la de un sistema basado en prioridades con diferentes colas por cada nivel de importancia. Otro tipo de sistema puede reunir los traba!os limitados por CPU en una cola y los traba!os restringidos por entradas y salidas en otra. 6uego, el planificador de procesos seleccionaria de manera alterna traba!os de cada cola, para mantener el sistema e uilibrado. &n tercer e!emplo com$n es el utiliGado en un entorno hibrido, ue acepta

traba!os por lotes e interactivos. 6os primeros se ponen en una cola llamada cola de Vsegundo planoU en tanto ue los segundos se hubican en una cola de Uprimer planoU y se tratan mas favorablemente ue los correspondientes a las colas de segundo plano. +odos estos e!emplos tienen algo en com$nC la poltica de planificacin se basa en alg$n es uema predeterminado, ue da un tratamiento especial a los traba!os de cada cola. En cada cola, los traba!os se asignan de manera FCFS. A continuacin se compara los diferentes algoritmos presentados en este capitulo. ver tabla 2.4. *lgoritmo <C<! !91 Plani(icaci n por prioridad !-2 2ipo de Pol?tica 1o @ aporpiati#o 1o @ aporpiati#o 1o @ aporpiati#o *porpiati#o /e=or para 5otes 5otes 0es#enta=as 'mpredecible tiempo de retorno *pla)amiento inde(inido de algunos traba=os *pla)amiento inde(inido de algunos traba=os !obrecarga incurrida por conmutaci n de 53 :enta=as <acil de implementar /inimi)a el tiempo promedio de espera *segura la r7pida terminaci n de traba=os importantes *segura la r7pida terminaci n de traba=os cortos

5otes 5otes

conteAto -ound -obin *porpiati#o 'nteracti#o -e6uiere seleccionar un buen tiempo de 6uantum& Pro#ee tiempos de respuesta ra)onables para usuarios interacti#osB asi como asignaci n adecuada de CPU 3s6uema (leAibleB se opone al apla)amiento inde(inido con el en#e=ecimiento u otro mo#imiento en colaB da un tratamiento adecuado a los traba=os asignados al CPU por incremento de 6uantum sobre colas de ba=a prioridad u otro tipo de colas

Colas de mCltiples ni#eles

*propiati#o 1o apropiati#o

5otesD interacti#o

!obrecarga incurrida por re#isi n constante de colas

T'>3' 2.3( C)*+'&'1#2, 0- 3)/ '3$)&#.*)/ 0- +3',#C#1'1#2,.

CAPITULO 3 ADMINISTRACIN DE PROCESOS CONCURRENTES

3.1. PROCESOS CONCURRENTES ASINCRNICOS 6os procesos son conc#rrentes si existen al mismo tiempo. 6os procesos concurrentes pueden funcionar con total independencia unos de otros, o pueden ser asincrnicos, lo cual significa ue re uieren una sincroniGacin y cooperacin ocasionales. El asincronismo es un tpico comple!oP en este traba!o se exponen la organiGacin y administracin de sistemas ue soportan procesos concurrentes asincrnicos. Se presentan muchos problemas importantes de asincronismo. Sus soluciones se presentan como programas concurrentes codificados utiliGando el lengua!e ;ascal concurrente desarrollado inicialmente por [irth L;ascalFSM, extendido por Ben Ari y modificado en la &niversidad de Bradford L&NM por 8.6. #avies L;ascalFH,M.

54

3.2. PROCESAMIENTO EN PARALELO A medida ue disminuyen tanto el tamaIo como el precio del hardKare de las computadoras se ir" produciendo una tendencia hacia el multiprocesamiento y la masificacin del paralelismo. Si ciertas operaciones pueden ser e!ecutadas en paralelo de forma lgica, entonces las computadoras con m$ltiples procesadores las e!ecutar"n fsicamente en paralelo, aun ue en el ni$el %e !aralelismo se den miles o, tal veG, millones de actividades concurrentes. El procesamiento en paralelo es interesante por varias raGones. 6a gente parece m"s capaG de centrar su atencin en una sola actividad a la veG ue de pensar en paralelo. L*ntente leer dos libros al mismo tiempo, leyendo una lnea de un libro, una lnea del otro, la segunda lnea del primero, y as sucesivamenteM. Es difcil determinar cu"les actividades pueden e!ecutarse o no en paralelo. 6os programas en paralelo son mucho m"s difciles de depurar ue los programas secuencialesP despus de haber arreglado supuestamente un error, puede resultar imposible reconstruir la secuencia de eventos ue han ocacionado el error. ;or ello, sera en cierto modo inapropiado asegurar ue se ha corregido el error. 6os procesos asincrnicos deben interactuar ocasionalmente entre s, y esas interacciones pueden ser comple!as. +rataremos varios e!emplos de interaccin de procesos en este traba!o.

3.3. UNA ESTRUCTURA PARA INDICAR EL PARALELISMO( COBEGIN/COEND Son muchas las construcciones de lengua!es de programacin para indicar paralelismo ue han aparecido en la literatura. Estas implican pares de proposiciones como las siguientesC F controlM. &na proposicin indicando ue la e!ecucin secuencial debe ser dividida entre varias secuencias de e!ecucin en paralelo L tra&ectoria %e

55

&na proposicin indicando secuencial.

ue ciertas secuencias de e!ecucin

en paralelo est"n a punto de producirse y se reanudar" la e!ecucin

Estas proposiciones ocurren en pares y suelen denominarse !arbegin'!aren% Lpara comenGar y finaliGar una e!ecucin en paraleloM, o cobegin'coen% Lpara comenGar o finaliGar una e!ecucin concurrenteM. En este traba!o emplearemos cobeginDcoend de acuerdo a la sintaxis del ;ascalFH,. Su forma general esC cobegin proposicin .P proposicin 2P C . proposicin nP coend

Supngase determina

ue un programa est" e!ecutando una sola secuencia de ue la trayectoria de control simple se divida en n trayectorias

instrucciones cuando se encuentra con la construccin cobegin anterior. Esto separadas de control, una por cada proposicin de la construccin cobeginDcoend. Estas pueden ser proposiciones simples, llamadas a procedimientos, blo ues de proposiciones secunciales delineados por beginDend, o combinaciones de stos. ,ada una de las trayectorias de control individuales acaba por alcanGar y terminar al coend. ,uando todas las trayectorias de control paralelas llegan al final, se reanuda una trayectoria de control simple y el sistema prosigue m"s all" del coend. ,omo e!emplo, considrese el siguiente c"lculo de una raG de la ecuacin cuadr"ticaC x CZ L Fb Y Lb\\2 F >\a\cM \\ ?.<M D L2\aM Esta asignacin puede ser evaluada en un procesador secuencial Lposeedor de una instruccin de exponenciacinM de la siguiente maneraC

56

. 2 4 > < 3 = @ 9

b\\2 >\a L>\aM\c Lb\\2M F L>\a\cM Lb\\2 F >\a\cM \\ ?.< Fb LFbM Y L Lb\\2 F >\a\cM\\?.< M 2\a LFbYLb\\2F>\a\cM\\?.<MDL2\aM

A u se e!ecutan de una en una cada una de las nueve operaciones en una secuencia determinada por las reglas de un sistema de precedencia de operadores. En un sistema ue soporte procesamientos en paralelo, la expresin puede evaluarse de la manera siguienteC . cobegin t.CZ FbP t2CZ b \\ 2P t4CZ > \ aP t>CZ 2 \ aP coend 2 4 > < 3 t<CZ t4 \ cP t<CZ t2 F t<P t<CZ t< \\ ?.<P t<CZ t. Y t<P xCZ t< D t>P

A u se eval$an en paralelo las cuatro operaciones contenidas dentro de la construccin cobeginDcoendP las cinco operaciones restantes deben ser e!ecutadas de forma secuencial. Al e!ecutar los c"lculos en paralelo se reduce en gran medida el tiempo real de e!ecucin.

57

3.4. EPCLUSIN MUTUA ,onsidrese un sistema con varias terminales de tiempo compartido. Supngase ue los usuarios acaban cada lnea, ue teclean al sistema con un retorno de carro. Supngase comienGo del da, y ue se desea supervisar continuamente el n$mero total de lneas ue los usuarios han introducido al sistema desde el ue cada terminal est" supervisada por un proceso diferente. ,ada veG ue uno de estos procesos recibe una lnea de la terminal de un usuario incrementa en . la variable global compartida (O6*(EAS. ,onsidrese lo ue pasara si dos procesos intentaran incrementar (O6*(EAS simult"neamente. Supngase cdigoC 6OA# A## (O6*(EAS . ue cada proceso tiene su propia copia del

S+O%E (O6*(EAS Suponga ue (O6*(EAS tiene un valor de 24><. Suponga ahora ue el primer proceso e!ecuta las instrucciones 6OA# y A##, de!ando as el valor de 24>3 en un acumulador. Entonces el proceso pierde el procesador Ldebido a la terminacin de un uantumM en beneficio del segundo proceso. Este $ltimo e!ecuta ahora las tres instrucciones, a!ustando as (O6*(EAS con el valor 24>3. ;ierde el procesador y lo obtiene de nuevo el primer proceso, el cual contin$a con la e!ecucin de la instruccin S+O%E, colocando tambin el valor 24>3 en (O6*(EAS. #ebido al acceso incontrolado a la variable compartida (O6*(EAS el sistema ha perdido la pista de una de las lneas, el total correcto debera ser 24>=. A continuacin, se muestra el programa !ro00 ue simula este concepto as como diferentes corridas del mismo. El proceso %,) mete 3? lneas mientras ue el proceso 0)/ mete >?. ;or supuesto, la suma total de lneas debera ser .??, pero observe lo ue pasa. F ;ascalFH, for *B' ;, compatibles F F ,ompiler Aersion ;<.2

58

8 6 #avies ] A Burns, &niversity of Bradford ,ompiler listing . 2 4 > < 3 = @ 9 .? .. .2 .4 .> .< .3 .= .@ .9 2? 2. 22 24 2> 2< 23 2= 2@ 29 4? ? ? program pro??P ? ? var ? ? ? L\ El proceso uno contar" 3? lineas \M ? process unoP ? var ? ? ? begin ? > > = .. .. L\ El proceso dos contar" >? lneas \M .. process dosP .. var .. .. .. begin .. .< .< .@ 22 for lin CZ . to >? do begin nolineas CZ nolineas Y . end linC integerP for lin CZ . to 3? do begin nolineas CZ nolineas Y . end linC integerP nolineasC integerP

9 endP L\ uno \M

2? endP L\ dos \M

59

4. 42 44 4> 4< 43 4= 4@ 49

22 L\ ;rograma principal \M 22 begin 22 2< 23 4? 4? 4< nolineas CZ ?P cobegin unoP dos coendP KritelnLO+otal de lneas ZO,nolineasM

49 end.

F *nterpreter Aersion ;<.4 F ;rogram pro?? +otal de lneas Z ... execution begins ... <=

;rogram terminated normally +ype r and %E+&%( to rerun ;rogram pro?? +otal de lneas Z ... execution begins ... =>

;rogram terminated normally +ype r and %E+&%( to rerun ;rogram pro?? +otal de lneas Z ... execution begins ... =@

;rogram terminated normally +ype r and %E+&%( to rerun ;rogram pro?? ... execution begins ...

60

+otal de lneas Z

=3

;rogram terminated normally +ype r and %E+&%( to rerun ;rogram pro?? +otal de lneas Z ... execution begins ... 39

;rogram terminated normally

Este problema puede solucionarse d"ndole a cada proceso acceso exclusivo a (O6*(EAS. 'ientras un proceso incrementa la variable compartida, los dem"s procesos ue deseen hacer lo mismo al mismo tiempo deben permanecer a la esperaP cuando ese proceso termine de accesar la variable deseada, le ser" permitido proceder a uno de los procesos. #e esta manera, cada proceso ue est accesando el dato compartido impide a todos los dem"s hacer lo mismo al mismo tiempo. Esto se denomina -B13%/#2, *%.%'.

3.5. SECCIONES CRTICAS 6a exclusin mutua necesita ser aplicada slo cuando un proceso accesa a datos compartidosP cuando los procesos e!ecutan operaciones ue no estn en conflicto entre s, debe permitirseles proceder de forma concurrente. ,uando un proceso est" accesando da tos compartidos se dice ue el proceso se encuentra en su seccin crtica Lo regin crticaM. Esta claro ue para prevenir el tipo de problema experimentado en la seccin anterior debe asegurarse ue, cuando un proceso est en su seccin crtica, todos los dem"s procesos Lo al menos a uellos ue tengan acceso a los mismos datos compartidosM sean excluidos de sus propias secciones crticas. 'ientras un proceso se encuentre en su seccin crtica, los dem"s procesos pueden continuar su e!ecucin fuera de sus secciones crticas. ,uando un proceso abandona su seccin crtica, entonces debe permitrsele proceder a 61

otros procesos ue esperan entra r en su propia seccin crtica Lsi hubiera un proceso en esperaM. 6a aplicacin de la exclusin mutua es uno de los problemas clave de la programacin concurrente. Se han diseIado muchas soluciones para estoC algunas de softKare y algunas de hardKare, m"s de ba!o nivel y otras de alto nivelP algunas entre los procesos, y algunas protocolos estrictos. Estar dentro de una seccin crtica es un estado muy especial asignado a un proceso. El proceso tiene acceso exclusivo a los datos compartidos, y todos los dem"s procesos ue necesitan accesar a esos datos permanecen en espera. ;or tanto, las secciones c rticas deben ser e!ecutadas lo m"s r"pido posible, un programa no debe blo uearse dentro de su seccin crtica, y las secciones crticas deben ser codificadas con todo cuidado Lpara evitar, por e!emplo, la posibilidad de incurrir en ciclos infinitosM. Si un proceso dentro de una seccin crtica termina, tanto de forma voluntaria como involuntaria, entonces, al realiGar su lim!ie"a %e terminacin, el sistema operativo debe liberar la exclusin mutua para entrar en sus secciones crticas. ue otros procesos puedan ue re uieren de cooperacin voluntaria ue demandan una adherencia rgida a

3.6. PRIMITIVAS DE EPCLUSIN MUTUA El programa concurrente ue se muestra a continuacin implementa

correctamente el mecanismo contador de lneas de la seccin anterior. ;or simplicidad, trataremos tan slo dos procesos concurrentes en los programas presentados en esta y en las prximas secciones. El ma ne!o de n procesos concurrentes es mucho m"s comple!o. 6as construcciones entrae(cl#isionm#t#a y sale%ee(cl#sionm#t#a introducidas en el programa enca!s#lan el cdigo en cada proceso ue accesa la variable compartida (O6*(EAS, es decir, estas construcciones demarcan las secciones crtica s. Estas operaciones se llaman, a veces, !rimiti$as %e e(cl#sin m#t#aP o sea, ue invocan las operaciones m"s fundamentales inherentes a la exclusin mutua.

62

program exclusionmutuaP var nolineasC integerP process unoP var linC integerP begin for lin CZ . to 3? do begin entraexclusionmutuaP nolineas CZ nolineas Y .P saledeexclusionmutua end endP L\ uno \M process dosP var linC integerP begin for lin CZ . to >? do begin entraexclusionmutuaP nolineas CZ nolineas Y .P saledeexclusionmutua end endP L\ dos \M begin nolineas CZ ?P cobegin unoP dos

63

coendP end.

En el caso de los dos procesos, estas primitivas operan como sigueC cuando el proceso uno se e!ecuta, entra la exclusin mutua, si el proceso dos no est" en su seccin crtica, entonces el proceso uno entra a su seccin crticaP accesa a la variable deseada y despus se e!ecuta, sale de exclusin mutua para indicar ue ha abandonado su seccin crtica. Si el proceso dos est" en su seccin crtica cuando el proceso uno se e!ecuta entra a exclusin mutua, entonces el proceso uno entra en espera hasta ue proceso dos se e!ecute sale de la exclusin mutua. ;roceso uno puede, entonces, proceder a entrar en su seccin crtica. Si proceso uno y proceso dos se e!ecutan entra la exclusin mutua simult"neamente, entonces le ser" permitido proceder a alguno, permaneciendo el otro en espera.

3.I. IMPLEMENTACIN DE LAS PRIMITIVAS DE EPCLUSION MUTUA Se busca una implementacin ue permite la exclusin mutua, entre el cdigo de entrada a exclusin mutua y sale de exclusin mutua cdigo de salida de exclusin mutua ue satisfaga las cuatro restricciones siguientesC F 6a solucin se implementa slo en softKare en una m" uina ue no tenga instrucciones de exclusin mutua especialmente diseIadas. ,ada instruccin de lengua!e de m" uina se e!ecuta de forma in%i$isibleP es decir, una veG iniciada una instruccin, sta se termina sin interrupcin. Si procesadores m$ltiples tratan de accesar el mismo dato, debemos suponer ue una caracterstica del hardKare llamada interblo)#eo %e almacenamiento resuelve todos los conflictos. El interblo ueo de almacenamiento sec#enciali"a las referencias en conflicto por medio de procesadores separados, esto es, se hace ue las referencias sucedan una a la veG. Se da por supuesto ue las referencias separadas son servidas en orden aleatorio. 64

(o deber" hacerse ninguna suposicin en relacin con las velocidades relativas de procesos concurrentes asincrnicos.

6os procesos propias secciones crticas.

ue se encuentren operando fuera de sus ue entren otros procesos en sus

secciones crticas no pueden evitar

(o deben postergarse indefinidamente la entrada de los procesos en sus secciones crticas.

&na implementacin elegante de softKare de la exclusin mutua fue la presentada por primera veG por el matem"tico holands #eEEer. En la siguiente seccin seguimos el desarrollo de #i!Estra del algoritmo %e De**er.

3.J. ALGORITMOS DE EPCLUSIN MUTUA 3.J.1. DESARROLLO INTUITIVO El programa !ro01 muestra un primer intento de especificar el cdigo para forGar la aplicacin de la exclusin mutua, dentro del contexto de un programa concurrente con dos procesos. 6a construccin cobeginDcoend hace ue el proceso uno y el proceso dos operen como procesos concurrentes. ,ada uno de estos procesos entra en un ciclo, entrando repetidamente en su seccin crtica. En el programa !ro01 entra a exclusin mutua, se implementa por un ciclo OKhileO simple, ue mantiene el ciclo hasta ue !n#mero iguala al n$mero del procesoP sale de exclusin mutua a implementarse por una instruccin simple ue a!usta !n#mero al n$mero del otro proceso. program pro?.P L\ primera version de las primitivas de exclusin mutua \M var pnumeroC integerP nolineasC integerP process unoP

65

var linC integerP begin for lin CZ . to <? do begin Khile pnumero Z 2 do nullP nolineas CZ nolineas Y .P pnumero CZ 2 end endP L\ uno \M process dosP var linC integerP begin for lin CZ . to <? do begin Khile pnumero Z . do nullP nolineas CZ nolineas Y .P pnumero CZ . end endP L\ dos \M begin pnumero CZ .P nolineas CZ ?P cobegin unoP dos coendP

66

KritelnLO+otal de lneas ZO,nolineasM end.

El proceso #no e!ecuta el KhileFdo. ,omo !n#mero es inicialmente ., el proceso #no entra a su seccin crtica. El proceso %os encuentra !n#mero igual a . y permanece encerrado en su ciclo de KhileFdo. ,uando el proceso %os obtiene el procesador, simplemente permanece en el ciclo en espera de ue !n#mero se a!uste a 2, as ue proceso %os no entra en su seccin crtica y la exclusin mutua ueda garantiGada. El proceso #no acaba por terminar la e!ecucin dentro de su seccin crtica Lha de suponerse ue no hay ciclos infinitosM y a!usta !n#mero a 2, permitiendo as ue el proceso %os entre en su seccin crtica. 6a exclusin mutua est" garantiGada, pero el precio es alto. El proceso #no debe de entrar primero, as es ue si el proceso %os est" listo para entrar en su seccin crtica, deber" tardar bastante. #espus de ue el proceso #no entre y salga de su seccin crtica, entonces el proceso %os deber" seguir, aun cuando el proceso #no desee reentrar y el proceso %os no est listo. Entonces, los procesos deber"n entrar y salir de sus secciones crticas en estricta alternancia. Si un proceso re uiere hacer esto muchas m"s veces ue el otro, est" restringido a operar a una velocidad m"s lenta de la ue re uiere. El sistema no debe interblo uearse completamenteP por lo menos puede proceder un proceso, si ambos intentan entrar simult"neamente en sus secciones crticas. S# %,) 0- 3)/ +&)1-/) .-&*#,': -,.),1-/ -3 ).&) ,) +)0&D 1),.#,%'&. En la primera solucin existe solamente una variable global simple, y esto forGaba la aparicin del problema de sincroni"acin blo)#ea%a. As es ue, en la segunda versin +!ro02M, se usan dos variablesC p.dentro, la cual es verdadera si el proceso uno est" dentro de su seccin crtica, y p2dentro, ue es verdadera si proceso dos est" dentro de su seccin crtica. Ahora, mientras p2dentro sea verdadera, el proceso uno permanece encerrado en una espera. El proceso dos acaba abandonando su seccin crtica y realiGa su propio cdigo de salida de exclusin mutua, a!ustando p2dentro en falso. El proceso 67

uno a!usta entonces p.dentro en verdadero y entra en su seccin crtica. 'ientras p.dentro sea verdadera, proceso dos no podr" entrar en su seccin crtica. 6a sutileGa de la programacin concurrente vuelve a salir a la superficie. ,omo uiera ue el proceso uno y el proceso dos son concurrentes, ambos podran intentar en forma simult"nea sus secuencias de cdigo de entrada de exclusin mutua. A continuacin se muestra el listado del programa !ro02. program pro?2P L\ segunda version de las primitivas de exclusin mutua \M var p.dentro, p2dentroC booleanP nolineasC integerP process unoP var linC integerP begin for lin CZ . to <? do begin Khile p2dentro do nullP p.dentro CZ trueP nolineas CZ nolineas Y .P p.dentro CZ false end endP L\ uno \M process dosP var linC integerP begin

68

for lin CZ . to <? do begin Khile p.dentro do nullP p2dentro CZ trueP nolineas CZ nolineas Y .P p2dentro CZ false end endP L\ dos \M begin p.dentro CZ falseP p2dentro CZ falseP nolineas CZ ?P cobegin unoP dos coendP KritelnLO+otal de lneas Z O,nolineasM end.

En principio, tanto p.dentro como p2dentro son falsas. El proceso #no podra probar p2dentro y encontrarla falsaP entonces, antes de ue el proceso #no pueda a!ustar p.dentro en verdadero, el proceso %os podra probar p.dentro y encontrarla falsa. En este punto, el proceso #no coloca p.dentro en verdadero y entra a su seccin crtica, y el proceso %os a!usta p2dentro en verdadero y entra a su seccin crtica. Ambos procesos se encuentran en sus secciones crticas al mismo tiempo, as es ue la segunda versin ni si uiera garantiGa la exclusin mutua. A continuacin se muestra la corrida del programa !ro02. F *nterpreter Aersion ;<.4 F ;rogram pro?2 +otal de lneas Z ... execution begins ... 9.

69

;rogram terminated normally +ype r and %E+&%( to rerun r ;rogram pro?2 +otal de lneas Z ... execution begins ... 9>

;rogram terminated normally +ype r and %E+&%( to rerun ^_ End of data file F program terminating

En la segunda versin existe una dificultad, pues entre el tiempo en ue un proceso determina Len la prueba del KhileM tiempo en seccin crtica, hay tiempo suficiente para ue puede seguir adelante y el ue est" en su ue el otro proceso pruebe su ue el proceso a!usta una bandera para indicar

bandera y entre en su seccin crtica. ;or tanto, una veG ue el proceso intenta la prueba del Khile, debe tener la seguridad de ue el otro proceso no puede ir m"s all" de su propia prueba del Khile. 6a tercer versin intenta resolver esto haciendo ue cada proceso a!uste su bandera antes de la e!ecucin del Khile. program pro?4P L\ tercer version de primitivas de exclusion mutua \M var p. uiere, p2 uiereC booleanP nolineasC integerP process unoP var linC integerP begin

70

for lin CZ . to 2? do begin p. uiere CZ trueP Khile p2 uiere do nullP nolineas CZ nolineas Y .P p. uiere CZfalse end endP L\ uno \M process dosP var linC integerP begin for lin CZ . to 2? do begin p2 uiere CZ trueP Khile p. uiere do nullP nolineas CZ nolineas Y .P p2 uiere CZ false end endP L\ dos \M begin nolineas CZ ?P cobegin unoP dos coendP KritelnLO+otal de lneas ZO,nolineasM end.

Se ha solucionado un problema pero se ha creado otro. Si cada proceso a!usta 71

su bandera antes de proceder con la prueba del Khile, entonces, cada proceso se encontrar" con la bandera del otro a!ustada y entrar"n para siempre en el ciclo KhileFdo. Este es un e!emplo de un interblo)#eo de dos procesos Lla corrida de este programa causa ue la m" uina uede blo ueadaM. F *nterpreter Aersion ;<.4 F ;rogram pro?4 ... execution begins ...

LEl programa blo uea la computadora, deber" dar resetM El problema de la tercera versin es ue todos los procesos pueden encerrarse en su ciclo KhileFdo respectivo. Es necesaria una manera de QromperQ estos ciclos. 6a cuarta versin logra esto al forGar cada proceso de ciclo a a!ustar su bandera en falso repetidamente en perodos brevesP esto permitir" al otro proceso proceder m"s all" de su prueba del Khile, con su bandera todava conectada. program pro?>P L\ cuarta version de primitivas de exclusion mutua\M var p. uiere, p2 uiereC booleanP nolineasC integerP process unoP var linC integerP begin for lin CZ . to 2? do begin p. uiere CZ trueP Khile p2 uiere do begin p. uiere CZ falseP sleepLrandomL.?MMP p. uiere CZ true

72

endP nolineas CZ nolineas Y .P p. uiere CZ false end endP L\ uno \M process dosP var linC integerP begin for lin CZ . to 4? do begin p2 uiere CZ trueP Khile p. uiere do begin p2 uiere CZ falseP sleepLrandomL.?MMP p2 uiere CZ true endP nolineas CZ nolineas Y .P p2 uiere CZ false end endP L\ dos \M begin nolineas CZ ?P cobegin unoP dos coendP KritelnLO+otal de lneas ZO,nolineasM end. A continuacin se muestra una corrida para este programa.

73

F ;ascalFH, for *B' ;, compatibles F F ,ompiler Aersion ;<.2 8 6 #avies ] A Burns, &niversity of Bradford ,ompiling pro?> ...

,ompilation complete F *nterpreter Aersion ;<.4 F ;rogram pro?> +otal de lneas Z ... execution begins ... <?

;rogram terminated normally +ype r and %E+&%( to rerun ^_ End of data file F program terminating

6a exclusin mutua ueda garantiGada y no puede ocurrir el interblo ueo, pero puede presentarse otro problema devastador en potencia, el de !ostergacin in%efini%a. Aeamos como. #ebido a ue no pueden hacerse suposiciones acerca de las velocidades relativas de los procesos concurrentes asincrnicos, habr" ue considerar todas las secuencias de e!ecucin posibles. El proceso podra, por e!emplo, proceder en t"ndem. ,ada proceso puede seguir la siguiente secuenciaC a!ustar su bandera en verdadero, hacer la prueba del Khile, entrar en el cuerpo del ciclo Khile, a!ustar su bandera en falso, retardarse, a!ustar su bandera en verdadero y, luego, repetir la secuencia, comenGando con la prueba del Khile. En tanto hacen esto, las condiciones de prueba permanecer"n verdaderas. #esde luego ue la probabilidad de ue tal operacin ocurra es muy ba!a, pero !#e%e ocurrir. ;or lo tanto, la cuarta versin es inaceptable. Si un sistema ue utiliGa este sistema de exclusin ue ocurra una mutua estuviera controlando un vuelo espacial, un marcapasos cardaco o un sistema de control de tr"fico areo, la posibilidad de

74

postergacin indefinida con el consecuente fallo del sistema no es admisible.

3.K. ALGORITMO DE DEQQER En slo unas cuantas lneas de cdigo, el algoritmo de #eEEer L;rograma deEEerM mane!a de manera elegante la exclusin mutua de dos procesos sin necesidad de ninguna instruccin especial de hardKare. El algoritmo de #eEEer resuelve la posibilidad de la postergacin indefinida experimentada en la cuarta versin. Aeamos como. El proceso uno indica su deseo de entrar en su seccin crtica, al conectar su bandera La!ustarla en verdaderoM. Entonces proced e con la prueba del Khile donde verifica si el proceso dos tambin uiere entrar. Si la bandera del proceso dos est" desconectada La!ustada en falsoM, entonces el proceso uno salta el cuerpo del ciclo Khile y entra en su seccin crtica. Supngase, sin embargo, ue cuando el proceso uno realice la prueba del

Khile, descubre ue la bandera del proceso dos est" conectada. Esto obliga al proceso uno a entrar al cuerpo del ciclo Khile. A u busca la variable favorecido, ue se utiliGa para resolver los conflictos ue surgen cuando ambos procesos desean entrar al mismo tiempo en sus secciones crticas. Si el proceso uno es el favorecido, salta el cuerpo del if y e!ecuta repetidamente la prueba del Khile, esperando a L6uego veremos ue el Si el proceso uno determina ue el proceso dos desconecte su bandera. dos debe acabar haciendo eso.M ue el proceso favorecido es el proceso dos, proceso

entonces el proceso uno es forGado a entrar en el cuerpo del if, donde desconecta su propia bandera, entra al ciclo del prximo Khile y permanece all en tanto el proceso dos siga siendo el proceso favorecido. Al desconectar su propia bandera, el proceso uno permite al proceso dos entrar en su seccin crtica. El proceso dos acabar" abandonando su seccin crtica y e!ecutar" su cdigo de salida de exclusin mutua. Estas instrucciones a!ustan el proceso favorecido de vuelta al proceso uno y desconectan la bandera del proceso dos. El proceso uno puede entrar ahora al Khile interno y conectar su propia bandera. El

75

proceso uno realiGa ahora el Khile externo. Si la bandera del proceso dos L ue acaba de desconectarseM sigue a$n desconectada, entonces el proceso uno entra en su seccin crtica. Sin embargo, si el pro ceso dos intent reentrar r"pidamente en su seccin crtica, entonces la bandera del proceso dos estar" conectada y el proceso uno ser" obligado de nuevo a entrar en el cuerpo del Khile externo. En esta ocasin, sin embargo, el proceso uno est" Qsentado en el asiento del conductorQ, debido a ue ahora es el proceso favorecido Lrecuerde ue cuando el proceso dos abandon su seccin crtica, a!ust favorecido al primeroM. As es ue el proceso un o salta el cuerpo del if y e!ecuta de forma repetida la prueba del Khile externo, hasta ue el proceso dos QhumildementeQ, desconecte su bandera, permitiendo entrar en su seccin crtica. A continuacin se muestra el listado del programa ue utiliGa el algoritmo de #eEEer para la exclusin mutua. program deEEerP L\ solucin de #eEEer al problema de la exclusion mutua \M var favorecidoC integerP p. uiere, p2 uiereC booleanP nolineasC integerP process unoP var linC integerP begin for lin CZ . to 2? do begin p. uiere CZ trueP Khile p2 uiere do begin 76

p. uiere CZ falseP Khile favorecido Z 2 do nullP p. uiere CZ true endP nolineas CZ nolineas Y .P favorecido CZ 2P p. uiere CZ false end endP L\ uno \M process dosP var linC integerP begin for lin CZ . to 2? do begin p2 uiere CZ trueP Khile p. uiere do begin p2 uiere CZ falseP Khile favorecido Z . do nullP p2 uiere CZ true endP nolineas CZ nolineas Y .P favorecido CZ .P p2 uiere CZ false end endP L\ dos \M begin nolineas CZ ?P favorecido CZ .P cobegin

77

unoP dos coendP KritelnLO+otal de lneas Z O,nolineasM end.

A continuacin se tiene la corrida del programa anterior. ,ompiling deEEer ...

,ompilation complete F *nterpreter Aersion ;<.4 F ;rogram deEEer ... execution begins ...

+otal de lneas Z >? ;rogram terminated normally ,onsidere la siguiente posibilidad interesante. Al salir el proceso uno del ciclo interno de espera, es posible ue pierda el procesador, y ue el proceso dos complete el ciclo e intente entrar de nuevo en su seccin crtica. El proceso dos conectar" entonces su bandera primero y entrar" en su seccin crtica. ,uando el proceso uno obtenga de nuevo el procesador, conectar" su bandera. ,omo ser" el turno del proceso uno, si el proceso dos intenta entrar, desconectar" su propia bandera y ser" obligado a entrar al ciclo interno de espera, y el proceso uno podr" entrar en su seccin crtica. #e esta manera, este truco no dar" como resultado una postergacin indefinida.

3.1L. ALGORITMO DE PETERSON Otro interesante algoritmo para mane!ar la exclusin mutua entre dos procesos, es el algoritmo de ;eterson Lprograma ptrsonM, del cual presentamos el siguiente listado y corrida. program petersonP L\ Algoritmo de ;eterson para la exclusin mutua de dos 78 procesos

\M var nolineas, turno C integerP band., band2C booleanP process unoP var linC integerP begin for lin CZ . to 2? do begin band.CZ trueP turnoCZ 2P nullP nolineas CZ nolineas Y .P band.CZ false end endP process dosP var linC integerP begin for lin CZ . to 4? do begin band2CZ trueP turnoCZ .P nullP nolineas CZ nolineas Y .P band2CZ false L\ anuncia el intento de entrar \M L\ le da prioridad al otro proceso \M L\ anuncia el intento de entrar \M L\ le da prioridad al otro proceso \M

Khile band2 and Lturno Z 2M do

Khile band. and Lturno Z .M do

79

end endP begin nolineas CZ ?P turno CZ .P band. CZ falseP band2 CZ falseP cobegin unoP dos coendP KritelnLO+otal de 6neasC O,nolineasM end. ,C`;ASH,apfc ptrson.pfc F ;ascalFH, for *B' ;, compatibles F F ,ompiler Aersion ;<.2 8 6 #avies ] A Burns, &niversity of Bradford ,ompiling peterson ... ,ompilation complete F *nterpreter Aersion ;<.4 F ;rogram peterson ... execution begins ... +otal de 6neasC <?

;rogram terminated normally +ype r and %E+&%( to rerun ^_ End of data file F program terminating

80

6os procesos comparten las variables ban%1, ban%2 y t#rno. *nicialmente band. Z band2 Z false, y el valor de turno no tiene relevancia Lpero debe ser . o 2M. En el listado de los procesos, se puede apreciar ue para entrar en la seccin crtica, el proceso #no primero asigna tr#e a band. y luego afirma ue es el turno del proceso %os para entrar si as lo desea LturnoZ2M. Si ambos procesos tratan de entrar a la veG, se asignar" turno como . y 2 aproximadamente al mismo tiempo. Slo una de estas asignaciones durar"P la otra ocurrir", pero ser" reemplaGada de inmediato. El valor eventual de turno decide a cual de los dos procesos se le permitir" entrar primero en su seccin crtica. Ahora demostraremos ue esta solucin es correcta. (ecesitamos demostrarC L.M ue se conserva la exclusin mutua, L2M y L4M ue se cumple el ue se respeta el re uisito de de espera limitada. ue cada proceso entra en su progreso re uisito

;ara demostrar la propiedad L.M observamos

seccin crtica $nicamente cuando band2 Z false o turno Z . para el proceso #no Lband. Z false o turno Z 2 para el proceso %osM. Observe tambin ue, si ambos procesos pueden estar en e!ecucin en sus secciones crticas al mismo tiempo, entonces band. Z band2 Z true. Estas dos observaciones representan ue #no y %os no pueden haber cumplido con xito la condicin del Khile aproximadamente al mismo tiempo, ya ue el valor de turno puede ser . o 2, pero no los dos. ;or consiguiente, uno de los procesos, digamos #no, debi e!ecutar con xito la condicin Khile, mientras ue %os tuvo ue e!ecutar por lo menos un enunciado adicional LQturnoZ2QM. S in embargo, como en ese momento band.Ztrue y turnoZ2, y esta condicin persistir" mientras #no se encuentre en su seccin crtica, se concluye mutua. ;ara comprobar las propiedades L2M y L4M observamos ue se puede evitar ue el proceso dos entre en su seccin crtica $nicamente cuando se ueda en el ciclo Khile con la condicin band.Ztrue y turno Z .P ste es el $nico ciclo. Si uno no est" listo para entrar en la seccin crtica, entonces band.Z false, y dos puede entrar en su seccin crtica. Si uno ha establecido band. Z true y ue se conserva la exclusin

81

tambin est" e!ecutando su enunciado Khile, entonces turno Z . o turno Z 2. Si turno Z 2, entonces uno entrar" en la seccin crtica. Empero, una veG ue uno sale de su seccin crtica, volver" a establecer band.Zfalse, permitiendo ue dos entre en su seccin crtica. Si uno vue lve a establecer band. como true, tambin deber" establecer turnoZ2. ;or lo tanto, como dos no cambia el valor de la variable turno mientras e!ecuta el ciclo Khile, dos entrar" en la seccin crtica L+&)$&-/)M des pus de, como m"ximo, una entrada de uno L -/+-&' 3#*#.'0'M.

3.11. EPCLUSION MUTUA DE ,9PROCESOS 3.11.1. ALGORITMO DE DIHQSTRA #i!Estra fue el primero en presentar una solucin de softKare para la implementacin de primitivas de exclusin mutua de nFprocesos. A continuacin se muestra un programa ue utiliGa el algoritmo de #i!Estra para la exclusin mutua. program di!EstraP L\ algoritmo de di!Estra para la exclusin mutua \M const nprocsZ4P var b, cC arrayR?..nprocsS of booleanP turnoC integerP i, nolineas C integerP procedure locELpnumC integerMP var oEC booleanP !C integerP

82

begin bRpnumS CZ falseP repeat Khile turno ba pnum do begin cRpnumS CZ trueP if bRturnoS then turno CZ pnum endP L\ Khile \M cRpnumS CZ falseP oE CZ trueP for ! CZ . to nprocs do if ! ba pnum then oE CZ oE and cR!S until oE endP L\ locE \M procedure unlocELpnumC integerMP begin cRpnumS CZ trueP bRpnumS CZ trueP turno CZ ? endP L\ unlocE \M process type terminalLnC integerMP var loopC integerP begin for loop CZ . to 2? do begin locELnMP nolineas CZ nolineas Y .P unlocELnM

83

end endP L\ terminal \M var pC arrayR?..nprocsS of terminalP begin nolineas CZ ?P for turno CZ ? to nprocs do begin bRturnoS CZ trueP cRturnoS CZ true endP turno CZ ?P cobegin for i CZ ? to nprocs do pRiSLiM coendP KritelnLO+otal de 6neasC O,nolineasM end. A continuacin se muestran los resultados de la corrida del programa Lobsrvese ue son > procesos ue meten 2? lneas cada unoMC F ;ascalFH, for *B' ;, compatibles F F ,ompiler Aersion ;<.2 8 6 #avies ] A Burns, &niversity of Bradford ,ompiling di!Estra ... ,ompilation complete F *nterpreter Aersion ;<.4 F ;rogram di!Estra ... execution begins ... +otal de 6neasC @? 84

;rogram terminated normally +ype r and %E+&%( to rerun ^_ End of data file F program terminating

3.11.2. ALGORITMO DE LAMPORT 6amport desarroll una solucin ue es particularmente aplicable a los

sistemas de procesamiento distribuido. El algoritmo usa un sistema de Qtoma de boletoQ, como el usado en las panaderas muy concurridas, y ha sido apodado el algoritmo %e la !ana%e ra %e -am!ort . (os centraremos $nicamente en los aspectos del algoritmo relacionados con un entorno centraliGado. Al entrar en la tienda cada cliente recibe un n$mero, y se atiende primero al ue tenga el n$mero menor. ;or desgracia, el algoritmo de la panadera no puede garantiGar ue dos procesos LclientesM no reciban el mismo n$mero. En el caso de un empate, prim ero se atiende el proceso con el nombre menor. Es decir, si ;i y ;! reciben el mismo n$mero y si i b !, entonces primero se servir" a ;i. ,omo los nombres de procesos son $nicos y ordenados, nuestro algoritmo es completamente determinista. 6as estructuras de datos comunes sonC var boletoC arrayR...nprocsS of integerP eleccionC arrayR...nprocsS of booleanP Al principio, a estas estructuras se les asigna un valor inicial ? y false, respectivamente. ;or conveniencia, definimos la siguiente notacinC , 6':>8 R 61:08 /# 6' R 18 ) /# 6' S 18 O > R 0

,ondicin ue determina si el proceso b con el boleto a es favorecido o no para

85

entrar a la seccin crtica con respecto al proceso d con el boleto c. Len el programa baEery esta condicin se implementa por medio de la funcin favorecidoM. , *'B6'1 : ... : ',8

es Lesto

un se

n$mero, implementa

E, en

tal el

ue

ai

para la

iZ., funcin

...,n ma(M

programa

mediante

A continuacin se muestra un listado del programa para resolver el mismo problema de exclusin mutua Lconteo de lneasM mediante el algoritmo de la panadera de 6amport. program baEeryP L\ Exclusin mutua con el algoritmo de la panadera de 6amport \M const nprocs Z <P var boletoC arrayR...nprocsS of integerP eleccionC arrayR...nprocsS of booleanP lpC integerP nolineasC integerP process type EntradaLesteprocC integerMP var otroproc, lpC integerP function maxC integerP var i, largoC integerP begin 86

largo CZ ?P for i CZ . to nprocs do if boletoRiS a largo then largo CZ boletoRiSP max CZ largo Y . endP L\ max \M function favorecidoLi, !C integerMC booleanP begin if LboletoRiS Z ?M or LboletoRiS a boletoR!SM then favorecido CZ false else if boletoRiS b boletoR!S then favorecido CZ true else favorecido CZ Li b !M endP L\ favorecido \M begin for lp CZ . to 2? do begin eleccionResteprocS CZ trueP boletoResteprocS CZ maxP eleccionResteprocS CZ falseP for otroproc CZ . to nprocs do begin Khile eleccionRotroprocS do nullP Khile favorecidoLotroproc, esteprocM do nullP endP nolineas CZ nolineas Y .P boletoResteprocS CZ ? end

87

endP L\ Entrada \M var turnosC arrayR...nprocsS of EntradaP begin nolineas CZ ?P for lp CZ . to nprocs do begin boletoRlpS CZ ?P eleccionRlpS CZ falseP endP cobegin for lp CZ . to nprocs do turnosRlpSLlpM coendP KritelnLO+otal de 6neasC O,nolineasC>M end.

A continuacin se muestran los resultados de la corrida del programaC F ;ascalFH, for *B' ;, compatibles F F ,ompiler Aersion ;<.2 8 6 #avies ] A Burns, &niversity of Bradford ,ompiling baEery ...

,ompilation complete F *nterpreter Aersion ;<.4 F ;rogram baEery ... execution begins ...

+otal de 6neasC .?? ;rogram terminated normally

88

+ype r and %E+&%( to rerun ^_ End of data file F program terminating

3.12. SEMMFOROS #i!Estra extract las nociones clave de la exclusin mutua en su concepto de semforo. &n sem"foro es una $ariable !rotegi%a cuyo valor puede ser accesado y alterado tan slo por las operaciones 5'#.: /#$,'3 y una operacin de ini cialiGacin del sem"foro #,#.#'3. 6os semforos binarios slo pueden tomar los valores ? y .. 6os semforos conta%ores pueden tomar valores enteros no negativos. 6a operacin 5'#. en el sem"foro S, escrito KaitLSM, opera de la siguiente maneraC if S a ? then SCZS F . else Lespera en SM

6a operacin /#$,'3 en el sem"foro S, escrito signalLSM, opera de la siguiente maneraC if Luno o m"s procesos est"n en espera en SM then Lde!a proseguir a uno de estos procesosM else SCZSY.

Supondremos ue hay una disciplina de colas del primero en entrar F primero en salir para los procesos ue esperan a completar un KaitLSM. 6a e!ecucin de las instrucciones Kait y signal son indivisibles. 6a exclusin mutua en el sem"foro, S, es aplicada en KaitLSM y signalLSM. Si varios procesos intentan e!ecutar KaitLSM al mismo tiempo, slo uno podr" proseguirP los otros permanecer"n en espera. 6os sem"foros y las operaciones de sem"foros pueden implementarse en softKare o hardKare. En general, se implementan en el n$cleo del sistema operativo, donde se controlan los cambios de estado de

89

un proceso. El programa sem01

ue se lista a continuacin, muestra como

pueden utiliGarse los sem"foros para aplicar la exclusin mutua. program sem?.P L\ solucin por sem"foros al problema de la exclusin mutua \M var nolineasC integerP mutexC semaphoreP L\ declaracin del sem"foro \M process unoP var linC integerP begin for lin CZ . to 2? do begin KaitLmutexMP signalLmutexM end endP L\ uno \M process dosP var linC integerP begin for lin CZ . to 2? do begin KaitLmutexMP nolineas CZ nolineas Y .P signalLmutexM end 90 L\ Espera por el sem"foro \M L\ libera el sem"foro \M nolineas CZ nolineas Y .P L\ seccin crtica \M

endP L\ dos \M begin nolineas CZ ?P initialLmutex,.MP L\ se inicialiGa el sem"foro \M cobegin unoP dos coendP KritelnLO+otal de 6neas Z O,nolineasM end.

A continuacin se muestran los resultados de la corrida del programa. F ;ascalFH, for *B' ;, compatibles F F ,ompiler Aersion ;<.2 8 6 #avies ] A Burns, &niversity of Bradford ,ompiling sem?. ...

,ompilation complete F *nterpreter Aersion ;<.4 F ;rogram sem?. +otal de 6neas Z ... execution begins ... >?

;rogram terminated normally +ype r and %E+&%( to rerun ^_ End of data file F program terminating

3.12.1. SINCRONITACIN DE PROCESOS CON SEMMFOROS

91

,uando un proceso emite una peticin de entradaDsalida, se blo uea a s mismo para esperar a de blo ueoDdespertar. En forma m"s general, supngase ue un proceso desee ser informado de la ocurrencia de un evento. Supngase ue otro proceso es capaG de detectar ue ese acontecimiento ya ha ocurrido. El siguiente programa L sem02M muestra cmo pueden utiliGarse la s operaciones de sem"foros para implementar un mecanismo simple de sincroniGacin de blo ueoDdespertar de dos procesos. program sem?2P L\ ;roceso de sincroniGacin de blo ueoDdespertar con sem"foros \M var mutexC semaphoreP L\ declaracin del sem"foro \M process unoP begin KritelnLO,osas preliminares de &noOMP KaitLmutexMP endP L\ uno \M process dosP begin KritelnLO,osas preliminares del #osOMP signalLmutexMP KritelnLOOtras cosas del #os.OMP endP L\ dos \M begin L\ Espera por el sem"foro \M KritelnLOOtras cosas del &noOMP ue termine esta operacin. Algunos procesos deben despertar al proceso blo ueado. +al interaccin es un e!emplo de un protocolo

92

initialLmutex,?MP cobegin unoP dos coendP end. ,ompiling sem?. ...

,ompilation complete F *nterpreter Aersion ;<.4 F ;rogram sem?. ... execution begins ...

,osas preliminares de &no ,osas preliminares del #os Otras cosas del #os. Otras cosas del &no ;rogram terminated normally +ype r and %E+&%( to rerun ^_ End of data file F program terminating

El proceso #no e!ecuta algunas cosas preliminares y despus e!ecuta KaitLmutexM. El sem"foro ha sido inicialiGado a cero, de modo ue el proceso debe esperar. El proceso %os e!ecuta signalLmutexM para seIalar ue el evento ha ocurrido. Esto permite proceder al proceso #no. Obsrvese ue este mecanismo traba!a incluso cuando proceso %os detecta y seIala el evento antes de ue el proceso #no e!ecute KaitLmutexMP el sem"foro habr" sido incrementado de ? a ., as es ocurra el evento. ue KaitLmutexM, decrementa el ue esperar a ue sem"foro de . a ?, y proceso #no proseguir" sin tener

3.12.2. BLO UEOS MUTUOS < BLO UEOS INDEFINIDOS

93

6a implantacin de un sem"foro con una cola de espera puede dar como resultado una situacin donde dos o m"s procesos esperen indefinidamente un suceso ue slo puede ocasionar uno de los procesos en espera. El suceso en cuestin consiste en la e!ecucin de una operacin signal. ,uando se llega a este estado, se dice ue los procesos est"n en blo)#eo m#t#o. ;ara ilustrarlo, consideremos un sistema ue consta de dos procesos, Uno y Dos, cada uno con acceso a dos sem"foros, S y 0, con valor inicial .C &no KaitLSM KaitL0M . . . signalLSM signalL0M e!ecuta .ait+10, debe esperar a #os KaitL0M KaitLSM . . . signalL0M signalLSM ue #os e!ecute signal+10. #e manera ue &no e!ecute

Suponga ue &no e!ecuta .ait+/0 y luego #os e!ecuta .ait+10. ,uando &no parecida, cuando #os e!ecuta .ait+/0, debe esperar a est"n en blo ueo mutuo. #ecimos ue un con!unto de procesos est" en un estado de blo ueo mutuo cuando cada uno de los procesos del con!unto est" esperando un suceso ue $nicamente inanicin, en puede ser provocado por otro proceso del con!unto. Otro problema relacionado con el blo ueo mutuo es el blo)#eo in%efini%o o ue los procesos pueden esperar indefinidamente dentro del sem"foro. El blo ueo indefinido se puede presentar si aIadimos y eliminamos procesos de la lista aso ciada con un sem"foro en orden 6*HO. A continuacin se muestra el listado de un programa sencillo ue ilustra el

signal+ /0. ,omo estas operaciones de signal no pueden e!ecutarse, &no y #os

concepto de blo ueo mutuo. 6a segunda columna de n$meros en el listado del compilador, corresponde a la direccin de memoria de esa instruccin en lengua!e de m" uina. Este tipo de listado se presenta para determinar, el punto

94

exacto, de cada proceso en el programa fuente, donde ocurre el blo ueo. F ;ascalFH, for *B' ;, compatibles F F ,ompiler Aersion ;<.2 8 6 #avies ] A Burns, &niversity of Bradford ,ompiler listing 6ine ;, . 2 4 > < 3 = @ 9 .? .. .2 .4 .> .< .3 .= .@ .9 2? 2. 22 24 2> 2< ? program sem?4P ? L\ ? ;roceso de sincroniGacin de blo ueoDdespertar ? con sem"foros ? \M ? ? var ? S, 0C semaphorePL\ declaracin de los sem"foros \M ? ? process &noP ? begin ? 4 < @ .? .? .4 .4 .< .@ .@ .@ process #osP .@ begin 95 signalLSMP signalL0MP KritelnLO&no entra a la seccin crtica OMP KritelnLOEntramos al &noOMP KaitLSMP KaitL0MP L\ Espera por el sem"foro \M KritelnLOEl &no toma S y espera por 0OMP

.= endP L\ uno \M

23 2= 2@ 29 4? 4. 42 44 4> 4< 43 4= 4@ 49 >? >. >2 >4 >> ><

.@ 2. 24 23 2@ 2@ 4. 4. 44 43 43

KritelnLOEntramos al #osOMP KaitL0MP KaitLSMP KritelnLO#os entra a la seccin crtica OMP signalL0MP signalLSMP L\ Espera por el sem"foro \M KritelnLOEl #os toma 0 y espera por SOMP

4< endP L\ dos \M

43 begin 43 initialLS,.MP >? initialL0,.MP >> cobegin >< >9 &noP #os

>9 coendP <> end.

,ompilation complete

A continuacin se muestran diferentes corridas del programa hasta obtener un blo ueo mutuo. F *nterpreter Aersion ;<.4 F ;rogram sem?4 Entramos al &no Entramos al #os El &no toma S y espera por 0 &no entra a la seccin crtica El #os toma 0 y espera por S 96 ... execution begins ...

#os entra a la seccin crtica ;rogram terminated normally +ype r and %E+&%( to rerun r Entramos al &noEntramos al #os El #os toma 0 y espera por S #os entra a la seccin crtica El &no toma S y espera por 0 &no entra a la seccin crtica ;rogram terminated normally +ype r and %E+&%( to rerun r Entramos al &no El &no toma S y espera por 0 Entramos al #os El #os toma 0 y espera por S Abnormal halt in process dos Kith pc Z 2@ R-'/),( 0-'03)1U

See pmdfile for postFmortem report

En estas condiciones se obtiene el blo ueo mutuo antes mencionado. El intrprete ofrece un diagnstico de esta condicin de la siguiente formaC ;ascalFH, postFmortem report on sem?4 F *nterpreter Aersion ;<.4 F Abnormal halt in process dos Kith pc Z 2@ 97

%easonC deadlocE FFFFFFFFFF 'ain program StatusC aKaiting process termination FFFFFFFFFF ;rocess uno StatusC active pc Z .? ;rocess suspended onC LsemaphoreM FFFFFFFFFF ;rocess dos StatusC active pc Z 2@ ;rocess suspended onC s LsemaphoreM ZZZZZZZZZZ 8lobal variables Z s Z ? ?

3.13. LA RELACIN PRODUCTOR 9 CONSUMIDOR En un programa secuencial, cuando un procedimiento llama a otro y le trasmite datos, los procedimientos son parte de un proceso simple y no operan de forma concurrente. ;ero cuando un proceso transmite datos a otro, los problemas son 98

mucho m"s comple!o s. +al transmisin es un e!emplo de com#nicacin inter!rocesos. ,onsidrese la siguiente relacin productor consumidor. Suponga proceso, #n !ro%#ctor, est" generando informacin ue un

ue utiliGa un segundo

proceso, #n cons#mi%or. Suponga ue se comunican por medio de la variable compartida, b#ffer2 '34. 5l !ro%#ctor agrega %atos en el arreglo b#ffer, el cons#mi%or lee los %atos %e b#ffer & los im!rime. Es posible ue los procesos productor y consumidor traba!en bien en t"ndem, o ue sus velocidades de e!ecucin sean muy parecidas. Si cada veG ue el productor deposita un dato en buffer, el consumidor lo lee y lo imprime de inmediato, entonces la salida impresa representar" fielmente la corriente de n$meros generada por el productor. ;ero supngase ue las velocidades de los procesos son dispares. Si el ue el productor los deposite. Si el ue el consumidor, el productor podra ue el consumidor tenga la

consumidor est" operando con m"s rapideG ue el productor, el consumidor puede leer e imprimir datos antes de productor est" operando m"s r"pido

sobre escribir los datos previos antes de

oportunidad de leerlos e imprimirlosP un productor muy veloG podra hacer esto muchas veces, con lo cual muchos resultados se perderan. ,omo es evidente, el comportamiento ue deseamos a u es ue el productor y el consumidor cooperen de forma tal ue los datos escritos en buffer no se dupli uen ni se pierdan. 6a aplicacin de tal comportamiento se conoce como sincroniGacin de procesos. El siguiente programa LpcsemM muestra un programa concurrente ue utiliGa las operaciones de sem"foros para implementar una relacin productor F consumidor. 6os procesos utiliGan la variable compartida buffer. El productor va poniendo en el arreglo los n$meros del 3< al 9? Lcdigo AS,** de las letras AF_M mientras ue el consumidor los va tomando e imprimiendo. A u hemos utiliGado tres sem"forosC mutex se utiliGa para aplicar el acceso de exclusin mutua a la variable compart ida bufferP listos controla la sincroniGacin de los procesos para determinar si existen datos en el bufferP espacios controla en la sincroniGacin la existencia de espacio en el buffer. 99

program pcsemP L\ Solucin al problema del ;roductor F ,onsumidor mediante el uso de sem"foros \M const buffmax Z <P var bufferC arrayR?..buffmaxS of integerP sigentra, sigsaleC integerP L\ apuntadores a buffer para el mane!o de la cola\M espacios, listosC semaphoreP mutexC semaphoreP +&)1-0%&- +),617( #,.-$-&8V begin L\ el buffer es una cola circular \M bufferRsigentraS CZ chP sigentra CZ Lsigentra Y .M mod Lbuffmax Y .M endP L\ pon \M

+&)1-0%&- .)*'64'& 17( #,.-$-&8V begin ch CZ bufferRsigsaleSP sigsale CZ Lsigsale Y .M mod Lbuffmax Y .M endP L\ toma \M +&)1-// +&)0%1.)&V var localC integerP begin

100

for local CZ 3< to 9? do begin KaitLespaciosMP KaitLmutexMP ponLlocalMP signalLmutexMP signalLlistosM end endP L\ productor \M +&)1-// 1),/%*#0)&V var localC integerP begin repeat begin KaitLlistosMP L\ Espera ue haya datos listos \M KaitLmutexMP tomaLlocalMP L\ Entra en la seccin crtica \M L\ Seccin crtica \M KriteLchrLlocalMMP L\ Sale de seccin crtica \M L\ Avisa ue ya hay un dato listo \M L\ Espera ue haya espacio \M L\ Entrada a la seccin crtica \M L\ Seccin crtica \M

signalLmutexMP L\ sale de la seccin crtica \M signalLespaciosMP L\ Avisa ue hay un espacio \M KriteLchrLlocalY42MMP end until local Z 9?P Kriteln endP L\ consumidor \M begin initialLespacios,buffmax Y .MP initialLlistos,?MP initialLmutex,.MP sigentra CZ ?P

101

sigsale CZ ?P cobegin productorP consumidor coend end.

A contin#acin se muestran diferentes corridas de este programa. 6as letras may$sculas corresponden al dato y el momento en ue el productor pone en el buffer el dato. 6as letras min$sculas indican el dato y el momento en ue el consumidor tom el dato. F ;ascalFH, for *B' ;, compatibles F F ,ompiler Aersion ;<.2 8 6 #avies ] A Burns, &niversity of Bradford ,ompiling pcsem ...

,ompilation complete F *nterpreter Aersion ;<.4 F ;rogram pcsem ... exec#tion begins ...

Aa67bDc58%9e:f3g;<=i->?*@lmAnPo1! )/rBsUtC#D$E.F(G&" Aa6b7cD5%8e9f:g3<;i=>-*?l@mAnPo1! /)BrUsCtD#EF$.G(&" A6a7bDc5%8e9f:g3<;i=>-*?l@mAnPo1! )/rBsUtC#D$EF.G(&" Aa67bDc5%8e9f:g3<;=-i>?@*AlPm1n o/!B)UrCDsEtF#G$.(&"

3.14. SEMMFOROS CONTADORES 6os sem"foros contadores son particularmente $tiles cuando un recurso va a ser asignado desde una bolsa de recursos idnticos. El sem"foro se inicialiGa para el n$mero de recursos de la bolsa. ,ada operacin Kait decrementa el sem"foro en ., indicando ue ha extrado otro recurso de la bolsa y est" siendo usado por un proceso. ,ada operacin signal incrementa el sem"foro en ., indicando ue un proceso ha devuelto un recurso a la bolsa, y puede ser 102

asignado a otro proceso. Si se intenta una operacin Kait cuando el sem"foro ha sido decrementado hasta cero, el proceso debe esperar hasta devuelva alg$n recurso a la bolsa por medio de una operacin signal. ue se

103

CAPTULO 4 ADMINISTRACIN DE LA MEMORIA

En un sistema monoprogramado, la memoria principal se divide en dos partesC para el sistema operativo Lmonitor residente, n$cleoM y otra para el programa ue se e!ecuta en ese instante. En un sistema multiprogramado, la parte de VusuarioU de la memoria debe subdividirse a$n m"s para hacer sitio a varios procesos. 6a tarea de subdivisin la lleva a cabo din"micamente el sistema operativo y se conoce como administracin de memoria. En un sistema multiprogramado resulta vital una gestin efectiva de la memoria, si solo hay unos pocos procesos en memoria, entonces la mayor parte del tiempo estar"n esperando a la EDS y el procesador estar" desocupado. ;or ello, hace falta repartir eficientemente la memoria para meter tantos procesos como sea posible.

4.1. INTRODUCCIN AL ALMACENAMIENTO REAL 6a organiGacin y administracin de la Vmemoria principalU, Vmemoria primariaU o Vmemoria realU de un sistema ha sido y es uno de los factores m"s importantes en el diseIo de los sistemas operativos. 6os trminos VmemoriaU y ValmacenamientoU se consideran e uivalentes. 6os programas y datos deben estar en el almacenamiento principal paraC F F ;oderlos e!ecutar. %eferenciarlos directamente. ue

Se considera Valmacenamiento secundarioU o Valmacenamiento auxiliarU al generalmente es soportado en discos. 6os hechos demuestran

ue generalmente los programas crecen en

re uerimientos de memoria tan r"pido como las memoriasC

104

V6ey de ;arEinson parafraseadaUC 6os programas se desarrollan para ocupar toda la memoria disponible para ellos. 6a parte del sistema operativo ue administra la memoria se llama

Vadministrador de la memoriaUC F 6leva un registro de las partes de memoria utiliGando y de a uellas ue no. F Asigna espacio en memoria a los procesos cuando estos la necesitan. F 6ibera espacio de memoria asignada a procesos terminado. ue han ue se est"n

4.2. RE UISITOS PARA LA ADMINISTRACIN DE LA MEMORIA Al realiGar un estudio de los diversos mecanismos y polticas relacionadas con la adminsitracin de memoria, vale la pena trener en mente los re uisitos ue se intentan satisfacerC Se propone cinco re uisitosC F F F F F %eubicacin. ;roteccin. ,omparticin. OrganiGacin lgica. OrganiGacin fsica.

4.2.1. REUBICACIN En un sistema multiprogramado, la memoria disponible se encuentra normalmente compartida por varios procesos. En general, el programador no puede conocer por adelantado u otros programas residir"n en memoria en el momento de la e!ecucin del programa. Adem"s, se busca poder cargar y descargar los proceso activos en la memoria principal para maximiGar el uso del procesador, manteniendo una gran reserva de procesos listos para

105

e!ecutar. &na veG ue el programa haya sido descargado al disco, se limitar" a declarar ue, cuando vuelva a ser cargado, debe situarse en la misma regin de memoria principal ue antes. #e este modo, se sabe antes de tiempo donde debe dsituarse un programa y hay ue prmitir ue el programa debe moverse en la memoria principal como resultado de un intercambio. Esta situacion plantea algunos asuntos tcnicos relativos al direccionamiento, tal como se muestra en la figura >..., representa la imagen de un proceso. ;or simplicidad, se sopundra ue ue la

imagen del proceso ocupa una regin contigua a la memoria principal. Sin duda el S.O. tiene ue conocer la ubicacin de la informacin del control del proceso y la pila de e!ecucin, as como el punto de partida para comenGar la e!ecucin del programa para dicho proceso. ;uesto ue el S.O. administra la memoria y es responsable en traer el proceso en memoria principal, estas direcciones deben ser f"siles de conocer. Adem"s, el procesador debe ocuparse de las referencias a memoria dentro del programa. 6as instrucciones de bifurcacin deben tener la direccin ue haga referencia a la instruccin ue se vaya a e!ecutar a continucain. 6as instrucciones ue hagan referencia a datos deben contener la direccin del byte o de la palabra de datos referenciados. #e alg$n modo, el hardKare del procesador y el softKare del sistema operativo deben ser capaces de traducir las referencias a memorias encontrados en el cdigo del programa a las direcciones fsicas reales ue refle!en la posicin actual del programa en memoria principal.
*nformacin de ,ontrol del ;roceso

Punto de entrada al Programa

Blo ue #e ,ontrol #e ;roceso

*nstrucciones de salto

%eferencia a #atos C digo

Cima *ctual de la Pila


Pila datos

106

F#$%&' 4.1( R-?%#/#.)/ 0- 0#&-11#),'*#-,.) +'&' %, +&)1-/).

3.2.2. PROTECCIN ,ada proceso debe protegerse contra interferencias no deaseadas de otros procesos, tanto accidentales como intencionales. As pues, el cdigo de un proceso no puede hacer referencia a posiciones de memoria de otros procesos, con fines de lectura o escritura, sin permiso. 5asta cierto punto, satisfacer las exigencias de reubicacin aumenta la dificultad de satisfaccin de las exigencias de proteccin. ;uesto ue se desconoce la ubicacin de un programa en memoria principal, es imposible comprobar las direcciones absolutas durante la compilacin para asegurar la proteccin. Es m"s, la mayora de los lengua!es de programacin permiten el c"lculo din"mico de direcciones durante la e!ecucin, generando, por e!emplo, un ndice de un vector o un puntero a una estructura de datos. ;or tanto, todas las referencias de memoria generadas por un proceso deben comprobarse durante la e!ecucin para asegurar memoria destinado a dicho proceso. Afortunadamente, como se ver", los de proteccin. 6a imagen del proceso de la figura >.., ilustra las necesidades de protecin. (ormalmente, un proceso de usuario no puede acceder a ninguna parte del sistema operativo, tanto programa como datos. #e nuevo, el programa de un proceso no puede en general bifurcar hacia una instruccin de otro proceso. Adem"s, sin un acuerdo especial, el programa de un proceso no puede acceder el "rea de datos de otro proceso. El procesador debe ser capaG de abandonar tales instrumentos en el momento de la e!ecucin. (tese ue, en los trminos del e!emplo, las exigencias de proteccin de mecanismos ue respaldan la ue slo hacen referencia al espacio de

reubicacin tambin forman parte b"sica del cumplimiento de las necesidades

memoria pueden ser satisfechas por el procesador LhardKareM en veG de ue por el sistema operativo LsoftKareM.

107

4.2.3. COMPARTICIN ,ual uier mecanismo de proteccin ue se implemente debe tener la

flexibilidad de permitir el acceso a varios procesos a la misma Gona de la memoria principal. ;or e!emplo, si una serie de procesos est"n e!ecutando en un mismo programa, resultara beneficioso permitir a cada proceso ue acceda a la misma copia del programa, en lugar de tener cada uno su propia copia aparte. 6os procesos ue cooperan en una tarea pueden necesitar acceso copartido a

la misma estructura de datos. El sistema de administracin de memoria debe, por tanto, permitir acceso controlado a las "reas compartidas de la memoria, sin comprometer la proteccin b"sica. #e nuevo, se ver" ue los mecanismos empleados para respaldar la reubicacin forman parte b"sica de las capacidades de comparticicin.

4.2.4. ORGANITACIN LGICA #e forma casi invariable, la memoria principal de un sistema inform"tico se organiGa como un espacio de direcciones lineal o unidimensionales ue consta de una secuencia de bytes o palabras. 6a memoria secundaria, a nivel fsico, se organiGa de forma similar. Si bien esta organiGacin refle!a fielmente el hardKare de la m" uina, no se corresponde con la forma en la ue los programas est"n construidos habitualmente. 6a mayora de los programados se organiGan en mdulos, algunos de los cuales no son modificables Lslo lectura, slo e!ecucinM y otros contienen datos ue se pueden modificar. Si el sistema operativo, hardKare y los datos se organiGaran en forma de mdulos de alg$n tipo, se conseguir" una serie de venta!as, tales comoC .. 6os mdulos pueden escribirse y compilarse independientemente, mientras ue el sistema resuelve durante la e!ecucin todas las referencias de un mdulo a otro. 2. ,on un escaso coste adicional, pueden otorgarse varios grados de proteccin Lslo lectura, slo e!ecucinM a los distintos mdulos.

108

4.

Es imposible introducir mecanismo por medio de los cuales los procesos puedan compartir mdulos. 6a venta!a de ofrecer comparticin a nivel de mdulo es ue esto se corresponde con la visin del problema ue tiene el usuario y, por tanto, es f"cil, para el usuario especificar la comparacin ue desea.

4.2.5. ORGANITACIN FSICA En la memoria del computador se organiGa, al menos, dos nivelesC memoria principal y memoria secundaria. 6a memoria principal ofrece un acceso r"pido con un costo relativamente altoP adem"s, la memoria principal es vol"tilP esto es, no proporciona almacenamiento permanente. 6a memoria secundaria es m"s lenta y barata ue la memoria principal y normalmente no es vol"til. #e este modo, una memoria secundaria de gran capacidad puede permitir un almacenamiento a largo plaGo de programas y datos, al tiempo ue una memoria principal pe ueIa mantiene los programas y datos de uso actual. En este es uema a dos niveles, la organiGacin del flu!o de informacin entre la memoria principal y la secundaria tiene un gran inters en el sistema, la responsabilidad de este flu!o podra asignase al programador, pero esto es impracticable e indeseable, debido a dos raGonesC .. 6a memoria principal disponible para un programa y sus datos pueden ser insuficiente, en este caso, el programador debe emplear una pr"ctica ue se conoce como superposicin LoverlayingM, en el cual el programa y los datos se organicen de tal forma ue puede haber varios mdulos asignados a la misma regin de memoria, con un programa principal responsable del intercambio de los mdulos seg$n se necesiten. *ncluso con la ayuda de herramientas de compilacin, la programacin superpuesta malgasta el tiempo del programador. 2. estar" este espacio. %esulta claro entonces ue la tarea de mover informacin entre los dos niveles 109 En un entorno multiprogramado, el programador no conoce durante la codificacin cuanto espacio habr" disponible o donde

de memoria debe ser responsabilidad del sistema. Esta tarea es la esencia de la administracin de memoria.

4.3. CARGA DE PROGRAMAS EN MEMORIA PRINCIPAL 6a tarea central de cual uier sistema de administracin de memoria es traer los programas a memoria principal para su e!ecucin en el procesador. En casi todos los sistemas multiprogramados modernos, esta tarea supone un es uema sofisticado conocido como *-*)&#' 4#&.%'3. 6a memoria virtual est", a su veG, basado en el uso de una de dos tcnicas b"sicasC segmentacin yDo paginacin. Antes de ver estas tcnicas de memoria virtual, se debe preparar el terreno considerando tcnicas m"s simples ue no re uieren el uso de memoria virtual. &na de estas tcnicas, la particin, se ha venido usando con distintas variantes en algunos sistemas operativos ahora obsoletos. 6as otras dos tcnicas la paginacin simple y la segmentacin simple, no se usan en solitario. (o obstante, el estudio de la memoria virtual resultar" m"s sencillo si se consideran en primer lugar estas dos tcnicas, administracin de memoria. sin tener en cuenta la memoria virtual. 6a tabla >... adelanta los mecanismos cubiertos en la

4.3.1. PARTICIN FIHA En la mayora de los es uemas de gestin de memoria, se puede suponer ue el sistema operativo ocupa una parte fi!a de memoria principal y ue el resto de la memoria esta disponible para ser usado por varios procesos. El es uema m"s sencillo de administracin de memoria disponible es dividirla en regiones con lmites fi!os.

4.3.1.1. TAMAWOS DE PARTICIN En la figura >.2 se ofrecen e!emplos de dos alternativas de particin fi!a. &na posibilidad es emplear particiones de igual tamaIo. En este caso, cual uier proceso cuyo tamaIo sea menor o igual ue el tamaIo de la particin puede

110

cargarse en cual uier particin libre. Si todas las particiones est"n ocupadas y no hay procesos residentes en estado 6isto o E!ecutando, el sistema operativo puede sacar un proceso de algunas de las particiones y cargar otro proceso de forma ue haya traba!o para el procesador. 6as particiones fi!as de igual tamaIo plantean dos dificultadesC F &n programa puede ser demasiado grande para caber en la particin. En este caso, el programador debe diseIar el programa mediante superposiciones, para ue solo una parte del programa este en memoria principal en cada instante. ,uando se necesita un mdulo ue no esta presente, el programa de usuario debe cargar dicho mdulo en la particin del programa, superponindose a los programas y datos ue se encuentren en ella. F El uso de memoria principal es extremadamente ineficiente. ,ual uier programa, sin importar lo pe ueIo ue sea, ocupar" una un programa ue participacin completa. En el e!emplo. ;uede haber

ocupa menos de .2@ Eb de memoria y, a$n as, ocupara una participacin de <.2 Nb cada veG ue se cargase. Este fenmeno, en el ue se malgasta el espacio interno de una participacin cuando el blo ue de datos cargados sea m"s pe ueIos ue la participacin, se denomina fragmentacin internaP en la siguiente tabla >.. se podr" observar las diversas tcnicas de administracin de memoria.
TCNICA Partici n (i=a DESCRIPCIN 5a memoria principal de di#ide en un con=unto de particiones (i=as durante la generaci n del sistema& Un proceso se puede cargar en una partici n de mayor o igual tamaEo& 5as particiones se crean din7micamenteF de (orma 6ue cada proceso se carga en una partici n de eAactamente el mismo tamaEo 6ue el proceso& ENTAJAS DES ENTAJAS

!encilla de 3mpleo ine(iciente de implementarB poca la memoria debido a la sobre carga del sistema (ragmentaci n internaB operati#o& el nCmero de procesos acti#os es (i=o& 1o +ay (ragmentaci n internaB uso m7s e(iciente de la memoria principal& Uso ine(iciente del procesador debido a la necesidad de compactaci n para contrarrestar la (ragmentaci n eAterna&

Partici n din7mica

Paginaci n

5a memoria principal se di#ide 1o tiene (ragmentaci n $ay una pe6ueEa en un con=unto de marcos de eAterna cantidad de igual tamaEo& Cada proceso se (ragmentaci n interna&

111

simple

di#ide en una seria de p7ginas del mismo tamaEo 6ue los marcos& Un proceso se carga situando todas sus p7ginas en marcos libre pero no necesariamente contiguos&

Cada proceso se di#ide en una 1o tiene (ragmentaci n 1ecesita compactaci n seria de segmentos& Un proceso interna !egmentaci n de carga situando todos sus simple segmentos en particiones din7micas 6ue no tiene por6ue ser contiguas& /emoria #irtual paginada Como la paginaci n simpleF eAcepto 6ue no +ace (alta cargar todas las p7ginas de un proceso& 5as p7ginas no residentes 6ue se necesiten se traer7n mas tarde de manera autom7tica& Como la segmentaci n simple eAcepto 6ue no es necesario cargar todos lo segmentos de un proceso& 5os segmentos no residentes 6ue se necesiten se traer7n mas tarde de (orma autom7tica 1o +ay (ragmentaci n !obre carga por gesti n eAternaB alto grado de comple=a de memoria& multiprogramaci nB gran espacio #irtual para el proceso& 1o +ay (ragmentaci n !obrecarga por gesti n interna alto grado de comple=a de memoria& multiprogramaci nB gran espacio #irtual para el procesoB soporte de protecci n y compartici n&

/emoria #irtual segmentado

T'>3' 4.1( TX1,#1'/ 0- '0*#,#/.&'1#2, 0- *-*)&#'.

!istema operati#o 512 G

!istema operati#o 512 G

512 G

128 G 256 G

512 G 512 G

512G 576G

512 G

768 G

512 G 1/ 512 G

512 G

112

6'8 P'&.#1#+'1#),-/ 0-3 *#/*) .'*'N)

6>8 P'&.#1#+'1#),-/ 0- 0#/.#,.)/ .'*'N)/.

;ueden reducirse, aun ue no solventarse, ambos problemas, por medio del empleo de particiones de tamaIos distintos, como se muestra en la figura >.2b. En este e!emplo, los programas de hasta .'b pueden alo!arse sin superposicin. 6as participaciones menores de <.2Nb permiten alo!ar programas m"s pe ueIos con un desperdicio menor.

F#$%&' 4.2( E=-*+3) 0- +'&.#1#+'1#2, -/.D.#1' 0- %,' *-*)&#' 0- 4M>.

4.3.1.2. ALGORITMO DE UBICACIN ,on particiones del mismo tamaIo, la ubicacin de un proceso en memoria es trivial. 'ientras haya alguna participacin libre, puede cargarse un proceso en esa participacin. ;uesto ue todas las participaciones son de igual tamaIo, no importa la participacin ue se use. Si todas las particiones est"n ocupadas con procesos ue no est"n listos para e!ecutar, uno de esos procesos debe sacarse y hacer sitio a un nuevo decisin de planificacin. ,on participaciones de distintos tamaIos, hay dos maneras posibles de proceso. ,u"l debe expulsarse es una

asignar los procesos a las participaciones. 6a forma m"s simple es asignar cada proceso a la participacin m"s pe ueIa en la ue uepa. En este caso, hace falta una cola de planificacin para cada particin, ue albergue los proceso expulsados cuyo destinado es dicha participacin Lfigura >.4.aM. 6a venta!a de este enfo ue es ue los procesos est"n siempre asignados de forma ue se minimiGa la memoria desperdiciada dentro de cada participacin. Sin embargo, aun ue esta tcnica parece ptima desde el punto de vista de una participacin individual, no lo es desde el punto de vista del sistema global. ,onsidrese el caso de la figura >.2.b, por e!emplo, donde no hay procesos con un tamaIo comprendido entre =3@ N y .' en un determinado instante. En este caso, la particin de =3@N permanecer" sin usar, incluso aun ue alg$n proceso m"s pe ueIo pudiera haber sido asignado a la misma, as pues, una solucin me!or sera emplear una $nica cola para todos los 113

procesos Lfigura >.4.bM cuando se va a cargar un proceso en memoria principal, se selecciona la particin m"s pe ueIa disponible decisin de ue pueda albergar al proceso. Si todas las participaciones est"n ocupadas, se debe tomar una intercambio. ;uede darse preferencia al intercambio de la participacin m"s pe ueIa ue pueda contener al proceso entrante. +ambin es posible considerar otros factores, tales como prioridades y preferencia para descargar procesos blo ueados antes ue proceso listo.

!istema
operati#o

!istema operati# o

Procesos 1ue#os Procesos 1ue#os

6'8 U,' 1)3' 0- +&)1-/) +)& +'&.#1#+'1#2,.

6>8 C)3' Y,#1' +&)1-/).

F#$%&' 4.3( A/#$,'1#2, 0- *-*)&#' 1), +'&.#1#+'1#2, C#='.

El uso de particiones de distinto tamaIo proporciona cierto grado de flexibilidad a las particiones fi!as. Adem"s, ambos tipos de es uema de participacin fi!a son relativamente simples y exigen un softKare del sistema operativo y una sobrecarga de procesamiento mnimo. Sin problemas siguientesC embargo, se plantean los

114

El n$mero de particiones especificadas en el momento de la generacin del sistema limita el n$mero de procesos activos Lno suspendidosM el sistema.

;uesto

ue los tamaIos de particin se programan en el

momento de la generacin del sistema, los traba!os pe ueIos no hacen un uso eficiente del espacio de las particiones. En un entorno en el ue los re uisitos b"sicos de almacenamiento de todos los procesos se conocen de antemano, pueden ser una tcnica raGonable, pero en la mayora de los casos, ineficiente.

4.3.1.3. PARTICIN DINMMICA ;ara superar algunas de las dificultades de la particin est"tica, se desarroll una solucin denominada particin din"mica. Otra veG, este enfo ue ha sido superado de largo por administraciones de memorias m"s sofisticadas. ,on la particin din"mica, las particiones son variables en n$mero y longitud. ,uando se trae un proceso a memoria principal, se le asigna exactamente tanta memoria como necesita y no m"s. En la figura >.>. se muestra un e!emplo ue usa .'b de memoria principal. Al principio, la memoria principal est" vaca, exceptuando el sistema operativo Lfigura >.>.aM. se cargan los tres primeros procesos, empeGando en donde acabo el sistema operativo y ocupando slo un espacio suficiente para cada proceso Lfigura >.>.b, c y dM. Esto de!a un VhuecoU al final de la memoria demasiado pe ueIo para un cuarto proceso. En alg$n momento, ninguna de los procesos en memoria est" listo. As pues, el sistema operativo saca al proceso 2 Lfigura >. >.cM, ue de!a sitio suficiente para cargar un nuevo proceso, el proceso > Lfigura >.>.fM puesto ue el proceso > es m"s pe ueIo ue el proceso 2 se crea otro hueco pe ueIo. '"s tarde, se alcanGa un punto en el ue ninguno de los procesos ue est"n en memoria principal est"n listos y el proceso 2, ue est" en estado listo, pero suspendido, est" disponible. ;uesto ue no hay suficiente sitio en memoria para el proceso 2, el sistema operativo expulsa al proceso . Lfigura >.>.gM y carga de nuevo el proceso 2 Lfigura >.>.hM.

115

,omo se muestra en el e!emplo, este mtodo comienGa bien, pero, finalmente, desemboca en una situacin en la m"s ue hay un gran n$mero de huecos pe ueIos en memoria. ,onforme pasa el tiempo, la memoria comienGa a estar fragmentada y su rendimiento decae. Este fenmeno se denomina fragmentacin externa y se refiere al hecho de ue la memoria externa a todas las particiones se fragmenta cada veG m"s a diferencia de la fragmentacin interna ue se coment anteriormente. &na tcnica para superar la fragmentacin externa es la compactacinC de veG en cuando, el sistema operativo desplaGa los procesos para ue estn contiguos de forma ue toda la memoria libre uede !unta en un blo ue. ;or e!emplo, en la figura >.>h, la compactacin produce un blo ue de memoria libre de 2<3N. Este hueco puede ser suficiente para cargar un proceso adicional. 6a dificultad de la compactacin est" en ue es un procedimiento ue consume tiempo, por lo ue desperdicia tiempo del procesador. 6a compactacin necesita de la capacidad de reubicacin din"mica. Es decir, se deber poder mover un programa en una regin a otra de la memoria principal sin invalidar las referencias a memoria del programa.
!istema "perati#o 128G !istema "perati#o !istema "perati#o Proceso 1 !istema "perati#o Proceso 1

320G Proceso 1

320G

320G

224G 896G 3spacio de proceso 576G Proceso 2 352G Proceso 2

224G

288G 64G

Ha8

Hb8

Hc8

Hd8

!istema "perati#o Proceso 1

!istema "perati#o Proceso 1

!istema "perati#o

Proceso 3 !istema "perati#o

320G

320G

320G

Proceso 2

224G 96G 128G 96G

Proceso 4 224G

128G 96G

Proceso 4

128G 96G

Proceso 4

288G 64G He8

288G

288G

Proceso 3

288G

116
Proceso 3 H(8 64G Proceso 3 Hg8 64G H+8 64G

F#$%&' 4.4( EC-1.)/ 0- 3' +'&.#1#+'1#2, 0#,D*#1'.

4.3.1.4. ALGORITMO DE UBICACIN ;uesto ue la compactacin de memoria consume tiempo, ataIe al diseIador del sistema operativo decidir adecuadamente cmo asignar un proceso a memoria Lcomo llenar los huecosM. ,uando llega el momento de cargar o traer un proceso a memoria principal y, si hay libre m"s de un blo ue de memoria de tamaIo suficiente, el sistema operativo debe decidir cu"l asignar. 6os tres algoritmos de ubicacin ue se pueden considerar son el me!or a!uste LbestF fitM, el del primer a!uste Lfirst 7 fitM y el del siguiente a!uste Lnext 7 fitM. +odos ellos se limitan a elegir entre los blo ues de memoria libres ue son mayores o iguales ue el proceso a traer. El me!or a!uste elige el blo ue de tamaIo m"s parecido al solicitando.

8G Primer *=uste

8G 12G

12G

6G 22G /e=or a=uste 2G

18G Ultimo blo6ue *signado H14G8

8G 8G 6G 6G .lo6ue asignado .lo6ue 5ibre 14G 14G !iguiente *=uste 36G

117 a

20G

F#$%&' 4.5( E=-*+3) 0- %,' 1),C#$%&'1#2, 0- *-*)&#' ',.-/ O 0-/+%X/ 0- '/#$,'& %, >3)?%- 0- 16 Q>.

El primer a!uste comienGa recorriendo la memoria desde el principio y escoge el primer blo ue disponible ue sea suficientemente grande. El siguiente a!uste recorre la memoria desde el lugar de la $ltima ubicacin y elige el siguiente blo ue disponible ue sea suficientemente grande. 6a figura >.<.a muestra un e!emplo de configuracin de la memoria despus de cierto n$mero de ubicaciones y operaciones de descarga de procesos. El $ltimo blo ue usando fue de 22Nb, de donde se cre una participacin de .>Nb. 6a figura >.<.b, muestra la diferencia entre los algoritmos de ubicacin del me!or primer y siguiente a!uste para una solicitud de .3Eb. El me!or a!uste busca en la lista completa de blo ues disponibles y emplea el hueco de .@NB, de!ando un fragmento de 2Nb. El primer a!uste genera un fragmento de 3Nb y el siguiente a!uste origina un fragmento de 2?Nb. ,u"l de estos mtodos el me!or, depender" de la secuencia exacta de intercambio de procesos ue se den y del tamaIo de estos procesos. El algoritmo del primer a!uste no slo es el m"s sencillo, sino ue

normalmente es tambin el me!or y m"s r"pido. El algoritmo del siguiente a!uste tiende a generar resultados algo peores blo ues libres del final de la memoria. El resultado es ue el blo ue de memoria libre m"s grande, ue suele ue el del primer a!uste. El algoritmo del siguiente a!uste llevar" frecuentemente a la asignacin de

aparecer al final del espacio de memoria, se divide r"pidamente en fragmentos pe ueIos. As pues, con el siguiente a!uste har" falta una compactacin m"s frecuente. ;or otro lado, el algoritmo del primer a!uste puede poblar el extremo inicial de pe ueIas particiones libres ue es necesario recorrer en las pasadas siguientes de algoritmo. El algoritmo del me!or a!uste, a pesar de su nombre, proporciona en general los peores resultados. ;uesto 118 ue este algoritmo

busca

el hueco m"s pe ueIo posible. Aun ue cada solicitud de memoria

desperdicia siempre la menor cantidad, el resultado es ue la memoria principal se llena r"pidamente de blo ues demasiado pe ueIos como para satisfacer las solicitudes de asignacin de memoria. As pues, se debe compactar m"s frecuentemente ue con los otros algoritmos. 4.3.1.5. ALGORITMOS DE REEMPLATO En un sistema multiprogramado con particiones din"micas, habr" alg$n

momento en el ue todos los procesos de memoria principal estn en estado blo ueado y la memoria sea insuficiente. *ncluso tras la compactacin, para un proceso adicional. ;ara evitar desperdiciar el tiempo del procesador esperando a ue un proceso activo se desblo uee, el sistema operativo expulsar" uno de los procesos de memoria principal para hacer sitio a un proceso nuevo o un proceso listo, pero suspendido. ;or lo tanto, el sistema operativo debe elegir ue proceso reemplaGar.

4.3.1.6. REUBICACIN Antes de considerar las formas de solucionar los defectos de las tcnicas de particin, se debe aclarar un punto oscuro, ue tiene relacin con la ubicacin de los procesos en memoria. ,uando se emplea el es uema de particiones fi!as de la figura >.4.a, se puede esperar ue un proceso sea asignado siempre a la misma particin. Es decir, la particin ue se selecciona cuando se carga un nuevo proceso ser" la misma ue se emplee siempre para devolver este proceso a memoria tras haber sido sacado. En el caso de particiones de igual tamaIo y en el caso de una cola $nica de procesos para particiones de distinto tamaIo, un proceso puede ocupar diferentes particiones a lo largo de su vida. ,uando al principio se crea la imagen de un proceso, se cargar" en alguna particin de memoria principal. ;osteriormente, el proceso puede ser descargadoP cuando, m"s tarde, vuelve a ser cargado, podr" asign"rsele una particin distinta de la anterior. Esto mismo se cumple con particiones din"micas. Obsrvese en la figura >.>.c, y >.>.h, ue el proceso 2 ocupa dos regiones de memoria distintas en las dos

119

ocasiones en las memoria principal.

ue se le trae a memoria. Es m"s, cuando se usa

compactaciones, los procesos son desplaGados durante su estancia en

,onsidrese ahora un proceso en memoria ue incluya instrucciones y datos. 6as instrucciones contendr"n siguientesC F #irecciones de elementos de datos, empleadas en instrucciones de carga, almacenamiento y en algunas instrucciones aritmticas y lgicas. F #irecciones de instrucciones, empleadas para bifurcaciones e instrucciones de llamada. Ahora se demostrar" ue estas instrucciones no son fi!as, si no ue cambian cada veG ue se *ntercambia o desplaGa un proceso. ;ara resolver este problema, se realiGa una distincin entre varios tipos de direcciones. &na direccin lgica es una referencia a una posicin de memoria independiente de la asignacin actual de datos de memoriaP se debe hacer una traduccin a direccin fsica antes de poder realiGar un acceso a memoria. &na direccin relativa es un caso particular de direccin lgica, en el cual la direccin se expresa como una posicin relativa en alg$n punto conocido, habitualmente el comienGo del programa. &na direccin posicin real en memorial principal. fsica o direccin absoluta, es una referencias a memoria de los dos tipos

4.4. MEMORIA VIRTUAL En un sistema de !erar ua de memoria, los programas y datos se almacenan primero en la memoria auxiliar. #espus, se traen a la memoria principal partes de un programa o de datos, conforme los necesita la ,;&. 4#&.%'3 es un concepto grandes ue permite al usuario construir programas L' *-*)&#' ue se usa en algunos sistemas de computadoras como si estuviera

disponible un gran espacio de memoria, igual a la totalidad de la memoria auxiliar, cada direccin a la ue hace referencia la ,;& recorre un mapeo de direccin de la supuesta direccin virtual a una direccin fsica en la memoria principal. Se usa la memoria virtual para dar a los programadores la ilusin de 120

ue tienen a su disposicin una memoria muy grande, aun ue la computadora tenga en realidad una memoria relativamente pe ueIa. &n sistema de memoria virtual proporciona un mecanismo para trasladar direcciones generadas por programas a localidades correctas en la memoria principal. Esto se hace en una forma din"mica, mientras la ,;& e!ecuta programas. &na circuitera mane!a en forma autom"tica la traduccin o el mapeo mediante una tabla de mapeo.

4.4.1. ESPACIO DE DIRECCIONAMIENTO < ESPACIO DE MEMORIA A una direccin ue usa un programador se la llamar" 0#&-11#2, 4#&.%'3 y al con!unto de tales direcciones, -/+'1#) 4#&.%'3. A una direccin en la memoria principal se la llama 3)1'3#0'0 o 0#&-11#2, C;/#1'. El con!unto de tales localidades se llama -/+'1#) 0- *-*)&#'. ;or lo tanto, el espacio de direccionamiento es el con!unto de direcciones generado por los programas, conforme hacen referencia a instrucciones y datosP el espacio de memoria consiste en las localidades reales de la memoria principal ue se pueden acceder directamente para procesamiento. En la mayora de las computadoras los espacios de direccionamiento y de memoria son idnticos. Se permite ue el especio de direccionamiento sea mayor ue el espacio de la memoria en computadoras de memoria virtual. ,omo e!emplo, consideremos una computadora con una capacidad de

memoria principal de 42 N palabras LN Z.?2>M se necesitan uince bits para especificar una direccin fsica en la memoria por ue 42 N Z 2 .<, supongamos ue la computadora tiene memoria auxiliar disponible para almacenar 2 2? Z .?2> N palabras. ;or lo tanto, la memoria auxiliar tiene capacidad para almacenar informacin e uivalente a la capacidad de 42 memorias principales. Al representar el espacio de direccionamiento por ( y el espacio de memoria por ', tenemos para este e!emplo ( Z .?2>N y ' Z 42N. En un sistema de computadora de multiprogramacin, se transfieren los programas y datos a, y de la memoria auxiliar y de la memoria principal, con base en las demandas ue impone la ,;&. Supongamos ue el programa . se

121

e!ecuta en ese momento en la ,;&. El programa . y una parte de sus datos asociados se mueven de la memoria auxiliar a la memoria principal como se muestra en la figura >.3. 6as partes de los programas y datos no necesitan estar en localidades contiguas en la memoria, por ue la informacin se mueve hacia adentro y hacia fuera y pueden uedar espacios vacos en partes no adyacentes en la memoria. En un sistema de memoria virtual, se les dice a los programadores ue tienen su disposicin todo el espacio de direccionamiento. Adem"s, el campo de direcciones del cdigo de instrucciones tiene una cantidad suficiente de bits para especificar todas las direcciones virtuales.
'emoria auxiliar

'emoria principal

Programa 1 Programa 1 0atos 1F1 0atos 1F2 0atos 1F1 Programa 2 0atos 2F1 Espacio de memoria ' Z 42E Z 2.<

Espacio de direccin ( Z .?2>E Z 22?

F#$%&' 4.6( R-3'1#2, -,.&- -/+'1#)/ 0- 0#&-11#2, O 0- *-*)&#' -, %, /#/.-*' 0- *-*)&#' 4#&.%'3.

En

nuestro e!emplo,

el campo de direccin de un cdigo de instruccin las direcciones de memoria fsica deben referencia a

consistir" en 2? bits, pero

especificarse con slo .< bits. por lo tanto, la ,;& har" direccin debe tomarse de la memoria fsica,

instrucciones y datos con direcciones de 2? bits, pero la informacin en esta por ue el acceso al almacenamiento auxiliar para palabras individuales sera prohibitivamente largo

122

Lrecuerde ue para transferencias eficientes, el almacenamiento auxiliar mueve todo un registro a la memoria principalM. Entonces se necesita una tabla como la ue se muestra en la figura >.=. El mapeo es una operacin din"mica, lo ue significa ue cada direccin se traduce inmediatamente, conforme la ,;& hace referencia a una palabra. 6a tabla de mapeo debe almacenarse en una memoria separada como se muestra en la figura >.= o en la memoria principal. En el primer caso, se necesita una memoria adicional y un tiempo de acceso a memoria extra. En el segundo caso la tabla toma espacios en la memoria principal y se necesitan dos accesos a memoria con el programa corriendo a media velocidad. &na tercera alternativa es utiliGar una memoria asociativa.
0irecci n #irtual

-egistros de direcci n #irtual H20 bits8

2abla de mapeo de memoria

-egistros de bC(er de tabla de memoria H15 bits8

/emoria principal

-egistros de bC(er de tabla de memoria

-egistros de bC(er de memoria principal

F#$%&' 4.I( T'>3' 0- *-*)&#' +'&' *'+-'& %,' 0#&-11#2, 4#&.%'3.

4.5. PROTECCIN DE MEMORIA ;ueden asignarse proteccin de memoria a la direccin fsica o a la direccin lgica. 6a proteccin de memoria a travs de la direccin fsica puede hacerse al asignar a cada blo ue en la memoria varios bits de proteccin ue indican el tipo de acceso ue se permite a su blo ue a otro sera necesario actualiGar los bits de proteccin de blo ue. &n lugar mucho me!or para aplicar proteccin fsica. Esto puede hacerse al incluir informacin de proteccin dentro de la 123

tabla de segmento o en el circuito del registro de segmento de administracin de memoria.

CAPTULO 5 ADMINISTRACN DE LOS ARCHIVOS


5.1. INTRODUCCIN +odas las aplicaciones computariGadas necesitan almacenar y recuperar la informacinC F F generan. F *ndependiGando a la informacin de los procesos permitiendo el acceso a la misma a travs de varios procesos. 6as condiciones esenciales para el almacenamiento de la informacin a largo plaGo sonC F #ebe ser posible almacenar una cantidad muy grande de informacin. F utiliGa. F #ebe ser posible ue varios procesos tengan acceso concurrente a la informacin. 6a solucin es el almacenamiento de la informacin en discos y otros medios externos en unidades llamadas archivosC F 6os archivos deben ser persistentes, es decir ue no deben verse afectados por la creacin o terminacin de un proceso. 6a informacin debe sobrevivir a la conclusin del proceso ue la Superando las limitaciones del almacenamiento real. +rascendiendo a la duracin de los procesos ue las utiliGan o

124

F F

6os archivos son una coleccin de datos con nombre. ;ueden ser m anipulados como una unidad por operaciones comoC open, close, create, destroy, copy, rename, list.

6os elementos de datos individuales dentro del archivo pueden ser manipulados por operaciones comoC read, Krite, update, insert, delete.

El VSistema de ArchivosU es la parte del sistema de administracin del almacenamiento responsable, principalmente, de la administracin de los archivos del almacenamiento secundario. Es la parte del S. O. responsable de permitir Vcompartir controladamenteU la informacin de los archivos.

5.2. FUNCIONES DEL ADMINISTRADOR DE ARCHIVOS El administrador de archivos tiene un traba!o complicado. Est" a cargo de los componentes fsicos del sistema, sus recursos de informacin y de las polticas ue se utiliGan para almacenar y distribuir los archivos. A fin de desempeIar sus funciones, tiene ue e!ecutar estas cuatro tareasC .. 2. 6levar el control de dnde se almacena cada archivo. &tiliGar una poltica ue determine dnde y cmo se almacenar"n los eficiente del espacio de almacenamiento un acceso eficiente del espacio de a los

archivos, asegurando el uso disponible y proporcionando archivos. 4.

almacenamiento disponible y proporcionando un acceso eficiente

Asignar cada archivo cuando se ha aceptado el acceso de un usuario al mismo y registrar su uso.

>.

#esasignar el archivo cuando ste es devuelto a almacenamiento y comunicar su disponibilidad a otros esperando. interesados ue pudieran estar

;or e!emplo, el sistema de archivos es como una biblioteca, con el administrador de archivos como bibliotecario 7 este $ltimo realiGa las mismas

125

cuatro tareasC .. &tiliGa el catalogo de tar!etas para llevar el control de cada elemento de la coleccinP las tar!etas listan el n$mero de identificacin y los detalles ue ayudan a los clientes a encontrar cada libro. 2. 6a biblioteca se apoya en una poltica predeterminada para almacenar todo lo ue est" en la coleccin, incluyendo libros de tamaIo afuera de lo com$n, revistas, grabaciones, mapas y cintas. cstas se deben organiGar fsicamente, de manera ue las personas pueden encontrarlas cuando lo necesiten. 4. cuando se solicita, el libro se toma de la estantera y se registra el nombre del solicitante en el archivo de circulacin. >. cuando el libro es devuelto, el bibliotecario elimina el regln del archivo de circulacin y vuelve a poner el elemento en la estantera. Es un sistema de cmputo, el, administrador de archivos controla sus archivos utiliGando directorios ue contienen sus nombres, localiGacin fsica en el almacenamiento secundario e informacin importante respecto a cada archivo. 6a poltica predeterminada del administrador de archivos define dnde se almacena cada archivo y de ue manera el sistema y los usuarios podr"n ue son tener acceso a ellos de una manera simple 7 va comandos establecer uin tendr" acceso a

independientes de los detalles del dispositivo 7 adem"s, la poltica debe u material. Esto supone dos factoresC flexibilidad de acceso a la informacin y su proteccin subsecuente. El administrador de archivos efect$a lo anterior al permitir el acceso a archivos compartidos, proporcionar un acceso distribuido y permitir a los usuarios ue examinen directorios p$blicos. 'ientras tanto, el sistema operativo debe proteger sus archivos contra el mal funcionamiento del sistema y proporcionar medios de seguridad mediante n$meros de cuenta, contraseIa y cerraduras para observar la integridad de los datos y protegerse contra el mal uso. El sistema de computacin asigna un archivo activando el dispositivo de almacenamiento secundario apropiado y cargando el archivo en la memoria al mismo tiempo ue actualiGa los registros del usuario. 126

;or $ltimo, el administrador de archivos desasigna un archivo y volviendo a escribirlo Lsi ha sido revisadoM en el dispositivo de almacenamiento secundario. En seguida se notifica su disponibilidad a cual uier proceso ue aguarde el acceso al archivo.

5.3. EL SISTEMA DE ARCHIVOS &n VArchivoU es un con!unto de registros relacionados. El VSistema de ArchivosU es un componente importante de un S. O. y suele contenerC F V'todos de accesoU relacionados con la manera de acceder a los datos almacenados en archivos. F VAdministracin mecanismos para compartidos y asegurados. F VAdministracin del almacenamiento auxiliarU para la asignacin de espacio a los archivos en los dispositivos de almacenamiento secundario. F V*ntegridad del archivoU para garantiGar la integridad de la informacin del archivo. El sistema de archivos est" relacionado especialmente con la administracin del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco. &na forma de organiGacin de un sistema de archivos puede ser la siguienteC F Se utiliGa una VraGU para indicar en u parte del disco comienGa el Vdirectorio raGU. F F El Vdirectorio raGU apunta a los Vdirectorios de usuariosU. El Vdirectorio de usuarioU contiene una entrada para cada uno de los archivos del usuario. F ,ada entrada de archivo apunta al lugar del disco donde est" 127 de archivosU referida a la provisin de

ue los archivos sean almacenados, referenciados,

almacenado el archivo referenciado. 6os nombres de archivos solo necesitan ser $nicos dentro de un directorio de usuario dado. El nombre del sistema para un archivo dado debe ser $nico para el sistema de archivos. En sistemas de archivo V!er"r uicosU el nombre del sistema para un archivo suele estar formado por el Vnombre de la trayectoriaU del directorio raG al archivo.

5.4. ARCHIVOS Se considerar" el punto de vista del usuario.

5.4.1. NOMBRE DE LOS ARCHIVOS 6as reglas exactas para los nombres de archivos varan de sistema a sistema. Algunos sistemas de archivos distinguen entre las letras may$sculas y min$sculas, mientras ue otros no. 'uchos S. O. utiliGan nombres de archivo con dos partes, separadas por un puntoC F 6a parte posterior al punto es la extensin de archivo y generalmente indica algo relativo al archivo, aun ue las extensiones suelen ser meras convenciones.

5.4.2. ESTRUCTURA DE UN ARCHIVO 6os archivos se pueden estructurar de varias maneras, las m"s comunes sonC F VSecuencia de bytesUC El archivo es una serie no estructurada de bytes. ;osee m"xima flexibilidad. El S. O. no ayuda pero tampoco estorba.

128

VSecuencia de registrosUC El archivo es una secuencia de registros de longitud fi!a, cada uno con su propia estructura interna.

VArbolUC El archivo consta de un "rbol de registros, no necesariamente de la misma longitud. ,ada registro tiene un campo Eey Lllave o claveM en una posicin fi!a del registro. El "rbol se ordena mediante el campo de clave para permitir una r"pida b$s ueda de una clave particular.

5.4.3. TIPOS DE ARCHIVOS 'uchos S. O. soportan varios tipos de archivos, por e!emploC archivos regulares, directorios, archivos especiales de caracteres, archivos especiales de blo ues, etc., dondeC F 6os Archivos %egulares son a uellos ue contienen informacin del usuario. F 6os #irectorios son archivos de sistema para el mantenimiento de una estructura del sistema de archivos. F 6os Archivos Especiales de ,aracteresC +ienen relacin con la EDS. Se utiliGan para modelar dispositivos seriales de EDS Lterminales, impresoras, redes, etc.M. F discos. 6os Archivos Especiales de Blo ues se utiliGan para modelar

5.4.4. ACCESO A UN ARCHIVO 6os tipos de acceso m"s conocidos sonC 129

A11-/) S-1%-,1#'3( el proceso lee en orden todos los registros del archivo comenGando por el principio, sin poderC Saltar registros. 6eer en otro orden.

A11-/) A3-'.)&#)( el proceso puede leer los registros en cual uier orden utiliGando dos mtodos para determinar el punto de inicio de la lecturaC ,ada operacin de lectura LreadM da la posicin en el archivo con la cual iniciar. &na operacin especial LseeEM establece la posicin de traba!o pudiendo luego leerse el archivo secuencialmente.

5.4.5. ATRIBUTOS DE ARCHIVO ,ada archivo tieneC F F Su nombre y datos. Elementos adicionales llamados atributos, ue varan

considerablemente de sistema a sistema. Algunos de los posibles atributos de archivo sonC F F F F F V;roteccinUC uin debe tener acceso y de u forma. V,ontraseIaUC contraseIa necesaria para acceder al archivo. V,readorUC identificador de la persona ue cre el archivo. V;ropietarioUC propietario actual. VBandera exclusivo F para F lecturaUC ? lectura D escritura, . para lectura exclusivamente. F listas. F VBandera de sistemaUC ? archivo normal, . archivo de sistema. VBandera de ocultamientoUC ? normal, . para no exhibirse en

130

F respaldo. F F

VBandera de bibliotecaUC ? ya se ha respaldado, . necesita

VBandera ascii D binarioUC ? archivo en ascii, . archivo en binario. VBandera de acceso aleatorioUC ? solo acceso secuencial, . acceso aleatorio.

F F

VBandera temporalUC ? normal, . eliminar al salir del proceso. VBanderas de cerraduraUC ? no blo ueado, distinto de ? blo ueado.

F F F F F archivo. F

V6ongitud del registroUC n$mero de bytes en un registro. V;osicin de la llaveUC a!uste de la llave dentro de cada registro. V6ongitud de la llaveUC n$mero de bytes en el campo llave. V+iempo de creacinUC fecha y hora de creacin del archivo. V+iempo del $ltimo accesoUC fecha y hora del $ltimo acceso al

V+iempo de la $ltima modificacinUC fecha y hora de la $ltima modificacin al archivo.

F F archivo.

V+amaIo actualUC n$mero de bytes en el archivo. V+amaIo m"ximoUC tamaIo m"ximo al ue puede crecer el

5.4.6. OPERACIONES CON ARCHIVOS 6as llamadas m"s comunes al sistema relacionadas con los archivos sonC F F C&-'.- 61&-'&8( el archivo se crea sin datos. D-3-.- 6-3#*#,'&8( si el archivo ya no es necesario debe eliminarse para liberar espacio en disco. ,iertos S. O. eliminan autom"ticamente un archivo no utiliGado durante VnU das. F O+-, 6'>&#&8( antes de utiliGar un archivo, un proceso debe abrirlo. 6a finalidad es permitir ue el sistema traslade los atributos y la lista 131

de direcciones en disco a la memoria principal para un r"pido acceso en llamadas posteriores. F C3)/- 61-&&'&8( cuando concluyen los accesos, los atributos y direcciones del disco ya no son necesarios, por lo cerrarse y liberar la tabla de espacio interno. F R-'0 63--&8( los datos se leen del archivoP uien hace la llamada debe especificar la cantidad de datos necesarios y proporcionar un buffer para colocarlos. F E&#.- 6-/1&#>#&8( los datos se escriben en el archivo, en la posicin actual. El tamaIo del archivo puede aumentar Lagregado de registrosM o no LactualiGacin de registrosM. F A++-,0 6'N'0#&8( es una forma restringida de VKriteU. Solo puede aIadir datos al final del archivo. F S--U 6>%/1'&8( especifica el punto donde posicionarse. ,ambia la posicin del apuntador a la posicin activa en cierto lugar del archivo. F G-. '..&#>%.-/ 6)>.-,-& '.&#>%.)/8( permite a los procesos obtener los atributos del archivo. F S-. '..&#>%.-/ 6-/.'>3-1-& '.&#>%.)/8( algunos atributos pueden ser determinados por el usuario y modificados luego de la creacin del archivo. 6a informacin relativa al modo de proteccin y la mayora de las banderas son un e!emplo obvio. F R-,'*- 61'*>#'& 0- ,)*>&-8( permite modificar el nombre de un archivo ya existente. ue el archivo debe

5.4.I. ARCHIVOS MAPEADOS A MEMORIA Algunos S. O. permiten asociar los archivos con un espacio de direcciones de un proceso en e!ecucin. Se utiliGan las llamadas al sistema VmapU y VunmapUC F V'apUC utiliGa un nombre de archivo y una direccin virtual y hace

132

ue el S. O. asocie al archivo con la direccin virtual en el espacio de direcciones, por lo cual las lecturas o escrituras de las "reas de memoria asociadas al archivo se efect$an tambin sobre el archivo mapeado. F V&nmapUC elimina los archivos del espacio de direcciones y concluye la operacin de asociacin. El mapeo de archivos elimina la necesidad de programar la EDS directamente, facilitando la programacin. 6os principales problemas relacionados sonC F *mposibilidad de conocer a priori la longitud del archivo de salida, el ue podra superar a la memoria. F #ificultad para compartir los archivos mapeados evitando inconsistencias, ya la memoria. ue las modificaciones hechas en las p"ginas no se ver"n refle!adas en el disco hasta ue dichas p"ginas sean eliminadas de

5.5. DIRECTORIOS 8eneralmente son utiliGados por los S. O. para llevar un registro de los archivos. En muchos sistemas son a su veG tambin archivos.

5.5.1. SISTEMAS HERMR UICOS DE DIRECTORIOS El directorio contiene un con!unto de datos por cada archivo referenciado. &na posibilidad es ue el directorio contenga por cada archivo referenciadoC F F F El nombre. Sus atributos. 6as direcciones en disco donde se almacenan los datos.

Otra posibilidad es ue cada entrada del directorio contengaC 133

F F

El nombre del archivo. &n apuntador a otra estructura de datos donde se encuentran los atributos y las direcciones en disco.

Al abrir un archivo el S. O.C F F F F Busca en su directorio el nombre del archivo. Extrae los atributos y direcciones en disco. 8raba esta informacin en una tabla de memoria real. +odas las referencias subsecuentes al archivo utiliGar"n la informacin de la memoria principal.

0'-3C2"-'"

*-C$':"!

I 0'-3C2"-'" -*'J

I 1)*+'&.#0) 0'-3C2"-'" +)& -*'J F#$%&' 5.1( U, /)3) 0#&-1.)&#) .)0)/ 3)/ %/%'&#)/.

I 0'-3C2"-'" 035 U!U*-'"

F#$%&' 5.2( U, 0#&-1.)&#) +)& %/%'&#).

El n$mero y organiGacin de directorios vara de sistema en sistemaC F #irectorio $nicoC el sistema tiene un solo directorio con todos los archivos de todos los usuarios, tal como se ve en la figura <... F &n directorio por usuarioC el sistema habilita un solo directorio por cada usuario, ver figura <.2. F &n "rbol de directorios por usuarioC el sistema permite ue cada usuario tenga tantos directorios como necesite, respetando una !erar ua

134

general.

5.5.2. NOMBRE DE LAS RUTAS DE ACCESO ,uando el sistema de archivos est" organiGado como un "rbol de directorios se necesita una forma de determinar los nombres de los archivos. 6os principales mtodos para nombres de los archivos son los ue se muestra en la figura. <.4.
#*%E,+O%*O %A*_

#*%E,+O%*O #E6 &S&A%*O

S&B#*%E,+O%*OS #E6 &S&A%*O

F#$%&' 5.3( U, D&>)3 '&>#.&'&#) +)& %/%'&#).

%uta de Acceso AbsolutaC ,ada archivo tiene una ruta de acceso absoluta. ,onsta de la ruta de acceso desde el directorio raG hasta el archivo. 6os componentes de la ruta de acceso se separan mediante alg$n car"cter llamado VseparadorU.

%uta de Acceso %elativaC Se utiliGa !unto con el concepto de directorio de traba!o o directorio activo. +odos los nombres ue no comiencen en el directorio raG se toman en relacin con el directorio de traba!o. El nombre absoluto de la ruta de acceso siempre funciona, sin importar 135

cual sea el directorio de traba!o.

5.5.3. OPERACIONES CON DIRECTORIOS 6as llamadas al sistema permitidas para el mane!o de los directorios tienen variacin de sistema a sistema. 6as m"s comunes son las siguientesC F F F ,reate LcrearMC se crea un directorio vaco. #elete LeliminarMC se elimina un directorio, ue debe estar vaco. Opendir Labrir directorioMC se pueden leer los directoriosC Antes de poder leer un directorio, ste debe ser abierto. F ,losedir Lcerrar directorioMC cuando se ha ledo un directorio, ste debe ser cerrado para liberar el espacio correspondiente de la tabla interna. F utilice. F %ename Lcambiar de nombreMC cambia el nombre de un directorio de manera similar al cambio para archivos. F 6inE LligarMC es una tcnica ue permite ue un archivo apareGca en m"s de un directorioC Especifica un archivo existente y el nombre de una ruta de acceso. ,rea un enlace del archivo ya existente con el nombre especificado en la ruta de acceso. F F &nlinE LdesligarMC se elimina una entrada del directorio. Si el archivo ue se desea desligar aparece solo en un directorio Lel caso normalMC aM Se elimina del sistema de archivos. %eaddir Lleer directorioMC regresa la siguiente entrada en un directorio abierto, sin importar el tipo de estructura de directorios ue se

Si el archivo ue se desea desligar, est" presente en varios directoriosC

136

aM Solo se elimina la ruta de acceso especificada. bM 6as dem"s rutas permanecen.

5.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS < SUS RELACIONES CON LA ASIGNACIN < LIBERACIN DE ESPACIO Se consideran aspectos tales comoC F F F 6a forma de almacenamiento de archivos y directorios. 6a administracin del espacio en disco. 6a forma de hacerlo de manera eficiente y confiable.

Se deben tener presentes problemas tales como la VfragmentacinU creciente del espacio en discoC F Ocasiona problemas de performance al hacer ue los archivos se desperdiguen a travs de blo ues muy dispersos. F &na tcnica para aliviar el problema de la VfragmentacinU consiste en realiGar peridicamenteC V,ondensacinUC se pueden VreorganiGarU los archivos expresamente o autom"ticamente seg$n alg$n criterio predefinido. V%ecoleccin de basura o residuosUC se puede hacer fuera de lnea o en lnea, con el sistema activo, seg$n la implementacin.

5.6.1. IMPLANTACIN DE ARCHIVOS El aspecto clave de la implantacin del almacenamiento de archivos es el registro de los blo ues asociados a cada archivo. Algunos de los mtodos utiliGados son los siguientesC F F Asignacin contigua o adyacenteC 6os archivos son asignados a "reas contiguas de

almacenamiento secundario.

137

6as principales venta!as sonC aM Hacilidad de implantacin, ya ue solo se precisa el n$mero del blo ue de inicio para localiGar un archivo. bM %endimiento excelente respecto de la E D S. 6os principales defectos sonC a) Se debe conocer el tamaIo m"ximo del archivo al crearlo. b) ;roduce una gran fragmentacin de los discos.

Asignacin no contiguaC Son es uemas de almacenamiento m"s din"micos, destac"ndose los siguientesC eM Asignacin encadenada orientada hacia el sectorC El disco se considera compuesto de sectores individuales. 6os archivos constan de varios sectores dispersos por todo el disco. 6os sectores ue pertenecen a un archivo com$n contienen ue pueden estar

apuntadores de uno a otro formando una Vlista encadenadaU. &na Vlista de espacio libreU contiene entradas para todos los sectores libres del disco. 6as ampliaciones o reducciones en el tamaIo de los archivos se resuelven actualiGando la Vlista de espacio libreU y no hay necesidad de condensacin. 6as principales desventa!as sonC d #ebido a la posible dispersin en el disco, la recuperacin de registros lgicamente contiguos puede significar largas b$s uedas. d El mantenimiento de la estructura de Vlistas encadenadasU significa una sobrecarga en tiempo de e!ecucin.

138

d 6os apuntadores de la estructura de lista consumen espacio en disco. fM Asignacin por blo uesC Es m"s eficiente y reduce la sobrecarga en e!ecucin. Es una meGcla de los mtodos de asignacin contigua y la no contigua. Se asignan blo ues de sectores contiguos en veG de sectores individuales. El sistema trata de asignar nuevos blo ues a un archivo eligiendo blo ues libres lo m"s prximos posible a los blo ues del archivo existentes. 6as formas m"s comunes de implementar la asignacin por blo ues sonC d Encadenamiento de blo ues. d Encadenamiento de blo ues de ndice. d +ransformacin de archivos orientada hacia blo ues. Encadenamiento de blo ues o lista ligadaC 6as entradas en el directorio de usuarios apuntan al primer blo ue de cada archivo. ,ada uno de los blo ues de longitud contiene dos partesC d &n blo ue de datos. d &n apuntador al blo ue siguiente. ,ada blo ue contiene varios sectores. Hrecuentemente el tamaIo de un blo ue se corresponde con el de una pista completa del disco.
.

ue forman un archivo

139

#*%E,+O%*O #E &S&A%*OS #*%E,+O%*O #E &S&A%*OS


ARCHIVO A%,5*AO LOCALITACIN 6O,A6*_A#O%%

SE %E;%ESE(+A E6 A%,5*AO A

A A

#A+OS

B6O0&ES #E A%,5*AOS O B6O0&ES H*S*,O >

#A+OS

B6O0&ES #E A%,5*AOS . B6O0&ES H*S*,O =

B6O0&ES #E A%,5*AOS 2

.&03& *& 6 .&<&15

#A+OS

B6O0&ES H*S*,O 2

#A+OS

.&03& *& 3 .&<&10

.&03& *& 4 .&<&12

.&03& *& 5 .&<&18

#A+OS

#A+OS

#A+OS

F#$%&' 5.4( E,1'0-,'*#-,.) 0- >3)?%-/ ) 3#/.' 3#$'0' 0- >3)?%-/.

6ocaliGar un registro determinado re uiereC d Buscar en la cadena de blo ues hasta encontrar el blo ue apropiado. d Buscar en el blo ue hasta encontrar el registro.

El examen de la cadena desde el principio puede ser lento ya ue debe realiGarse de blo ue en blo ue, y pueden estar dispersos por todo el disco.

6a insercin y el retiro son inmediatos, dado

ue se deben

140

modificar los apuntadores del blo ue procedente. Se pueden usar Vlistas de encadenamiento dobleU, hacia adelante y hacia atr"s, con lo ue se facilita la b$s ueda, ver figura. <.>. Encadenamiento de blo ues de ndicesC 6os apuntadores son colocados en varios blo ues de ndices separadosC d ,ada blo ue de ndices contiene un n$mero fi!o de elementos. d ,ada entrada contiene un identificador de registros y un apuntador a ese registro, tal como se muestra en la figura <.<.
#*%E,+O%*O #E &S&A%*OS
ARC!I O A%,5*AO LOCALI"ACIN

6O,A6 *_A#O %%

B6O0&ES #E *(#*,ES

.5"KU3! 03 C"12'1U*C';1 03 '10'C3

F#$%&' 5.5( E,1'0-,'*#-,.) 0- >3)?%-/ 0- ;,0#1-.

d Si es necesario utiliGar m"s de un blo ue de ndices para describir un archivo, se encadena una serie de blo ues de ndices. 6a gran venta!a es ue la b$s ueda puede realiGarse en los

propios blo ues de ndices. 6os blo ues de ndices pueden mantenerse !untos en el almacenamiento secundario para acortar la b$s ueda, pero para me!or performance podran mantenerse en el almacenamiento

141

primario. 6a principal desventa!a es ue las inserciones pueden re uerir la reconstruccin completa de los blo ues de ndicesC d &na posibilidad es de!ar vaca una parte de los blo ues de ndices para facilitar inserciones futuras y retardar las reconstrucciones. Es suficiente ue el dato del directorio contenga el n$mero de

blo ue inicial para localiGar todos los blo ues restantes, sin importar el tamaIo del archivo. +ransformacin de archivos orientada hacia blo ues LAer figura <.3.MC Se utiliGan n$meros de blo ues en veG de apuntadores. 6os n$meros de blo ues se convierten f"cilmente a direcciones de blo ues gracias a la geometra del disco. Se conserva un mapa del archivo, conteniendo una entrada para cada blo ue del disco. 6as entradas en el directorio del usuario apuntan a la primera entrada al mapa del archivo para cada archivo. ,ada entrada al mapa del archivo contiene el n$mero del blo ue siguiente de ese archivo. 6a entrada al mapa del archivo correspondiente a la $ltima entrada de un archivo determinado se a!usta a alg$n valor VcentinelaU LVnilUM para indicar ue se alcanG el $ltimo blo ue de un archivo. El sistema puede mantener una lista de blo ues libres. 6a principal venta!a es ue las cercanas fsicas del disco se

refle!an en el mapa del archivo. (odosFi Lnodos ndicesMC Se asocia a cada archivo una pe ueIa tabla, llamada nodoFi 142

Lnodo ndiceMC d ,ontiene los atributos y direcciones en disco de los blo ues del archivo. d Se traslada del disco a la memoria principal al abrir el archivo. d En rigor, almacena solo las primeras direcciones en discoC d Si el archivo es pe ueIo, toda la informacin est" en el nodoFi.

'A;A #E6 A%,5*AO #*%E,+O%*O #E &S&A%*OS ARCHIVOS A B , LOCALITACIN @ 3 3 3 3 ? . 2 4 > < 3 = @ 9 .? .. .2 .4 .> .< .3 .= .@ .9 2? 2. 22 24 B6O0&EO H*S*,OS E( E6 A6'A,E(A'*E(+O SE,&(#A%*O
B6O0&EO ? BL>M B6O0&EO. BL.?M B6O0&EO2 BL.M B6O0&EO4 BL>M B6O0&EO> BL@M B6O0&EO< BL2M B6O0&EO3 BL.M

22 (*6 < 23 9 2? .?
6*B%E

.= . .>
6*B%E

4 > ?
6*B%E 6*B%E

.2 .4 (*6 24
6*B%E

.@ .9
6*B%E 6*B%E

2> 2< 23 2=

B6O0&EO = 6*B%E

B6O0&EO @ AL.M B6O0&EO .< 6*B%E

B6O0&EO 9 AL9M

B6O0&EO .? AL2M

B6O0&EO .. 6*B%E

143

B6O0&EO .2 AL4M

B6O0&EO .4 BL=M

1'5
6*B%E

B6O0&EO .> BL4M

B6O0&EO .3 6*B%E

B6O0&EO .= AL2M B6O0&EO 2> 6*B%E

B6O0&EO .@ BL3M

B6O0&EO .9 ,L<M

B6O0&EO 2? ,L4M

B6O0&EO 2. 6*B%E

B6O0&EO 22 BL<M

B6O0&EO 24 ,L>M

B6O0&EO 2< 6*B%E

B6O0&EO 23 AL<M

B6O0&EO 2= 6*B%E

F#$%&' 5.6( T&',/C)&*'1#2, 0- '&17#4)/ )&#-,.'0' 7'1#' >3)?%-/.

d Si el archivo es grande, una de las direcciones en el nodoFi es la direccin de un blo ue en el disco llamado blo ue simplemente indirectoC ,ontiene las direcciones en disco adicionales. Si resulta insuficiente, otra direccin en el nodoFi, el blo ue doblemente indirecto, contiene la direccin de un blo ue ue presenta una lista de los blo ues simplemente indirectosC ,ada blo ue simplemente indirecto apunta a un grupo de blo ues de datos. #e ser necesario se pueden utiliGar blo ues triple mente indirectos.

144

5.6.2. IMPLANTACIN DE DIRECTORIOS ;ara abrir un archivo el S. O. utiliGa informacin del directorioC F El directorio contiene la informacin necesaria para encontrar los blo ues en el disco. F El tipo de informacin vara seg$n el sistema.

6a principal C%,1#2, 0-3 /#/.-*' 0- 0#&-1.)&#)/ es asociar el nombre del archivo con la informacin necesaria para localiGar los datos. &n aspecto ntimamente ligado con esto es la posicin de almacenamiento de los atributosC F &na posibilidad es almacenarlos en forma directa dentro del dato del directorio. F Otra posibilidad es almacenar los atributos en el nodoFi en veG de utiliGar la entrada del directorio.

5.6.3. ARCHIVOS COMPARTIDOS Hrecuentemente conviene ue los archivos compartidos apareGcan

simult"neamente(O#O en distintos directorios de distintos usuarios. * El propio sistema de archivos es una gr"fica dirigida acclica en veG de un "rbol.
B6O0&E S*';6E'E(+E *(#*%E,+O
A+%*B&+OS

6a conexin entre un directorio y un archivo de otro directorio al cual comparten se denomina -,3'1-. Si los directorios realmente contienen #OB6E'E(+E direcciones en discoC
*(#*%E,+O B6O0&E

Se debe tener una copia de las direcciones en disco en el directorio #*%E,,*O(ES ue accede al archivo compartido al enlaGar el archivo. E( #*S,O
#*%E,,*O(ES #A+OS #E

6OS aB6O0&ES #E Se debe evitar ue los cambios hechos por un usuario travs de

un directorio no sean visibles por los dem"s usuarios, para lo consideraran dos soluciones posibles. P&#*-&' /)3%1#2,(

ue se

145
B6O0&E +%*;6E'E(+E *(#*%E,+O

F#$%&' 5.I( E/?%-*' 0- %, ,)0)9#.

6os blo ues del disco no se enlistan en los directorios, sino en una pe ueIa estructura de datos asociada al propio archivo.

6os directorios apuntaran solo en una pe ueIa estructura de datos, ue podra ser el nodoFi LAer Higura <.=.M.

S-$%,0' /)3%1#2,( F El enlace se produce haciendo archivo de tipo VlinEU. F El archivo VlinEUC *ngresa al directorio del usuario directorio y usuario. 146 ue accede a un archivo de otro ue el sistema cree un nuevo

Solo contiene el nombre de la ruta de acceso del archivo al cual se enlaGa. F Este criterio se denomina enlace simblico.

D-/4-,.'='/ 0- 3' +&#*-&' /)3%1#2, C F 6a creacin de un enlaceC (o modifica la propiedad respecto de un archivo. Aumenta el contador de enlaces del nodoFiC El sistema sabe el n$mero de entradas de directorio ue apuntan en cierto momento al archivo. F Si el propietario inicial del archivo intenta eliminarlo, surge un problema para el sistemaC Si elimina el archivo y limpia el nodoFi, el directorio ue enlaGo al archivo tendr" una entrada ue apunta a un nodoFi no v"lido. Si el nodoFi se reasigna a otro archivo el enlace apuntar" al archivo incorrecto. El sistemaC ;uede ver por medio del contador de enlaces en el nodoFi ue el archivo sigue utiliG"ndose. (o puede localiGar todas las entradas de directorio asociadas a ese archivo para eliminarlas.

L' /)3%1#2, +)0&;' /-&( F archivo. F #e!ar intacto el nodoFiC Se dara el caso ue el directorio ue posee el enlace es el $nico ue 147 Eliminar la entrada del directorio inicialmente propietario del

posee una entrada de directorio para un archivo de otro directorio, para el cual dicho archivo ya no existe. Esto no ocurre con los enlaces simblicos ya verdadero tiene un apuntador al nodoFiC 6os usuarios enlaGados al archivo solo tienen nombres de rutas de acceso y no apuntadores a nodoFi. ,uando el propietario elimina un archivo, este se destruye. ue solo el propietario

D-/4-,.'='/ 0- 3' /-$%,0' /)3%1#2,( F El principal problema es su costo excesivo, especialmente en accesos a disco, puesto ue se debe leer el archivo ue contiene la ruta de acceso, analiGarla y seguirla componente a componente hasta alcanGar el nodoFi. F Se precisa un nodoFi adicional por cada enlace simblico y un blo ue adicional en disco para almacenar la ruta de acceso. F 6os archivos pueden tener dos o m"s rutas de acceso, debido a lo cual, en b$s uedas genricas se podra encontrar el mismo archivo por distintas rutas y trat"rselo como si fueran archivos distintos. 6os enlaces simblicos tienen la venta!a de ue se pueden utiliGar para enlaGar archivos en otras m" uinas, en cual uier parte del mundoP se debe proporcionar solo la direccin de la red de la m" uina donde reside el archivo y su ruta de acceso en esa m" uina.

CAPTULO 6 ENTRADA / SALIDA


6.1. INTRODUCCIN &na de las funciones principales de un S. O. es el control de todos los dispositivos de E DS de la computadora. 148

6as principales funciones relacionadas sonC F F F F sistemaC #ebe ser sencilla y f"cil de usar. #ebe ser la misma LpreferentementeM para todos los dispositivos Lindependencia del dispositivoM. El cdigo de EDS representa una fraccin significativa del S. O. El uso inapropiado de los dispositivos de EDS frecuentemente genera ineficiencias del sistema, lo ue afecta la performance global. Enviar comandos a los dispositivos. #etectar las interrupciones. ,ontrolar los errores. ;roporcionar una interfaG entre los dispositivos y el resto del

6.2. PRINCIPIOS DEL HARDEARE DE E/S El enfo ue ue se considerar" tiene ue ver con la interfaG ue desde el

hardKare se presenta al softKareC F F F ,omandos ue acepta el hardKare. Hunciones ue realiGa. Errores ue puede informar.

6.2.1. DISPOSITIVOS DE E/S Se pueden clasificar en dos grandes categorasC F F #ispositivos de blo ue. #ispositivos de car"cter.

6as principales caractersticas de los dispositivos de blo ue sonC

149

F F F

6a informacin se almacena en blo ues de tamaIo fi!o. ,ada blo ue tiene su propia direccin. 6os tamaIos m"s comunes de los blo ues van desde los .2@ bytes hasta los ..?2> bytes.

Se puede leer o escribir en un blo ue de forma independiente de los dem"s, en cual uier momento.

F F F

&n e!emplo tpico de dispositivos de blo ue son los discos. 6as principales caractersticas de los dispositivos de car"cter sonC 6a informacin se transfiere como un flu!o de caracteres, sin su!etarse a una estructura de blo ues.

F F F

(o se pueden utiliGar direcciones. (o tienen una operacin de b$s ueda. &n e!emplo tpico de dispositivos de car"cter son las impresoras de lnea, terminales, interfaces de una red, ratones, etc.

Algunos dispositivos no se a!ustan a este programa de clasificacin, por e!emplo los relo!es, ue no tienen direcciones por medio de blo ues y no generan o aceptan flu!os de caracteres. El sistema de archivos solo traba!a con dispositivos de blo ue abstractos, por lo ue encarga la parte dependiente del dispositivo a un softKare de menor nivel, el softKare mane!ador del dispositivo.

6.2.2. CONTROLADORES DE DISPOSITIVOS 6as unidades de EDS generalmente constan deC F F &n componente mec"nico. &n componente electrnico, el controlador del dispositivo o adaptador. 'uchos controladores pueden mane!ar m"s de un dispositivo. 150

El S. O. generalmente traba!a con el controlador y no con el dispositivo. 6os modelos m"s frecuentes de comunicacin entre la cpu y los controladores sonC F ;ara la mayora de las micro y mini computadorasC 'odelo de bus del sistema. F ;ara la mayora de los mainframesC 'odelo de varios buses y computadoras especialiGadas en EDS llamadas canales de EDS. 6a interfaG entre el controlador y el dispositivo es con frecuencia de muy ba!o nivelC F 6a comunicacin es mediante un flu!o de bits en serie ueC ,omienGa con un pre"mbulo. Sigue con una serie de bits Lde un sector de disco, por e!emploM. ,oncluye con una suma para verificacin o un cdigo corrector de errores. F El pre"mbuloC Se escribe al dar formato al disco. ,ontiene el n$mero de cilindro y sector, el tamaIo de sector y otros datos similares. El ,ontrolador #ebeC F F F ,onvertir el flu!o de bits en serie en un blo ue de bytes. Efectuar cual uier correccin de errores necesarias. ,opiar el blo ue en la memoria principal.

,ada controlador posee registros ue utiliGa para comunicarse con la cpuC F ;ueden ser parte del espacio normal de direcciones de la memoriaC EDS mapeada a memoria. F ;ueden utiliGar un espacio de direcciones especial para la EDS, 151

asignando a cada controlador una parte de l. El S. O. realiGa la EDS al escribir comandos en los registros de los controladoresP los par"metros de los comandos tambin se cargan en los registros de los controladores. Al aceptar el comando, la cpu puede de!ar al controlador y dedicarse a otro traba!o. Al terminar el comando, el controlador provoca una interrupcin para permitir ue el S. O.C F F Obtenga el control de la cpu. Aerifi ue los resultados de la operacin.

6a cpu obtiene los resultados y el estado del dispositivo al leer uno o m"s bytes de informacin de los registros del controlador. E!emplos de controladores, sus direcciones de EDS y sus vectores de interrupcin en la ;, *B' pueden verse en la +abla 3...

CONTROLADOR DE E/S %E6OJ +E,6A#O #*S,O #&%O *';%ESO%A #*S,O H6ET*B6E %s 242 primario %s 242 secundario

DIRECCIN DE E/S ?>? F ?>4 ?3? 7 ?34 42? 7 42H 4=@ 7 4=H 4H? 7 4H= 4H@ 7 4HH 2H@ 7 2H2

VECTOR DE INTERRUPCIONES @ 9 .4 .< .> .2 ..

T'>3' 6.1( C),.&)3'0)&-/ 0- E/S: 0#&-11#),-/ 0- E/S O 4-1.)& 0- #,.-&&%+1#),-/.

6.2.3. ACCESO DIRECTO A MEMORIA 6DMA8 'uchos controladores, especialmente los correspondientes a dispositivos de blo ue, permiten el #'AP ver figura 3... Si se lee el disco sin #'AC

152

F unidadC

El controlador lee en serie el blo ue Luno o m"s sectoresM de la

6a lectura es bit por bit. 6os bits del blo ue se graban en el buffer interno del controlador. F Se calcula la suma de verificacin para corroborar ue no existen errores de lectura. F F El controlador provoca una interrupcin. El S. O. lee el blo ue del disco por medio del buffer del controladorC 6a lectura es por byte o palabra a la veG. En cada iteracin de este ciclo se lee un byte o una palabra del registro del controlador y se almacena en memoria. F Se desperdicia tiempo de la cpu.

#'A se ide para liberar a la cpu de este traba!o de ba!o nivel. 6a cpu le proporciona al controladorC F F F 6a direccin del blo ue en el disco. 6a direccin en memoria adonde debe ir el blo ue. El n$mero de bytes por transferir.

6uego de ue el controlador ley todo el blo ue del dispositivo a su buffer y de ue corrobor la suma de verificacinC F F ,opia el primer byte o palabra a la memoria principal. 6o hace en la direccin especificada por medio de la direccin de memoria de #'A. F *ncrementa la direccin #'A y decrementa el contador #'A en el n$mero de bytes ue acaba de transferir.
/3/"-'* C"12-"5*0"03 0'!C" U1'0*0 .U<<3CPU C"12*0"-3<'!2-"! 035 0/* 0'-3C& 31 /3/"-'*

153
.U! 035 !'!23/*

C"12*0"-

F#$%&' 6.1( U, 1),.&)3'0)& &-'3#G' 1)*+3-.'*-,.- %,' .&',/C-&-,1#' DMA.

Se repite este proceso hasta ue el contador se anula y por lo tanto el controlador provoca una interrupcin.

Al iniciar su e!ecucin el S. O. luego de la interrupcin provocada, no debe copiar el blo ue en la memoria, por ue ya se encuentra ah.

El controlador necesita un buffer interno por ue una veG iniciada una transferencia del discoC F F F 6os bits siguen llegando del disco constantemente. (o interesa si el controlador est" listo o no para recibirlos. El controlador intentara escribir los datos en la memoria directamenteC +endra ue recurrir al bus del sistema para cDu de las palabras Lo bytesM transferidas. El bus podra estar ocupado por otro dispositivo y el controlador debera esperar. Si la siguiente palabra llegara antes de ue la anterior hubiera sido

almacenada, el controlador la tendra ue almacenar en alguna parte. Si el blo ue se guarda en un buffer internoC F F El bus no se necesita sino hasta ue el #'A comienGa. 6a transferencia #'A a la memoria ya no es un aspecto crtico del tiempo. 6os controladores simples no pueden atender la EDS simult"neaC

154

F#$%&' 6.2( F'1.)&-/ 0- /-+'&'1#2,( /#, /-+'&'1#2,: /-+'&'1#2, /#*+3- O /-+'&'1#2, 0)>3-.

'ientras transfieren a la memoria, el sector ue pasa deba!o de la cabeGa del disco se pierdeP es decir ue el blo ue siguiente al recin ledo se pierde.

6a lectura de una pista completa se har" en dos rotaciones completas, una para los blo ues pares y otra para los impares.

Si el tiempo necesario para una transferencia de un blo ue del controlador a la memoria por medio del bus es mayor necesario para leer un blo ue del discoC Sera necesario leer un blo ue y luego saltar dos o m"s blo ues. El salto de blo ues LAer Higura 3.2MC Se e!ecuta para darle tiempo al controlador para la transferencia de los datos a la memoria. Se llama separacin. Al formatear el disco, los blo ues se numeran tomando en cuenta el factor de separacin. Esto permite al S. O.C d 6eer los blo ues con numeracin consecutiva. d ,onservar la m"xima velocidad posible del hardKare. ue el tiempo

6.3. PRINCIPIOS DEL SOFTEARE DE E/S

155

6a idea b"sica es organiGar el softKare como una serie de capas donde Lver figura 3.4MC F 6as capas inferiores se encarguen de ocultar las peculiaridades del hardKare a las capas superiores. F 6as capas superiores deben presentar una interfaG agradable, limpia y regular a los usuarios.

F#$%&' 6.3( C'+'/ 0-3 /#/.-*' 0- -,.&'0' / /'3#0' O 3'/ +&#,1#+'3-/ C%,1#),-/ 0- 1'0' 1'+'.

6.3.1. OBHETIVOS DEL SOFTEARE DE E/S &n concepto clave es la independencia del dispositivoC F #ebe ser posible escribir programas ue se puedan utiliGar con archivos en distintos dispositivos, sin tener para cada tipo de dispositivo. F El problema debe ser resuelto por el S. O. ue modificar los programas

El ob!etivo de lograr nombres uniformes est" muy relacionado con el de independencia del dispositivo. +odos los archivos y dispositivos ad uieren direcciones de la misma forma, es decir mediante el nombre de su ruta de acceso.

156

Otro aspecto importante del softKare es el mane!o de errores de EDSC F 8eneralmente los errores deben mane!arse lo m"s cerca posible del hardKare. F Solo si los niveles inferiores no pueden resolver el problema, se informa a los niveles superiores. F 8eneralmente la recuperacin se puede hacer en un nivel inferior y de forma transparente. Otro aspecto clave son las transferencias sncronas Lpor blo uesM o asncronas Lcontrolada por interruptoresMC F 6a mayora de la EDS es asncronaC la cpu inicia la transferencia y realiGa otras tareas hasta una interrupcin. F 6a programacin es m"s f"cil si la EDS es sncrona Lpor blo uesMC el programa se suspende autom"ticamente hasta disponibles en el buffer. El S. O. se encarga de hacer ue operaciones controladas por interruptores ue pareGcan del tipo de blo ues para el usuario. +ambin el S. O. debe administrar los dispositivos compartidos Le!.C discosM y los de uso exclusivo Le!.C impresorasM. 8eneralmente el softKare de EDS se estructura en capasC F F F F 'ane!adores de interrupciones. #irectivas de dispositivos. SoftKare de S. O. independiente de los dispositivos. SoftKare a nivel usuario. ue los datos estn

6.3.2. MANEHADORES DE INTERRUPCIONES 6as interrupciones deben ocultarse en el S. O.C F ,ada proceso ue inicie una operacin de EDS se blo uea hasta ue termina la E DS y ocurra la interrupcin. 157

El procedimiento de interrupcin realiGa lo necesario para desblo uear el proceso ue lo inicio.

6.3.3. MANEHADORES DE DISPOSITIVOS +odo el cdigo ue depende de los dispositivos aparece en los mane!adores de dispositivos. ,ada controlador posee uno o m"s registros de dispositivosC F F Se utiliGan para darle comandos. 6os mane!adores de dispositivos proveen estos comandos y verifican su e!ecucin adecuada. 6a labor de un mane!ador de dispositivos es la deC F Aceptar las solicitudes abstractas independiente del dispositivo. F Aerificar la e!ecucin de dichas solicitudes. ue le hace el softKare

Si al recibir una solicitud el mane!ador est" ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes. 6a solicitud de EDS, por e!emplo para un disco, se debe traducir de trminos abstractos a trminos concretosC F El mane!ador de disco debeC Estimar el lugar donde se encuentra en realidad el blo ue solicitado. F Aerificar si el motor de la unidad funciona. Aerificar si el braGo est" colocado en el cilindro adecuado, etc. %esumiendoC debe decidir cu"les son las operaciones necesarias del controlador y su orden. Enva los comandos al controlador al escribir en los registros de dispositivo del mismo.

158

Hrecuentemente el mane!ador del dispositivo se blo uea hasta ue el controlador realiGa cierto traba!oP una interrupcin lo libera de este blo ueo.

Al finaliGar la operacin debe verificar los errores. Si todo esta o.E. transferir" los datos al softKare independiente del dispositivo.

llam.

%egresa informacin de estado sobre los errores a

uien lo

*nicia otra solicitud pendiente o ueda en espera.

6.4. DISCOS 9 HARDEARE PARA DISCOS 6.4.1. DISCOS 6as siguientes son las principales venta!as con respecto del uso de la memoria principal como almacenamientoC F F F 'ucho mayor capacidad de espacio de almacenamiento. 'enor precio por bit. 6a informacin no se pierde al apagar la computadora.

&n uso inapropiado de los discos puede generar ineficiencia, en especial en sistemas con multiprogramacin.

6.4.2. HARDEARE PARA DISCOS 6os discos est"n organiGados en cilindros, pistas y sectores. El n$mero tpico de sectores por pista vara entre @ y 42 Lo m"sM. +odos los sectores tienen igual n$mero de bytes. 6os sectores cercanos a la orilla del disco ser"n mayores fsicamente ue los cercanos al anillo. &n controlador puede realiGar b$s uedas en una o m"s unidades al mismo

159

tiempoC F F otra. 'uchos controladores puedenC F F 6eer o escribir en una unidad. Buscar en otra. Son las b$s uedas traslapadas. 'ientras el controlador y el softKare esperan el fin de una b$s ueda en una unidad, el controlador puede iniciar una b$s ueda en

6os controladores no pueden leer o escribir en dos unidades al mismo tiempo. 6a capacidad de b$s uedas traslapadas puede reducir considerablemente el tiempo promedio de acceso.

6.5. OPERACIN DE ALMACENAMIENTO DE DISCO DE CABETA MVIL 6os datos se graban en una serie de discos magnticos o platos LAer figura 3.>M. El e!e com$n de los discos gira a una velocidad del orden de >.??? o m"s revoluciones por minuto. Se lee o escribe mediante una serie de cabeGas de lectura F escrituraC F Se dispone de una por cada superficie de disco.

160

F#$%&' 6.4( E/?%-*' 0- %, 0#/1) 0- 1'>-G' *24#3.

Solo puede acceder a datos inmediatamente adyacentes a ellaC 6a parte de la superficie del disco de donde se leer" Lo sobre la ue se grabar"M debe rotar hasta situarse inmediatamente deba!o Lo arribaM de la cabeGa de lectura F escritura. El tiempo de rotacin desde la posicin actual hasta la adyacente al cabeGal se llama tiempo de latencia.

+odas las cabeGas de lectura F escritura est"n montadas sobre una barra o con!unto de braGo mvilC F ;uede moverse hacia adentro o hacia afuera, en lo denomina operacin de b$s ueda. F ;ara una posicin dada, la serie de pistas accesibles forman un cilindro vertical. A los tiempos de b$s ueda y de latencia se debe agregar el tiempo de transmisin propiamente dicha, ver figura 3.<. El tiempo total de acceso a un registro particularC F F *nvolucra movimientos mec"nicos. 8eneralmente es del orden de centsimas de segundo, aun ue el tiempo de latencia sea de algunas milsimas de segundo L= a .2 aproximadamenteM. ue se

161

F#$%&' 6.5( C)*+),-,.-/ 0-3 '11-/) ' %, 0#/1).

6.6. ALGORITMOS DE PROGRAMACIN DEL BRATO DEL DISCO En la mayora de los discos, el tiempo de b$s ueda supera al de retraso rotacional y al de transferencia, debido a ello, la reduccin del tiempo promedio de b$s ueda puede me!orar en gran medida el rendimiento del sistema. Si el mane!ador del disco utiliGa el algoritmo +&#*-&) -, 33-$'& +&#*-&) -, /-& '.-,0#0) LH,HSM, poco se puede hacer para me!orar el tiempo de b$s ueda. Es posible ue mientras el braGo realiGa una b$s ueda para una solicitud, otros procesos generen otras solicitudes.

6.I. POR U! ES NECESARIA LA PLANIFICACIN DE DISCOS En los sistemas de multiprogramacin muchos procesos pueden estar generando peticiones de EDS sobre discosC F 6a generacin de peticiones puede ser mucho m"s r"pida ue la atencin de las mismasC Se construyen lneas de espera o colas para cada dispositivo. ;ara reducir el tiempo de b$s ueda de registros se ordena la cola de peticionesP esto se denomina planificacin de disco. 6a planificacin de disco implicaC F &n examen cuidadoso de las peticiones pendientes para determinar la forma m"s eficiente de servirlas. F espera. F &n reordenamiento de la cola de peticiones para servirlas 162 &n an"lisis de las relaciones posicionales entre las peticiones en

minimiGando los movimientos mec"nicos. 6os tipos m"s comunes de planificacin sonC F F OptimiGacin de la b$s ueda. OptimiGacin rotacional LlatenciaM.

8eneralmente los tiempos de b$s ueda superan a los de latencia, aun ue la diferencia disminuyeC F 'uchos algoritmos de planificacin se concentran en la reduccin de los tiempos de b$s ueda para un con!unto de peticiones. F 8eneralmente la reduccin de la latencia recin tiene efectos ba!o cargas de traba!o muy pesadas. Ba!o condiciones de carga ligera Lpromedio ba!o de longitud de la colaM, es aceptable el desempeIo del mtodo H,HS Lprimero en llegar, primero en ser servidoM. Ba!o condiciones de carga media o pesada, es recomendable un algoritmo de planificacin de l as colas de re uerimientos.

6.J. CARACTERSTICAS DESEABLES DE LAS POLTICAS DE PLANIFICACIN DE DISCOS 6os principales criterios de categoriGacin de las polticas de planificacin sonC F F F ,apacidad de e!ecucin. 'edia del tiempo de respuesta. AarianGa de los tiempos de respuesta LpredecibilidadM.

&na poltica de planificacin debe intentar maximiGar la capacidad de e!ecucinC F F F 'aximiGar el n$mero de peticiones servidas por unidad de tiempo. 'inimiGar la media del tiempo de respuesta. 'e!orar el rendimiento global, uiG"s a costa de las peticiones

163

individuales. 6a planificacin suele me!orar la imagen total al tiempo ue reduce los niveles de servicio de ciertas peticionesC F F Se mide utiliGando la varianGa de los tiempos de respuesta. 6a varianGa es un trmino estadstico ue indica hasta u punto tienden a desviarse del promedio de todos los elementos los elementos individuales. F F A menor varianGa mayor predecibilidad. Se desea una poltica de planificacin ue minimice la varianGa, es decir ue maximice la predecibilidad. F (o debe haber peticiones servicio err"ticos. ue puedan experimentar niveles de

6.K. OPTIMITACIN DE LA BFS UEDA EN DISCOS 6as estrategias m"s comunes de optimiGacin de la b$s ueda son las siguientesC F F F F F F H,HS. SS+H. S,A(. S,A( de ( F ;asos. , F S,A(. Es uema Eschenbach.

6.K.1. PLANIFICACIN FCFS 6PRIMERO EN LLEGAR: PRIMERO EN SER SERVIDO8 &na peticin no puede ser desplaGada por la llegada de una peticin con prioridad m"s alta.

164

(o hay reordenamiento de la cola de peticiones pendientes. Se ignoran las relaciones posicionales entre las peticiones pendientes. Ofrece una varianGa pe ueIa aun ue per!udica a las peticiones situadas al final de la cola.

6.K.2. PLANIFICACIN SSTF 6MENOR TIEMPO DE BFS UEDA PRIMERO8 El braGo del disco se sit$a en la siguiente peticin ue minimice el movimiento del braGo. (o respeta el orden de llegada de las peticiones a la cola. +iende a favorecer a las pistas del centro del disco. 6a media de tiempos de respuesta tiende a ser m"s ba!a ue con H,HS, para cargas moderadas. 6as varianGas tienden a ser mayores ue con H,HS por el efecto de las pistas interiores y exteriores.

6.K.3. PLANIFICACIN SCAN El braGo del disco se desplaGa sirviendo a todas las peticiones ue encuentra a su paso. ,ambia de direccin cuando ya no hay peticiones pendientes en la direccin actual. 5a sido la base de la mayora de las estrategias de planificacin implementadas. Elimina las discriminaciones de SS+H y tiene menor varianGa. 6as pistas exteriores son menos visitadas ue las intermedias, pero no es tan grave como con SS+H.

6.K.4. PLANIFICACIN SCAN DE N 9 PASOS

165

6a estrategia de movimiento del braGo es como en S,A(P solo da servicio a las peticiones particular. 6as peticiones ue llegan durante un recorrido son agrupadas y ordenadas y ser"n atendidas durante el recorrido de regreso. ;osee menor varianGa de los tiempos de respuesta si se compara con las planificaciones SS+H y S,A( convencionales. ue se encuentran en espera cuando comienGa un recorrido

6.K.5. PLANIFICACIN C 9 SCAN 6BFS UEDA CIRCULAR8 El braGo se mueve del cilindro exterior al interior, sirviendo a las peticiones sobre una base de b$s ueda m"s corta. HinaliGado el recorrido hacia el interior, salta a la peticin m"s cercana al cilindro exterior y reanuda su desplaGamiento hacia el interior. (o discrimina a los cilindros exterior e interior. 6a varianGa de los tiempos de respuesta es muy pe ueIa.

6.K.6. ES UEMA ESCHENBACH El braGo del disco se mueve como en , F S,A(, peroC F 6as peticiones se reordenan para ser servidas dentro de un cilindro para tomar venta!a de la posicin rotacional. F Si dos peticiones trasladan posiciones de sectores dentro de un cilindro, solo se sirve una en el movimiento actual del braGo del disco. Esta estrategia tiene en cuenta el retraso rotacional.

6.K.I. CONCLUSIONES 'ediante traba!os de simulacin y de laboratorio se demostr lo siguienteC

166

F F F

6a estrategia S,A( es la me!or con carga ba!a. 6a estrategia , F S,A( es la me!or con cargas medias y pesadas. 6a estrategia , F S,A( con optimiGacin rotacional es la me!or para cargas muy pesadas Lme!or ue la estrategia Eschenbach inclusiveM.

167

BIBLIOGRAFIA

A(#%E[ S. +A(E(BA&'. QSistemas Operativos #istribuidosQ, ;rentice 5all L.993M. ,A%%E+E%O ;c%E_, JESeSP 8A%,fA ,A%BA66E*%A, Hc6*T, #E '*8&E6 A(ASA8AS+*, ;E#%OP ;c%E_ ,OS+O:A, HE%(A(#O. QSistemas Operativos. &na visin aplicada. 'c8raK5ill, 2??.. #E*+E6, 5. '., V/istemas *beroamericana, .994. A!erati$osH L2DEd.M, Addisong[esley

H*(NE6, %. A., V8#n%amentos %e /istemas A!erati$os . &n Estudio Actual de los Sistemas Operativos, Anaya 'ultimedia, .99?. '*6E(NOA*,, '., I/istemas A!erati$os. 7once!tos & DiseJoH L2DEdM, 'c8raKF 5ill, .99>. S+A66*(8S, [. VOrganiGacin y Ar uitectura de ,omputadores. #iseIo para OptimiGar ;restacionesU L>DEd.M, ;rentice 5all, .99=. +A(E(BA&', A. S., : [OO#5&66, A. S. V/istemas A!erati$os. DiseJo e 3m!lementacinH L2DEd.M, ;rentice 5all, .99=. 8EO%8E ,O&6O&%*S, JEA( #O66*'O%E, +*' N*(#BE%8. Q#istributed Systems, ,oncepts and #esignQ, AddisonF[esley L.99>M. AB%A5A' S*6BE%S,5A+_P ;E+E% 8A6A*(P 8%E8 8A:(EC QOperating System ,onceptsQ L3th. ed.M. John [iley ] Sons, *nc 2??2. A(#%E[ S. +A(E(BA&'. Q'odern Operating SystemQ L2nd ed.M. ;rentice 5all 2??.. S*6BE%S,5A+_, A., : 8A6A*(, ;. B. IA!erating /&stem 7once!tsH L>DEd. o siguientesM, AddisonF[esley, .99>. S+A66*(8S, [. VA!erating /&stems V L2DEd.M, ;rentice 5all, .99<. +A(E(BA&', A. S., V?o%ern A!erating /&stemsH, ;rentice 5all, .992. BE(FA%*, '. VPrinci!les of 7onc#rrent ProgrammingU ;rentice 5all, .9@2. (&++, 8. VOperating SystemsU. A 'odern ;erspective, AddisonF[esley 6ongman, 2???.

168

Das könnte Ihnen auch gefallen