Anda di halaman 1dari 65

1.

Introduccin
SO. Definicin
1. Un SO es una coleccin organizada de extensiones software del hardware, que consiste en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecucin de programas. . !l SO act"a como interfaz entre los usuarios y el hardware del sistema inform#tico. $. !l SO ofrece ser%icios a los programas y sus usuarios para facilitar la tarea de programacin, estos ser%icios %ar&an seg"n los o'jeti%os de cada SO. (os programas in%ocan los ser%icios del SO mediante llamadas al sistemas mientras que los usuarios pueden interactuar con este efectuando ordenes )sentencias de control, mandatos, enunciado de control*. +. !l SO de'e asegurar el correcto funcionamiento del hardware. ,. Un SO act"a como gestor de recursos del Sistema -nform#tico lle%a control so're el estado de cada recurso y decide qui.n lo o'tiene, durante cu#nto tiempo y cu#ndo. /. (os SO existen porque son una manera razona'le de solucionar el pro'lema de crear un sistema inform#tico utiliza'le. !l o'jeti%o fundamental de los sistemas inform#ticos es ejecutar los programas de usuarios y facilitar la resolucin de sus pro'lemas. O'jeti%os0 1rincipal0 (ograr que el sistema inform#tico se use de manera cmoda. Secundario0 (ograr que el hardware se emplee de manera eficiente. S-S2!34 -56O7342-8O 1 Nivel - Hardware0 1roporciona recursos de computacin '#sicos. 2 Nivel - SO0 8ontrola y coordina el uso del hardware entre los di%ersos programas de aplicacin de los distintos usuarios. 3 Nivel - Programas de !licacin0 9efine la forma de emplear los recursos para resol%er los pro'lemas de los usuarios. " Nivel - #suarios0 1uede ha'er distintos. O's0 los Programas del Sistema se pueden agregar entre los 1rogramas de 4plicacin y el SO aunque en general se considera a los 1rogramas del Sistema como 1rogramas de 4plicacin.

Evolucin
1. 2. 3. ". &. '. ). +. ,. Maquina desnuda Dispositivos de E/S y Traductores de Lenguajes Operador Pro esiona! #grupaci$n de tra%ajos Monitor residente Operaci$n uera de !(nea *u ering Spoo!ing Mu!tiprogra-aci$n

Mquina desnuda
1. 2. 3. ". &. '. Progra-as en c$digo %inario Se introducen de or-a -anua! Se ejecutan cargando e! ./ Los resu!tado se o%tienen e0a-inando !os registros y posiciones de -e-oria re!evantes Progra-ador1Operador con tie-pos asignados 2interacci$n directa3 /P4 inactiva

Llegada de los dispositivos de E/S y traductores de lenguajes


1

1. 2. 3. ". &. '.

Lectores de tarjetas5 i-presoras de !(nea y cintas -agn6ticas /o-pi!ador o .nt6rprete *i%!iotecas de unciones co-unes Manejadores de dispositivos 2inc!uidos en !as %i%!iotecas3 Se aci!ito !a tarea de progra-aci$n a costa de un unciona-iento -as co-p!ejo de! co-putador Tie-po de preparaci$n de tra%ajos 2carga y descarga de cintas3

Operador profesional
1. E!i-ina per(odos de inactividad de !a /P4 2. Se reduce e! tie-po de preparaci$n de%ido a !a -ayor ve!ocidad de! operador 3. Depuraci$n -7s di (ci! para e! progra-ador

Agrupacin de trabajos
1. E! operador organi8a%a !otes con requisitos si-i!ares para -ejorar uti!i8aci$n.

Monitor residente
1. 2. 3. ". Secuencia auto-7tica de tra%ajos Tarjetas de contro! 2instrucciones para indicar a! -onitor cua! es e! progra-a que se ejecutara3 Per(odos de inactividad por dispositivos -ec7nicos de E/S Est7 or-ado por9 1.nt6rprete de tarjetas de contro! 2!ee y !!eva a ca%o !as instrucciones3 1/argador 2carga en -e-oria progra-as de! siste-a y ap!icaciones3 1/onjunto de -anejadores de dispositivos de E/S &. Es un Siste-a *atc:

Operacin fuera de lnea Off ! line"


1. .nterposici$n uera de !(nea de un dispositivo r7pido entre uno !ento y !a /P4 2. 4nidades de cinta entre !ectores de tarjetas y /P4 y entre !a /P4 y !a i-presora. 3. Se uti!i8an estos dos -6todos 2a-%os39 Dispositivos de prop$sito especia!9 Env(an !a sa!ida a !a cinta -agn6tica o to-an !a entrada de e!!a Procesa-iento sat6!ite9 Dedicaci$n de peque;os co-putadores a !a tarea de copiar de !a cinta y en e!!a. ". #parece !a .ndependencia de dispositivos &. Las correspondencias entre dispositivos !$gicos y (sicos se indican -ediante -andatos. '. La verdadera -ejora se o%tiene a! usar varios siste-as !ector1cinta y cinta1i-presora con una -is-a /P4 ). /onviene agrupar tra%ajos se-ejantes en una -is-a cinta +. Se e ect<an si-u!t7nea-ente !as operaciones de !a /P4 y de E/S e ectu7ndo!as en -aquinas independientes =E>.ST=O 4nidad natura! de datos ?(sico9 de inido por !a natura!e8a de !os dispositivos de E/S L$gico9 de inido por !os progra-as de ap!icaci$n Las operaciones de E/S !een o gra%an registros (sicos.

#uffering
1. 2. 3. ". &. '. M6todo para :acer si-u!t7nea !a E/S de un tra%ajo con su propio procesa-iento *u er9 -antiene registros !e(dos y no procesados o procesados y no sacados E! -anejo de %u ers es una unci$n de! SO Las so!icitudes de E/S s$!o provocan una trans erencia de o :acia un %u er En genera! !os dispositivos son de-asiado !entos co-o para igua!ar e! rit-o de !a /P4 Son <ti!es pero rara ve8 %astan

Spooling
1. 2. 3. ". &. '. Se uti!i8a un disco co-o %u er de gran ta-a;o. @ace si-u!t7nea !a E/S de un tra%ajo con e! c7!cu!o de otro tra%ajo. La u%icaci$n de! contenido de !as tarjetas se anota en una ta%!a -antenida por e! SO E ecto %ene icioso so%re e! rendi-iento de! siste-a contra e! costo de ta%!as y espacio en disco Dep$sito de tra%ajos 2Ao% Poo!3 que per-ite a! SO se!eccionar e! pr$0i-o tra%ajo a ejecutar 2P!ani icar3 E! Bturn1around1ti-eC au-enta ya que a! tie-po origina! de! progra-a se agrega e! tie-po de ejecuci$n de !a rutina y e! tie-po de gra%aci$n en e! dispositivo r7pido. ). E! Btroug:tputC au-entar7 considera%!e-ente. +. Es !a %ase de !a -u!tiprogra-aci$n 2con esta t6cnica se !ogro por pri-era ve8 !a -u!tiprogra-aci$n entre rutinas de SO y un progra-a de ap!icaci$n3

$ulti!rogramacin
1. 4umenta la utilizacin de la 81U organizando los tra'ajos de manera que .sta siempre tenga algo que ejecutar. . 2odos los programas de'en estar en memoria al mismo tiempo. $. !l sistema de'e elegir un programa )1lanificacin de la 81U* +. 1ara que los programas no se interfieran unos a otros, se de'e incluir la planificacin de proceso, el almacenamiento en disco y la administracin de memoria.

2. %structura de los Sistemas de &om!utacin


Sistemas 'asados en interru!ciones
-52!77U18-:5 1. 3ecanismo utilizado para lograr la coordinacin necesaria entre distintas unidades de un sistema y para responder a condiciones espec&ficas que se presentan en el procesador. . 8uando se produce una interrupcin el procesador es forzado a reconocer un e%ento en el sistema. $. 1ara cada interrupcin se de'e seleccionar y ejecutar un procedimiento adecuado que implica una com'inacin de soft y hard. !l hard de'e proporcionar la siguiente informacin0 1. 2ipo de interrupcin que se produce. . -nformacin so're el resultado )9escriptor de interrupciones ; -9* disponi'le para el proceso. !n el caso de una unidad de cinta seria la siguiente0 1. 9e que unidad de cinta se trata . Si existi error de condicin de excepcin, que tipo $. Si se detecto marca de principio o fin de cinta +. Si se lleno el 'uffer de entrada de la lectora !l soft de'e poder realizar las siguientes operaciones0 1. 3antener registros del flujo de operaciones de !<S . 4sociar la interrupcin con la operacin de !<S que la produjo. $. 4nalizar el resultado y de existir excepcin, encargarse de ellas. +. =olcar los resultados al programa que lo requiera. ,. -ndicar que se ha completado la operacin de !<S /. 8ontrolar si hay m#s operaciones de !<S listas e iniciarlas. #tilidad0 (a capacidad de poder seguir procesando mientras se est# realizando una !<S. Se de'e contar con un mecanismo que permita realizar la desincronizacin y resincronizacin de las operaciones, pudi.ndose usar m.todos0 2ransferencia de datos dirigida por interrupciones 2ransferencia de datos por acceso directo a memoria )934* Hardware de !roteccin(
$%

$ecanismo de direccionamiento 1ara separar el espacio de memoria de cada programa se necesita determinar el inter%alo de direcciones legales a las que puede acceder y proteger la memoria fuera de ese espacio. !sto se puede hacer con registros, uno 'ase )contiene la menor direccin de memoria f&sica permitida* y otro l&mite )que contiene el tama>o del inter%alo*. (a 81U logra esta proteccin comparando cada direccin generada en modo usuario con los registros. 8ualquier intento de un programa que se ejecuta en modo usuario de acceder a la memoria del monitor o de otro programa generar# una trampa para el monitor, el cual la trata como un error fatal. !sto e%ita que el programa de usuario modifique )accidental o deli'eradamente* las estructuras de datos o cdigo del SO o de los dem#s programas. !l SO carga el registro 'ase y el l&mite a tra%.s de una instruccin pri%ilegiada. $ecanismos de !roteccin de la &P# 1ara e%itar que un programa entre en un ciclo infinito y nunca de%uel%a el control al SO se usa un cronmetro que se implanta usando un reloj de periodo fijo y un contador, que se decremento cada %ez que a%anza el reloj. 8uando llega a ?, se produce una interrupcin. Si el cronmetro interrumpe se pasa el control al SO el cual puede tratar la interrupcin como error fatal o decidir que de'e darse mayor tiempo al programa
+

&%

)m'ito de !rocesamiento( !l programa @%eA las instrucciones de tra'ajo )instrucciones del procesador, 4(U* y su #rea de memoria direcciona'le )? a x*, tam'i.n @%eA una serie de mdulos del SO que act"an como interface entre el programa usuario y las instrucciones pri%ilegiadas. (o que el programa @no %eA son las instrucciones pri%ilegiadas que est#n ocultas y un #rea de memoria protegida tam'i.n oculta en donde se encuentran las direcciones de memoria que el programa no puede referenciar y es donde se almacenan las rutinas del SO y el resto de los programas usuarios concurrentes. Una instruccin cualquiera del programa usuario )escrita en alto ni%el* puede traducirse )en tiempo de compilacin* en un conjunto de instrucciones elementales del hardware de 'ase, o una llamada al monitor. !n el #m'ito de multiprogramacin y de recursos compartidos no se permite que los compiladores generen todas las funciones dentro del programa compilado.

17C USU47-O

3!3O7-4 9-7!88-O; 54E(! C!2 1U2 etc.D

Diferentes clases de com!utadoras(

3!3O7-4 -nstrucciones de -nstrucciones pri%ilegiadas 17O2!C-; tra'ajo 94 Sistemas multi!rocesadores 2ienen m#s de 1 81U en estrecha comunicacin, compartiendo

O1!5 B7-2! 7!49

el canal de la computadora, y en ocasiones, la memoria y los dispositi%os perif.ricos. =entajas0 --ncrementar la producti%idad0 Sin em'argo, la relacin de aceleracin de n procesadores no es n, sino menor que n, porque hay un tiempo de procesamiento adicional requerido para mantener al conjunto funcionando correctamente ;8onfia'ilidad0 (a a%er&a de un procesador no detendr# el sistema, "nicamente lo har# mas lento. (a capacidad de continuar 'rindando ser%icio de acuerdo con el ni%el de hardware que no ha fallado se llama degradacin progresi%a a los sistemas dise>ados para la degradacin progresi%a se los denomina de fallas sua%es. 3ultiprocesamiento sim.trico0 cada procesador ejecuta una copia id.ntica del SO y todos se comunican entre s& seg"n se requiera 3ultiprocesamiento asim.trico )relacin amo;escla%o*0 a cada procesador se le asigna una tarea espec&fica. Un procesador principal controla el sistema y los dem#s acuden a .l para reci'ir instrucciones o tienen tareas predefinidas. Una 81U puede estar inacti%a mientras otra est# so'recargada lo que reduce la eficiencia. !s com"n en los sistemas de gran tama>o.

&om!utadores !ersonales !n muchos se utilizan spooling y 'uffering, incluso algunos incluyen procesamiento multitarea. 5o es necesaria la proteccin de archi%os, adem#s la mayor&a carecen de proteccin de memoria,

procesamiento multitarea y funcionamiento en modo dual. (a ausencia de la proteccin de archi%os, permite que programas mal intencionados destruyan datos del sistema )%irus*.

3. %structura de los Sistemas O!erativos


&om!onentes del Sistema( Un SO proporciona el entorno dentro del cual se ejecutan los programas Proceso0 programa en ejecucin que necesita determinados recursos )81U, memoria, archi%os, etc.* para realizar su tarea. !stos se proporcionan al crear el proceso, o se le asignan mientras se ejecuta. Un proceso es una entidad acti%a mientras que un programa es una entidad pasi%a. (a ejecucin de un proceso de'e realizarse secuencialmente )se ejecuta como m#ximo 1 instruccin del proceso en un momento*. Un proceso es la unidad de tra'ajo de un sistema, el cual consiste en un conjunto de procesos, del SO)aquellos que ejecutan cdigo del SO* y de los usuarios)los que ejecutan cdigo del usuario*. 2odos se ejecutan concurrentemente, multiplexando la 81U entre ellos. dministracin de Procesos0 !l SO es responsa'le de0 1. 8rear y eliminar procesos de usuarios y del sistema. . Suspender y reanudar la ejecucin de procesos. $. 1roporcionar mecanismos para la sincronizacin +. 1roporcionar mecanismos para la comunicacin de procesos ,. 1roporcionar mecanismo para el manejo de 'loqueos mutuos. $emoria0 Cran arreglo de pala'ras o 'ytes, cada una con su propia direccin. !s un depsito de acceso r#pido. 1ara que la 81U procese datos e instrucciones del disco, primero hay que transferirlos a la memoria principal usando llamadas de !<S generadas por la 81U. dministracin de $emoria0 !l SO es responsa'le de0 1. (le%ar control de las zonas de memoria que se est#n usando y qui.n las usa. . 9ecidir que procesos se cargar#n en memoria cuando haya espacio disponi'le. $. 4signar y recuperar el espacio de memoria seg"n se requiera. lmacenamiento Secundario0 7espalda a la memoria principal )generalmente disco*. Son guardados los programas y datos hasta cargarse en memoria principal. dministracin de lmacenamiento Secundario0 !l SO es responsa'le de0 1. 4dministracin del espacio li're. . 4signacin del almacenamiento. $. 1lanificacin de las operaciones so're disco. Sistema de %*S0 !l SO oculta las particularidades de los dispositi%os de !<S mediante0 1. Sistema de memoria cach. mediante 'uffering. . -nterfaz general con los manejadores de dispositi%os )dri%ers*. $. 3anejadores p<dispositi%os de hardware espec&ficos )slo el manejador del dispositi%o conoce las particularidades del dispositi%o al cual est# asignado* rc+ivo0 8onjunto de informacin relacionada definida por su creador. 7epresentan programas y datos. 1ueden tener un formato li're o r&gido. Se organizan en directorios. dministracin de rc+ivos0 !l SO es responsa'le de0 1. 8reacin y eliminacin de archi%os y directorios. . 3anejo de operaciones primiti%as para manipular archi%os. $. 8orrespondencia entre archi%os y almacenamiento secundario. O sea que por medio del SO los archi%os se relacionan con dispositi%os f&sicos. +. 8opia de seguridad de archi%os en medios de almacenamiento esta'les )no %ol#tiles*. Sistema de Proteccin0 (os distintos procesos de un SO de'en ser protegidos unos de otros. 8on este fin se proporcionan mecanismos para asegurar que los archi%os, memoria, la 81U y otros recursos puedan ser usados "nicamente por aquellos procesos que han reci'ido la correspondiente autorizacin del SO. 1or ejemplo el hardware de direccionamiento a memoria asegura que un proceso solo puede tra'ajar dentro de su espacio de direcciones. !l cronometro asegura que ning"n proceso pueda o'tener el control de la 81U sin
/

perderlo e%entualmente. 1or ultimo, no se permite que los usuarios realicen por su cuenta sus operaciones de !<S, para proteger as& la integridad de los dispositi%os perif.ricos. (a proteccin se refiere a un mecanismo para controlar el acceso de programas, procesos o usuarios, a los recursos de un sistema de computacin. ,edes0 !s un sistema distri'uido donde los procesadores no comparten memoria ni reloj )cada uno tiene su propia memoria* y los procesos se comunican entre s& a tra%.s de distintos medios, como canales de alta %elocidad o l&neas telefnicas. 1ermite al usuario el acceso a recursos que mantiene el sistema, haciendo posi'le aumentar la %elocidad de los c#lculos, ampliar la disponi'ilidad de los datos y mejorar la confia'ilidad. (os SOs generalizan el acceso a la red como una forma de acceso a archi%os, con los detalles de la red contemplados en el manejador de la interfaz de la red. Sistema int-r!rete de mandatos0 !l int.rprete de mandatos es uno de los programas m#s importantes de un SO. Se ejecuta autom#ticamente y su funcin es o'tener el siguiente enunciado de mandato y ejecutarlo. (os enunciados de mandatos se encargan de la administracin de procesos, manejo de !<S, administracin del almacenamiento secundario, administracin de la memoria principal, acceso al sistema de archi%os, proteccin y redes. Servicios del SO0 1ara facilitar la tarea de programar. 1. -nterfaz de usuario0 la mayor&a de los SO tienen una interfaz de usuario la cual puede ser de diferentes formas, entre ellas la 8ommand (ine -nterfaz, otra la interfaz 'atch y la mas com"n la CU-. . !jecucin de programas0 el sistema de'e ser capaz de cargar un programa en memoria y ejecutarlo, luego el programa de'e terminar su ejecucin normal o anormalmente. $. Operaciones de !<S0 Fa que un programa no puede ejecutarlas directamente, el SO de'e hacerlas en su nom're. +. 3anipulacin del sistema de archi%os. ,. 8omunicaciones0 !ntre procesos en el mismo o distintos computadores, a tra%.s de memoria compartida o paso de mensajes, en el cual el SO mue%e paquetes de informacin entre procesos. /. 9eteccin de errores0 9e'e estar constantemente pendiente de posi'les errores. 1ara cada error de'e emprender la accin adecuada para asegurar un correcto y consistente funcionamiento del sistema. .unciones del SO0 1ara asegurar el funcionamiento eficiente del sistema )no para apoyar al usuario*. 1. 4signacin de recursos0 !l sistema administra %arios tipos de recursos. 7utinas de asignacin para los distintos tipos de recursos. . 8onta'ilidad0 para lle%ar control de que usuarios usan cu#ntos recursos y de que tipo. $. 1roteccin0 1ara re%isar %alidez de par#metros que se pasan en las llamadas al sistema y asegurar acceso controlado a los recursos. /lamadas al Sistema0 1roporcionan la interfaz entre el SO y un programa en ejecucin. Utilizadas por el usuario para que el sistema realice una instruccin pri%ilegiada. 2odas las interacciones entre el programa y su entorno de'en ocurrir como resultado de solicitudes del programa al SO. 3.todos para pasar par#metros al SO0 en registros, en un 'loque o ta'la en memoria )cuando hay m#s par#metros que registros*, y la direccin se pasa como par#metro en un registro, en una la pila 2ipos de llamadas al sist0 1. 8ontrol de procesos y tra'ajos0 finalizar, a'ortar, cargar, ejecutar, crear . 3anipulacin de archi%os0 crear, eliminar, a'rir, cerrar, atri'utos $. 3anipulacin de dispositi%os0 solicitar, li'erar, leer, escri'ir, atri'utos +. 3antenimiento de informacin0 o'tener hora y fecha, esta'lecer hora y fecha, o'tener o esta'lecer atri'utos de proceso, archi%o o dispositi%o ,. 8omunicacin0 crear, eliminar, en%iar, reci'ir mensajes, unir o separar dispositi%os remotos. !xisten dos modelos para la comunicacin entre procesos0 el pasaje de mensajes y la memoria compartida. !n el primero, se necesitan las llamadas del sistema a'rir conexin y cerrar conexin y leer mensaje y escri'ir mensaje para el intercam'io de mensajes entre dos procesos. !n el segundo se necesitan las llamadas al sistema crear memoria compartida y usar memoria compartida.
G

Programas del Sistema0 6acilitan el desarrollo y ejecucin de programas. 8ategor&as0 1. 3anejo de archi%os0 crean, 'orran, copian y manipulan archi%os y directorios. . -nformacin de estado0 fecha, hora, espacio en memoria, n"mero de usuarios. $. 3odificacin de archi%os0 editores de texto +. 4poyo a lenguajes de programacin0 compiladores, ensam'ladores, int.rpretes. ,. 8arga y ejecucin de programas0 cargadores a'solutos, relocaliza'les, de superposicin y editores de enlace. Sistemas de depuracin. /. 8omunicaciones G. 1rogramas de aplicacin0 formadores de texto, generadores de gr#ficos, 'ase de datos, hoja de calculo !xisten maneras para poner en pr#ctica mandatos )crear, eliminar, etc.*. !l int.rprete de mandatos contiene el cdigo para ejecutarlo. -mplantar todos los mandatos como programas especiales del sistema y que el int.rprete solo pasa los par#metros. %structura de Sistema0 %structura Sencilla0 Son los sistemas que no est#n cuidadosamente di%ididos en mdulos. )3S;9OS* %nfo0ue !or &a!as0 Se di%ide el sistema en capas, siendo la capa ? el hard y la capa 5 el ni%el del usuario. 8ada capa utiliza funciones de capas anteriores. =entajas0 modularidad, control so're la computadora y las aplicaciones, f#cil de'ugging y %erificacin del sistema y simplificacin del dise>o e implantacin del mismo. 9es%entaja0 dif&cil definicin de los ni%eles y tienden a ser menos eficiente que sistemas de otros tipos. $icro1ernerll0 este m.todo consiste en eliminar todos los componentes no esenciales de un Hernell e implementarlos como programas del sistema y del ni%el de usuario, el resultado es un Hernell m#s peque>o. (a funcin principal es pro%eer facilidad de comunicacin entre el programa cliente y %arios de los ser%icios que est#n corriendo. (a comunicacin es a tra%.s de pasaje de mensajes. Uno de los 'eneficios es la facilidad de extensin. 2odos los nue%os ser%icios se agregan al espacio de usuario y no requieren modificar el Hernell, por lo que el SO resultante es f#cil de portar de un dise>o de hardware a otro, estos SO pro%een adem#s mayor seguridad y esta'ilidad, ya que la mayor&a de los ser%icios se ejecutan como procesos de usuario y no de Hernell, si un ser%icio falla el SO permanece intacto. 9esafortunadamente los microHernells sufren decrementos de performance, de'ido a la so'recarga de funciones del sistema. $dulos0 Iuiz# la mejor metodolog&a para el dise>o de SO sea el uso de t.cnicas orientadas a o'jetos. 1ara crear un Hernell modular, el cual contiene un conjunto de componentes y adicionalmente, enlaza din#micamente otros ser%icios durante el tiempo de 'ooteo, o en tiempo de ejecucin. !l resultado es un conjunto de mdulos, similar a la implementacin por capas, pero es mas flexi'le ya que cada modulo puede llamar a cualquier otro modulo. (as capas superiores incluyen generalmente los ser%icios que pro%een la CU-, etc, mientras que las capas inferiores incluyen el manejo de memoria, el soporte para 718, etc. $20uinas 3irtuales( 1. 4 cada proceso se le otorga una copia )%irtual* del hardware su'yacente. . 1uede planificarse la 81U para compartirla y aparentar que los usuarios cuentan con su propio procesador. $. Se proporcionan discos %irtuales, id.nticos en todo excepto en el tama>o. +. Se puede ejecutar software almacenado en la m#quina su'yacente. ,. !l software de la 3= se encarga de la multiprogramacin de %arias m#quinas %irtuales en la m#quina f&sica. /. 8uenta con un modo usuario %irtual y un modo monitor %irtual, am'os ejecut#ndose en modo usuario f&sico. G. 1roteccin completa a los recursos del sistema. J. 1ara compartir los recursos estrategias0 8ompartir un minidisco, 9efiniendo red de m#q %irtuales. K. !s un %eh&culo perfecto para la in%estigacin y desarrollo de SOs. Dise4o de SO( 1. 9e'e ser cmodo, f#cil de usar y de aprender. . Separacin de pol&ticas )que se har#* y mecanismos )cmo hacerlo*. $. -mplantacin0 antes los sistemas se escri'&an en 4ssem'ler, hoy en d&a pueden ser escritos en lenguajes de alto ni%el. =entajas0 Se escri'e m#s r#pido, f#cil de entender y depurar. +. Ceneracin del sistema para ejecutarse en una determinada m#quina ;Iue 81U
J

;8uanta memoria ;Iue dispositi%os ;1ar#metros generales 8on esta informacin puedo modificar el original y compilarlo, o utilizar un sistema dirigido por ta'las

1;2iempo de 1re; 1rocesamiento

; 2iempo de 1rocesamiento

$;2iempo de 1ost; 1rocesamiento

PRG FUENTE

COMPIL ADOR TIEMPO DE COMPILACIN

PRG OBJETO

TIEMPO DE COMBINACIN COMBIN ADOR

EJECUT ABLE

". s!ectos %structurales de los Sistemas O!erativos


'ivisin en tie(pos de un Siste(a 9 !as etapas que e0peri-enta una unidad de tra%ajo que atraviesa un siste-a5 se !!a-an tie-pos. 11 Prepara a un tra%ajo para ser corrido y a! sist para que pueda correr!o 21 4n progra-a est7 activo en e! siste-a 31 E! siste-a evacua un progra-a ya co-p!etado. Los recursos usados por e! progra-a !e son retirados y se :acen accesi%!es a otros. USER READ ER CTE CTE SCHED ULER TIEMPO DE ACTIVACIN ACTIV ADOR CPA

TIEMPO DE SELECCIN )ie(po de *o(pilacin9 Es !a creaci$n de un progra-a o%jeto a partir de uno uente. )ie(po de *o(binacin9 Se en!a8a un progra-a o%jeto con rutinas de! siste-a y con otros progra-as de ap!icaci$n previa-ente co-pi!ados5 produciendo un -$du!o ejecuta%!e. Esta co-%inaci$n puede rea!i8arse entre co-pi!aci$n y se!ecci$n $ en !a activaci$n durante !a carga de! progra-a a -e-oria. )ie(po de 'e(anda9 Es !a so!icitud de! progra-a a! int6rprete de co-andos 2=eader3. Este !o pasa a una /o!a de Tra%ajos en Espera. )ie(po de Seleccin9 E! siste-a decide posponer u otorgar atenci$n a !a de-anda. Sc:edu!er. E!ige seg<n9 41prioridad re!ativa 41c!ase de tra%ajos 41tie-po !i-ite de inicia!i8aci$n 41tie-po !i-ite de ina!i8aci$n =1recurso critico =1requeri-iento de /P4 =1necesidad de -e-oria =1consu-o de E/S =1ta-a;o de! progra-a )ie(po de Activacin9 Se ejecutan acciones para iniciar un progra-a. Puede inc!uir asignaci$n de dispositivos para operaciones de E/S5 !a asignaci$n de conjunto de datos y !a asignaci$n de u%icaciones de -e-oria. 4na ve8 que un tra%ajo tiene asignados todos aque!!os recursos que necesita en or-a esttica5 e! -is-o se encuentra !isto para ser activado5 entonces se gra%a un e!e-ento creado por e! activador 2P/* o T/*3en !a /P#. E+OL,*-./9
1.

)ie(po Si(ple9 Se usionan todos !os tie-pos de pre1procesa-iento en un <nico co-pi!ador. Los servicios de! tie-po de de-anda son satis ec:os por un operador o por un progra-a -onitor residente que !!a-a a! co-pi!ador o a un progra-a usuario 2-ediante sentencias de contro!3. E! co-pi!ador rea!i8a !as asignaciones de !as u%icaciones en -e-oria 2co-pi!aci$n a%so!uta3 y de !os dispositivos que atender7n !as E/S5 o sea que tanto !as direcciones rea!es de -e-oria co-o !as de !os peri 6ricos son ijadas y co-pi!adas dentro de! progra-a. E! resu!tado de esta co-pi!aci$n puede ser un progra-a directa-ente ejecuta%!e. Los progra-as a ser co-%inados con e! progra-a a co-pi!ar pueden ser co-%inados por reco-pi!aci$n o %ien d7ndo!e a! co-pi!ador acceso a una %i%!ioteca de rutinas preco-pi!adas. La activaci$n es cargar un progra-a en !as direcciones a%so!utas generadas por e! co-pi!ador. Desventajas9 .n !e0i%i!idad5 .-posi%i!idad de co-%inar progra-as escritos en !engs.

1?

*o(binar y Activar9 Dace !a idea de distinguir un BTie-po de /o-%inar y #ctivarC5 co-o un tie-po para de-orar !a asociaci$n de! progra-a a dispositivos5 conjuntos de datos y u%icaciones de -e-oriaE y para aci!itar !a co-%inaci$n de progra-as escritos en !engs. 3. *arga9 .nicia!-ente usiona%a !os tie-pos de Se!ecci$n y #ctivaci$n. Se convoca a! /argador 2Loader3 para que cargue e! progra-a o%jeto en -e-5 inc!uyendo !a asignaci$n de -e- y !a carga de rutinas de -anejo de dispositivos de E/S. E! Loader carga e! progra-a en posiciones contiguas de -e-. E! co-pi!ador genera progra-as reasigna%!es o reu%ica%!es 2co(pilacin relativa3 y asignaci$n si-%$!ica de peri 6ricos. #! ina!5 e! Loader u%ica e! progra-a en -e-oria principa! y !e trans iere e! contro!. Se de%en inc!uir un conj. de ta%!as representando !os recursos disponi%!es de! sist 2puede a!ojarse en un arc:ivo3 y un conj. de %!oque de ctr! representando !a asociaci$n de no-%res si-%$!icos de arc:s con no-%res de dispositivos rea!es que !os contienen 2de%er7n estar en e! 7-%ito de procesa-iento3 ". Lin0!Edicin9 Se i-p!e-enta e! tie-po de /o-%inaci$n 2o LinF1Edici$n3 co-o tie-po independiente5 precediendo a !a activaci$n. 5. Asignadores9 La asignaci$n de conj. de datos y dispositivos es separada de !a asignaci$n de -e-oria y 6sta de !a carga de! progra-a. /onsiste en c!asi icar !os recursos en c!ases y asociar un asignador 2Ba!!ocatorC3 para cada c!ase de recurso. /ada uno de !os asignadores de%e tener acceso a ta%!as que re !ejen !a disponi%i!idad de recursos particu!ares. /uanto -7s se anticipe o retrase !a asignaci$n de recursos y/o !a co-%inaci$n de unciones5 -enos o -7s !e0i%!e5 respectiva-ente5 deviene e! siste-a. Las unciones pueden ser incorporadas o %rindadas en9 1. E! tie-po de co-pi!aci$n9 pertenecen a! co-pi!ador. 2. E! tie-po de activaci$n9 pertenecen a! !oader5 dis-inuye espacio requerido para guardar progra-as en a!-acena-iento secundario e incre-enta e! tie-po de carga 3. E! tie-po de co-%inaci$n9 pertenecen a! co-%inador5 incre-enta necesidad de a!-acena-iento secundario5 dis-inuye e! tie-po de carga ". E! tie-po de procesa-iento9 residen en -e-oria5 reduce tie-po de carga y espacio en -e-oria a costa de una so%recarga en e! 7-%ito de procesa-iento
2.

La -e-oria puede ser asignada a un progra-a en9 1. E! tie-po de co-pi!aci$n9 en !os siste-as de tie-po si-p!e con co-pi!aci$n a%so!uta. 2. E! tie-po de activaci$n9 en !os siste-as de -u!tiprogra-aci$n %7sica con co-pi!aci$n re!ativa 3. E! tie-po de procesa-iento 2run ti-e39 en !os siste-as de -u!tiprogra-aci$n avan8ada con -e-oria virtua!. Servicios del sistema 6 !rogramas de tra'a7o 0 2odo SO tiene un conjunto de ser%icios que act"an con el fin de preparar la corrida de un determinado tra'ajo. (a estricta di%isin entre los tiempos de pre;procesamiento y procesamiento es enfatizada por el uso de lenguajes diferentes para las interfaces. (os programas que pro%een ser%icios en el tiempo de pre;procesamiento pueden organizarse en componentes que operan como @programas de tra'ajo independienteA. Servicios del sistema 6 !rivilegios0 Si las funciones de demanda, seleccin y acti%acin son programas de tra'ajo independientes, necesitamos un operador que fuerce la seleccin y acti%acin de estos mecanismos, de modo que est.n continuamente representados en el #m'ito de procesamiento por un elemento del sist )18E*. !stos programas estar#n inacti%os )latentes* hasta que un control;stream llegue al sistema y en ese instante se tornar#n listos para correr. !s com"n conce'ir demanda, seleccin y acti%acin como funciones del SO, cuyas relaciones difieren de las que tiene .ste con el compilador y el com'inador como consecuencia de la necesidad de estos mecanismos de tener acceso a ta'las y archi%os que no son accesi'les a cualquier programa de tra'ajo. Otras formas de reflejar esta especial relacin son0 Carantizar siempre espacio de mem para que sean corridos, correrlos a ni%eles especiales de prioridades del sist, o 'rindarles mayores pri%ilegios en el #m'ito de procesamiento. Su'sistemas0 8ualquier conjunto de ser%icios de pre;procesamiento puede ser organizado para formar un su'sistema. Un su'sistema puede presentar un conjunto mejorado de interfaces de tiempo de procesamiento. signacin de ,ecursos0 signacin %st2tica0 Se asigna un recurso a un proceso y este lo retiene hasta finalizar su ejecucin.
11

2.cnicas de 4signacin0 !l o'jeti%o es acelerar el ingreso de un programa al #m'ito de procesamiento


Staging0 9efine @clases de recursosA y asigna cada clase desde una cola de recursos separada. Un

programa, para tornarse acti%o, %a pasando de cola en cola y capturando los recursos que necesita de cada uno. 2odos los recursos no necesitan estar disponi'les simult#neamente. =entaja, para el usuario, facilita el ingreso del programa. 9es%entaja, para el sistema, los recursos son retenidos durante per&odos de tiempo que se est# esperando por otros recursos. ging0 !s el proceso de ir aumentando la prioridad de un programa con el transcurso del tiempo, o 'ien en funcin de las negati%as reci'idas ante la solicitud de un recurso. Se define un um'ral de prioridades a partir del cual a un programa se le de'en asegurar todos los recursos necesarios para correr. signacin Din2mica0 !l Scheduler selecciona un tra'ajo sin asignarle ning"n recurso )sal%o los recursos que de'en asignarse de forma est#tica por sus caracter&sticas*, .stos son adquiridos en forma din#mica luego de la iniciacin del programa, slo cuando son solicitados. O'jeti%o0 minimizar la diferencia entre uso nomi; nal y real de un recurso.

&osto ,elativo0 8osto de los mecanismos de asignacin %ersus costo por su'utilizacin del equipo. #tili8acin Nominal0 2iempo en que los recursos son asignados al proceso hasta su desasignacin )los use o no* #tili8acin ,eal0 -nter%alos de tiempo en los que un recurso asignado es usado realmente por el proceso Deadloc10 !s un estado en el que existe la posi'ilidad de que un proceso sea mantenido indefinidamente en el #m'ito de procesamiento, por no encontrarse disponi'le un determinado recurso que necesita. dministracin de ,ecursos0 SO como administrador de recursos0 1. -mplica resol%er conflictos de demanda, asignar y proteger un recurso compartido. 2. 9efine y reconoce recursos como la materializacin o conceptualizacin de estructuras a'stractas. 8ontiene $ ideas principales0 1. ,ecurso0 !s una a'straccin definida por el SO quien otorga una serie de atri'utos referentes a la forma de acceso al mismo y a su representacin f&sica en el sistema. Son tanto los componentes de hard )81U, canales, mem, etc.* como los o'jetos de software. (a funcin del SO es definir una m#quina a'stracta. 2. Pol9tica0 !s esta'lecida como un conjunto de funciones para lograr determinados o'jeti%os. (a decisin cla%e es determinar si la maximizacin del apro%echamiento de un sistema pro%iene de una r#pida respuesta a una demanda de tra'ajo o de un uso intensi%o del recurso. !s funcin del SO actuar como sustituto y<o complemento de quienes dictan las pol&ticas de administracin o explotacin del sistema. (a tarea del SO es administrar la carga de tra'ajos para lograr o'jeti%os preesta'lecidos. !sto lo logra a tra%.s de su capacidad para asignar o negar recursos. 8on respecto a la administracin de recursos un SO 'rinda todos o algunos de los siguiente ser%icios0 - -nterfase para administrar las pol&ticas de explotacin del sistema - -nterfase que permite a un profesional de sistemas ajustar la performance del equipo - -nterfase que posi'ilita descri'ir la importancia relati%a de un tra'ajo en particular en t.rminos de su pertenencia a un determinado grupo o clase, a un determinado plazo de finalizacin o a una prioridad relati%a - -nterfase para descri'ir las caracter&sticas del consumo de recursos de un determinado proceso.
3.

Influencia de la !rogramacin0 !l estilo de programacin determina el tama>o de un programa y la cantidad de recursos que emplear# afectando la administracin de recursos de la siguiente manera0 a% !n programas de tama>o reducido, la asignacin de recursos es est#tica y la diferencia entre utilizacin nominal y real es peque>a. b% !n programas de gran dimensin, el sistema podr#0 '.1. 4signar los recursos din#micamente. '.2. 7ealizar la @administracin din#mica de recursosA, esto es se monitorean los recursos entre los demandantes, asign#ndolos con mayor o menor frecuencia dependiendo de la presuncin que pueda hacer el sistema respecto de la forma en que un programa consumir# un determinado recurso,
1

'as#ndose en un an#lisis so're el pasado. Lay una significati%a diferencia entre utilizacin nominal y realM el sistema intenta recuperar recursos ociosos. .undamentos %conmicos0 !l %alor de un sistema de computacin reside en el incremento de los 'eneficios econmicos que o'tiene una empresa de'ido a la incorporacin de un sistema de computacin. 1uede deri%ar de la reduccin de los costos de creacin, manipulacin, clasificacin y almacenamiento de datosM del aumento de la producti%idad de los usuarios y profesionales ligados al sist, etc. !l costo de computacin incluye el costo del hardware, del staff de profesionales y de los costos deri%ados del efecti%o uso del equipo. !l %alor de un sistema de computacin de'e ser medido por el %alor de la informacin que .l produce. Lay que tener en cuenta que el costo de una maquina so'recargada puede ser tanto o mas grande que el costo de una maquina su'cargada si, de'ido a la so'recarga, se des'arata la producti%idad econmica de los usuarios de terminales. /9mites de la dministracin de ,ecursos0 (a administracin de recursos se de'e adaptar y limitar a las posi'ilidades del hardware, de lo contrario, se corre el riesgo de su';administrar o so're;administrar el equipo. (a administracin de recursos de'e esta'lecer que el consumo de recursos utilizados para ejecutar estas funciones de administracin sea tal que el saldo neto de recursos disponi'les permitan soportar una mayor carga de tra'ajos que la que soportar&a sin los mdulos de administracin. Su'-administracin0 !s cuando a un hard con muchos recursos se lo administra con un SO que fue conce'ido para regular un hard m#s sencillo. So're-administracin0 !s cuando un hard con pocos recursos es administrado por un SO preparado para controlar un hard m#s complejo. .uncin de los SO en cuanto a recursos0 1ro%eer un conjunto de aparentes recursos lgicos que sean m#s f#cil de manipular que el hard que los soporta. 1ro%eer mecanismos de acceso, secuenciacin y proteccin en un medio en el que los recursos son compartidos.

1$

5. &lasificacin de los Sistemas O!erativos


Seg:n el Hardware Su'6acente0 Cran !quipo0 uso intensi%o, gran administracin, autogestin, %arias formas de acceso, multipropsito, 1eque>o !quipo0 uso menos intensi%o, administracin sencilla, tendencia a un tipo de uso y acceso Seg:n el $-todo Primario de cceso0 Sistemas 8on%ersacionales Sistemas de 2iempo 7eal Sistemas de 1rocesamiento en (otes Seg:n las &aracter9sticas del #suario0 Sists de 1rogramacin 8omputadoras 1ersonales )18* Sistemas de 8onsultas Seg:n la sofisticacin de las funciones !articulares0 una relacin entre esto y el tama>o de la m#quina, por ejemplo0 un Sistema de multiprogramacin '#sica sugiere que el hardware su'yacente no es suficientemente a%anzado para se con%enientemente explotado con t.cnicas a%anzadas de administracin din#mica.

&lasificacin ;radicional0

SO D% ;I%$PO ,% /(
Sus caracter&sticas son0 1. (a acti%idad de procesamiento es disparada por e%entos aleatorios externos. . (as acti%idades de procesamiento de'en ser completadas dentro de un estrecho margen de tiempo. $. (a utilizacin del hardware es menos importante que la capacidad de respuesta al medio, a"n en momentos de carga m#xima. +. Suele usarse como dispositi%o de control en una aplicacin dedicada. ,. 5o hay almacenamiento secundario, los datos se almacenan en memoria o en 7O3. /. 1lanificacin expropiati%a 'asada en prioridades. (os procesos de mayor prioridad expropian la ejecucin de procesos de prioridad inferior. G. (a con%eniencia del usuario es una preocupacin secundaria J. 1roporcionar formas sofisticadas de gestin de interrupciones y de almacenamiento de !<SM llamadas al sistema. K. 3&nima inter%encin humana )modificacin de par#metros, %iolacin de limites, desperfectos* 1?. !l recurso cr&tico puede ser la 81U o los canales. 11. 1ueden tener memoria %irtual pero casi nunca se aplica 1 . !s con%eniente para estos sistemas la asignacin est#tica ya que son m#s %eloces. 1$. !st#n desarrollados para atender la ocurrencia de determinados e%entos. 1+. 7elati%a po'reza de los algoritmos de administracin de recursos.

Se su'clasifican en0 d0uisicin de datos( datos adquiridos y almacenados en tiempo real para un uso posterior De control a la8o a'ierto( el sistema toma los datos del proceso externo, los procesa y los muestra a un operador quien toma las decisiones. De control a la8o cerrado( el sistema adquiere los datos y toma las decisiones )sin inter%encin humana*. 4tri'utos de un computador que lo hacen un 'uen procesador en tiempo real0 1. 9ise>o del manejo y an#lisis de las interrupciones )ya que de'en responder a las interrupciones externas r#pidamente* . 9ise>o de mecanismos de conmutacin de tareas )ya que de'en disparar procesos muy r#pidamente* $. 6lexi'ilidad de sus mecanismos para determinar inter%alos de tiempo y la hora real )ya que se necesita mucha precisin*.
1+

#so de m:lti!les !rocesadores en ;iem!o real( se di%ide el hard en dos, dedicando una computadora con caracter&sticas adecuadas a manejar el proceso externo en tiempo real )front;end procesor* y otro sin dichas caracter&sticas a los procesos de c#lculos y almacenamientos. (a multiplicidad se usa pN lograr O confia'ilidad y<o pN distri'uir funciones. Software0 1. !structura @!%ent;9ri%enA o @Iue%e;9ri%enA, es decir el sistema selecciona a los programas como resultado de una se>al externa de determinada caracter&sticas. . 8orazn es elAIue%e;3anagerA que cumple con las funciones del monitor, o sea reci'e o solicita las se>ales del proceso externo, las analiza y hace ejecutar un programa que procesa esa se>al. (a aplicacin tiene el control del equipo, se desprende de la 81U al finalizar su ejecucin o despu.s del tiempo fijado por el Iue%e;3anager. $. Simples mecanismos de conmutacin de la 81U. +. 5o se intenta 'alancear el consumo de los recursos. ,. (os programas de aplicacin comparten la responsa'ilidad de la integridad. /. (a programacin y el desarrollo del sistema separados de la fase operacional del mismo se utilizan 8ross;8ompiler o 8ross;4ssem'er )programas que ejecutados en una m#quina generan cdigo para otra*. Una generalizacin de estos programas es el 3eta;4ssem'ler que puede generar cdigos para cualquier arquitectura que le sea pre%iamente descripta. G. -nformacin en l&nea. 2odos los programas )o la gran mayor&a en memoria* O'servacin( !l mantenimiento de estados de control y del concepto de instrucciones pri%ilegiadas representa una so'recarga al sistema. Se resigna un 'uen control para o'tener mayor %elocidad.

P,O&%S $I%N;O < ;&H0

1. !jecutan 'loques de demandas sin relacin entre s&. . 1ermite la separacin de las tareas de programacin y operacin de'ido a que permite al programador desarrollar su programa, en%iar el @lote de tarjetasA y juntarse con los resultados despu.s de un tiempo )242Pturn;around;time* el cual de'e ser lo mas corto posi'le. O'jeti%os0 1. 4umentar la producti%idad del programador )lo li'era de tiempos de espera frente a al m#quina y le permite organizar su tra'ajo durante el 242*. . 4umentar la producti%idad del equipo )troughtput*, disminuyendo el tiempo de transicin entre tra'ajos. $. 4umentar la eficiencia del programador.

S%,I% SI$P/%(
!l sistema atiende los tra'ajos en la secuencia en que se presenta'an para su ejecucin, por lo tanto el @ordenamientoA se hace a mano.

(os conceptos que introdujo fueron0 1. 8ontrol Stream . Soporte de !<S $. 7eu'icacin de programas +. -ndependencia de perif.ricos ,. !ncapsulamiento de la m#quina por medio de su SO y el paquete de software.

.ortran $onitor S6stem =.$S>0


1. . $. +. Slo admite lenguaje 6ortran. 8ompilaciones y ejecuciones consecuti%as. 4cepta'a directi%as sofisticadas de @depuracinA )de'ugging* y permit&a realizar %uelcos. 1rograma en ejecucin tenia completo control del hard. 5o existen estado de control )modo monitor* y operaciones pri%ilegiadas. 2ampoco funciones del monitor residente.
1,

,. 4signaciones de dispositi%os de !<S mantenidas en una ta'la por el compilador, para cam'iar las asignaciones era necesario usar el editor. /. 8ompilacin a'soluta G. 9ispositi%os comunes para los Qo' Stream J. 8intas comunes a todos los tra'ajos )simplificando el tiempo de montaje*

I<S?S - I<@O<0
1. 4dmite lenguajes 6ortran, 8o'ol y 3ap)3acro 4ssem'ly 1rogram*. . -ntrodujo funciones del monitor residente para soporte de !<S. $. 2a'las de asignaciones de perif.ricos manipuladas por el operador mediante tarjetas de control del -ESFS )paso importante hacia la independencia de dispositi%os* +. 4signacin est#tica de memoria y perif.ricos y al mismo tiempo. ,. 8ompilacin relati%a /. 1rogramas linHeditados -ESFS es residente y contiene0 6unciones residentes para soporte de !<S )o sea que maneja las !<S* 1osi'ilidad de almacenamiento -nterfase para el -EQOE -EQOE conten&a0 -nt.rprete de sentencias de control que permit&a seleccionar el compilador. 8argador responsa'le de la asignacin de dispositi%os del programa, de la carga y de su'rutinas del sistema solicitadas por el programa. Ei'lioteca de rutinas de control de operaciones de !<S )-O8SP-nput Output 8ontrol System*.

$#/;IP,OA, $ &ION < ;&H0


6ue importante la aparicin de los discos r&gidos ya que presentaron + posi'ilidades fundamentales0 3ayor %ariedad de dispositi%os de almacenamiento masi%o. 8apacidad de memoria auxiliar On;(ine y la necesidad de organizarla y administrarla para una utilizacin eficiente. 1osi'ilidad de direccionamiento directo en la memoria auxiliar. 4paricin de una cola interna de tra'ajos 1ermiti que el jo' stream fuera internalizado de manera que las funciones de ordenamiento pasen a formar parte del SO )en serie simple se hac&a a mano*. !sta cola se hace accesi'le a un ordenador )Scheduler* que puede 'uscar el tra'ajo en espera que tenga mayor prioridad o el que m#s con%enga. 6acilidades 'rindadas por este nue%o hardware0 4paricin y<o mejoramiento de conceptos de interrupcin. -nstrucciones pri%ilegiadas. 3ecanismos de proteccin.
M4LT.P=O>=#M#/.OD *#S./#

8aracter&sticas0 1. 1lanificacin Off;(ine . 4dministracin r&gida de memoria con particiones fijas o redefinidas por el operador.)asignacin est#tica*. (a memoria es el recurso cr&tico. $. Cestin de conmutacin de la 81U con m&nimo esfuerzo por 'alancear el uso de los recursos, o sea que la administracin de la 81U es @simpleA +. 4signacin est#tica de archi%os y perif.ricos )%#lidos durante toda la %ida acti%a del programa*. ,. (as primeras %ersiones permit&an la ejecucin concurrente de un predeterminado n"mero fijo de procesos que compart&an el sistema en un r&gido medio de asignacin de recursos. (a memoria esta'a di%ida en particiones en el momento de la instalacin. (os compiladores y ensam'ladores traduc&an los proceso para ser ejecutados en una particin determinada )compilacin a'soluta*. 9efin&an m"ltiples m#quinas independientes )una en cada particin* que eran atendidas independientemente, compartiendo perif.ricos y el uso de la 81U, las colas de tra'ajo eran creadas para cada particin )si la compilacin es relati%a existe una "nica cola* y las funciones de ordenamiento se corr&an en forma independiente de cada particin. 1resenta'an incon%enientes por la preparticin de memoria, ya que tiende a producir una considera'le su'utilizacin de la memoria de'ido a que se generan programas m#s peque>os que el tama>o de las particiones, y como se
1/

preasignan los programas a determinadas particiones, puede darse el caso de que un programa est. esperando a la cola para el cual fue asignado mientras puede ha'er otras inacti%as por falta de cargaM adem#s aumentan los costos de programacin y disminuye la producti%idad de los programadores que tiene como efectos noci%os la distorsin en la estructura del programa ya que la distri'ucin de funciones, en lugar de hacerse acorde a la lgica, se hace en funcin del tama>o de las particiones. !l lenguaje de 8ontrol de Qo' )Q8(* pro%ee un soporte m&nimo del concepto de independencia de dispositi%os. 4 medida que el hardware se fue expandiendo, pudieron %erse los siguientes a%ances0 1. 1osi'ilidad de redefinir la particin desde la consola del operador. . !nsam'lado y compilacin de programas reasigna'les )permitiendo la ejecucin de un programa en cualquier particin de tama>o adecuado* $. 4signacin sim'lica de dispositi%os a tra%.s de sentencias de control. +. 3ecanismos de soportes a%anzados con facilidades para centralizar el Spooling. ,ecurso cr9tico =o l9mite>( !s el recurso m#s usado. 4quel que de'ido a su uso intensi%o est# saturado siendo que hay capacidad ociosa de los dem#s recursos.

$#/;IP,OA, $ &IBN 3 NC D 0
(a principal diferencia entre multiprogramacin '#sica y a%anzada, est# dada por el grado en que los SOs administran los recursos del sistema. 1. Son sistemas desarrollados como soporte de grandes m#quinas a ser usadas en #m'itos donde la carga de tra'ajo es impredeci'le y di%ersa. . Se desarrollan para atender tanto el desarrollo de programacin, como el procesamiento. $. 1ro%een grandes posi'ilidades de administracin de recursos +. Erindan importantes funciones que ampl&an las posi'ilidades de programacin. ,. 1ro%een adem#s un lenguaje de control considera'lemente expandido en cuanto a su poder expresi%o. /. 8ierto grado de administracin din#mica de la memoria )adquisicin y li'eracin din#mica de memoria*. G. 8ierta posi'ilidad de compartir cdigos, dise>ando #reas especiales para la residencia en memoria de determinadas rutinas de control. J. !la'oracin de los sistemas de 'i'liotecas con administracin, acceso y actualizacin de archi%os On;line. K. 9esarrolladas estructuras de en%&os de tra'ajos )jo';su'mission*. 1?. 9ependencia de la gestin del operador, este tiene capacidad para determinar el ni%el de multiprogramacin, cam'iar prioridades, cancelar tra'ajos y colocar tra'ajos en las colas de espera, aunque actualmente la tendencia es disminuir la inter%encin del operador. 11. 2.cnicas m#s ela'oradas de los mecanismos de administracin de la 81U. 1 . 1lanificacin On;(ine )la maneja el SO* 1$. !xtienden su memoria f&sica menor por medio de su memoria %irtual, conser%ando con una m&nima pertur'acin la estructura e interfaces de los sistemas anteriores.

;I%$PO &O$P ,;IDO(


(a intencin principal es distri'uir la capacidad de procesamiento entre un conjunto de usuarios asociados c<u a una terminal de !<S, 'rindando a c<u la imagen de tener una computadora @dedicadaA pN soportar sus demandas de ser%icios. 1. (os usuarios pueden interactuar con cada programa mientras se ejecuta. Ofrece comunicacin en l&nea entre el usuario y el sistema. . Sistema de archi%os en l&nea $. (os tra'ajos suelen estar formados por %arias acciones 're%es, con resultados impredeci'les. 2iempo de respuesta 're%e. +. Usa la planificacin de la 81U y la multiprogramacin para dar a cada usuario, que tiene su programa en memoria, una peque>a porcin de la computadora. ,. 8omo el sistema pasa r#pidamente de un usuario al siguiente cada uno tiene la sensacin de que cuenta con su propia computadora. /. 7equiere0 4dministracin de memoria, proteccin y administracin de 81U, administracin de disco. G. (os o'jeti%os principales son 'rindar un ser%icio efecti%o en cuanto a la disponi'ilidad y una respuesta eficiente a los requerimientos por lo que la efecti%a utilizacin del hardware puede %erse afectada.
1G

(os sistemas de tiempo compartido pueden ser0 Sistemas Orientados al Desarrollo de !rogramas0 9e'en incluir0 1. Un conjunto de comandos para la acti%acin, testeo y modificacin de programas. . Sistema de administracin de archi%os con mecanismos de proteccin, facilidades para compartirlos y mantenimiento de o'jetos )programas, datos, stream de control, etc.*. $. Uno o m#s lenguajes de programacin. +. Una interface para procesamiento que puede superponerse con el lenguaje de comandos. ,. !stos sistemas no necesariamente de'en estar asociados a un sistema de tiempo compartido. Sists Orientados al Procesamiento de transacciones0 1. 5o son sistemas de tiempo compartido en el estricto sentido de la pala'ra0 en un sistema de procesamiento de transacciones es com"n que se permita procesar la transaccin hasta su finalizacin, o por un per&odo de tiempo determinado. Si el procesamiento no se completa en ese per&odo, la transaccin se a'orta )en lugar de suspenderla como en tiempo compartido*. . Se asemejan a los de tiempo real por estar dise>ados para atender a e%entos y en la relati%a po'reza de sus algoritmos $. !l proceso de ejecucin es relati%amente sencillo y consiste en reci'ir y analizar un mensaje pro%eniente de una terminal, transferir dicho mensaje a un programa que lo procesa, algunas referencias a 'ases de datos en l&nea para preparar la informacin necesaria para responder el mensaje y direccionar la respuesta hacia la terminal. +. 8aracter&sticas que los diferencian de los sistemas de multiprogramacin en lotes0 1. 3anejo de 'ases de datos integradas con un sistema sencillo de acceso. . 6acilidad de telecomunicaciones como parte integrante del SO. $. !l sistema de 'ase no pro%ee lenguaje de control ni facilidades para el desarrollo de programas. +. !l principal constituyente del SO, es un programa de ejecucin cerrada )loop*. ,. Rm'ito de procesamiento simple. /. (a asignacin de memoria es realizada de acuerdo a demandas en 'loques de memoria de tama>o fijo.

SO $#/;IP,OPBSI;OS0
!l operador como lo hace funcionar esta'leciendo par#metros pre%iamente 8aracter&sticas0 1. 4dministracin din#mica de recursos . Soporte de memoria %irtual $. 1ermiten distintas formas de acceso.

P,O&%S $I%N;O DIS;,I<#IDO0


1. 8onstituido por %arios procesadores )nodos*, c<u con funciones particulares que com'inadas 'rindan la totalidad del sistema. . (os SOs y el hardware de c<nodo, no necesariamente de'en ser iguales )en cuanto a tama>o y<o fa'ricante*. $. Su procesamiento se puede aplicar tanto al procesamiento de transacciones como a los sistemas de procesamiento en lotes. +. Se desea independizar a las aplicaciones de la u'icacin f&sica de los datos y de los programas %stos !rocesos corren so're un Sistema Distri'uido montado en una ,ed de Procesamiento.

SIS;%$ S DIS;,I<#IDOS(
1. !s una coleccin de sist. inform#ticos autnomos capaces de comunicacin y cooperacin mediante hard y software. . 1roporciona una a'straccin de m#quina %irtual a los usuarios. $. 1ueden ser0 - Sistema fuertemente acoplado0 comparten la memoria y un reloj )ideal para procesamiento distri'uido* - Sistema d.'ilmente acoplado0 no comparten ni memoria ni reloj, se comunican a tra%.s de l&neas de comunicacin )a .stos se los conoce como sistemas distri'uidos* +. =entajas0 - 8ompartimiento de recursos - 4celeracin de los c#lculos - 8onfia'ilidad
1J

8omunicacin

S-S)EMAS MO/O,S,A1-OS2
1. /arecen de protecci$n a! SO. 2. Los SO no son ni -u!tiusuario ni -u!titarea. 3. O%jetivos9 /o-odidad y rapide8 de respuesta.
Tipos de acceso9

En genera!5 pode-os de inir9 En %atc:9 Lenguaje de contro! G Lenguaje de contro! En On1!ine9 Lenguaje de contro! G Lenguaje de co-andos E0isten distintos tipos de acceso9 $% Acceso organi3ado por el operador. ?or-a -7s antigua de acceso. Se uti!i8an en condiciones especia!es 2creaci$n de un SO3. Ordenador :u-ano con periodos ijo de uso. Sin SO. &% Acceso local en (odo batc4 . Los tra%ajos se ejecutan auto-7tica y secuencia!-ente 2puede :a%er resecuencia-iento3. La de-anda de servicios se rea!i8a enviando e! contro! strea- 2se e!i-in$ !a inter ase :u-ana3. SO de Serie Si-p!e. 5% Acceso re(oto en (odo batc4. #ct<a por de-andas desde ter-ina!es uera de! centro de c$-putos uti!i8ando co!as de espera. SO de Mu!tiprogra-aci$n *7sica. 6% Acceso interactivo en (odo batc4 . E! usuario rea!i8a requeri-ientos din7-ica-ente. Dispone de !enguaje de -anipu!aci$n de arc:ivos y %i%!iotecas5 ta-%i6n puede ingresar sentencias de !enguajes de progra-aci$n y reci%ir una va!idaci$n !(nea por !(nea. E! usuario env(a e! contro! strea- a! 7-%ito de procesa-iento y pierde e! contro! so%re e! tra%ajo5 cuando e! tra%ajo est7 !isto5 s$!o ve !os resu!tados. SO de Mu!tiprogra-aci$n #van8ada. 7% Acceso interactivo para progra(acin . Es posi%!e interca!ar actos de progra-aci$n y ejecuci$n por !o que !os progra-as no necesitan estar co-p!etos y !as entradas de datos y ejecuci$n se usionan. ?ueron si-i!ares a !os anteriores en sus or(genes cuando se requer(a que !a tota!idad de un progra-a estuviese gra%ado para su ejecuci$n. SO de Tie-po /o-partido. 8% Acceso a un procesa(iento distribuido. Per-ite a un usuario acceder a procesos o in or-aci$n de otras co-putadoras. SO de Procesa-iento Distri%uido.

1K

D. Procesos
(os procesos no slo son los procesos del usuario, sino que tam'i.n lo son las tareas internas del SO. %stados de !rocesos0 puede encontrarse en uno de tres estados0 Nuevo( !l proceso est# siendo creado. &orriendo( (as instrucciones se est#n ejecutando. %n es!era( !l proceso est# esperando a que ocurra alg"n suceso )ej.0 conclusin de una !<S*. /isto( !l proceso est# esperando que se le asigne a un procesador. ;erminado( !l proceso ha finalizado su ejecucin. Sus!endido;esperando0 Un proceso esperando a que ocurra alg"n e%ento es swappeado a memoria secundaria. Sus!endido-listo( Un proceso que fue swappeado a memoria secundaria y est# listo para ser asignado a un procesador.

Im!ortante( !n un momento determinado slo un proceso puede encontrarse en e7ecucin, aunque %arios pueden estar listos en es!era. <lo0ue de control del !roceso )18E o 28E*0 8ada proceso se representa por medio de su propio 18E. Sste contiene la siguiente informacin0 1. !stado del proceso . 8ontador del programa $. 7egistros de la 81U0 -ncluye acumuladores, registros &ndice, apuntadores de pila, m#s cualquier informacin en cdigos en condicin. !sta informacin y el contador de proceso se guardan cuando la ejecucin es interrumpida para permitir que despu.s el proceso contin"e correctamente. +. -nformacin de planificacin de la 81U0 incluye la prioridad del proceso, apuntadores a las colas de planificacin. ,. -nformacin de administracin de memoria0 incluye registros l&mites ta'las de p#ginas, 12E7, 12(7, 812, etc. /. -nformacin conta'le0 incluye la cantidad de tiempo real y de la 81U utilizado, l&mites de tiempo, n"meros de proceso. G. -nformacin del estado de la !<S0 incluye solicitudes de !<S pendientes, dispositi%os de !<S asignados, lista de archi%os a'iertos, etc. Procesos concurrentes0 (os procesos pueden ejecutarse concurrentementeM es decir, puede ha'er m"ltiples tareas en la 81U con %arios procesos. !xisten %arias razones para permitir la ejecucin concurrente0 1. 8ompartir recursos f&sicos
?

. 8ompartir recursos lgicos )un archi%o compartido, un segmento* $. 4celerar los c#lculos )se di%ide una tarea en su'tareas, se puede lograr si la computadora posee %arias 81U canales*. +. 3odularidad0 podemos construir el sistema en forma modular, di%idiendo las funciones en procesos separados ,. 8omodidad0 un usuario puede efectuar %arias tareas a la %ez &reacin de !rocesos0 un proceso )padre* puede crear %arios procesos nue%os )hijos* a tra%.s de una llamada al sistema. Un su'proceso puede o'tener sus recursos directamente del SO o estar restringido a un su'conjunto de los recursos del proceso padre, el cual di%ide sus recursos entre sus hijos, o los hace compartir )de esta forma se e%ita que se sature el sistema*. 8uando un proceso crea otro nue%o, hay alternati%as de implantarlo en t.rminos de formas de ejecucin0 1. !l padre contin"a su ejecucin concurrentemente con sus hijos. . !l padre espera a que todos sus hijos hayan terminado. ;erminacin de !rocesos0 Un proceso termina cuando concluye la ejecucin de su "ltimo enunciado y solicita al SO que elimine el proceso. Un proceso puede pro%ocar la terminacin de otro a tra%.s de una llamada al sistema que slo pueden ser in%ocadas por el padre del proceso que terminar#. Un padre puede terminar la ejecucin de alguno de sus hijos por %arias razones0 1. !l hijo ha excedido el uso de alguno de los recursos que se le han asignado. . Fa no se requiere la tarea asignada al hijo. ;erminacin en cascada( cuando un proceso termina tam'i.n de'en terminar sus hijos. ,elacin entre !rocesos0 (os procesos que se ejecutan en el SO pueden ser0 -ndependientes0 cuando no pueden afectar o ser afectados por los otros procesos. 2iene las siguientes caracter&sticas0 1. Su estado no es compartido por otro proceso. . Su ejecucin es deterministaM o sea, el resultado de la ejecucin depende en exclusi%a del estado de entrada. $. Su ejecucin es reproduci'le )a igual entrada , igual resultado*. +. Su ejecucin puede detenerse y reanudarse sin ocasionar efectos ad%ersos. 8ooperati%os0 Un proceso es cooperati%o si puede afectar o ser afectado por los dem#s procesos. 2iene las siguientes caracter&sticas0 1. Su estado es compartido por otros procesos. . 5o puede predecirse el resultado de su ejecucin, ya que depende de una secuencia de ejecucin relati%a. $. !l resultado de su ejecucin es no determinista, puesto que no siempre ser# el mismo para una misma entrada. Hilos0 !s una unidad '#sica de utilizacin de la 81U y tiene poco estado no compartido. !l entorno en el cual se ejecuta un hilo se llama tarea. Un proceso tradicional )pesado* equi%ale a una tarea con un hilo. !l costo de conmutacin de la 81U entre hilos del mismo grupo y el de creacin de hilos se reducen en comparacin con el cam'io de contexto entre procesos pesados. 1ueden ser0 sincrnicos0 un hilo del mismo grupo slo puede ejecutarse si el hilo en ejecucin li'era el control. as&ncronos0 hay que emplear un mecanismo de 'loqueo expl&cito, como en los sistemas donde %arios procesos comparten datos. &olas de !lanificacin0 (as colas son generalmente listas enlazadas. !l enca'ezado y la cola contienen apuntadores al primer y "ltimo 18E de la lista. 4simismo cada 18E tendr# un apuntador al prximo de la lista. !n el caso de un dispositi%o dedicado )como una unidad de cinta*, la cola del dispositi%o nunca tendr# m#s de un proceso
1

. Planificadores0 Un proceso transita entre las distintas colas de planificacin y el SO de'e seleccionar procesos de ellas. !sta acti%idad es realizada por el planificador correspondiente. Planificador a /argo Pla8o =O N o Sc+eduler>0 Selecciona un proceso desde la cola de tra'ajos en espera )82!* para pasarlos a la cola de procesos acti%os )814* o iniciados)81-*, seg"n sea un sist de o $ ni%eles respecti%amente, desde donde competir#n por la 81U. O sea que selecciona un tra'ajo de la 82! T donde lo que est# gra'ado es un 'loque de control del tra'ajo )no 18E* que tiene '#sicamente la memoria que necesitar# y la prioridad del tra'ajo. (uego el 4cti%ador le asigna los recursos que requerir# en forma est#tica )memoria %irtual en multiprogramacin a%anzada* y crea el 18E. (uego el (oader )cargador* lo carga en memoria )en la 81- 814 guarda el 18E ya que al cargarlo en memoria genera el proceso y crea el 18E*. (os criterios de seleccin est#n definidos desde el punto de %ista de ser%icios al usuario )prioridad relati%a, clases de tra'ajos, tiempo l&mite de iniciacin y<o de finalizacin, etc.* y desde el punto de %ista de utilizacin de recursos )recurso cr&tico, requerimiento de 81U, necesidad de memoria, consumo de !<S, tama>o del 17C, etc.*. !s importante que seleccione una 'uena mezcla de tra'ajos limitados por !<S y limitados por la 81U. (a tasa promedio de creacin de procesos de'e ser igual a la tasa promedio de salida para procesos que dejan el sistema. (a planificacin a larga plazo es un e%ento "nico en la %ida de un 17C, por eso puede emplear mas tiempo para decidir qu. tra'ajo se de'e seleccionar para su ejecucin. Planificador a &orto Pla8o =O<N o Dis!atc+er>0 Selecciona, desde la 814, uno de los procesos listos para ejecucin y le asigna la 81U. !s in%ocado cada %ez que la 81U queda inacti%a )cuando otro proceso est# esperando, por ejemplo una !<S o espera la terminacin de uno de los procesos hijo* para que seleccione un proceso. !l OE5 de'e ser muy r#pido de'ido al 're%e lapso entre ejecuciones. (a planificacin a corto plazo es un e%ento que ocurre frecuentemente en la %ida de un proceso. O sea que el OE5 conmuta la 81U entre los distintos procesos que conforman la mezcla de multiprogramacin. Planificador a $ediano Pla8o =ONI>0 -ntercam'ia los procesos )swapping*, sac#ndolos e introduci.ndolos m#s tarde teniendo en cuente que el 812 del proceso pueda acomodarse sin pro'lemas en memoria. !s in%ocado cuando se requiere mejorar la mezcla o cuando se requiere m#s memoria. (os procesos iniciados esperan en la 81- hasta que el O5- les permita competir por la 81U, pas#ndolos a la 814. !l O5- elegir# un proceso de la 81- para pasarlo a la 814 en 'ase a la informacin que reci'e0 1. la informacin de la utilizacin del sistema0 ratio de uso de 81U, ratio de uso de canales, llenado de memoria, ratio de paginacin, etc.. . informacin so're el grado de progreso o de a%ance de los programas. 8uando un proceso acti%o es intercam'iado, el proceso en s& en sacado de memoria pero el 18E de .ste %a a la 81-. !n multiprogramacin '#sica no se usa el O5-. !n multiprogramacin a%anzada es el O5- quien regula la mezcla de procesos que compiten por la 81U. 1. 1ermite utilizar la heur&stica . (i'era de tra'ajo al OE5 !l O5- puede operar en periodos fijos de tiempo o en respuesta a un e%ento )so'recarga de un recurso*0

1. . $. +.

Si el n"mero de p#ginas disponi'les cae por de'ajo de cierto ni%el. Suspende proceso. 8uando defina la mezcla tendr# en cuenta que los 812 no so'recarguen la memoria Ealancea din#micamente la mezcla intercam'iando procesos. 1ara un proceso con tiempo limite de finalizacin calcula al inicio el monto total de recursos en unidades de ser%icios )tiene en cuenta todos los recursos* y le modifica la prioridad din#micamente seg"n su grado de a%ance

interca-%io de entrada

%structura de !lanificacin0 (a planificacin de la 81U puede efectuarse en 1 de las + circunstancias siguientes0 ?in co!a de procesos !istos /P4 1. 8uando un proceso cam'ia del estado de ejecucin a estado de espera.)solicitud de !<S o de terminacin de hijo* . 8uando un proceso cam'ia del estado de ejecucin alE/S estado listo )cuando ocurre una interrupcin*. co!as de espera de !<S $. 8uando un proceso cam'ia del estado de espera al estado listo )fin de !<S*. +. 8uando termina un proceso. 1ara los casos 1 y + la "nica posi'ilidad es seleccionar un nue%o proceso para su ejecucin )si existe en la 814*. Sin em'argo, esto no se aplica a los casos y $. !n las situaciones 1 y +, decimos que el esquema de planificacin es no apropiati%o )una %ez que la 81U se ha asignado a un proceso, .ste la conser%a hasta que la li'era ya sea por terminacin o solicitud de !<S*M de lo contrario decimos que es apropiati%o. &am'io de conteEto0 !s la tarea necesaria para cam'iar la 81U a otro proceso, que implica guardar el estado del proceso anterior y cargar el estado guardado para el nue%o proceso. Dis!atc+er0 3dulo que realmente entrega el control de la 81U al proceso seleccionado por el OE5. !sto implica0 8am'iar de contexto 8am'iar a modo usuario Saltar a la posicin adecuada del programa del usuario para reiniciar el proceso.

procesos interca-%iados parcia!-ente ejecutados

interca-%io de sa!ida

D. Hilos
Un thread o hilo, es una unidad '#sica de utilizacin del 81U, el cual cuenta con un -9, un 18, un set de registros y una pila, el mismo comparte con otros hilos pertenecientes al mismo proceso las distintas secciones de este proceso, adem#s de compartir recursos del SO como a'rir archi%os y se>ales. 4 diferencia de crear procesos separados, el tener %arios hilos es m#s eficiente, ya que la creacin de procesos requiere m#s tiempo y requiere m#s recursos. (os hilos tam'i.n tienen un papel importante en los sistemas con 718, al ser los ser%idores 718 multi;hilos, estos admiten %arios pedidos concurrentes. 4dem#s el multi;hilos es importante en los Hernells en donde cada hilo realiza una tarea espec&fica. <eneficios( U 7esponsi%eness0 Una aplicacin multi;hilos permite a un programa continuar su ejecucin incluso si una parte esta 'loqueada, ej, un 'rowser multi;hilos permitir# interactuar con el usuario mientras un hilo carga una imagen. U 7ecursos compartidos0 los threads comparten la memoria y los recursos del proceso al cual pertenecen, los cual permite a la aplicacin tener %arios hilos acti%os en el mismo espacio de direcciones. U !conom&a0 (a asignacin de recursos y memoria cuando se crea un proceso es costosa, dado que los threads comparten esto, resulta m#s econmico un thread que un proceso. U Utilizacin de arquitecturas multi;procesador0 (os 'eneficios del multi;hilos se %en potenciados en arquitecturas multi;procesador, donde los threads pueden correr en diferentes procesadores. Un proceso de un solo thread corre en un solo 81U sin importar cuantos haya disponi'les. 3"ltiples hilos en m"ltiples 81Us incrementa la concurrencia. $odelos de $ulti-t+read( U 3uchos a uno0 !n este modelo se mapean %arios threads del ni%el de usuario a un thread del Hernell, el manejo de thread se realiza en espacio de usuario, pero el proceso entero se 'loqueara si un thread realiza una llamada al sistema. 9ado que solamente un thread puede acceder al Hernell, los m"ltiples hilos no pueden corren en paralelo en m"ltiples procesadores. U Uno a uno0 8ada thread, a ni%el de usuario se mapea a un thread del Hernell, lo cual pro%ee mas concurrencia, ya que los mismos no se 'loquean cuando un hilo realiza una llamada al sistema. !n este modelo %arios hilos pueden correr en paralelo en m"ltiples procesadores. (a contra de este modelo es que crear un hilo de usuario requiere crear un hilo de Hernell. U 3uchos a muchos0 !n este modelo se mapean %arios threads a ni%el de usuario a un numero menor o igual de thread del Hernell. Si 'ien pro%ee menor concurrencia, el programador ya no de'e tener cuidado en no crear excesi%a cantidad de threads. ;+read /i'rar6( !sta li'rer&a pro%ee al programador una 41- para crear y manejar hilos. !xisten maneras de implementar esta li'rer&a, la primera enteramente en espacio de usuario. (a segunda a ni%el del Hernell, en esta "ltima por lo general in%ocar una funcin de la 41- se traduce en una llamada del sistema. &uestiones o issue( U (a llamada del )forH y exec*0 Ceneralmente la funcin forH tiene %ersiones, la primera duplica todos los hilos, la segunda duplica solo el hilo que la in%oco. (a llamada exec reemplaza el proceso entero, incluyendo todos los hilos. U 8ancelacin0 8ancelar un thread no es mas ni menos que terminar su ejecucin antes de que sea completada. !ste caso se da por ej cuando %arios hilos 'uscan un dato en una 'ase de datos y uno lo encuentra, los restantes de'er&an cancelarse. 8ancelar un thread puede ocurrir en escenarios diferentes, el primero cancelacin asincrnica, donde un thread se encarga de terminar inmediatamente a otro thread. (a segunda cancelacin diferida, el thread a cancelar chequea peridicamente cuando de'er&a terminar, d#ndose la oportunidad por si
+

mismo. (a des%entaja de la primera es que cuando terminan un thread inmediatamente no se actualizan los datos que esta'a compartiendo con otros hilos. U 9eposito de hilos0 en el ejemplo del ser%idor we' m"ltiples hilos, no existe un limite para la creacin de hilos, si se generan una excesi%a cantidad de llamadas a ese ser%idor la creacin de hilos puede so'recargar el 81U y la memoria, en solucin a esto surgen los depsitos de hilos, la idea es crear una cantidad limitada de hilos al inicio del proceso, cuando se realiza un nue%o pedido del ser%idor se usa un hilo del deposito, si es que hay disponi'le, cuando se completa la tarea, el hilo %uel%e al deposito. =entajas0 atender un pedido con un hilo existente es mas r#pido que esperar a que se cree, un deposito limita el numero de hilos que existen en un momento dado U 4cti%acin de planificador0 Una final cuestin es acerca de la comunicacin entre el Hernell y la li'rer&a de hilos, requerida en el modelo muchos a muchos. 2al coordinacin permite ajustar el n"mero de Hernell threads de manera din#mica para asegurar la mejor performance. 1ara lograrlo, algunos sistemas u'ican una estructura de datos intermedia entre los hilos de usuario y del Hernell. !sta es conocida como lightweight process )(B1*. 1ara la li'rer&a de hilos del usuario, el (B1 aparece como un procesador %irtual so're el cual la aplicacin puede planificar hilos para correr. 8ada (B1 es adjuntado a un hilo del Hernell, y este hilo es el que el SO planifica para correr so're los procesadores f&sicos.

F. Planificador
lgoritmos de !lanificacin0 8riterios para comparar los distintos algoritmos0 #tili8acin de la &P# =&P# utili8acin>. Iueremos que la 81U se mantenga tan ocupada como sea posi'le Productividad =;+roug+!ut>. !s el n"mero de procesos que se completan por unidad de tiempo. ;iem!o de retorno =;urn around time>. !s el inter%alo entre el momento de demandar los procesos hasta el momento en qN termina, es decir, la suma de los per&odos transcurridos esperando entrar en la memoria, esperando en la 814, ejecut#ndose en la 81U y efectuando !<S. ;iem!o de es!era =Gaiting time>. !s la cantidad de tiempo que el proceso espera en la cola de procesos listos o acti%os. ;iem!o de res!uesta =,es!onse time>. !s el tiempo transcurrido desde una solicitud hasta qN se produce la 1er respuesta.

Planificacin HServicio !or orden de llegadaI =.&.S, first;come, first ser%ed>.


8uando la 81U est# li're se asigna el proceso colocado al inicio de la 814 y entonces .ste se elimina de esa cola. !l tiempo promedio de espera es 'astante largo. 1ro%oca que la 81U y los dispositi%os se apro%echen menos que si se permitiera que los procesos m#s cortos pasaran antes. Se suele producir el e ecto convoy ya que todos los dem#s procesos esperan a que un proceso de gran tama>o li'ere la 81U, no con%iene para sistemas de tiempo compartido ya que cada usuario de'e reci'ir una porcin de la 81U a inter%alos regulares. !s no apropiati%o.

Planificacin HPrimero el tra'a7o m2s 'reveI=S@.J shortest jo' first>.


Se le asigna la 81U al proceso que tiene la r#faga siguiente de 81U menor. Si dos procesos tienen la misma longitud para la siguiente r#faga, se usa la planificacin 686S. !s ptimo ya que ofrece el m&nimo tiempo promedio de espera. !l pro'lema real es conocer la longitud de la siguiente solicitud de la 81U. 5o puede implantarse al ni%el del OE5 pero se puede aproximar. 1uede ser apropiati%o, el cual se llamar# @primero el que tenga menor tiempo restanteA )shortest;remaining;time;first* o no apropiati%o.

Planificacin !or !rioridades.


Se asocia una prioridad a cada proceso y la 81U se asigna al de mayor prioridad. (os procesos con igual prioridad se planifican en orden 686S. (as prioridades pueden definirse interna o externamente. Un pro'lema es el 'loqueo indefinido o inanicin que se da cuando un proceso de 'aja prioridad espera indefinidamente a la 81U. Una solucin es el en%ejecimiento )aging*, t.cnica por la cual aumenta gradualmente la prioridad del proceso que espera mucho tiempo en el sistema. 1uede ser apropiati%a o no apropiati%a. 8uando llega un proceso a la 814, su prioridad se compara con la del proceso en ejecucin. Si la prioridad del proceso que llega es mayor que la del que se est# ejecutando y si el algoritmo es apropiati%o, entonces, el nue%o proceso se apropiar# de la 81U, sino ser# alojado al inicio de la 814.

Planificacin circular =7ound 7o'in - ,,>.


!st# dise>ada para sistemas de tiempo compartido. (a 814 se trata como una cola circular, el OE5 la recorre asignando la 81U a cada proceso por un inter%alo de tiempo llamado quantu- de tiempo. (a 81U programa un ti-er para que interrumpa despu.s de un quantum de tiempo y despacha el proceso. !ntonces, puede pasar que el proceso tenga una r#faga de 81U menor que un quantum de tiempo, en ese caso li'erar# %oluntariamente la 81U y el planificador continuar# con el siguiente proceso de la 814, )!l 77 es apropiati%o*. Si la r#faga de 81U del proceso excede el quantum, el timer se acti%ar# y pro%ocar# una interrupcin para el SO, se ejecutar# un cam'io de contexto y el proceso ser# alojado al final de la 814. !l rendimiento del algoritmo de planificacin 77 depende en gran medida del quantum ;I; de tiempo. Un I menor incrementa el n"mero de cam'ios de contexto y por lo tanto el tiempo de retorno promedio aumenta )242*.Se prefiere que el ;I; sea grande con respecto al tiempo de cam'io de contexto para no desperdiciar tiempo de 81U. Si I es muy grande la planificacin 77 se degenera hasta con%ertirse en una pol&tica 686S. Una regla emp&rica es que el J?V de las r#fagas de 81U de'en ser menores que el quantum de tiempo.
/

Planificacin de colas de m:lti!les niveles.


9i%ide la 814 en su'colas. (os procesos se asignan en forma permanente a una cola, generalmente a partir de alguna propiedad del mismo como el tama>o de la memoria o el tipo de acceso. 8ada cola tiene su propio algoritmo de planificacin. 9e'e existir, adem#s, una planificacin entre las colas, que generalmente es apropiati%a de propiedad fija )o sea que cada cola tiene prioridad a'soluta so're las colas de menor prioridad*. Otra posi'ilidad es usar una porcin de tiempo para las colas. 8ada cola reci'ir&a cierta porcin del tiempo de la 81U, la cual se planificar&a entre los procesos de su cola.

Planificacin de colas de m:lti!les niveles con realimentacin. (os procesos pueden mo%erse de
una cola a la otra. Separa los procesos con caracteristicas en cuanto a r#fagas de la 81U. Si un proceso utiliza demasiado tiempo la 81U, se pasar# a una cola de menor prioridad. !ste esquema deja a los procesos limitados por !<S y a los procesos interacti%os en las colas de mayor prioridad. -gualmente si un proceso espera demasiado puedo utilizar el 4ging
#PL./#/.HD DE L#S /OL#S /./L./#S =E#L.MEDT#D#S Se define2

5P -teraciones0 5umero m#ximo de %eces que un programa puede reci'ir la 81U IP Iuantum0 1eriodo m#ximo de tiempo continuo que un programa pro%eniente de esa su'cola puede usar la 81U 7(P 7egla de residencia0 9etermina la permanencia de un programa en una determinada su'cola, o su pasaje a otra. 8lasifica =(P 7egla de =isita0 8ontrola el ser%icio de la 81U a cada una de las su'colas, regulando la importancia )1* que se le dar# a cada una. 1enaliza. (a mas se%era W(a primer su'cola reci'ir# la 81U siempre que tenga un programa en condiciones de ser%irse de la mismaW. Otra WIue se sir%a siempre a los programas 'acHground siempre que no se solicite un foregroundW Se asume que un programa que ha consumido muchos ser%icios del sistema en el pasado, tiene aun muchos ser%icios que consumir. Se usa la historia para predecir el futuro )heur&stica*
#PL./#/.HD # T.EMPO /OMP#=T.DO

Se trata de 'eneficiar a los procesos cortos y con grandes limitaciones de !<S. Una estructura de de su'colas permite, en este tipo de sistemas, distinguir los programas largos de los cortos para pri%ilegiar o 'eneficiar a estos "ltimos de los dem#s, y como consecuencia disminuir para los programas largos el numero efecti%o de cargas y descargas de memoria. Se podr&a di%idir en cortos, largos y muy largos, seg"n el n"mero de ticHs de 81U que hayan reci'ido. (a regla de residencia esta dada por las 5. 4s& quedaran en la primer cola los programas cortos y e%entualmente alg"n largo en transito.
#PL./#/.HD # M4LT.P=O>=#M#/.OD *#T/@

Se trata de maximizar el uso de los componentes de !<S. 1or lo que se define como pol&tica de OE5 la regla de residencia enunciada como Wel mas corto primeroW, que consiste en clasificar los programas seg"n su consumo de !<S y otorgarle la 81U al programa que correr# el menor tiempo antes de solicitar una operacin de !<S. 9e esta manera se le da prioridad a los programas cuyo recurso cr&tico son los canales, maximizando el ratio de dispatching, lo que deri%a en una maximizacin del throughput. Lay que tener en cuenta como se asignan los canales0 Si asigno un canal a cada proceso no %a a ha'er pro'lemas con este algoritmo. Si reparto las !<S de un programa entre canales distintos se presentaran colas de espera y el algoritmo no funcionar de la mejor manera. (a regla de residencia esta dada por los I. Se podr&a tomar como par#metro para la regla de residencia el tiempo de espera de recursos de 81U Prioridades0 Un aumento de la prioridad de un 17C representa una menor utilizacin de los canales. 1or ejemplo0 un 17C de 'aja prioridad reci'e la 81U por un lapso de tiempo, otro 17C de mayor prioridad y de la misma su'cola, tendr# el uso de la 81U por un lapso mas prolongado para correr sin ser penalizado )pasado a la su'cola siguiente*. 1or no requerir una operacin de !<S en el quantum, es pasado a la su'cola siguiente, por lo tanto se disminuye la utilizacin de los canales. Planificacin de !rocesadores m:lti!les0 Si los procesadores son diferentes, cada procesador tiene su propia cola y su propio algoritmo de planificacin. Si hay %arios procesadores id.nticos, se utiliza una 814 com"n ya que si cada uno tendr&a su propia cola, un procesador podr&a estar inacti%o, con una cola %ac&a, mientras los
G

dem#s procesadores estu%ieran muy acti%osM todos los procesos entran a esta cola com"n y se planifican en cualquier procesador disponi'le. 1uede emplearse una de dos estrategias de planificacin0 8ada procesador se planifica a s& mismo )multiprocesamiento sim.trico*. !sta'leciendo un procesador como planificador para los dem#s, creando una estructura amo;escla%o )multiprocesamiento asim.trico*. finidad a los !rocesadores( 9ado que es muy alto el costo que se paga al in%alidar y repopular las caches, la mayor&a de los sistemas S31 intentan e%itar la migracin de procesos y mantenerlos corriendo siempre en un mismo procesador, esto es conocido como afinidad al procesador, es decir, un proceso tiene una afinidad por el procesador en el que se encuentra corriendo. 8uando un SO tiene una pol&tica para intentar mantener un proceso ejecut#ndose en el mismo procesador, pero no lo garantiza, decimos que es afinidad sua%e. 4lgunos SO tam'i.n pro%een llamadas al sistema para soportar la afinidad fuerte, donde se indica a un proceso no migrar a otro procesador. <alance de carga( !ste intenta mantener la carga distri'uida entre todos los procesadores de un sistema S31, es importante notar que el 'alance de carga es solamente necesario en sistemas donde cada procesador tiene su propia cola. Lay dos enfoques generales para el 'alance de carga0 push migration una tarea especifica %erifica la carga en cada procesador y si encuentra un in%alance, distri'uye la carga mo%iendo )pushing* desde el procesador so'recargado al menos cargado. 1ull migration, es cuando un procesador ocioso trae )pull* un proceso desde un procesador ocupado. 8a'e destacar que estos dos enfoques no son mutualmente excluyentes y generalmente se implementan am'os. $ulti-+ilo sim-trico( Se llama as& a la estrategia de pro%eer multi;hilos ejecut#ndose en procesadores lgicos en %ez de f&sicos. (a idea es crear m"ltiples procesadores lgicos en un procesador f&sico, en donde cada procesador lgico posee su propio estado arquitectnico, el cual incluye registros de propsito general y registros maquina, mas aun cada procesador lgico es responsa'le de su propio manejo de interrupciones. 4dem#s comparten recursos del procesador f&sico. 5tese que S32 se una caracter&stica pro%e&da por el hardware. (os sistemas operati%os no necesitan tener un dise>o diferente para correr o no en un sistema S32, aunque puede ganar cierta performance si el SO es pensado para correr en estos sistemas. Planificador de +ilos( (os SO que soportan hilos al ni%el del Hernell e hilos a ni%el de usuario, los primeros son planificados por el SO pero los segundos son manejados por una li'rer&a, donde el Hernell no participa. 1ara ejecutase en el 81U los hilos a ni%el de usuario de'en ser mapeados a un hilo a ni%el del Hernell. lcance de la contencin( !n los sistemas que implementan los modelos muchos a muchos y muchos a uno, la li'rer&a de hilos planifica los hilos a ni%el de usuario para ejecutarse en un (B1 disponi'le, este esquema es conocido como alcance de la contencin de procesos, dado que la competencia por el 81U toma lugar entre hilos pertenecientes al mismo proceso. 1ara decidir que hilo del Hernell planificar en el 81U el Hernell usa un @alcance de la contencin del sistemaA. !n la carrera por el 81U, con S8S, compiten todos los hilos del sistema. !n sistemas que usan el modelo uno a uno, para planificar los hilos se usa solamente S8S. Ceneralmente en 18S, se planifica seg"n una prioridad, elegida por el programador. 5tese que en 18S se puede apropiar un hilo en ejecucin para pasar a ejecutar un hilo con mayor prioridad, sin em'argo, no se puede asegurar fracciones de tiempo iguales entre hilos de igual prioridad. %valuacin de algoritmos0 1rimero se toma un criterio para seleccionar un algoritmo0 3aximizar la utilizacin de la 81U con la restriccin de que el tiempo m#ximo de respuesta sea un segundo. 3aximizar la producti%idad de manera que el tiempo de retorno sea lineal<< proporcional al tiempo de ejecucin. (uego se puede e%aluar de %arias formas0 %valuacin anal9tica. Utiliza el algoritmo y la carga de tra'ajo del sistema para producir una frmula o un n"mero que e%al"e el rendimiento del algoritmo para esa carga de tra'ajo. $odelado determinista. 2oma una carga de tra'ajo y define el rendimiento de cada algoritmo para esa carga de tra'ajo. !s sencillo y f#cil, ya que proporciona n"meros exactos, pero requiere entradas precisas.
J

$odelos de colas. 9escri'e al sistema como una red de ser%idores, cada uno de los cuales tiene una cola

de procesos en espera )la 81U y los dispositi%os tienen sus propias colas*. Si se conocen las tasas de llegada y de ser%icio, se puede calcular la utilizacin, la longitud promedio de la cola, el tiempo promedio de espera, etc. 4 esta #rea de estudio se la llama an7!isis de redes de co!as. 1uede ser 'astante "til, pero como son "nicamente una aproximacin de un sistema real puede cuestionarse la exactitud de los resultados. Simulaciones. -mplican programar un modelo del sistema de computacin. 1uede producir resultados muy preciso para sus entradas. (as simulaciones pueden ser muy costosas, y con frecuencia requieren horas de uso del computador. Im!lantacin. !s la "nica manera completamente exacta de e%aluar un algoritmo de planificacin. Se lo codifica y coloca en el SO para %er cmo funciona. Su mayor pro'lema es el costo.

F. Deadloc1s
Un sistema consiste en un n"mero finito de recursos distri'uidos entre %arios procesos que compiten entre ellos. Un proceso de'e solicitar un recurso antes de usarlo y li'erarlo despu.s de usarlo. !n una operacin normal un proceso utiliza los recursos de la siguiente manera0 1. 1edido0 Si el pedido no puede ser asignado inmediatamente el proceso de'er# esperar. . Uso0 !l proceso puede operar en el recurso. $. (i'eracin. Se puede solicitar y li'erar recursos 'ajo las llamadas al sistema request y release, o si no son manejadas por el SO, con las operaciones wait y signal en sem#foros. Un conjunto de procesos esta en deadlocH cuando cada uno de estos procesos esta esperando por un e%ento que solo puede ser causado por otro procesos en el conjunto. (os recursos pueden ser f&sicos o lgicos. (os programas multi;hilos son candidatos a caer en estado de deadlocH. 1ara caer en deadlocH de'en mantenerse + condiciones0 1; !xcusin mutua0 solo un proceso puede usar un recurso en un momento dado, si otro proceso solicita ese recurso, el mismo de'er# esperar a que el recurso sea li'erado. ; 3antener y esperar0 un proceso que tiene asignado un recurso y esta esperando por otro adicional que esta siendo mantenido por otro proceso. $; 5o apropiacin0 los recursos no pueden ser apropiados, es decir, el proceso de'e li'erarlo %oluntariamente. +; !spera circular0 Se da cuando un conjunto X1?, 11,D, 1nY esperan por un recurso de la siguiente manera0 1? espera un recurso mantenido por 11, 11 uno mantenido por 1 y as& sucesi%amente, hasta que 1n espera por un recurso que mantiene 1?. Arafo de asignacin de recursos( !s una manera precisa de descri'ir deadlocHs. 8onsiste de un conjunto de %.rtices particionado en conjuntos, el conjunto de los procesos acti%os en el sistema y el conjunto de todos los tipos de recursos en el sistema, y un conjunto de arcos dirigidos que indican, si el arco %a de un proceso a un recurso, que el proceso a pedido una instancia del recursoM y si el arco %a desde el recurso al proceso significa que el recurso a sido asignado al proceso. Se puede asegurar que si un grafo no tiene un ciclo, luego el sistema no esta en estado de deadlocH. Si hay un ciclo, luego el sistema puede o no estar en estado de deadlocH. $-todos !ara mane7ar deadloc1s( 1odemos tratar con deadlocHs '#sicamente de $ maneras0 1; 1odemos usar un protocolo para pre%enir deadlocHs, para asegurarnos de que nunca exista un deadlocH. ; 1odemos permitir que el sistema entre en deadlocH, detectarlo y recuperarlo. $; 1odemos ignorar el pro'lema y pretender que nunca ocurran deadlocHs. !sta ultima forma es la mas usada por los SO. 1ara asegurarse de que no existan deadlocHs, el sistema puede o 'ien usar un esquema de pre%encin o 'ien uno que e%ite los deadlocHs. !l esquema de pre%encin pro%ee una serie de m.todos para asegurarse de que una de las cuatro condiciones no se mantenga. !l esquema de e%itar deadlocHs, requiere que el SO mantenga informacin adicional de recursos que el proceso %a a utilizar mientras %i%a. 8on esta informacin, el SO puede decidir para cada pedido si el proceso de'er# esperar o no. Si un sistema no usa ninguno de estos dos sistemas, pueden ocurrir situaciones de deadlocHs, de esta manera el sistema de'er# pro%eer algoritmos que examinen su estado para a%eriguar si ocurri un deadlocH y recuperarlo. Si tampoco se cuenta con estos algoritmos entonces pueden ocurrir deadlocHs, y un deadlocH no detectado causara un deterioro en la performance de'ido a que algunos recursos est#n siendo mantenidos por un proceso que no puede continuar su ejecucin, a causa de esto, cada %ez mas procesos caer#n en deadlocH, donde e%entualmente el sistema dejara de funcionar. Prevencin de deadloc1s( 9e'emos asegurarnos de que una de las cuatro condiciones no se mantenga. !%itando exclusin mutua0 esta de'e mantenerse para recursos no comparti'les, por ejemplo una impresora. (os recursos comparti'les no necesitan exclusin mutua, por lo que no de'er&an caer en deadlocH, por ejemplo los archi%os de solo lectura. !%itando mantener y esperar0 para asegurarnos que esto no ocurra de'emos garantizar que cuando un proceso solicita recursos, el mismo no esta manteniendo otros recursos. Una forma de lograrlo es requerir
$?

que cada proceso solicite y ocupe todos los recursos necesarios antes de empezar su ejecucin. Otra forma es permitirle a un proceso solicitar recursos solo cuando no tiene ninguno, de esta forma el proceso solicita y usa, solo cuando este all# li'erado sus recursos antes de realizar el pedido. 4m'os protocolos tienen dos grandes des%entajas, la primera es el 'ajo uso de recursos, dado que los recursos pueden ser asignados pero no usados por un largo tiempo. Segundo, la inanicin es posi'le, un proceso que necesita %arios recursos populares puede esperar indefinidamente. !%itando la no apropiacin0 para asegurarnos de que esta condicin no se mantenga, podemos usar el siguiente protocolo0 si un proceso que esta manteniendo algunos recursos, solicita otros que no le pueden ser asignados inmediatamente, luego todos sus recursos son apropiados, estos mismos se agregan a la lista de los recursos por los cuales el proceso esta esperando. Otra manera es0 si un proceso solicita recursos que no le pueden ser asignados, entonces se %erifica si existe alg"n proceso que los este manteniendo y que a su %ez este esperando por otros, si se da esta situacin, los recursos le son apropiados al proceso que esta en estado de espera y se le asignan al proceso solicitante. !%itando la espera circular0 para e%itar la espera circular, un 'uen m.todo es imponer un orden total de los recursos y o'ligar a los procesos a solicitar recursos en orden creciente. Se le asigna a cada recurso un numero entero respetando un orden, luego para pre%enir deadlocHs, cada proceso puede solicitar recursos solo en un orden creciente, esto es, un procesos puede inicialmente solicitar cualquier recurso, digamos 7)i*. (uego de esto, el proceso podr# solicitar instancias del recurso 7)j* si y solo si 6)7)j** O 6)7)i**. %vitar deadloc1s( para e%itar deadlocHs los distintos algoritmos requieren informacin adicional so're los recursos que %an a ser solicitados. !stos algoritmos %ar&an principalmente en la cantidad de informacin que necesitan. Sus funcionamientos son '#sicamente similares, examinan el estado de asignacin de los recursos para asegurarse que no ocurra una espera circular, este estado de asignacin de los recursos es definido por el numero de recursos disponi'les y asignados, y las demandas m#ximas de los procesos. %stado seguro( un estado es seguro si el sistema puede asignar recursos a cada proceso en un dado orden, e%itando el deadlocH, mas formalmente un estado es seguro solo si existe una secuencia segura. Una secuencia de procesos es segura, para un estado de asignacin, si para cada proceso 1)i* sus recursos pueden satisfacerse con los recursos disponi'les actualmente mas los recursos mantenidos por todos los 1)j*, con j Z i. Si esta secuencia no existe, el sistema esta en un estado inseguro. Un estado seguro no es un estado de deadlocH, in%ersamente, un estado en deadlocH, es un estado inseguro. 1ero no todo estado inseguro es un estado de deadlocH. 9ado el concepto de estado seguro podemos definir algoritmos para e%itar deadlocHs. (a idea es asegurarse que el sistema se mantenga siempre en un estado seguro. (os recursos son asignados si y solo si el sistema permanece en un estado seguro luego de la asignacin. lgoritmos( Crafico de asignacin de recursos0 agrega un nue%o tipo de eje llamado eje de demanda, el cual indica que un dado proceso podr&a solicitar un recurso en el futuro. Se de'er# asegurar que antes que un proceso comience su ejecucin todos sus ejes de demanda aparecen en el grafo. Suponiendo que un proceso solicita un recurso, el pedido es asignado solo si al con%ertir todo los ejes de pedidos en ejes de asignacin no aparecen ciclos en el grafo, es decir, el sistema queda en un estado seguro. !ste algoritmo es aplica'le solamente a sistemas con una sola instancia de cada recurso. !l Eanquero0 cuando un nue%o proceso ingresa en el sistema de'e declarar el numero m#ximo de instancias de cada recurso que %a a necesitar, el mismo no de'er# exceder el numero total de recursos en el sistema. 8uando un proceso solicita un conjunto de recursos, el sistema %erifica que al asignarlos quede en un estado seguro, si es as& los asigna, de otra manera el proceso de'er# esperar. Se mantienen estructurar de datos, para guardar el estado de asignacin de recursos del sistema. (as mismas son0 - 9isponi'le, un %ector que almacena el numero de recursos disponi'les de cada tipo. - 3#ximo, una matriz que define el n"mero m#ximo de recursos demandados por cada proceso. - 4signacin, una matriz indicando el n"mero de recursos de cada tipo actualmente asignados a cada proceso. - 5ecesidad, una matriz que indica los recursos que aun no le han sido asignados a cada proceso. !l Eanquero T algoritmo seguro0 sir%e para sa'er cuando un sistema se encuentra en un estado seguro o no.
$1

1; Sea worH y 6inish dos %ectores de longitud m y n, inicializamos worH P disponi'le y finish)i* P false para todo i. ; Euscar un i tal que finish)i* PP false y necesidad)i* ZP worH, si no existe ir a +. $; worH P worH [ asignacin)i*, 6inish)i* P true, ir a . +; -f finish)i* PP true para todo i, el sistema esta en estado seguro. !l Eanquero T algoritmo de solicitud de recursos0 este algoritmo determina si una solicitud puede ser asignada de manera segura. Sea request)i* el %ector de solicitud del proceso 1)i*, si request)i*\j] PP H entonces el proceso 1)i* quiere H instancias del recurso 7)j*. 8uando se realiza una solicitud de recursos, se lle%an a ca'o las siguientes acciones0 1; Si request)i* ZP necesidad)i* ir a , sino informar error. ; Si request)i* ZP disponi'le ir a $, sino wait, dado que los recursos no est#n disponi'les. $; Se modifica el estado como sigue0 disponi'leP disponi'le T request)i*, asignacin)i*P asignacin)i* [ request)i*, necesidad)i*P necesidad)i* T request)i*. Si el estado resultante es un estado seguro, la transaccin se completa, sin em'argo, si el estado es no seguro entonces el proceso de'er# esperar y se recupera el estado anterior a realizar las modificaciones en $. Deteccin de deadloc1s( Si un sistema no utiliza algoritmos de pre%encin y para e%itar deadlocHs entonces este sistema de'er# pro%eer un algoritmo para detectar si ocurri un deadlocH y un algoritmo para recuperarse del mismo. 5tese que el esquema de detectar y recuperar un deadlocH conlle%a una so'recarga que no solo incluye los costos de mantener la informacin necesaria y ejecutar el algoritmo de deteccin, sino tam'i.n las potenciales perdidas heredadas de recuperar un deadlocH. #na sola instancia de cada ti!o de recurso( Si se da este caso podemos definir un algoritmo de deteccin modificando el grafo de asignacin de recursos, el mismo se llama wait;for graph y se o'tiene eliminando del grafo de asignacin de recursos los nodos pertenecientes a los recursos y colapsando sus arcos. (uego existe deadlocH si y solo si el grafo resultante contiene ciclos. 1ara detectar deadlocHs el sistema de'e mantener un grapo wait;for actualizado y peridicamente 'uscar ciclos en el grapo, los que requiere de operaciones de orden n siendo n el numero de %.rtices del grapo. 3arias instancias de cada recurso( !ste algoritmo emplea %arias estructuras de datos similares a las del algoritmo del 'anquero. - 4%ailea'le, un %ector que indica el n"mero de recursos disponi'les de cada tipo. - 4llocation, una matriz almacenando el n"mero de recursos actualmente asignado a cada proceso. - 7equest, una matriz almacenando las solicitudes de cada proceso. 1asos del algoritmo0 1; Sean worH y finish %ectores, inicializamos worHP a%ailea'le y finish)i*P false si allocation)i* ZO ? sino finish)i*P true. ; Euscar un &ndice i talque se den las siguientes condiciones0 a; 6inish)i* PP false. '; request)i* ZP worH. Si este i no existe ir a +. $; BorHP worH [ allocation)i*, finish)i*P true, ir a . +; -f finish)i* PP false para alg"n i, existe deadlocH, mas aun si finish)i* PP false luego 1)i* es el que est# causando el deadlocH. !ste algoritmo es de orden n ^ n . #so del algoritmo de deteccin( _cu#ndo de'emos in%ocar los algoritmos de deteccin` (a respuesta depende de dos factores0 1; Iue tan seguido ocurren deadlocHs. ; 8uantos procesos se %en afectados cuando ocurren deadlocHs. Si los deadlocHs ocurren frecuentemente los algoritmos de'en ser in%ocados frecuentemente. (os recursos asignados a un proceso en deadlocH estar#n ociosos hasta que este deadlocH pueda que'rarse, adem#s el numero de procesos in%olucrado en un deadlocH puede crecer. Siendo extremistas podemos in%ocar los algoritmos cada %ez que una solicitud de un recurso no puede ser asignada inmediatamente, en cuyo caso no solamente detectar&amos el conjunto de procesos que est#n en deadlocH sino que tam'i.n el proceso que causo el deadlocH. 9e mas esta decir que ejecutar el algoritmo cada %ez que se solicite un recurso generar&a una so'recarga, una alternati%a m#s econmica es in%ocar el algoritmo cada ciertos periodos de tiempo )cuarto de hora, utilizacin
$

del 81U menor del +?V, etc.*. (a des%entaja de esto es que nos encontrar&amos con %arios ciclos en el grafo y no podr&amos sa'er cu#les fueron los procesos causantes. ,ecu!eracin de un deadloc1( Una %ez que un deadlocH es detectado, existen soluciones0 la primera informar al operador acerca del deadlocH y permitirle tratar con el manualmente. (a segunda es permitirle al sistema recuperarse autom#ticamente. !xisten opciones para romper un deadlocH0 4'ortar un proceso0 para lograr esto podemos usar m.todos, en am'os el sistema recupera todos los recursos asignados a los procesos a'ortados. - 4'ortar todos los procesos en deadlocH0 este m.todo claramente terminara con el deadlocH pero es muy costoso, pueden existir procesos que hayan estado tra'ajando por un tiempo largo y sus resultados parciales sean descartados, por lo que de'er# arrancar de ? su ejecucin. - 4'ortar un proceso por %ez hasta romper el deadlocH0 este m.todo conlle%a gran so'recarga, ya que cada %ez que un proceso es a'ortado se de'e in%ocar nue%amente al algoritmo de deteccin. 4'ortar un proceso no es una tarea sencilla, por ejemplo si el proceso se encuentra escri'iendo un archi%o, su terminacin dejara el archi%o en un estado corrupto. Si usamos el segundo de estos m.todos de'emos elegir qu. proceso de'e ser terminado, la respuesta a esto es el proceso cuya terminacin sea m#s econmica. 4propiacin de recursos0 lo que se hace es apropiarse de algunos recursos de un proceso y d#rselos a otro proceso para romper el deadlocH. Se de'en tener en cuenta $ cosas0 1; Seleccionar o elegir una %&ctima0 que recursos y a cual proceso le de'en ser apropiados, al igual que en la terminacin de procesos de'emos elegir el de menor costo, teniendo en cuenta el n"mero de recursos que el proceso en deadlocH esta manteniendo y la cantidad de tiempo que consumi durante su ejecucin. ; =uelta atr#s )roll'acH*0 si nos apropiamos de recursos de un proceso, que de'emos hacer con este proceso. (a respuesta es regresarlo a un estado seguro, como es dif&cil determinar cual estado es seguro, la solucin m#s simple es a'ortar el proceso y luego reiniciarlo. $; -nanicin0 en un sistema donde la %&ctima se elige en 'ase a factores econmicos, puede ocurrir que siempre elijamos el mismo proceso como %&ctima. 9e'emos asegurarnos que un proceso pueda ser elegido %ictima solo una cantidad peque>a de %eces. (a solucin m#s com"n es incluir el n"mero de roll'acHs en el c#lculo del costo.

$$

&a!9tulo 3II( dministracin de $emoria


$emoria0 !s parte capital del funcionamiento del sistema. (os algoritmos de administracin de memoria tienen un requisito '#sico0 todo el proceso de'e encontrarse en memoria f&sica antes de que pueda ejecutarse. !l enlace de las instrucciones y los datos con las direcciones de memoria casi siempre puede efectuarse en cualquier etapa0 &om!ilacin )t. de preprocesamiento*0 si se conoce dnde residir# el proceso en memoria puede generarse cdigo a%so!uto )2iempo Simple*M si mas tarde cam'ia la posicin de inicio, ser# necesario %ol%er a compilar el cdigo. &arga )tiempo de acti%acin ; t. de preprocesamiento*0 cuando el compilador genera cdigo relocaliza'le )3ultiprogramacin E#sica*, si cam'ia la direccin de inicio, slo tenemos que cargar de nue%o el cdigo de usuario para incorporar el %alor modificado. %7ecucin )tiempo de procesamiento*0 cuando en la ejecucin el proceso puede mo%erse de un segmento a otro, entonces el enlace final se posterga hasta la ejecucin )3ultiprogramacin 4%anzada*. &arga Din2mica0 mediante .sta, una rutina no se carga hasta que se la llama. Optimiza la utilizacin del espacio de memoria ya que nunca se carga una rutina que no se usa. 5o requiere apoyo especial del SO, es responsa'ilidad de los usuarios dise>ar sus programas para apro%echar este esquema. %nlace Din2mico0 se posterga el enlace hasta la ejecucin. 3ediante este recurso no es necesario que los programas incluyan una copia de la li'rer&a de su lenguaje ya que slo incluye un fragmento S2UE que indica cmo localizar la 'i'lioteca residente en memoria. Su!er!osicin0 conser%a en memoria las instrucciones y los datos que se requieren en un momento determinado )si dos partes de .l no necesitan estar en memoria al mismo tiempo*. 9e esta manera un proceso puede ser mayor que la cantidad de memoria que se le asigna. 5o necesita apoyo del SO, lo "nico que nota el SO es que hay mas !<S que de costum're por los accesos a disco. Swa!!ing0 ocurren cuando un proceso pasa de la memoria al almacenamiento secundario y luego regresa para continuar su ejecucin, ocasionado cuando el sistema decide ejecutar un proceso de mayor prioridad, o 77 cada %ez que el proceso termina su quantum. 5ormalmente un proceso que sale de un intercam'io regresar# al mismo espacio de memoria que antes ocupa'a )si el enlace se efectu durante el ensam'le o la carga*M si el enlace se efectu durante la ejecucin, entonces es posi'le intercam'iar un proceso coloc#ndolo en un espacio de memoria distinto. 1ara una utilizacin eficiente de la 81U, el tiempo de intercam'ios de'e ser muy peque>o con relacin al tiempo de ejecucin. Si el 1roceso ha'&a solicitado una !<S, la cual esta accediendo a la memoria del usuario de manera as&ncrona, no se puede intercam'iar. signacin de memoria de una sola !articin 0 el usuario tiene control a'soluto de toda la memoria, lo que le da mayor flexi'ilidad. !l sistema pierde control so're interrupciones, llamadas al sistema, errores, capacidad para ofrecer multiprogramacin. !ste enfoque generalmente slo se utiliza en sistemas dedicados donde los usuarios requieren mayor flexi'ilidad y sencillez y programan sus propias rutinas de apoyo. signacin de dos !articiones0 el SO se carga en la parte 'aja )generalmente* de memoria y el resto es para el usuario. 9e'emos proteger el cdigo y los datos del SO frente a cam'ios )accidentales o deli'erados* pro%ocados por un proceso de usuario mediante un esquema de registro 'ase. Se puede generar cdigo a'soluto si se conoce el %alor del registro 'ase pero ante un cam'io ha'r&a que recompilar. Se posterga el enlace de direcciones hasta la carga )solo hay que %ol%er a cargar programa en caso de cam'io* el %alor de la 'ase de'e permanecer est7tico durante la ejecucin del programa. !xisten casos donde es desea'le cam'iar el tama>o del SO )y por consiguiente la posicin de la 'ase*, ya que existe cdigo que no es desea'le conser%arlo en memoria, sino slo cuando se necesita P cdigo te-pora!, como el de un manejador de dispositi%o. !ntonces, al usar este cdigo, el tama>o del SO %ar&a durante la ejecucin del programa )din#micamente*, y para permitirlo se pueden usar dos m.todos0 - cargar el proceso en memoria alta, descendiendo hacia el %alor del registro 'ase )en lugar de hacerlo desde la 'ase hacia la memoria alta* %entaja0 permite al SO y al proceso extenderse hacia la memoria no utilizada.
$+

postergar el enlace de direcciones hasta la ejecucin, lo que requiere apoyo del hardware )al registro 'ase se lo llama registro de re!oca!i8aci$n*. !l %alor del registro 'ase se su-a a cada direccin generada por el proceso de usuario en el momento de en%iarla a memoria. Un cam'io en la localidad de inicio slo requiere un cam'io en el registro 'ase y la transferencia de toda la memoria del usuario a las localidades correctas respecto al nue%o %alor 'ase, lo que permite la relocalizacin din#mica.

signacin de !articiones m:lti!les )asignacin contigua y tama>o de particiones %aria'les*0 se di%ide la memoria en particiones de tama>o fijo. 8ada una puede contener exactamente un proceso. 4s&, el ni%el de multiprogramacin est# limitado por el n"mero de particiones. !l SO conser%a una ta'la que indica que partes de memoria est#n en uso y cu#les no. 8uando llega un proceso, se 'usca un :ueco en memoria suficiente para .ste, si el hueco es demasiado grande entonces se di%ide en dos, una parte se le entrega al proceso y la otra %uel%e al conjunto de huecos, y si es adyacente a otro, se fusionan formando uno mayor. !stas funciones son lle%adas a ca'o por el O45. !ste esquema de particiones de tama>o %aria'le presenta el pro'lema de fragmentacin externa y el de fragmentacin interna. 6ragmentacin externa0 se presenta cuando el espacio de memoria li're es suficiente para atender una solicitud pero no es contiguo. 6ragmentacin interna0 se presenta cuando una parte de la memoria pertenece a una particin pero no se usa. F tam'i.n porque la memoria esta di%idida en marcos. 8omo %arios procesos pueden residir en memoria al mismo tiempo, .sta se de'e proteger, usando un registro 'ase y un registro l&mite )el registro 'ase define el %alor de la menor direccin de memoria f&sicaM el registro l&mite contiene el inter%alo de direcciones lgicas*. !ntonces, cada direccin generada por un proceso de'e ser menor que el registro l&mite )sino se produce trampa al SO por error de direccionamiento*, y luego se relocaliza din#micamente la direccin lgica sumando el %alor del registro 'ase y esta direccin relocalizada se en%&a a memoria. 4lgoritmos de asignacin din#mica de memoria0 1er 7uste )6irst fit*0 asignar el 1er hueco que tenga el tama>o suficiente, dejamos de 'uscar en el momento que encontramos uno. $e7or 7uste )Eest fit*0 asignar el hueco m#s peque>o que tenga el tama>o suficiente. 9e'emos recorrer toda la lista, sal%o que est. ordenada por tama>o. Lay que reordenarla luego de asignar Peor 7uste )Borst fit*0 asignar el hueco m#s grande. Lay que 'uscarlo por toda la lista, a menos que est. ordenada. Lay que reordenarla luego de asignar &om!actacin0 se utiliza para desfragmentar la memoria y o'tener el m#ximo lugar %ac&o. 8onsiste en desplazar el contenido de la memoria para colocar junta toda la memoria disponi'le. (a compactacin no puede realizarse si la relocalizacin es est#tica y se efect"a durante el ensam'lado o la carga. (a compactacin slo se puede realizar si la relocalizacin es din#mica y se efect"a en el momento de la ejecucin, adem#s la memoria asignada a un proceso de'e ser contigua y sin preparticin. Se puede com'inar el intercam'io con la compactacin para li'erar memoria y luego compactar, o'%iamente si la relocalizacin es est#tica cuando el proceso se reintegre a memoria de'er# %ol%er a su particin original. ,egistros <ase $:lti!les0 se di%ide en %arias partes la memoria que necesita un proceso. 8ada parte es menor al todo y, por lo tanto, m#s f#cil de acomodar en la memoria. 9e'en existir m"ltiples registros 'ase. (os registros 'ase traducen las direcciones lgicas a f&sicas. 6acilita la comparticin Paginacin0 permite que la memoria de un proceso no sea contigua )elimina la fragmentacin externa* y que a un proceso se le asigne memoria f&sica donde sea que est. disponi'le. (a memoria f&sica se di%ide en 'loques de tama>o fijo )definidos por el hardware* llamados marcos. (a memoria lgica tam'i.n se di%ide en 'loques del mismo tama>o llamados p#ginas )tam'i.n definido por el hardware*. 8ada direccin generada por la 81U se di%ide en0 n"mero de p#gina y desplazamiento de p#gina, esta funcin es realizada por el O45. !l n"mero de p#gina se usa como &ndice en una ta%!a de p7ginasM que contiene la direccin 'ase para cada p#gina de la memoria f&sica. (a direccin 'ase se @com'inaA con el desplazamiento de la p#gina para definir la direccin de memoria f&sica. O sea que el direccionamiento dentro del espacio f&sico lo hace el hardware de paginacin. 8ada proceso tiene su ta'la de p#ginas y est# siempre en memoria.
$,

5o presenta fragmentacin externa, cualquier marco li're se puede asignar a un proceso que lo necesiteM adem#s la paginacin es una forma de relocalizacin din#mica, o sea que c<direccin lgica est# enlazada a la direccin f&sica por medio del hardware de paginacin. Si los requisitos de memoria de un proceso no coinciden con los l&mites de las p#ginas, el "ltimo marco asignado puede estar parcialmente %ac&o, produciendo fragmentacin interna. O'ser%aciones0 Una p#gina slo existe cuando el programa est# cargado en memoria, o sea cuando el programa pasa a ser proceso. !n multiprogramacin '#sica, la ta'la de p#ginas contiene a todas las p#ginas. !n multiprogramacin a%anzada slo las que est#n en memoria principalM ya que hay memoria %irtual y .sta tiene su propia ta'la de p#ginas )u'icada en memoria principal*, la cual indica dnde se encuentran las p#ginas guardadas en el disco. ;a'la de !2ginas0 1uede implementarse de %arias maneras0 8omo un conjunto de registros dedicados. !s satisfactorio si la ta'la es peque>a. (a ta'la se conser%a en la memoria principal y un registro 'ase de ta'la de p#ginas )12E7, page1ta%!e %ase register* apunta a ella )contiene la direccin de inicio de la ta'la*, .ste se encuentra en el 18E del proceso. 1ara cam'iar entre ta'las de p#ginas slo hay que modificar este registro, lo que reduce en gran medida el tiempo de cam'io de contexto. !l acceso a memoria se %uel%e m#s lento por un factor de dos, o sea un acceso a la ta'la y otro para acceder a la p#gina en s&. Utilizar una memoria especial, de tama>o peque>o, llamada registros asociati%os )ta'la del hardware* o 'uffers de traduccin con '"squeda anticipada )2(E, trans!ation !ooF1aside %u ers*. Son los registros m#s r#pidos que hay en el sistema. (a '"squeda es muy r#pida )ya que se encuentran en el microprocesador, lo que los hace casi instant#neos*, pero el hardware es muy costoso. 8ontienen slo algunas de las entradas de la ta'la de p#ginas. 8uando la 81U genera una direccin lgica, su n"mero de p#gina se presenta a un conjunto de registros asociati%os que contienen n"mero de p#gina y sus n"meros de marco correspondientes. Si el n"mero de p#gina se encuentra en los registros asociati%os, su n"mero de marco est# inmediatamente disponi'le y se utiliza para acceder a la memoria. Si el n"mero de p#gina no se encuentra en los registros asociati%os, hay que efectuar una referencia de memoria a la ta'la de p#ginas. 8uando se o'tiene el n"mero de marco, podemos usarlo para tener el acceso deseado a la memoria. 4dem#s, a>adimos los n"meros de p#gina y marco a los registros asociati%os, para que puedan localizarse con rapidez en la siguiente referencia. O sea que estos registros conforman una ta'la, son un su'conjunto de la ta'la de p#ginas %structura de la ta'la de !2ginas( 1aginado jer#rquico0 las computadoras modernas soportan un gran espacio de direcciones lgicas. !n estos am'ientes una ta'la de p#ginas se %uel%e excesi%amente grande, en donde no podremos asignar la ta'la de p#ginas contiguamente en memoria principal. Una solucin simple es partir la ta'la en peque>as piezas. 1odemos realizar esto en %arias formas, una usar un algoritmo de paginado de dos ni%eles, en la cual la ta'la de paginas esta tam'i.n paginada. (a direccin lgica se di%ide en $ partes, p1, p y d, siendo p1 el &ndice de la ta'la de paginas exterior, p el desplazamiento en la pagina que contiene la ta'la de paginas referenciada por p1, y d el desplazamiento dentro de la pagina. 1ara arquitecturas de /+ este esquema es considerado inapropiado, ya que requerir&a %arios ni%eles de paginado para traducir cada direccin lgica. 2a'la de p#ginas Lash0 para manejar espacios de direcciones mayores de $ 'its se usa este esquema. 8ada entrada en la ta'la contiene una lista enlazada de elementos. (a direccin lgica se di%ide en dos campos, p y d. Se aplica una funcin hash a p y se o'tiene la u'icacin en la ta'la hash, la cual contiene una lista enlazada de elementos, cada uno de estos elementos contiene $ campos, el numero de p#gina %irtual, el %alor del marco de pagina mapeado y el puntero al siguiente elemento de la lista, por lo que de'emos 'uscar en esta lista el elemento cuyo n"mero de p#gina %irtual sea igual a p, de este elemento o'tenemos el segundo campo, r )%alor del marco de pagina mapeado*, y construimos la direccin f&sica concatenando r y d. 2a'la de p#ginas in%ertida0 usualmente cada proceso tiene asociado una ta'la de p#ginas. (a ta'la de p#ginas tiene una entrada por cada p#gina que el proceso est# usando. !sta representacin es la m#s natural pero tiene la gran des%entaja de que cada ta'la puede contener millones de entrada y consumir grandes cantidades de memoria f&sica. !n solucin a este pro'lema surge la ta'la de p#ginas in%ertida, la cual contiene una
$/

entrada por cada p#gina real en memoria. !sta entrada contiene la direccin %irtual de la p#gina almacenada en memoria real y tam'i.n informacin del proceso due>o de la p#gina, por lo que existe una sola ta'la de p#ginas en el sistema, la cual posee solo una entrada por cada p#gina en memoria f&sica. (a direccin lgica est# formada por pid, p y d, de'emos 'uscar la posicin de pid y p en la ta'la de p#ginas, luego la direccin f&sica queda formada por i concatenado con d, siendo i la posicin anteriormente 'uscada. Si 'ien este esquema decremento la cantidad de memoria requerida para almacenar la ta'la de p#ginas, incrementa la cantidad de tiempo necesitado para 'uscar una p#gina referenciada. 9ado que las seguidillas de direcciones ocurren en direcciones lgicas y no f&sicas, la '"squeda de'e realizarse en toda la ta'la, se puede reducir este pro'lema usando una ta'la hash descrita anteriormente para limitar la '"squeda a una o unas pocas entradas en la ta'la de p#ginas. 9ado que cada acceso a la ta'la hash a>ade una referencia a memoria al procedimiento sa'emos que una referencia a memoria %irtual requiere al menos dos lecturas en memoria real, una para la ta'la hash y otra para la ta'la de p#ginas. 1odemos tam'i.n a>adir performance haciendo uso de un 2(E, que es consultado antes que la ta'la hash. (os sistemas que usan este esquema tienen dificultades para implementar memoria compartida. P2ginas com!artidas0 es una de las %entajas de la paginacin. atil en los sistemas de tiempo compartido. Si el cdigo es reentrante )cdigo que no se modifica a s& mismo, por lo tanto nunca cam'ia durante la ejecucin* puede compartirse. Slo es necesario mantener una copia en memoria f&sica. 8ada ta'la de p#ginas hace referencia a la misma copia f&sica. Proteccin0 Se logra por medio de 'its de proteccin asociados a cada marco. 9efinen si una p#gina es de slo lectura o de lectura y escritura. Un intento de escri'ir una p#gina de slo lectura generar# una trampa de hardware para el SO )%iolacin de la proteccin de memoria*. 4lgunos sistemas ofrecen hardware que indica el tama>o de la ta'la de p#ginas, a tra%.s de un registro de longitud de ta'la de p#ginas )12(7*, el %alor de ese registro se compara con cada direccin lgica para asegurar que la direccin se encuentre en el inter%alo %#lido para el proceso. Sino se generar# una trampa para el SO. Segmentacin0 apoya la perspecti%a que tiene el usuario de la memoria, considera la memoria como un conjunto de segmentos de longitud %aria'le, sin ning"n orden. (os segmentos tienen un nom're y una longitud. 8uando un proceso requiere el uso de un segmento slo espec&fica su direccin lgica )numero de segmento y desplazamiento dentro de .l*. !xiste una ta'la de segmentos. !l n"mero de segmento se utiliza como &ndice en la ta'la, cada entrada de la ta'la tiene una 'ase y un l&mite para el segmento. !l desplazamiento WdW de la direccin lgica de'e estar entre ? y el l&mite del segmento. Si no lo es, generamos una trampa para el SO por error de direccionamiento. Si el desplazamiento es %#lido, se suma a la 'ase del segmento para producir la direccin en memoria f&sica. (a ta'la de segmentos puede implementarse de las mismas formas que la ta'la de p#ginas. 2iene la %entaja de la proteccin de segmentos y el compartimiento de informacin. 1resenta fragmentacin externa. 2odos los 'loques de memoria li're son muy chicos para contener un segmento, pero como la segmentacin es por naturaleza un algoritmo de relocalizacin din#mica, cuando se requiera se puede compactar la memoria para crear un hueco mas grande. O'ser%aciones0 Un segmento es una unidad @lgicaA de informacin que puede incluir tanto cdigo como datos, en cam'io una p#gina es algo @f&sicoA. !n segmentacin se especifica una direccin mediante un nom're )numero* de segmento y desplazamiento, en cam'io en paginacin el usuario especifica una sola direccin que el hardware separa para producir un numero de p#gina y desplazamiento, todo in%isi'le al usuario )programador* 2anto la segmentacin como la paginacin lle%an a la comparticin de cdigo. (a segmentacin posi'ilita el direccionamiento relati%o dentro del espacio lgico. Segmentacin !aginada0 utiliza lo mejor de los esquemas para eliminar la fragmentacin. Se paginan los segmentos. (a entrada de la ta'la de segmentos contiene la direccin 'ase y la longitud de la ta'la de p#ginas para ese segmento. !l desplazamiento del segmento se di%ide en un n"mero de p#gina y un desplazamiento en la p#gina. !l n"mero de p#gina se usa como &ndice para la ta'la de p#ginas a fin de o'tener el n"mero de marco. Sste se com'ina con el desplazamiento para formar una direccin f&sica. !xiste una ta'la de p#ginas para cada segmento. Se elimina la fragmentacin externa pero hay fragmentacin interna y aumenta el espacio consumido por las ta'las.
$G

O'ser%aciones0 Si la compilacin es a'soluta, le memoria de'e estar pre;particionada, y, para cada particin ha'r# una cola. Si la compilacin es relati%a, se puede colocar un proceso en cualquier particin en donde quepa, entonces no ha'r# una cola por particin, sino una para todas. 2am'i.n dentro de la compilacin relati%a se puede ha'lar de paginacin y segmentacin. (a relocalizacin de una direccin relati%a a una direccin f&sica es tarea del hardware, lo hace sum#ndole el registro 'ase a la direccin relati%a.

$J

K. $emoria 3irtual
1ermite la ejecucin de procesos que pueden no estar completamente en memoria. 1resenta la %entaja de que los programas pueden ser mayores que la memoria f&sica. Separa la memoria lgica de la memoria f&sica. 5o es f#cil de implementar, y puede reducir considera'lemente el rendimiento si no se emplea con cuidado. (a capacidad de ejecutar un programa que se encuentra parcialmente en memoria tendr&a %arias %entajas0 1. Un programa ya no estar&a restringido por la cantidad de memoria f&sica disponi'le. . 8omo cada programa de usuario ocupar&a menos memoria f&sica, podr&an ejecutarse m#s programas al mismo tiempo, aumentando la utilizacin de la 81U y la producti%idad, pero sin incrementar el tiempo de respuesta o el tiempo de retorno. $. Se requerir&a menos !<S para cargar o intercam'iar cada uno de los programas de usuario, por lo que se ejecutar&an m#s r#pido. Se implanta, generalmente, mediante la paginacin por demanda, aunque la segmentacin por demanda tam'i.n puede usarse para proporcionar memoria %irtual. Paginacin !or demanda0 (os programas residen en memoria secundaria )disco*. 8uando los queremos ejecutar, los metemos en la memoria. 8uando un proceso se reincorpora por intercam'io, usamos un paginador perezoso, el cual nunca carga paginas en memoria a no ser que sean necesarias, e%itando colocar en memoria p#ginas que no se utilizaran, reduciendo el tiempo de intercam'io y la cantidad de memoria f&sica necesaria. (as p#ginas en la ta'la de p#ginas tienen un 'it %#lido;in%#lido que indica si .stas est#n en memoria o en disco )respecti%amente*. Si no se trae una p#gina a memoria hasta que se necesite se denomina paginacin por demanda pura. !l acceso a una p#gina marcada como in%alida causa un 2741 de page fault. !l hardware paginador al traducir la direccin a tra%.s de la ta'la de pagina, notara el 'it de in%alido y en%iara un trap al SO. !l procedimiento para manejar este page fault es el siguiente0 1; =erificamos una ta'la interna al procedimiento )generalmente almacenada en el 18E para determinar si la referencia fue a una direccin de memoria %alida o in%alida* ; Si la referencia fue in%#lida a'ortamos el proceso. Si fue %alida de'emos traer la p#gina en cuestin. $; Euscamos un marco disponi'le )eligiendo uno de la lista de macos disponi'les*. +; 1lanificamos una operacin en el disco para leer la p#gina en cuestin y almacenarla en el nue%o marco. ,; 8uando el disco termino la lectura, modificamos la ta'la interna mantenida en el proceso y la ta'la de p#ginas para indicar que ahora la pagina esta en memoria. /; 7etomamos la instruccin que fue interrumpida por el trap. 1asos para manejar una falla de p#gina0
3 la pgina est en el almacenamiento auxiliar

sistema operativo
2 1

trampa

cargar M
6

referencia

reiniciar instruccin

tabla de pginas

restablecer tabla de pginas

marco libre

traer pgina que falta

memoria fsica

$K

(os programas tienden a tener localia de referencias, lo que resulta en una performance razona'le para el paginado por demanda. !l hardware para soportar paginado por demanda es el mismo que el hardware para paginado y swapping0 2a'la de p#ginas0 la misma tiene la ha'ilidad de marcar una entrada como %alida;in%alida a tra%.s de un 'it, y adem#s mantiene 'its especiales para proteccin. 3emoria secundaria0 esta memoria mantiene esas p#ginas que no est#n presentes en memoria principal, esta memoria generalmente es un disco de alta %elocidad y se lo conoce como espacio de intercam'io. Un requerimiento crucial para paginado por demanda es poder reiniciar una instruccin despu.s de un page fault, dado que se guarda el estado del proceso interrumpido cuando ocurre un page fault. !s f#cil reiniciar ese proceso en el estado exacto en el que fue interrumpido, excepto la pagina en cuestin que ahora si esta en memoria. Lay que tener en cuenta que algunas instrucciones pueden modificar un %alor de memoria y luego al querer modificar otro pro%ocar una falla de pagina por lo que reiniciar la instruccin no seria lo apropiado. !sto se puede resol%er de dos maneras0 %erificar si las p#ginas se encuentran en memoria antes de ejecutar la instruccin o guardar los %alores anteriores en registros temporales. ,endimiento de la Paginacin !or demanda0 2iempo de acceso efecti%o para una memoria paginada0 24!P)1;p* U am [ p U tiempo de falla de pagina Una falla de p#gina )cuando un proceso hace referencia una p#gina que no se incorpor a la memoria* desencadena la siguiente secuencia0 1. !l hardware de paginacin traduce la direccin mediante la ta'la de p#ginas, y o'ser%a que el %alor del 'it es @in%#lidoA. . Cenera una trampa para el SO )error de direccin no %#lida, pero en realidad es el resultado de la falla del SO al no transferir a memoria una parte %#lida para el proceso*. $. Cuardar los registros de usuario y el estado del proceso. +. 9eterminar si la interrupcin fue una falla de p#gina. ,. =erificar que la referencia a la p#gina haya sido legal y determinar la u'icacin de la p#gina en el disco. /. Euscar un marco li're0 a* Si hay un marco li're, utilizarlo. 1* !sperar en la cola del dispositi%o hasta que se atienda la solicitud de lectura. * !sperar durante el tiempo de posicionamiento o de latencia )o am'os* del dispositi%o $* 8omenzar la transferencia de la p#gina al marco li're '* 9e lo contrario, utilizar un algoritmo de reemplazo de p#gina a fin de seleccionar un marco %&ctima. c* !scri'ir la p#gina %&ctima en disco )si fue modificada* 1* !sperar en la cola del dispositi%o hasta que se atienda la solicitud de escritura. * !sperar durante el tiempo de posicionamiento o de latencia )o am'os* del dispositi%o $* 8omenzar la transferencia de la pagina %ictima a marco li're +* 9urante la espera asignar la U81 a otro usuario ,* -nterrupcin del disco /* Cuardar los registros y el estado del proceso del otro usuario G* 9eterminar si la interrupcin pro%ino de disco J* !sperar que la U81 se asigne nue%amente a este proceso K* 7eesta'lecer los registros de usuario, estado de proceso y corregir 'it -;= de la ta'la de paginas 1?* Lacer a* G. 9urante la espera asignar la U81 a otro usuario J. -nterrupcin del disco K. Cuardar los registros y el estado del proceso del otro usuario 1?. 9eterminar si la interrupcin pro%ino de disco 11. 8orregir la ta'la de paginas y las dem#s ta'las para indicar que la pagina deseada se encuentra en memoria 1 . !sperar que la U81 se asigne nue%amente a este proceso 1$. 7eesta'lecer los registros de usuario, estado de proceso y la nue%a ta'la de paginas, y reanudar la instruccin interrumpida.
+?

7esumiendo0 1. Ser%ir interrupcin de fallo de pagina . (eer pagina $. 7eanudar proceso &o!6-on-write( 8uando se crea una proceso usando la llamada al sistema forH, inicialmente se puede pasar por alto la necesidad del paginado por demanda, usando una t.cnica similar a la de compartir paginas. !sta t.cnica pro%ee una creacin de procesos r#pida y minimiza el n"mero de p#ginas que de'en ser cargadas para el nue%o proceso. 2radicionalmente al ejecutar forH, se crea'a una copia exacta del espacio de direcciones del proceso padre. 1ero considerando que %arios de los hijos pueden in%ocar la llamada exec inmediatamente despu.s de su creacin, esta copia suele ser innecesaria, eh aqu& la necesidad de usar copy;on;write, donde inicialmente el proceso padre comparte las paginas con sus hijos, las mismas se marcan como copy;on;write, donde si un proceso escri'e una pagina compartida, antes se realiza una copia. 5tese que solo las p#ginas que pueden ser modificadas de'en marcarse como copy;on;write. (as p#ginas que contienen el cdigo ejecuta'le pueden compartirse entre padre e hijo, sin marcar ya que no son modifica'les. 8uando se necesita duplicar una p#gina con este m.todo, se de'e contar con una pagina li're. =arios SO pro%een un depsito de p#ginas li'res. ,eem!la8o de !2ginas0
marco vlido!invlido bit
1

sacar la pgina vctima

f f v i v
2

vctima
3

cambiar a invlido

tabla de pginas

a"ustar la tabla de pginas para incluir la nueva memoria fsica

introducir la pgina deseada

lgoritmos de reem!la8o de !2ginas0 se utilizan cuando se requiere un reemplazo de p#ginas para decidir que marcos intercam'iar. Iueremos el que presente la menor tasa de fallas de p#gina. lgoritmo .I.O0 4socia a cada p#gina el instante en el cual se trajo a memoria, cuando hay que reemplazar una p#gina, se elige la m#s antigua. Se construye una cola 6-6O para su implementacin. !s f#cil de comprender y programar, pero su rendimiento no siempre es 'ueno. 1resenta la 4nomal&a de Eelady. lgoritmo !timo - OP; - $IN 0 8onsiste en reemplazar la p#gina que no se usara durante el mayor per&odo de tiempo. 2iene la menor tasa de fallas de p#gina de todos los algoritmos y nunca presentara la anomal&a de Eelady. !s dif&cil implementarlo, ya que requiere un conocimiento futuro de la serie de referencias. 1or lo tanto, se utiliza para estudios comparati%os. lgoritmo /,#0 es una aproximacin al algoritmo ptimo. 7eemplaza la p#gina que no se ha utilizado durante el mayor per&odo de tiempo. 4socia a cada p#gina el instante en que se us por "ltima %ez. 5o presenta la anomal&a de Eelady. Son facti'les dos implementaciones0 &on un contador. 4 cada entrada de la ta'la de p#ginas se le asocia un registro de instante de uso y agregamos a la U81 un contador que se incrementa con cada referencia a memoria. &on una !ila. 8onsiste en mantener una pila de n"meros de p#gina. 8uando se hace referencia a una p#gina, se saca de la pila y se coloca en la parte superior. 9e esta manera, en la parte inferior, se encuentran las p#ginas menos recientemente usada. Se implementa con una lista do'lemente ligada. Lay un apuntador al fondo de la pila. lgoritmos a!roEimados al /,#0 se 'asan en 'its que se a>aden a la ta'la de p#ginas que indican que p#ginas est#n siendo usadas )1* y cu#les no )?*. lgoritmo de 'its adicionales de referencia 0 se anotan los 'its de referencia a inter%alos regulares por lo que puedo identificar los accesos por periodos el menor numero ser# la candidata. Si hay coincidencia, desempato por 6-6O o saco todas. lgoritmo de segunda o!ortunidad 0 si el 'it de referencia es 1, lo ponemos en ? y 'uscamos otra p#gina para reemplazar. Se puede implementar con una cola circular. Un apuntador indica cual es la siguiente
+1

p#gina con 'it de referencia a ?M conforme a%anza, 'orra los 'its de referencia. !n el peor de los casos, cuando todos los 'its est.n en 1, el apuntador pondr# a todos los 'its en ? y luego se transformara en 6-6O. lgoritmo de segunda o!ortunidad me7orado0 se toma un par ordenado con )'it de referencia, 'it de modificacin*0 )?,?* ni usada ni modificada. )?,1* no usada )recientemente*, pero modificada. )1,?* usada pero limpia )no modificada*. )l,1* usada y modificada. 7eemplazamos la p#gina en la clase inferior no %ac&a. 9esempata el 6-6O o el azar. lgoritmos 'asados en contadores( lgoritmo /.#( )menos frecuentemente usada*0 mantiene un contador con el n"mero de referencias a una p#gina. Se cam'ia la p#gina con menos recuento. Se puede desplazar los recuentos un 'it a la derecha a inter%alos regulares para e%itar que una pagina que se referencia mucho pero ahora ya no se usa quede en memoria. lgoritmo $.#( )m#s frecuentemente usada*0 se 'asa en que la p#gina con el menor recuento pro'a'lemente aca'a de llegar y a"n tiene que usarse.

lgoritmos !age-'uffering( al momento de necesitar reemplazar una p#gina, la p#gina necesitada se pasa a un marco li're del depsito )mantiene un depsito de marcos li'res*. !sto permite que el proceso se reanude lo m#s r#pido posi'le. 8uando se saca la %ictima su marco se agrega al depsito. 2am'i.n podemos apro%echar los momentos en que el dispositi%o de paginacin este li're para ir actualizando las paginas modificadas a disco. Se puede recordar que pagina se encuentra en el deposito para luego 'uscar primero ah&.

nomal9a de <elad60 refleja que, para algunos algoritmos de reemplazo de p#ginas, la tasa de fallas de p#ginas puede aumentar al incrementarse el n"mero de marcos asignados. 9e'er&amos esperar que al proporcionar m#s memoria para un proceso su rendimiento mejorase. signacin de marcos0 el SO siempre asigna cualquier marco li're a un proceso, pero existe un numero m&nimo de marcos a asignarse inicialmente. !ste n"mero esta definido por la arquitectura de la computadora y est# directamente relacionado con el ni%el de indireccion de la misma )de'emos tener marcos para la instruccin y para todas las direcciones que esta referencie*. lgoritmos de asignacin0 Una estrategia de la asignacin consiste en otorgar igual cantidad de marcos a cada proceso )asignacin equitati%a*. O la asignacin proporcional, que toma en cuenta la cantidad de p#ginas de cada proceso. 3arcas a asignar P )marcos del proceso < marcos de todos los procesos* U marcos disponi'les Hi!er!aginacin =;+ras+ing>0 ocurre cuando un proceso emplea m#s tiempo paginando que ejecutando. 8ausas0 Utilizacin de un algoritmo glo'al de reemplazo )si utilizo uno local la limito a ese proceso* y asignacin est#tica del 812. Supongamos que empleamos un algoritmo glo'al de reemplazo de p#ginas. Suponga que un proceso necesita m#s marcos. 8omienza a tomar p#ginas de otro proceso. (o que genera que estos procesos a su %ez fallen y as& siguiendo. 2odos estos procesos se colocan en la cola de espera del dispositi%o y la cola de procesos listos se %ac&a. !l O5- ad%ierte esto y agrega un nue%o proceso a la mezcla el cual sigue el mismo comportamiento que los otros. !ntonces el O5- trata de incrementar aun m#s el ni%el de multiprogramacin. La comenzado la hiperpaginacion y se desploma la producti%idad del sistema. (a tasa de falla de p#ginas aumenta tremendamente y, como resultado, se incrementa el tiempo de acceso efecti%o a memoria. 5o se efect"a ning"n tra'ajo porque todos los procesos se dedican a paginar. /ocalidad o vecindad0 conjunto de p#ginas que son acti%amente usadas de manera conjunta. Un proceso, durante su ejecucin, pasa de una localidad a otra. !st#n definidas por la estructura del programa y sus estructuras de datos. Si asignamos menos marcos que el tama>o de la localidad, el proceso entrar# en hiperpaginacin.
+

)rea ctiva( 8onjunto de p#gina de mayor demanda. Se utiliza un par#metro )delta*. Se analiza las referencias mas recientes y con esto se o'tiene una aproximacin de la localida. (o acertado de la aproximacin depende del elegido. !l sistema utiliza el tama>o del #rea acti%a para asignar el 812 a cada tra'ajo. Si la demanda de marcos es mayor que la suma de todos los 812 se producir# hiperpaginacion. Si pasa esto el sistema selecciona un proceso y lo suspende. (a estrategia de #rea acti%a e%ita la hiperpaginacion manteniendo a la %ez el ni%el de multiprogramacin lo mas alto posi'le. 9e esta manera optimiza la utilizacin de la 81U. !l seguimiento del #rea acti%a se implementa mediante un 'it de referencia y interrupciones a inter%alos fijos ) * de un cronometro .recuencia de .allas de P2ginas 6 ratio de re!aginacin 0 !stos dos %alores se analizan para e%itar la hiperpaginacion. Si se da un ele%ado n"mero de fallas de p#gina. Se analiza el ratio de repaginacin si es alto se asigna un nue%o marco al proceso ya que indica que la localidad esta creciendo de lo contrario la localidad esta cam'iando por lo que no es necesario asignarle un nue%o marco signacin glo'al0 un proceso selecciona un marco a reemplazar de todo el conjunto de marcos, incluso de otro proceso )incluso pudiendo comprometer a fallas en este*. Un proceso no puede controlar su 661. signacin local0 la seleccin est# limitada a los marcos de un procesoM de esta manera un proceso slo se %e afectado por .l mismo en cuanto a la paginacin. 4yuda a e%itar hiperpaginacion Pre!aginacin0 consiste en traer a memoria al mismo tiempo todas las p#ginas que se necesitar#n. ;ama4o de P2ginas0 Arande0 )son las que se usan en la actualidad* 9isminuir tama>o de la ta'la de p#gs. 3inimizar el tiempo de !<S. 3inimizar el n"mero de fallas de p#ginas. Pe0ue4a0 3inimizar fragmentacin interna. 7epresenta menos !<S y menos memoria total asignada. 3ejora la localidad. .i7acin de P2ginas0 se utiliza para fijar en memoria aquellas p#ginas que no pueden ser %&ctimas de reemplazos. Se asocia un 'it de fijacin a cada marco. 1ueden contener0 procesos del SO, p#ginas de usuario en espera de finalizacin de !<S, p#gina de usuario reci.n incorporada y toda%&a no utilizada, etc. ;a'la de !2ginas invertida0 para cada p#gina de la memoria tiene una entrada y se asocia en ella la direccin %irtual de la p#gina almacenada en esa localidad en memoria real )proceso, pagina, marco*, de manera que slo hay una ta'la en todo el sistema y slo tiene una entrada para cada p#gina de memoria f&sica )y esta ordenada por direccin de memoria f&sica*. Ocasiona pro'lemas en el compartimiento de cdigo. (a ta'la que indica la u'icacin en disco se encuentra en el disco. 4umenta tiempo para 'uscar una p#gina. 2am'i.n hay registros asociati%os. Segmentacin !or demanda0 !l SO asigna la memoria por segmentos y los controla por medio de descriptores de segmento, que incluyen informacin so're el tama>o, protecciones y u'icacin del segmento. Un proceso no requiere que todos sus segmentos se encuentren en memoria para poder ejecutarse. !n %ez de esto, el descriptor de segmento contiene un 'it de %alidez para cada segmento, el cual indica si se encuentra actualmente en memoria. 8uando un proceso direcciona un segmento que contiene datos o cdigo, el hard examina este 'it de %alidez. Si el segmento est# en memoria principal, el acceso contin"a sin pro'lemasM en caso contrario se genera una trampa al SO )falla de segmento*, igual que sucede en las implantaciones de la paginacin por demanda. (as rutinas de administracin de memoria primero determinan se hay espacio suficiente para el segmento, sino se efect"a una compactacin, si luego de la compactacin el espacio disponi'le es escaso se escoge un segmento para escri'ir en almacenamiento secundario )hay un 'it de acceso por cada segmento y se usa el algoritmo de segunda oportunidad, tam'i.n hay 'it de fijacin* e incorpora todo el segmento requerido )si el segmento sigue sin entrar en memoria se repite el procedimiento*. (uego contin"a la instruccin interrumpida )la que caus la falla de segmento*. Se de'e resaltar que la segmentacin por demanda requiere un considera'le tiempo de
+$

procesamiento adicional, por lo que .sta no es un medio ptimo para apro%echar al m#ximo los recursos de un sistema de computacin. Sin em'argo, en un hardware menos complejo la "nica alternati%a es que no haya memoria %irtual. 9e'ido a los pro'lemas que se presentan en los sistemas que carecen de memoria %irtual, la segmentacin por demanda es un compromiso razona'le de funcionalidad dadas las restricciones del hardware que imposi'ilitan la paginacin por demanda.

++

9% Al(acena(iento Secundario
Estructura del 'isco9 La super icie de! disco se divide !$gica-ente en pistas5 donde !a in or-aci$n es gra%ada o !e(da por -edio de ca%e8as de !ectoescrituraE e! conjunto de pistas a !as que se puede acceder sin -over !as ca%e8as dentro de una unidad es deno-inado ci!indro. E0isten discos de ca%e8a ija 2una por cada pista3 y de ca%e8a -$vi!5 que posee una so!a ca%e8a que se desp!a8a :acia adentro y :acia a uera para acceder a !as distintas pistas. E! :ard para un sist de disco puede dividirse en9 La parte -ec7nica 2-otor5 !as ca%e8as y !a !$gica re!acionada3 La parte contro!adora de! disco5 que deter-ina !a interacci$n !$gica con !a co-putadora. Para :acer re erencia a !a in or-aci$n en disco se e-p!ea una direcci$n co-puesta por varias partes9 unidad5 super icie5 pista y sector. 4n sector es !a -enor unidad de in or-aci$n que puede !eerse o escri%irse. E! ta-a;o de !os sectores5 !a cantidad de sectores por pista y !a cantidad de pistas por super icie var(a de acuerdo a !a unidad de disco en cuesti$n. Para acceder a un sector5 !as ca%e8as de%en -overse a !a pista correcta 2tie(po de posiciona(iento3 y esperar a que e! sector so!icitado pase por de%ajo de !a ca%e8a 2tie(po de latencia3. Luego co-ien8a e! tie(po de transferencia.
Si F9 nu-ero de! sector

s9 cantidad de sectores por pista j9 nu-ero de super icie i9 nu-ero de ci!indro p9 cantidad de pistas por ci!indro Pode-os convertir una direcci$n a un n<-ero de %!oque unidi-ensiona! %5 de !a siguiente -anera9 % G F I s J 2j I i J p3 'irectorio del dispositivo9 En 6! se encuentra !a in or-aci$n de !os arc:ivos que se encuentran en e! disco 2u%icaci$n5 !ongitud5 tipo5 propietario5 ec:a y :ora de creaci$n5 ec:a y :ora de! <!ti-o acceso5 protecciones5 etc.3. Ad(inistracin del Espacio Libre9 E! siste-a -antiene una !ista de espacio !i%re5 donde se registran !os %!oques que no est7n asignados a un arc:ivo. +ector de bits9 Se puede i-p!e-entar co-o un vector de %its5 donde cada %!oque se representa con un %it. Si e! %!oque est7 !i%re 2K35 y si est7 ocupado 213. Do resu!ta e iciente si en !a -ayor(a de !os accesos e! vector no esta en -e-oria principa!. Lista ligada9 /onsiste en en!a8ar todos !os %!oques !i%res de! disco5 -anteniendo un puntero a! pri-er %!oque !i%re. Do es e iciente5 pues para recorrer !a !ista5 tene-os que !eer cada uno de !os %!oques5 !o que representa un tie-po considera%!e de E/S. Agrupa(iento9 Se a!-acena en e! 1er %!oque !as direcciones de n %!oques !i%res. Los pri-eros n11 %!oques est7n !i%res y e! <!ti-o contiene !a direcci$n en disco de otro %!oque que contiene !as direcciones de otros n %!oques !i%res. /on este -6todo pueden encontrarse con rapide8 !as direcciones de una gran cantidad de %!oques !i%res. 1ecuento9 /onsiste en aprovec:ar que5 en genera!5 varios %!oques contiguos se pueden asignar o !i%erar si-u!t7nea-ente5 especia!-ente en asignaci$n contigua. #s( pode-os tener !a direcci$n de! pri-er %!oque !i%re y !os n %!oques !i%res contiguos que !e siguen. La !ista ser(a -7s peque;a5 sie-pre y cuando e! recuento sea genera!-ente -ayor que uno. M:todos de Asignacin9 Asignacin contigua9 =equiere que cada arc:ivo ocupe un conjunto de direcciones contiguas en e! disco. En e! directorio se guarda !a direcci$n de! %!oque inicia! y e! 7rea de! arc:ivo. E! inconveniente consiste en encontrar espacio contiguo disponi%!e para un nuevo arc:ivo a partir de una !ista de :uecos !i%res5 genera!-ente se uti!i8an !as estrategias de! 1 er ajuste5 e! -ejor ajuste y e! peor ajuste. Surge e! pro%!e-a de !a rag-entaci$n e0terna5 cuando para atender una so!icitud :ay su iciente espacio !i%re en disco para satis acer!a5 pero 6ste no es contiguo. Otro pro%!e-a que se nos presenta es e! poder deter-inar cu7nto espacio se necesita para un arc:ivo. So!o un acceso a disco. Asignacin enla3ada9 consiste en una !ista en!a8ada de %!oques de arc:ivo y estos pueden :a!!arse en cua!quier parte de! disco 2se necesitan n accesos para !!egar a! %!oque n3. /on este tipo de asignaci$n no tene-os rag-entaci$n e0terna. E! inconveniente con este tipo de asignaci$n es que s$!o puede ap!icarse
+,

e ica8-ente a! acceso secuencia!. /ada acceso a un puntero i-p!ica una !ectura a! disco5 por !o que es poco e iciente para e! acceso directo para arc:ivos. Otro inconveniente es e! espacio requerido por e! puntero5 que nos quita espacio para !os datos5 requiriendo entonces c/arc:ivo un poco -7s de espacio. E! pro%!e-a -7s serio es !a con ia%i!idad. 4n error en e! so tLare de! SO o un pro%!e-a en e! :ardLare5 puede provocar que se e!ija un puntero incorrecto5 en!a8ando e! arc:ivo a !a !ista de espacio !i%re o a otro arc:ivo 2se necesita !eer !os (ndices y !uego %uscar !os datos3. Asignacin inde;ada9 =e<ne todos !os punteros en e! %!oque de (ndices. /ada arc:ivo tiene su propio %!oque de (ndices. Per-ite e! acceso directo sin e! pro%!e-a de !a rag-entaci$n e0terna. E! desperdicio de espacio puede ser -ayor que en !a asignaci$n en!a8ada. Esque(a enla3ado9 se en!a8an varios %!oques de (ndices. Esque(a (ultinivel9 se tiene un %!oque de (ndices que apunta a !os %!oques de (ndices5 que a su ve8 apuntan a !os %!oques de arc:ivo. Esque(a co(binado9 se tiene en e! directorio a!gunos punteros de! %!oque de (ndices. Los pri-eros apuntan a %!oques directos y !os otros :acen re erencia a %!oques indirectos.. <lanificacin del 'isco9 La unidad de disco tiene una co!a de procesos pendientes. /ada ve8 que un proceso necesita E/S de! disco5 e-ite una !!a-ada a! SO5 esta so!icitud especi ica !a siguiente in or-aci$n necesaria9 Si se trata de una operaci$n de E o de S. /u7! es !a direcci$n en disco 2unidad5 ci!indro5 super icie5 %!oque3. /u7! es !a direcci$n en -e-. /u7nta in or-aci$n se trans erir7 2n<-ero de %ytes o pa!a%ras3. E0isten diversas p!ani icaciones9 <lanificacin =*=S9 e! pri-ero que entra es e! pri-er atendido. Do o rece e! -ejor tie-po pro-edio de servicio. <lanificacin SS)=9 Se!ecciona !a so!icitud con -enor tie-po de posiciona-iento a partir de !a actua! posici$n de !a ca%e8a. E! inconveniente con esta p!ani icaci$n es que se puede tener un %!oqueo inde inido para a!gunas so!icitudes. En un siste-a rea!5 per-anente-ente est7n !!egando so!icitudes5 y en teor(a5 podr(a !!egar una serie continua de so!icitudes pr$0i-as entre s(5 ocasionado que a!gunas so!icitudes sean postergadas inde inida-ente. #unque -ejora nota%!e-ente a! ?/?S5 no es $pti-o. <lanificacin S*A/9 La ca%e8a %arre e! disco de un e0tre-o a! otro atendiendo !as so!icitudes a! !!egar a cada pista. Luego invierte !a direcci$n de! -ovi-iento de !a ca%e8a y contin<a e! servicio5 rastreando continua-ente e! disco de un e0tre-o a! otro. Tiene e! pro%!e-a de :acer esperar a a!gunas so!icitudes de-asiado5 ya que cuando invierte e! recorrido pasa por pistas atendidas reciente-ente. <lanificacin *!S*A/9 *arre e! disco pero a! !!egar a! ina!5 regresa de in-ediato a! inicio sin servir ninguna so!icitud en e! ca-ino. <lanificacin LOO> y *!LOO>9 2co-porta-iento an7!ogo a! de S/#D3 !a ca%e8a se -ueve :asta !a <!ti-a so!icitud en cada direcci$n. /uando no :ay de-andas invierte e! -ovi-iento y en e! caso de /1LOOM se va :asta !a otra punta. Mejoras en el rendi(iento y la confiabilidad 9 La -e-oria cac:6 y e! contro!ador ayudan a -ejorar e! rendi-iento5 que a<n depende de !a ve!ocidad y con ia%i!idad de !os discos. 4na -ejora t6cnica es !a idea de varios discos que tra%ajan cooperativa-ente y !ogran trans erir sus su%%!oques en para!e!o =#.D 2redundant arrays o ine0pensive disFs3. ?erarqua de Al(acena(iento9 13 =egistros. 23 Me-oria /ac:6. 33 Me-oria Principa!. "3 #!-acena-iento #u0i!iar. &3 4nidades de Disco. '3 /inta Magn6tica.

+/

Parte ". $ane7o del almacenamiento L- Interface del sistema de arc+ivos


1ro%ee los mecanismos para almacenar y acceder a los datos y programas del sistema operati%o y a todos los usuarios del sistema. 8onsiste de partes0 una coleccin de archi%os, cada uno almacenando datos, y una estructura de directorios, el cual organiza y pro%ee informacin de todos los archi%os del sistema. &once!to de arc+ivo( (a informacin se puede almacenar en diferentes medios de almacenamiento, para facilitar su uso, el SO pro%ee una %ista lgica uniforme del almacenamiento de la informacin. !l SO a'strae desde las propiedades f&sicas de sus dispositi%os de almacenamiento para definir una unidad de almacenamiento lgica llamada archi%o. !stos son mapeados por el SO so're los dispositi%os f&sicos. 8om"nmente los archi%os representan datos, los cuales pueden ser num.ricos, alfanum.ricos, alfa'.ticos o 'inarios, y programas. (a informacin en un archi%o es definida por su creador. 9iferentes tipos de informacin pueden ser almacenadas, cdigo de programas, programas o'jetos, programas ejecuta'les, datos num.ricos, texto, im#genes, etc. 9ependiendo del tipo de archi%o ser# la estructura del mismo. tri'utos de los arc+ivos( Un archi%o es nom'rado y se le es referenciado por su nom're. 8uando un archi%o es nom'rado, este se %uel%e independiente del proceso, el usuario y aun del sistema que lo creo. (os atri'utos %ar&an de un SO a otro, pero t&picamente son0 5om're0 el nom're sim'lico es la "nica informacin mantenida en forma legi'le para el humano. identificador0 esta etiqueta "nica, usualmente un n"mero, identifica el archi%o dentro del sistema de archi%os. 2ipo0 informacin necesaria para sistemas que soportan archi%os de diferentes tipos. U'icacin0 es un puntero al dispositi%o y a la u'icacin del archi%o dentro del dispositi%o. 2ama>o0 !l tama>o actual del archi%o y quiz#s el m#ximo tama>o permitido. 1roteccin0 informacin de control de acceso determina quien puede leer, escri'ir, ejecutar, etc. Lora, fecha e identificacin de usuario0 esta informacin puede ser mantenida para creacin, ultima modificacin y "ltimo uso. atil para proteccin, seguridad y monitoreo de uso. !sta informacin es mantenida en la estructura del directorio, la cual tam'i.n reside en disco. Una entrada en el directorio consiste del nom're e identificador del archi%o. O!eraciones so're arc+ivos( Un archi%o es un tipo de dato a'stracto. 1ara definir un archi%o apropiadamente, se necesita considerar las operaciones que pueden ser realizadas so're archi%os. !l SO puede pro%eer llamadas al sistema para crear, escri'ir, leer, reposicionar, 'orrar y truncar archi%os. !l SO de'e hacer lo siguiente para realizar estas tareas0 8rear archi%o0 pasos0 encontrar espacio en el sistema de archi%os para el archi%o. (uego, crear una nue%a entrada en el directorio para el nue%o archi%o. !scri'ir un archi%o0 se realiza una llamada al sistema especificando el nom're del archi%o y la informacin a ser escrita. 3ediante el nom're se localiza el archi%o y se mantiene un puntero de escritura a la u'icacin en el archi%o donde la siguiente escritura tomara lugar. (eer un archi%o0 se usa una llamada al sistema especificando el nom're del archi%o y donde se de'e poner en memoria el siguiente 'loque del archi%o. Se localiza el archi%o mediante una '"squeda en el directorio por el nom're y se mantiene un puntero de lectura a la u'icacin en el archi%o donde la siguiente lectura tomara lugar. 8omo es com"n que un proceso lea y escri'a archi%os, la operacin de u'icacin puede ser mantenida como un puntero de posicin del archi%o actual para cada proceso. 7eposicionarse dentro de un archi%o0 se 'usca en el directoria la entrada apropiada y el puntero de posicin del archi%o actual es reposicionado al %alor o'tenido. Eorrando un archi%o0 se 'usca en el directorio el archi%o nom'rado. Una %ez encontrada la entrada del directorio correspondiente, se li'era el espacio ocupado por el archi%o y se 'orra la entrada del directorio. 2runcando un archi%o0 !l usuario podr&a 'uscar 'orrar el contenido del archi%o pero manteniendo sus atri'utos, entonces en %ez de forzar a 'orrarlo y %ol%er a recrearlo, esta funcin permite que todos los atri'utos permanezcan sin cam'ios, excepto por el tama>o, permitiendo al archi%o ser reseteado a ? li'erando todo el espacio ocupado.
+G

!stas comprenden las m&nimas operaciones requeridas para manejo de archi%os. Otras son a>adir nue%a informacin al final del archi%o y renom'rar un archi%o existente. !stas primiti%as pueden ser com'inadas para lle%ar a ca'o otras operaciones de archi%os. 1ara e%ita la continua '"squeda de la entrada en el directorio, el sistema mantiene una peque>a ta'la llamada ta'la de archi%os a'iertos, contendiendo informacin acerca de todos los archi%os a'iertos. 8uando una operacin de archi%o es requerida, el archi%o se especifica %&a un &ndice dentro de la ta'la entonces no se necesita '"squeda alguna. 8uando no es mas necesitado, se cierra el archi%o y el SO elimina la entrada de la ta'la. 4lgunos sistemas impl&citamente a'ren un archi%o cuando la primera referencia es hecha, luego el archi%o es autom#ticamente cerrado cuando el proceso que lo a'ri termina. Sin em'argo la mayor&a de los sistemas requieren que el programador a'ra un archi%o expl&citamente mediante la llamada al sistema open antes de que este sea usado. !sta llamada open 'usca el archi%o en el directorio, copiando la entrada a la ta'la de archi%os a'iertos. 2am'i.n se le puede pasar informacin del modo de acceso )crear, solo lectura, lectura escritura, etc.*. !ste modo es chequeado con los permisos del archi%o, si el modo es permitido el archi%o es a'ierto. !sta llamada retorna un puntero a la entrada en la ta'la de archi%os a'iertos, el cual ser# usado en todas las operaciones !<S, e%itando futuras '"squedas. (a implementacin de las llamadas open y close se %uel%en mas complicadas en am'ientes donde %arios procesos pueden a'rir el mismo archi%o de manera simultanea. !l SO usa dos ni%eles de ta'las, una ta'la por proceso y una para el sistema. (a ta'la por proceso mantiene informacin de cada archi%o a'ierto por el proceso. 8ada entrada en la ta'la de procesos apunta a un archi%o a'ierto de la ta'la del sistema. !sta ta'la mantiene informacin del proceso en si tal como su u'icacin en disco. Si otro proceso a're el mismo archi%o, se agrega una entrada en la ta'la del proceso apuntando a la apropiada entrada en la ta'la del sistema. !n resumen, la informacin asociada a un archi%o a'ierto es0 1untero al archi%o0 se de'e mantener informacin de la "ltima u'icacin de lectura;escritura como un puntero a la actual posicin de archi%o )current;file;position pointer*. 8ontador de archi%os a'iertos0 este lle%a el seguimiento del n"mero de aperturas y cierres de un archi%o, y si se alcanza el %alor cero entonces el sistema puede remo%er la entrada. U'icacin en disco del archi%o0 la informacin necesaria para u'icar el archi%o en el disco es mantenida en memoria talque el sistema no tenga que leer esta desde el disco en cada operacin de modificacin de datos dentro del archi%o. 9erechos de acceso0 cada proceso a're un archi%o en un dado modo de acceso, esta informacin es guardada en la ta'la por proceso de manera que el SO pueda permitir o denegar su'secuentes pedidos. 4lgunos SO pro%een facilidades para 'loquear archi%os a'iertos. !sto permite a un proceso 'loquear un archi%o y pre%enir que otros procesos tengan acceso a este. 4lgunos SO pro%een solo exlusi%e locHs y otros tam'i.n shared locHs. 4dem#s el SO puede pro%eer mecanismos de 'loqueo o'ligatorio o consulti%o. Si es o'ligatorio, el SO asegura integridad del 'loqueo, si es consulti%o, los programadores de'en asegurarse que los 'loqueos son apropiadamente adquiridos y soltados. ;i!os de arc+ivos( Si el SO reconoce el tipo del archi%o, luego puede operar so're este en una manera razona'le. Una t.cnica com"n para implementar tipos de archi%o es incluir el tipo como una parte del nom're del archi%o, parti.ndolo en partes, el nom're y la extensin separadas por un punto. !l sistema usa la extensin para indicar el tipo de el archi%o y el tipo de operaciones que se pueden realizar so're el archi%o. !l .com y .exe son dos formas de archi%os 'inarios ejecuta'les, mientras que el .'at es un archi%o 'atch. %structura de arc+ivos( !l tipo de archi%o tam'i.n puede ser usado para indicar la estructura interna de un archi%o. 8iertos archi%os de'en tener una estructura que es entendida por el SO, por ejemplo, el SO requiere que un archi%o ejecuta'le tenga una especifica estructura que le permita determinar donde cargar en memoria el archi%o y cual es la u'icacin de la primera instruccin. 4lgunos SO extienden la idea en un conjunto de estructuras de archi%os soportadas por el sistema, con un conjunto de operaciones especiales para manipular archi%os con estas estructuras. (a des%entaja es que el tama>o del SO es muy grande. 4dem#s, cuando nue%as aplicaciones requieren estructuras no soportadas por el SO, %arios pro'lemas aparecen. 4lgunos SO imponen y soportan un m&nimo n"mero de estructuras de archi%o. Un SO de'e soportar al menos una estructura, la de un ejecuta'le, para poder cargar y correr programas.

+J

%structura interna de arc+ivos( Sistemas de disco tienen 'loques de tama>o definido determinado por el tama>o de un sector. 2odas las !<S de disco son realizadas en unidades de un 'loque y todos los 'loques son del mismo tama>o. (uego los registros lgicos, los cuales son de %ariados tama>os, generalmente no coincidir#n en tama>o con los registros f&sicos. Una solucin a esto es empaquetar un n"mero de registros lgicos dentro de un 'loque f&sico. !l tama>o del registro lgico, el tama>o del 'loque f&sico y la t.cnica de empaquetado determina cuantos registros lgicos ha'r# en un 'loque f&sico. !l empaquetado puede ser hecho por el SO o por los programas del usuario. 4s& un archi%o puede ser considerado una secuencia de 'loques y todas las operaciones de !<S operan en t.rminos de 'loques. !n la mayor&a de los casos, alguna porcin del "ltimo 'loque de cada archi%o ser# gastado. !ste gasto se llama fragmentacin interna, y todo sistema de archi%os sufrir# de esta, siendo m#s grande la fragmentacin a medida que aumente el tama>o del 'loque. $-todos de acceso( 8uando se usa un archi%o, su informacin de'e ser accedida y le&da dentro de la memoria. !ste acceso puede realizarse de %arias maneras. 4lgunos SO solo pro%een un m.todo, otros pro%een %arios. cceso secuencial( !s el m.todo mas simple. (a informacin es procesada en orden, un registro luego del otro. !s el m#s com"n. 1or ejemplo, editores y compiladores acceden a la informacin de esta manera. Una operacin de escritura )read next* lee la siguiente porcin del archi%o y autom#ticamente a%anza el puntero del archi%o. Similarmente, una operacin de escritura )write next* a>ade al final del archi%o y a%anza al final del nue%o material escrito. !ste tipo de archi%os puede ser reseteado al inicio, y algunos sistemas permiten adelantar o atrasar n registros para alg"n entero n. cceso directo( )o acceso relati%o* Un archi%o es creado de registros lgicos de tama>o fijo que permiten a los programas leer y escri'ir registros r#pidamente sin un orden particular. 1ara acceso directo, el archi%o es %isto como una secuencia numerada de 'loques o registros. 4s& se puede leer el 'loque 1$ y luego el $ , es decir, no hay restricciones so're el orden de lectura y escritura. 4rchi%os de acceso directo son de gran uso para el acceso inmediato a grandes cantidades de informacin. (uego las 'ases de datos son de este tipo. 1ara este m.todo, las operaciones de archi%o de'en ser modificadas para incluir el n"mero de 'loque como par#metro. 7ead n en %ez de 7ead next. !l numero de 'loque pro%e&do por el usuario al SO es un numero de 'loque relati%o. !ste es un &ndice relati%o al comienzo del archi%o. 4s& el primero 'loque relati%o es ?, luego 1 y as& siguiendo. !sto permite al SO decidir donde el archi%o de'er# ser u'icado. _8omo el sistema satisface un pedido para el registro n` Suponiendo registros lgicos de tama>o (, el pedido es cam'iado en un pedido de !<S por ( 'ytes comenzando en la u'icacin ( U n dentro del archi%o. 5o todos los SO soportan am'os m.todos de acceso. 4lgunos soportan secuencial, otros directo. Se puede f#cilmente simular acceso secuencial so're archi%os de acceso directo, manteniendo una %aria'le que indica la actual posicin. Simular acceso directo so're archi%os de acceso secuencial es extremadamente ineficiente. Otros m-todos de acceso( otros m.todos pueden ser construidos encima del acceso directo. Ceneralmente en%uel%en la construccin de un &ndice para el archi%o. !l &ndice contiene punteros a los diferentes 'loques. 1ara hallar un registro en el archi%o, primero se 'usca el &ndice y luego se usa el puntero para acceder al archi%o directamente y encontrar el deseado registro. !sta estructura permite 'uscar grandes archi%os haciendo poco !<S. Si los archi%os son grandes, el archi%o &ndice se %uel%e demasiado grande para mantenerlo en memoria. Una solucin es crear un &ndice para el archi%o &ndice. %structura del directorio( Un sistema puede tener cero o mas sistemas de archi%os, y estos pueden ser de diferentes tipos. 1ara manejar los datos se necesita organizarlos, esta organizacin in%olucra el uso de directorios. %structura del almacenamiento( Un disco puede ser usado enteramente por un sistema de archi%os. Sin em'argo, es desea'le u'icar %arios sistemas de archi%os so're el disco para diferentes finalidades como espacio de intercam'io. !stas partes son conocidas como particiones. Un sistema de archi%os puede ser creado so're cada una de estas particiones. !stas tam'i.n pueden ser com'inadas para formar un %olumen, so're el cual tam'i.n se podr# crear un sistema de archi%os. !stos %ol"menes permiten instalar diferentes SO. 8ada %olumen que tenga un sistema de archi%os, de'er# contener informacin acerca de los archi%os en el sistema. !sta informacin ser# mantenida en entradas en un dispositi%o de directorio o %olumen de ta'la de contenidos )o simplemente directorio*.
+K

3ista general del directorio( !l directorio puede ser %isto como una ta'la de s&m'olos que traslada nom'res de archi%os en sus entradas de directorio. Operaciones so're el directorio0 Euscar un archi%o0 capacidad de 'uscar en un directorio para encontrar una entrada para un particular archi%o. Euscar archi%os que coinciden en un dado patrn. 8rear archi%os0 nue%os archi%os necesitan ser creados y agregados al directorio. Eorrar archi%os0 remo%er archi%os cuando no son m#s necesitados. (istar un directorio0 listar los archi%os en un directorio. 7enom'rar un archi%o0 renom'rar un archi%o podr&a tam'i.n permitir cam'iar su posicin dentro del directorio. 4tra%esar el sistema de archi%os0 se podr&a desear acceder a cada directorio y a cada archi%o dentro de un directorio. Se descri'en a continuacin los esquemas m#s comunes para definir la estructura lgica de un directorio. Directorio de un nivel( !s la mas simple estructura. 2odos los archi%os est#n contenidos en el mismo directorio, lo cual es f#cil de soportar y entender. 2iene significantes limitaciones cuando el n"mero de archi%os incrementa o cuando el sistema tiene m#s de un usuario. 9ado que los archi%os est#n en el mismo directorio, todos de'en tener diferentes nom'res. Directorio de dos niveles( !n esta estructura, cada usuario tiene su propio directorio de archi%os de usuario )U69*. !stos tienen similar estructura entre si, pero cada uno lista solo los archi%os de un simple usuario. 8uando un proceso comienza o un usuario se logea, el directorio de archi%os maestro del sistema es 'uscado. !ste es indexado por el nom're de usuario o numero de cuenta y cada entrada apunta al U69 para este usuario. 8uando un usuario referencia a un archi%o, solo se 'usca en su propio U69. 4s& diferentes usuarios pueden tener archi%os con igual nom're, solucionando uno de los pro'lemas del directorio de un ni%el. (uego todas las operaciones son realizadas en 'ase al U69 correspondiente al usuario. (os directorios de usuario de'en poder ser creados y 'orrados, para ello se usa un programa especial del sistema. Una des%entaja es que separa a un usuario de los otros, los cual no es 'ueno si %arios usuarios desean cooperar y requieren acceder a los archi%os del otro. Si el sistema permite acceder a los archi%os de otro usuario, en esta estructura se de'e especificar el nom're de usuario y el nom're del archi%o. !s necesaria sintaxis adicional para especificar el %olumen de un archi%o. Directorio estructurado en 2r'ol( 1ermite a los usuarios crear sus propios su'directorios y a organizar sus archi%os como lo desee. Un #r'ol es la estructura m#s com"n de directorio. 2iene un directorio ra&z, y cada archi%o en el sistema tiene una "nica ruta de acceso. Un directorio o su'directorio contiene un conjunto de archi%os o su'directorios. Un directorio es simplemente otro archi%o, pero es tratado en una manera especial. 2odos los directorios tienen el mismo formato interno. Un 'it en cada entrada del directorio define a la entrada como un archi%o )?* o un su'directorio )1*. !speciales llamadas al sistema son usadas para crear y 'orrar directorios. 1or defecto cada proceso tiene un directorio actual. !l directorio actual de'er&a contener la mayor&a de los archi%os que son de actual inter.s para el proceso. 3ediante una llamada al sistema se puede cam'iar el directorio actual de un proceso. (as rutas de acceso pueden ser de tipos0 a'solutas o relati%as. Una ruta de acceso a'soluta comienza en la ra&z y sigue 'ajando por un camino hasta el archi%o especificado. Una ruta de acceso relati%a define un camino desde el directorio actual. 4l momento de 'orrar un directorio se pueden adoptar pol&ticas0 'orrar el directorio si y solo si esta %ac&o, o pro%eer la opcin de 'orrar el directorio y todos sus archi%os y su'directorios. !n este sistema los usuarios pueden ganar acceso a los archi%os de otro usuario. Se puede especificar la ruta de acceso a'soluta o tam'i.n puede cam'iar su directorio actual al del otro usuario. Directorio de grafo sin ciclos( Una estructura en #r'ol proh&'e compartir archi%os o directorios, en cam'io el grafo sin ciclos permite a un directorio a compartir sus su'directorios y archi%os. !l mismo archi%o puede estar en diferentes directorios. !s una generalizacin natural del esquema de directorio estructurado en #r'ol. 5otar que el archi%o o directorio compartido no es lo mismo que copias del mismo. 8on copias los cam'ios hechos so're una no ser#n %isi'les a la otra, al compartir un "nico archi%o, cualquier cam'io realizado so're este ser# %isi'le para todos los que lo comparten. !l compartir puede ser implementado de %arias maneras. Una
,?

manera com"n, usada por %arios U5-^, es crear una nue%a entrada en el directorio llamada enlace )linH*. !ste es efecti%amente un puntero a otro archi%o o su'directorio. (uego en las entradas en el directorio marcadas como enlaces, la direccin real del archi%o ser# incluida en la informacin del enlace. !l SO ignora estos linHs cuando atra%iesa directorios para mantener el grafo sin ciclos. Otra manera com"n de implementar archi%os compartidos es simplemente duplicar la informacin. (a dificultad radica en mantener la consistencia cuando una de las copias es modificada. !s m#s flexi'le que el #r'ol, pero m#s complejo. Un archi%o puede tener %arias rutas de acceso a'solutas, as& %arios nom'res de archi%os pueden referir al mismo archi%o, situacin similar al aliasing. !sto complica si se desea recorrer el sistema de archi%os, por ejemplo para encontrar un archi%o. Otro pro'lema es al 'orrar un archi%o. Una posi'ilidad es 'orrar el archi%o, aunque esto podr&a dejar enlaces que hacen referencia a archi%os que ya no existen. O peor, podr&an luego apuntar al medio de otro archi%o. Usando enlaces, el 'orrado de uno de estos no de'er&a afectar al archi%o original. Si el archi%o es 'orrado, el espacio es desalojado y los enlaces quedaran colgados. (uego se pueden 'uscar estos enlaces y 'orrarlos, alternati%amente se puede decidir que hacer al momento de %ol%er a usarlos. Otra aproximacin es mantener el archi%o hasta que todas las referencias a este sean 'orradas. 1ara ello se de'e contar con un mecanismo que determina cuando la "ltima referencia fue 'orrada. Se puede mantener una lista de referencias, aunque es mejor mantener solo un contador de referencias. Directorio de grafo general( el gran pro'lema del grafo sin ciclos es asegurar que no haya ciclos. (a principal %entaja de los grafos sin ciclos es la simplicidad de los algoritmos para atra%esar el grafo y determinar cuando no hay mas referencias a un archi%o, as& e%itando recorrer un directorio compartido m#s de una %ez. Si los ciclos son permitidos en el directorio, se de'e e%itar la '"squeda de alg"n componente dos %eces por razones de correctitud y performance. 8on un algoritmo malo se podr&a entrar en un ciclo infinito. Similar pro'lema existe cuando se intenta 'orrar un archi%o. !xiste la anomal&a que resulta de la posi'ilidad de referencia a si mismo en el directorio. !n este caso se necesita de un mecanismo de gar'age;collection para determinar cuando la ultima referencia a sido eliminada y as& el espacio en disco puede ser reasignado. !ste gar'age;collection realiza un recorrido del sistema de archi%os marcando todo lo que puede ser accedido, luego en un segundo recorrido junta todo lo que no fue marcado en una lista de espacio li're. !s muy costoso en tiempo y es requerido "nicamente por los ciclos. 4s& es mejor tra'ajar con grafos sin ciclos. (a dificultad es e%itar que nue%os enlaces formen un ciclo. Lay algoritmos para detectar ciclos pero son muy costosos, la simple solucin es o'%iar los enlaces durante el recorrido. $onta7e del sistema de arc+ivos( como un archi%o de'e ser a'ierto antes de usar, el sistema de archi%os de'e ser montado antes de estar disponi'le para su uso. !l proceso es sencillo0 se le da al SO el nom're del dispositi%o y el punto de montaje )u'icacin dentro del directorio donde el sistema de archi%os ser# adjuntado, t&picamente un directorio %aci*. (uego el SO %erifica que el dispositi%o contiene un sistema de archi%os %alido, para ello %erifica que el directorio del dispositi%o tiene el formato correcto. 6inalmente, el SO anota en su estructura de directorio que un sistema de archi%os ah sido montado, permiti.ndole recorrer el mismo. 4lgunos sistemas permiten solo montar en directorios %ac&os, mientras que otros o'scurecen el contenido del directorio hasta que el sistema de archi%os sea desmontado. .ile S+aring M Intercam'io de arc+ivo( es desea'le para usuarios que 'uscan cola'orar entre si. 3"ltiples usuarios0 aqu& las cuestiones que predominan son el intercam'io, el nom'rado y la proteccin de archi%os. !l sistema puede permitir, por defecto, que los usuarios accedan a archi%os de otros usuarios, o requerir que un usuario espec&ficamente garantice acceso a sus archi%os. 4l agregarle proteccin, el sistema de'e mantener mas atri'utos de archi%o y de directorio, siendo estos, propietario de archi%o y grupo. !l propietario es aquel que tiene el mayor control so're el archi%o y el grupo un conjunto de los usuarios que pueden tener acceso al archi%o. !l -9 del propietario y del grupo son guardados con los dem#s atri'utos de archi%o. 4nte un pedido se usaran para compro'ar si es propietario o si el grupo tiene acceso. Sistema de archi%os remoto0 transferencia manual )ftp*, sistema de archi%os distri'uido donde directorios remotos son %isi'les en maquinas locales y world wide we'. - !l modelo cliente ser%idor0 sistema de archi%os remotos permiten montar uno o m#s sistemas de archi%os desde una o mas maquinas remotas. !n este caso, la maquina conteniendo los archi%os es el ser%idor, y la maquina tratando de acceder a los archi%os es el cliente.
,1

Sistemas de informacin distri'uida0 para que el sistema cliente;ser%idor sea f#cil de manejar, se pro%een estos sistemas para unificar el acceso a la informacin necesitada para el cmputo remoto. 8oherencia sem#ntica0 representa un importante criterio para e%aluar alg"n sistema de archi%os que soporta intercam'io de archi%os. !specifica como m"ltiples usuarios de un sistema acceden de manera simult#nea a archi%os compartidos. !n particular especifican cuando modificaciones en los datos ser#n %isi'les a los dem#s usuarios. Sin t&picamente implementadas como cdigo con el sistema de archi%os. !st#n directamente relacionadas con los algoritmos de sincronizacin de procesos. Proteccin( Se 'usca mantener a sal%o la informacin de da>os f&sicos )confia'ilidad* y de acceso inde'ido )proteccin*. (a primera en general es o'tenida mediante el duplicado de la informacin. 4lgunos sistemas cuentan con programas que realizan autom#ticamente copias de seguridad. Se puede da>ar por pro'lemas de hardware, fallas en la corriente, temperatura, etc. 2ipos de acceso0 Sistemas que no permiten el acceso de los archi%os a otros usuarios no necesitan proteccin. !n general se necesita de un acceso controlado. (os mecanismos de proteccin pro%een acceso controlado al limitar los tipos de acceso a archi%os que se pueden realizar. =arios tipos de operaciones pueden ser controladas0 leer, escri'ir, ejecutar, a>adir al final, 'orrar, listar. 1roteccin es pro%e&da solo a 'ajo ni%el )si se tiene permiso de lectura, es muy pro'a'le que tenga permiso para copiar, imprimir, etc.*. 8ontrol de acceso0 la aproximacin m#s com"n al pro'lema de proteccin es hacer que el acceso sea dependiente de la identidad del usuario. !l esquema m#s general para implementarlo es asociar con cada archi%o y directorio una lista de control de acceso )48(*, especificando nom'res de usuario y el tipo de acceso para cada usuario. (uego ante un acceso, el SO cheque la lista. Si el acceso no es permitido ocurre una %iolacin de proteccin y se deniega el acceso. 2iene la %entaja de permitir metodolog&as de acceso complejas, pero el pro'lema es el tama>o de las listas. Sus dos principales consecuencias son0 construir la lista lo cual puede ser tedioso, la entrada al directorio, que era de tama>o fijo ahora de'e ser de tama>o %aria'le. !l pro'lema puede ser resuelto si se utiliza la siguiente clasificacin de usuarios0 - 1ropietario0 creador del archi%o. - Crupo0 conjunto de usuarios que comparten el archi%o. - Uni%erso0 el resto de los usuarios del sistema. 9e esta manera, al com'inar las listas con esta clasificacin, la lista resulta de un tama>o fijo y reducido. 1ara que este esquema funcione los permisos y accesos de'en ser estrictamente controlados. 8on este esquema solo $ campos son necesarios para definir la proteccin. (uego cada campo es una coleccin de 'its y cada 'it pre%iene el acceso asociado a este. 1or ejemplo en U5-^, son $ 'its, esto es rwx. !s decir, $ 'its para propietario, grupo y uni%erso. U Otras aproximaciones0 otra aproximacin seria asociar un password con cada archi%o. 2iene algunas des%entajas, primero el n"mero de passwords que un usuario necesita recordar puede ser grande. Segundo, si se una un solo password y este es descu'ierto, todos los archi%os ser#n accesi'les. Una 4lternati%a seria asociar un password con un directorio en %ez de un archi%o.

Im!lementacin del sistema de arc+ivos 8omo se %io el sistema de archi%os pro%ee los mecanismos de almacenamiento on;line y acceso al contenido de los archi%os. !ste sistema reside permanentemente en almacenamiento secundario. 4qu& se trataran las cuestiones relacionadas con el almacenamiento de archi%os y el acceso al medio de almacenamiento m#s com"n, el disco. %structura del sistema de arc+ivos( !n %ez de transferir de un 'it a la %ez, la transferencia se hace en unidades de 'loques. Un sistema de archi%os posee dos pro'lemas de dise>o. !l primero es decidir como este de'e lucir al usuario. !l segundo es crear algoritmos y estructuras de datos para mapear los archi%os lgicos so're los dispositi%os de almacenamiento secundario. !l sistema de archi%os en si mismo es generalmente compuesto de algunos diferentes ni%eles, us#ndose en cada ni%el caracter&sticas de los ni%eles mas 'ajos para crear nue%as caracter&sticas. !l m#s 'ajo ni%el es el control de !<S y consiste de controladores de dispositi%os y manejadores de interrupciones. !l siguiente es el sistema de archi%os '#sico, necesario solo para leer y escri'ir 'loques f&sicos en el disco. (uego sigue modulo de organizacin de archi%os, el cual entiende de archi%os y sus 'loques lgicos, as& como de 'loques f&sicos. 1or ultimo en lo alto se encuentra el sistema de archi%os lgicos, el cual maneja informacin de metadatos. 3aneja la estructura del directorio y mantiene la estructura de los archi%os. !sta estructura en capas permite minimizar el duplicado de cdigo. Im!lementacin del sistema de arc+ivos( =arias estructuras son usadas para implementar sistemas de archi%os. !stas %ar&an dependiendo del SO y del sistema de archi%os. !n disco el sistema de archi%os puede contener informacin acerca del 'ooteo del SO, el numero total de 'loques, el numero y la u'icacin de 'loques li'res, etc. !n memoria, la informacin es usada para la administracin del sistema de archi%os y la impro%isacin de la performance %&a caching. Se cargan los datos al montar y se descargan al desmontar. -ncluye informacin de los %ol"menes montados, la ta'la de archi%os a'iertos por procesos, etc. 1ara crear un nue%o archi%o, la aplicacin llama al sistema de archi%os lgicos. !ste asigna un nue%o 68E, luego el sistema trae el apropiado directorio a memoria, lo actualiza con el nue%o nom're de archi%o y 68E, y lo %uel%e a escri'ir en disco. !l sistema de archi%os lgicos llama al modulo de organizacin de archi%os que mapea el directorio en un numero de 'loques de disco, los cuales son pasados so're el sistema de archi%os '#sico y el sistema de control de !<S. (uego el archi%o ah sido creado correctamente y esta listo para ser usado. 1ara ello de'e ser a'ierto. (a llamada al sistema open)* 'usca en la ta'la de archi%os a'iertos del sistema el archi%o para %erificar si ya esta siendo usado. Si es as&, se crea una entrada en la ta'la de archi%os a'iertos del proceso apuntando a la entrada ya existente en la ta'la de archi%os a'iertos del sistema y se incrementa en uno su contador. Sino, se realiza una '"squeda del nom're del archi%o en el directorio. Una %ez encontrado, el 68E es copiado a la ta'la de archi%os a'iertos del sistema y se crea una nue%a entrada en la ta'la de archi%os a'iertos del proceso apuntando a la entrada correspondiente en la ta'la de archi%os a'iertos del sistema. !sta llamada retorna un puntero a la apropiada entrada en la ta'la de archi%os a'iertos del proceso. !ste puntero es usado en las operaciones realizadas so're el archi%o. Si el archi%o es cerrado, se remue%e la entrada de la ta'la del proceso, y se decremento el contador de la ta'la del sistema. Si todos los procesos que ten&an a'ierto el archi%o lo cierran, se realiza alguna actualizacin de metadatos y se remue%e la entrada de la ta'la del sistema. $ontado 6 !articionado( 8ada particin puede ser raw, sin contener sistema de archi%os, o cooHed, conteniendo un sistema de archi%os. 9iscos raw son usados donde es apropiado no contar con un sistema de archi%os. -nformacin de 'ooteo puede ser almacenada en una diferente particin, dado que al momento del 'ooteo no se cuenta con los controladores de dispositi%os y as& no se puede interpretar el formato de un sistema de archi%os. 3#s aun, la informacin de 'ooteo es una serie de 'loques cargados en memoria. (a particin ra&z, la cual contiene el Hernel del sistema operati%o y alg"n otro sistema de archi%os, es montado en el momento de 'ooteo. 1ueden ser montados autom#ticamente otros %ol"menes o luego de manera manual. !l SO %erifica que el dispositi%o contiene un sistema de archi%os %alido y finalmente nota en su ta'la de montaje en memoria que un sistema de archi%os fue montado. Sistemas de arc+ivos virtuales( Un moderno SO de'e soportar al mismo tiempo m"ltiples tipos de sistemas de archi%os. 1ero como integrarlos dentro de una estructura de directorio y na%egar entre diferentes tipos de sistemas de archi%os` Un m.todo o'%io es escri'ir rutinas de archi%os y directorios para cada tipo. Sin em'argo,
,$

la mayor&a de los SOs usan t.cnicas orientadas a o'jetos para tal implementacin. 4s& se separa la funcionalidad de la implementacin. (uego la implementacin del sistema de archi%os consta de $ capas0 (a primera es la interface del sistema de archi%os, 'asada en las llamadas open, close, read y write. (a segunda es llamada sistema de archi%os %irtual )=6S* y cumple funciones0 separar las operaciones gen.ricas del sistema de archi%os de su implementacin, y pro%eer mecanismos para representar de manera "nica un archi%o a tra%.s de la red. !l =6S es 'asado so're una estructura de representacin de archi%os llamado %node. 4s& el =6S distingue los archi%os locales de los remotos, siendo los locales distinguidos de manera adecuada por su tipo de sistema de archi%os. !l =6S acti%a las operaciones espec&ficas del sistema de archi%os para manejar pedidos locales de acuerdo a su tipo de sistema de archi%os y tam'i.n pedidos de procedimientos remotos. (a tercera es la implementacin de tipo de sistema de archi%os, ya sea remoto o no. Im!lementacin del directorio( (a eleccin de los algoritmos de asignacin y administracin de directorios afecta de manera significati%a la eficiencia, performance y confia'ilidad del sistema. (ista lineal0 !l m.todo m#s simple de implementar un directorio es usar una lista lineal de los nom'res de archi%os con punteros a los 'loques de datos. !s simple de programar pero consume tiempo en ejecucin. (a principal des%entaja de este m.todo, es que encontrar un archi%o implica una '"squeda lineal. -nformacin del directorio es usada frecuentemente, luego su acceso es lento. Una lista ordenada permitir&a '"squedas 'inarias, sin em'argo mantener la lista ordenada puede complicar la creacin y 'orrado de archi%os. 2am'i.n podr&a usarse una estructura de datos m#s compleja como un #r'ol 'inario. 2a'las hash0 con este m.todo una lista lineal guarda las entradas, pero a su %ez se usa una estructura de datos hash. !sta ta'la hash toma un %alor computado a partir del nom're del archi%o y retorna un puntero al nom're del archi%o en la lista lineal. -nsercin y 'orrado son realizadas de manera sencilla, 'uscando e%itar colisiones. Su mayor dificultad son su tama>o fijo y la dependencia de la funcin hash so're este tama>o. Se puede usar una ta'la hash en la cual cada entrada es una lista enlazada, resol%iendo as& las colisiones. $-todos de asignacin( !l principal pro'lema es como asignar espacio a archi%os de manera que el espacio sea usado de manera eficiente y los archi%os sean accedidos de r#pidamente. Se destacan $ m.todos0 signacin contigua( requiere que cada archi%o ocupe un conjunto de 'loques contiguos so're el disco. 9irecciones de disco definen un orden lineal so're el disco. 8on este orden y asumiendo que un solo proceso puede acceder al disco a la %ez, acceder al 'loque ' [ 1 luego de acceder al 'loque ', normalmente no requiere mo%imiento de la ca'eza. !l n"mero de disH seeHs requeridos para acceder a informacin contigua es m&nimo. (a asignacin contigua de un archi%o es definida por la direccin del disco y su tama>o )en unidades de 'loque*. (a entrada del directorio para cada archi%o indica la direccin del 'loque inicial y el tama>o del #rea asignada para el archi%o. 4cceder a un archi%o es f#cil y se puede soportar dirreccionado secuencial y directo. 1ro'lemas0 una dificultad es encontrar espacio li're para un archi%o. !sto se puede %er como una generalizacin del pro'lema de asignacin din#mica del almacenamiento )capitulo J*. Se utiliza primer ajuste y mejor ajuste, aunque ninguna es 'uena en t.rminos de utilizacin del almacenamiento. Sufre de fragmentacin externa. !l espacio li're es que'rado en pedazos que son insuficientes para satisfacer un pedido. Se puede utilizar un esquema de compactacin, compactando todo el espacio li're en un "nico espacio contiguo, resol%iendo el pro'lema de la fragmentacin. Su costo es tiempo. Otro pro'lema es el de determinar cuanto espacio es necesitado para un archi%o. Si se asigna demasiado espacio, luego el archi%o no podr# crecer en tama>o. Se de'e usar alg"n m.todo de reasignacin el cual puede ser muy costoso. signacin enla8ada( 7esuel%e alguno de los pro'lemas de la asignacin contigua. 8ada archi%o es una lista enlazada de 'loques en el disco, pudiendo estar estos dispersos en alg"n lugar del disco. (a entrada del directorio contiene un puntero al primer y ultimo 'loque del archi%o y cada 'loque contiene un puntero al siguiente 'loque. 4l crear un archi%o, se crea una nue%a entrada en el directorio. !l puntero al primer 'loque se inicializa en nil, para indicar que el archi%o esta %aci. 4l realizar una escritura, el sistema administrador de espacio li're encuentra un 'loque li're, este 'loque es escrito y enlazado al final del archi%o. 5o hay fragmentacin externa, cualquier 'loque li're puede ser usado y el tama>o del archi%o no de'e ser declarado,
,+

pudiendo este crecer hasta que no haya 'loques li'res. 4dem#s no se requiere de ning"n esquema de compactacin. 9es%entajas0 solo puede ser usado efecti%amente para acceso secuencial. 1ara o'tener el iesimo 'loque, se comienza desde el principio y se siguen los punteros hasta alcanzar el iesimo. 8ada acceso a un puntero requiere una lectura, por lo cual resulta ineficiente para el acceso directo. Otra des%entaja es el espacio requerido para los punteros. (a solucin es juntar 'loques en m"ltiplos, llamados clusters, y asignar espacio a clusters y no a 'loques. Se puede definir un cluster de + 'loques y manejar unidades en clusters en %ez de 'loques. !l costo es un incremento en la fragmentacin interna, dado que mas espacio es gastado cuando un clusters no es completo. 8lusters sir%en para mejorar el tiempo de acceso a disco. Otro pro'lema es la confia'ilidad. Si un 'loque se da>a se generar&a inconsistencia. Una solucin parcial son las listas do'lemente enlazadas. Una %ariacin importante es el uso de la ta'la de asignacin de archi%os )642*. Una seccin al comienzo del disco contiene la ta'la. 4 ta'la tiene una entrada por cada 'loque de disco. (os 'loques li'res son marcados con un ? en la ta'la, lo cual facilita la '"squeda de 'loques li'res. (a ta'la de'e ser cacheada sino resultara en un gran n"mero de disH seeHs. signacin indeEada( 4signacin enlazada resuel%a la fragmentacin externa y el pro'lema de la declaracin del tama>o de la asignacin contigua. Sin em'argo, en la ausencia de un 642, no puede soportar eficiente acceso directo. (a asignacin indexada lo resuel%e trayendo todos los punteros dentro de una sola u'icacin0 el 'oque &ndice. 8ada archi%o tiene su propio 'loque &ndice, el cual es un arreglo de direcciones de 'loques de disco. (a iesima entrada se corresponde con el iesimo 'loque del archi%o. 8uando se crea un archi%o, todos los punteros del 'loque &ndice son puestos en nil, luego ante la primera escritura del iesimo 'loque, se o'tiene un 'loque li're desde el manejador de espacio li're y su direccin es copiada en la iesima entrada del 'loque &ndice. Soporta acceso directo sin sufrir de fragmentacin externa. Sin em'argo sufre de gasto de espacio por los punteros, ya que se de'e usar un 'loque entero siempre para los punteros. !sto lle%a a la pregunta de que tan grande de'e ser el 'loque &ndice. (a idea es que sea lo mas chico posi'le, ya que cada archi%o tiene uno. Sin em'argo esto lle%a a que se puedan mantener pocos punteros. Se necesita alg"n mecanismo para esto0 !squema enlazado0 un 'loque &ndice es normalmente un 'loque de disco. 1ara grandes archi%os, se enlazan %arios 'loques &ndices. bndice multini%el0 un 'loque &ndice de primer ni%el que apunta a un conjunto de 'loques &ndices de segundo ni%el que apuntan a 'loques del archi%o. !l SO usa el &ndice del primer ni%el para acceder al 'loque &ndice de segundo ni%el. !squema com'inado0 usada en el U6S. (a idea es mantener por ejemplo 1, punteros en el inodo del archi%o. (os primeros 1 apuntan a 'loques directos, es decir, que contienen datos del archi%o. (os $ "ltimos apuntan a 'loques indirectos. !l primero es un 'loque indirecto simple, es decir, apunta a un 'loque que contiene punteros a 'loques de datos del archi%o. !l segundo un 'loque indirecto do'le y el tercero un 'loque indirecto triple. Sufre de algunos pro'lemas de performance. !l 'loque &ndice puede ser cacheado en memoria. ,endimiento( (os m.todos anteriores %ar&an en cuanto a eficiencia de almacenamiento y al tiempo de acceso a 'loque. Seg"n como se use el sistema se elegir# el m.todo de asignacin. 4lgunos sistemas soportan archi%os de acceso directo mediante el uso de asignacin contigua y archi%os de acceso secuencial mediante el uso de asignacin enlazada. !n estos sistemas se de'e declarar que tipo de acceso ser# hecho cuando se crea el archi%o. 4lgunos sistemas com'inan asignacin contigua para peque>os archi%os )+ 'loques*, cam'iando autom#ticamente a asignacin indexada cuando el archi%o supera este tama>o. dministracin del es!acio li're( 9ado que el espacio en disco es limitado, se de'e rehusar este de archi%os 'orrados. 1ara mantener rastro del espacio li're en disco, el sistema mantiene una lista de espacio li're. !sta registra todo los 'loques li'res. 4l crear un nue%o archi%o se 'usca en la lista por el espacio requerido y luego se es quitado de la lista. 4l 'orrar un archi%o su espacio es de%uelto a la lista. =ector de 'its0 frecuentemente, la lista de espacio li're es implementada como un %ector de 'its. 8ada uno de los 'loques es representado por un 'it. Si el 'loque esta li're el 'it es 1, sino es ?. Su principal %entaja es su relati%a simplicidad y su eficiencia al encontrar el primer 'loque li're o los n consecuti%os 'loques li'res. !l %ector de 'its es ineficiente si a no ser que el %ector entero se mantenga en memoria. !sto puede ser posi'le para peque>os discos, pero no necesariamente para los grandes.
,,

(ista enlazada0 se enlazan todos los 'loques li'res, manteniendo un puntero al primer 'loque li're en alguna u'icacin especial del disco y cacheando este en memoria. !l primer 'loque contiene un puntero al siguiente 'loque y as& siguiendo. 5o es eficiente, si se desea atra%esar la lista, hay que leer cada 'loque, lo cual requiere mucha !<S. 4grupamiento0 una modificacin a la lista, es almacenar las direcciones de los n primeros 'loques li'res en el primer 'loque li're. (os n;1 'loques son li'res. !l "ltimo 'loque contiene la direccin de otros n 'loques li'res y as& siguiendo. 1ermite encontrar un gran n"mero de 'loques li'res r#pidamente. 8ontando )8ounting*0 toma %entaja del hecho de que generalmente se usan %arios 'loques contiguos, luego se mantiene la direccin del primer 'loque li're y del n"mero n de 'loques li'res contiguos que siguen del primero 'loque. 4s& cada entrada en la lista de espacio li're contiene una direccin y un contador.

%ficiencia 6 rendimiento( !ficiencia0 depende en gran medida del algoritmo usado para asignacin de disco y de directorio. 2am'i.n es afectada por mantener atri'utos como la fecha de "ltima escritura y la fecha de "ltimo acceso, as& como tam'i.n por el tama>o de los punteros. (as dificultades en escoger un tama>o de puntero o de optar por un tama>o fijo de asignacin, son los efectos de la tecnolog&a cam'iante. 7endimiento0 (a mayor&a de los controladores de disco incluyen una memoria local para formar una cache, lo suficientemente grande para guardar %arios tracHs a la %ez. 4lgunos sistemas mantienen una seccin separada de memoria principal para un 'uffer cache, donde 'loques son mantenidos suponiendo que ser#n usados en 're%e. Otros cachean archi%os usando page cache. !ste usa t.cnicas de memoria %irtual para cachear datos de archi%os como paginas en %ez de 'loques. =arios sistemas lo usan para cachear tanto p#ginas de proceso como de datos de archi%os. !sto se conoce como memoria %irtual unificada. Otra cuestin que puede afectar el rendimiento es si las escrituras son sincrnicas o asincrnicas. Sincrnicas ocurren cuando la escritura no es 'uffered. (a rutina de'e esperar a que los datos lleguen al manejador del disco antes de poder continuar. !n asincrnica, los datos se guardan en cache y el control retorna al llamador. ,ecu!eracin( 8omo archi%os y directorios son mantenidos en memoria y disco, hay que tomar precauciones para que una falla no resulte en perdida de datos o en inconsistencia de datos. 8hequeo de consistencia0 alguna informacin del directorio es mantenida en memoria principal para aumentar la %elocidad de acceso. !sta informacin se encuentra mas actualizada que la que esta en disco. 4nte una falla lo que esta en memoria se puede perder. !l chequeador de consistencia, un programa de sistema que corre en el momento de 'ooteo, compara los datos en la estructura del directorio con los 'loques de datos en el disco e intenta arreglar las inconsistencias que encuentre. EacHup y restauracin0 pueden ser usados programas del sistema que realicen copias de seguridad de los datos desde el disco hacia otro dispositi%o de almacenamiento. (uego recuperarse de una perdida, se realiza una restauracin desde la copia de seguridad. Sistema de arc+ivos estructurados en registros( !l algoritmo de recuperacin 'asado en registros para 'ases de datos, se puede aplicar exitosamente al pro'lema del chequeo de consistencia. (a implementacin resultante es conocida como sistema de archi%os orientado a transacciones 'asado en registros )o journaling*. 4unque se puede permitir a las estructuras a romperse y luego repararse con la recuperacin, esto tiene %arios pro'lemas. 1rimero la inconsistencia puede ser irrepara'le. Segundo uso tiempo del sistema y procesador. (a solucin es usar la t.cnica mencionada para actualizar los metadatos del sistema de archi%os. (o usa 526S. 6undamentalmente, todos los cam'ios en metadatos son escritos secuencialmente en un registro )log*. 8ada conjunto de operaciones para realizar una tarea es una transaccin. Una %ez que los cam'ios fueron escritos en el log, se consideran commited y se retorna el control al proceso. !stas entradas en el log son repetidas a tra%.s de la estructura actual del sistema de archi%os. Una %ez que una transaccin commited fue completada, es sacada del log. !ste log se puede implementar mediante un 'uffer circular. (uego ante una falla, las transacciones que se encuentran en el log de'en ser completadas. N.S( com"nmente son integrados con la estructura total del directorio y la interfaz del sistema cliente. !s un ejemplo de un sistema de archi%os ampliamente usado y 'ien implementado m.todo cliente;ser%idor de red. !s tanto una implementacin como una especificacin de un sistema de software ara el acceso remoto a archi%os a tra%.s de (45s o B45s.
,/

=ista general0 56S luce como un conjunto de estaciones de tra'ajo interconectadas como un conjunto de independientes maquinas con sistemas de archi%os independientes. !l o'jeti%o es permitir alg"n grado de intercam'io entre estos sistemas de archi%os, mediante pedidos expl&citos, de manera transparente. !l intercam'io es 'asado en la relacin cliente;ser%idor. !l intercam'io es permitido entre un par de maquinas y para asegurar la independencia, compartir un sistema de archi%os afectara solo a al maquina cliente. (a operacin de montaje comprende montar un directorio remoto so're un directorio del sistema local. !l directorio local se %uel%e el nom're de la ra&z del directorio remoto. Se de'e especificar en un par#metro la u'icacin )o host name* del directorio remoto. 2am'i.n se permite montaje en cascada, es decir, se puede montar un sistema de archi%os so're que es remotamente montado. Opera en am'ientes heterog.neos de diferentes maquinas, SOs y arquitecturas de red. !sta independencia es o'tenida mediante el uso de primiti%as 718 construidas por encima de un protocolo de representacin de datos externos )^97*. 1rotocolo de montaje0 esta'lece la conexin lgica inicial entre un ser%idor y un cliente. Una operacin de montaje requiere del nom're del directorio remoto a ser montado y el nom're de la maquina ser%idor almacenando este. !l pedido es mapeado a la correspondiente 718 y es en%iado al proceso ser%idor corriendo so're la maquina ser%idor especifica. !l ser%idor mantiene una lista de exportacin que especifica que sistema de archi%os esta exportando para montaje. 2odos los directorios dentro de un sistema de archi%os exportado pueden ser montados remotamente. !l ser%idor tam'i.n mantiene una lista de las maquinas clientes y los correspondientes directorios actualmente montados. !so es usado para propsitos administrati%os. !l protocolo 56S0 pro%ee un conjunto de 718s para operaciones de archi%os remotos. Soporta0 '"squeda de un archi%o dentro de un directorio, lectura de un conjunto de entradas de directorio, manipulacin de enlaces y directorios, acceso a atri'utos de archi%o y lectura y escritura de archi%os. !stos procedimientos solo se pueden usar luego de que se haya esta'lecido una comunicacin, y el ser%idor haya retornado al cliente el manejador de archi%os para el directorio remotamente montado. Una escritura 56S simple es garantizado a ser atmico y no ser# mezclado con otras llamadas a escritura para el mismo archi%o. Sin em'argo, no pro%ee mecanismos de control de concurrencia. !l 56S es integrado dentro de un SO por medio del =6S. 2raduccin del nom're de la ruta de acceso0 implica el an#lisis del nom're de la ruta de acceso tal como <usr<dir<file.txt en separadas entradas al directorio )o componentes*0 1; usr y ; dir. !s realizado por romper la ruta de acceso en nom'res de componentes y realizar separados 56S looHup call. Operaciones remotas0

,G

%strcutura del almacenamiento masivo 8uando un proceso necesita hacer una operacin de !<S, hace el pedido al sistema operati%o indicando si la operacin es lectura o escritura, la direccin del disco para la transferencia, la direccin de memoria para la transferencia y el n"mero de sectores a transferir. Si no hay ninguna operacin pendiente so're ese dispositi%o de almacenamiento, el SO puede ser%ir el pedido inmediatamente, si hay operaciones pendientes, entonces esta ingresa en una cola de espera. 8uando se termina una operacin de la cola, el SO de'e elegir otra para satisfacer, hay para esto %arias formas de hacerlo. .irst come first served( !s la forma m#s sencilla, los despacha por orden de llegada, aunque suele no ser la forma m#s r#pida de hacerlo. S+ortest see1 time first( !l algoritmo elige el pedido que requiere menos mo%imiento del ca'ezal, es decir el que est# m#s cerca de la posicin actual del ca'ezal. Su des%entaja es que puede causar inanicin. Si 'ien es una mejora al algoritmo 686S, este no es ptimo. Scan sc+eduling( !n este algoritmo el ca'ezal del disco se un extremo del disco al otro, y %a satisfaciendo los pedidos a medida que llega a cada cilindro, cuando alcanza el final del disco el 'razo in%ierte el recorrido, y es este el principal defecto de este algoritmo, ya que %ol%er# a pasar por los cilindros que fueron recientemente ser%idos, cuando pro'a'lemente la mayor parte de las solicitudes requieran escri'ir en el otro extremo. &-S& N sc+eduling( !s similar al anterior pero al alcanzar un extremo del disco el 'razo inmediatamente regresa al principio sin ser%ir ning"n pedido en el camino. /OON 6 &-/OON sc+eduling( Son %ersiones mejoradas de los dos algoritmos anteriores, donde el 'razo en %ez de mo%erse hasta el final del disco, se mue%a hasta satisfacer el pedido m#s lejano, para luego in%ertir el recorrido o %ol%er al inicio seg"n corresponda. %leccin del algoritmo( (a eleccin del algoritmo depende claramente del n"mero y tipo de solicitudes que se le %aya a hacer al mismo, dado que esto %aria frecuentemente, el algoritmo de'er&a ser escrito como un modulo del SO, para que sea sencillo reemplazarlo por otro, SS26 y (OOc son 'uenos algoritmos para usar por default. (os discos m#s modernos incorporan sus propios algoritmos de planificacin dentro de su LB, si 'usc#semos una performance ideal, de'er&amos dejar que este sea el "nico algoritmo, pero dado que el SO no solo utiliza el disco para guardar datos, sino tam'i.n para hacer pagging y otras tareas que tienen diferentes prioridades, el SO no puede desatender la planificacin. $ane7o de Discos( .ormato( Un disco en 'lanco es solamente un plato magn.tico de material gra'a'le, antes de poder usarse para almacenamiento de'e formatearse, es decir, di%idirlo en sectores que puedan ser escritos<le&dos, el formateo llena el disco con una estructura de datos especial para cada sector. !sta consiste de un enca'ezado, un #rea de datos y una cola. !l enca'ezado y la cola contienen informacin que utiliza el controlador del disco, como el n"mero del sector y un cdigo corrector de errores. 1ara aumentar la eficiencia, %arios sistemas de archi%os agrupan 'loques contiguos en grandes pedazos llamados clusters. (a entrada y salida del disco es a tra%.s de 'loques y la entrada y salida del sistema de archi%os es hecha a tra%.s de clusters. <lo0ue de 'ooteo( 8uando una computadora comienza su ejecucin, ejecuta un programa especial llamado 'ootstrap encargado de iniciar el SO, los registros del 81U, los controladores y la memoria principal. (a mayor&a de las computadoras almacenan el 'ootstrap en una memoria especial 7O3, la misma es de solo lectura,
,J

por lo que presenta pro'lemas a la hora de actualizarla, por esta razn, se guarda en la 7O3 solo una peque>a parte del 'ootstrap que se encarga de cargar el resto desde una direccin fija en el disco. <lo0ues defectuosos( 9ado que los discos contienen partes m%iles, son propensos a fallas. 4 %eces estas fallas son completas en cuyos casos se necesita cam'iar el disco completo. 3#s frecuentemente puede ocurrir que algunos sectores se %uel%an defectuosos, para lidiar con esto existen distintas maneras, por ejemplo 3S;9OS se escanea'a el disco en 'usca de sectores defectuosos, para luego actualizar la entrada correspondiente en la ta'la 642 con un %alor especial que le dec&a al controlador que no use ese 'loque. (os discos m#s sofisticados como los S8S- mantienen una ta'la con los sectores defectuosos, la misma se crea durante el formateo a 'ajo ni%el, y se actualiza cada %ez que se encuentra un error. $ane7o del es!acio de intercam'io( #so del es!acio de intercam'io( Se usa de diferentes formas en diferentes SOs. 1or ejemplo, los sistemas que implementan swapping o intercam'io, pueden usar el espacio de intercam'io para mantener la imagen de un proceso entero. (os sistemas paginados pueden usarlo simplemente para almacenar p#ginas que fueron sacadas de memoria. !s importante mantener un espacio de intercam'io acorde, preferi'le asignar de mas y no de menos, ya que en caso de quedarse sin espacio de intercam'io, el SO se %e o'ligado a a'ortar un proceso por lo que el sistema entero puede colapsar. #'icacin del es!acio de intercam'io( 1uede residir en dos lugares distintos. !l sistema de archi%os normal, o una particin separada. Si elegimos la primera, pueden usarse rutinas del sistema de archi%os para crearlo, nom'rarlo y asignar su espacio. !sta forma es m#s f#cil de implementar pero m#s ineficiente, ya que na%egar por los directorios requiere m#s accesos a disco. (a fragmentacin externa, puede aumentar los tiempos de intercam'io. 1odemos aumentar la performance, cacheando la u'icacin del 'loque en memoria f&sica, y usar t.cnicas especiales para asignar 'loques contiguos de memoria f&sica a los archi%os de intercam'io. 4lternati%amente el espacio de intercam'io puede ser creado en una particin sin formato. 9ado que no existe un sistema de archi%os, o una estructura en directorio, un manejador del #rea de intercam'io independiente se usa para asignar y desasignar los 'loques. !ste manejador es optimizado en cuanto a %elocidad y no a eficiencia. (a fragmentacin interna puede crecer, pero es acepta'le por la corta %ida de los datos en el #rea de intercam'io. %structura , ID( 9ado que los discos se %uel%en cada %ez m#s econmicos y ocupan menos espacio f&sico se hace posi'le a>adir %arios discos a un sistema, por lo que podemos mejorar el rendimiento y la esta'ilidad al escri'ir en forma paralela so're todos los discos. !sto es lo que se conoce como 74-

,K

Sistemas %*S !l SO es el encargado de manejar los dispositi%os de !<S, de'ido a la %ariedad y complejidad de los mismos, es una de las tareas mas dif&ciles de lle%ar a ca'o, por lo general se implementa como un su'sistema separado del Hernel. 9ado que los dispositi%os cam'ian con el tiempo o se desarrollan nue%os, el Hernel del SO usa un dri%er para estandarizar las operaciones, estos dri%ers suelen ser mdulos del SO. Lardware de !<S (os dispositi%os se comunican con la computadora en%iando se>ales, estas se>ales se en%&an por un 'us siguiendo un protocolo determinado el cual determina que mensajes se pueden en%iar por el mismo. Un controlador es un conjunto de electrnicas que pueden operar so're un 'us, un puerto, o un dispositi%o. 4lgunos dispositi%os tienen sus propios controladores, como los discos, el cual se encarga de mapear sectores defectuosos, etc. (os controladores tienen sus registros y se>ales de control, a tra%.s de estos el procesador puede comunicarse con el<los dispositi%os, otra manera de comunicarse es mapear los registros del controlador del dispositi%o a memoria, y usar las instrucciones est#ndar de transferencia de datos. Un puerto de !<S consiste '#sicamente de + registros0 9ata;in0 registro le&do por el host para la entrada de datos. data;out0 registro escrito por el host para en%iar datos. status0 contiene los 'its que puede leer el host, indica el estado. control0 registro escrito por el host para empezar un comando, o cam'iar el modo de un dispositi%o. .uncionamiento( Se asume que se usan dos 'its para coordinar las operaciones, el 'ussy 'it )status register* y el command;ready 'it )comand register del lado del host* 1; !l host lee el 'ussy 'it hasta que este en ?. ; !l host setea el write 'it en el command register y escri'e los datos en el registro data;out $; !l host escri'e 1 en el command;ready 'it. +; 8uando el controlador detecta 1 en el command;ready 'it, setea el 'ussy 'it en 1. ,; !l controlador lee el command;register y detecta que es una operacin de tipo write, por lo que lee el registro data;out y realiza la operacin de !<S. /; !l controlador pone en ? el command;ready 'it, pone en ? el error 'it )status register* para indicar que no hu'o errores, y pone en ? el 'usy 'it para indicar que esta ocioso nue%amente. 5tese que este mecanismo puede mejorarse, por ejemplo si en %ez de que el host tenga que encuestar continuamente al controlador para %er cuando este esta disponi'le, el controlador pudiese a%isar al 81U cuando esta li're se ahorrar&an %arios ciclos, esto se puede manejar con interrupciones. Interru!ciones(

/?

!l 81U tiene un pin llamado linea de pedido de interrupcin, el cual lee despu.s de ejecutar cada instruccin, cuando detecta que un controlador en%&o una se>al a tra%.s de esta linea, guarda su estado actual y procede a ejecutar el manejador de interrupcin el cual se encuentra en una posicin fija en memoria, este manejador determina la causa de la interrupcin, realiza las tareas necesarias para procesarla, recupera el estado guardado del 81U y retorna la ejecucin normalmente. 4s& mismo en SO modernos se requieren m.todos mas eficientes para el manejo de interrupciones, entre ellas0 1; (a ha'ilidad de posponer una interrupcin durante un proceso critico. ; Se de'e poder tener una manera eficiente de sa'er cual fue el dispositi%o que pro%oco la interrupcin sin encuestar a todos. $; -nterrupciones multini%el para separarlas por prioridades. !stas tres caracter&sticas las pro%ee el 81U y el controlador de interrupciones. (os 81U tienen dos lineas de interrupcin la primera para errores irrecupera'les en memoria, y la segunda que puede ser ignorada por el 81U mientras realiza operaciones criticas que no pueden ser interrumpidas. !s esta segunda linea la que usa para los dispositi%os de !<S. !l mecanismo de interrupcin acepta una direccin, donde se encuentra el manejador, suele ser un desplazamiento dentro del %ector de interrupcin. !l mecanismo de interrupcin tam'i.n permite a una interrupcin de una prioridad alta apropiarse de la ejecucin cuando se esta ejecutando una de prioridad mas 'aja. !l SO en su 'ootea escanea todos los 'uses para detectar los dispositi%os presentes y agregar los manejadores de interrupciones al %ector. !xisten %arias maneras de usar interrupciones en el sistema, no solo para manejar !<S o para errores de memoria, tam'i.n se usa para hacer llamadas al sistema )interrupcin por software o trap* o para implementar paginado. D$ ( 1ara un procesador de propsito general es una perdida de tiempo muy grande, al hacer operaciones de !<S, o'ser%ar el 'it de estado, almacenar los datos en los registros de los controladores, etc. 4lgunos sistemas para e%itar esto pro%een un procesador dedicado llamado 934. 1ara realizar una operacin de !<S el host escri'e un 'loque 934 en memoria, el mismo contiene un puntero al origen de los datos, un puntero al destino y un contador de los 'ytes de datos que de'en ser transferidos. !l 81U escri'e la direccin de este 'loque en el controlador del 934 y continua con su tra'ajo. (uego es 934 opera directamente so're el 'uses sin ayuda del 81U. .uncionamiento( (a comunicacin entre el 934 y el controlador de los dispositi%os se hace a tra%.s de pines, llamados 934; request y 934;acHnowledge, el controlador en%&a una se>al al 934;request cuando un 'loque de datos esta listo para ser transferido, lo que causa que el 934 indique a la memoria la direccin donde escri'ir, a tra%.s de sus pines, luego en%&a la se>al a tra%.s del 934;acHnowledge, cuando el controlador reci'e la se>al, transfiere el dato a memoria y elimina la se>al del 934;request. 8uando termina la transferencia el controlador del 934 interrumpe al 81U. !!lication I*O interface( 1ara que el SO pueda a'straerse de los diferentes tipos de dispositi%os de !<S se usan %arias t.cnicas, que incluyen encapsulacin, a'straccin y distintas capas. Se puede decir que existen las siguientes capas, primero el Hernel del SO )SB*, luego el modulo del SO que se encarga de la !<S )SB*, luego los dri%ers de los dispositi%os
/1

)SB*, luego los controladores de los dispositi%os )LB* y por ultimo el dispositi%o de !<S en si )LB*. (a idea del dri%er es actuar como interface para esconder las diferencias de los controladores de los dispositi%os de !<S al modulo del Hernel que se encarga de la !<S. !sta t.cnica de hacer que el SO sea independiente a los dispositi%os de !<S hace mas f#cil la tarea de desarrollar un SO y tam'i.n la de desarrollar LB de !<S. 5tese que si 'ien al in%entarse un nue%o dispositi%o de !<S no hay que esperar a que el SO se actualice ya que el mismo es independiente al los dispositi%os tiene como contra que los fa'ricantes de estos dispositi%os de'en sacar al mercado un dri%er para cada SO )9OS, Bindows, (inux, etc*. 7elojes y temporizadores0 2odas las computadoras tienen relojes por LB que pro%een tres operaciones '#sicas0 1; 9ar la hora actual. ; 9ar el tiempo usado. $; Setear un reloj para que ejecute ^ operacin a F hora. 9esafortunadamente estas operaciones no est#n estandarizadas en los distintos SO. !l SO de'e pro%eer a las aplicaciones de m.todos para que puedan usar estos relojes, si 'ien existen una cantidad finita de ellos, el SO puede asignar a las aplicaciones mas relojes que los que tiene disponi'les, para ello usa relojes %irtuales, que son colas en donde se mantiene un orden. %*S 'lo0ueante 6 no 'lo0ueante( 8uando una aplicacin realiza una llamada al sistema 'loqueante, la ejecucin de dicha aplicacin es suspendida, es mo%ida a la cola de espera, una %ez que la llamada al sistema es atendida, la aplicacin %uel%e a la cola de ejecucin y espera su turno. Se usa mucho este tipo de llamadas 'loqueantes ya que es mas f#cil de entender, sin em'argo, algunas aplicaciones mas que nada del ni%el de usuario requieren ser no 'loqueantes, por ejemplo, aquellas que reci'en entrada del teclado mientras se ejecutan. Una 'uena t.cnica es usar %arios threads para un proceso, algunos de los cuales son 'loqueantes y otros no. Otra alternati%a es la llamada al sistema as&ncrona, la cual una %ez realizada la llamada permite continuar la ejecucin de la aplicacin, una %ez que se completo la operacin de !<S la aplicacin es interrumpida, la diferencia con la no 'loqueante es, que en esta ultima, cuando se llama a la funcin read)* esta retorna inmediatamente con los datos que halla disponi'les, pudiendo no estar completos. Su'sistema de %*S del 1ernel( Planificacin de %*S( 8uando un proceso solicita realiza una operacin de !<S la peticin se manda a la cola de espera del dispositi%o, ntese que rara %ez el orden de llegada es el ideal, por lo que el su'sistema de !<S puede reordenar estas colas para dar una mejor performance al SO. <uffering( !l 'uffering es una t.cnica que se usa para la transferencia de datos entre dos dispositi%os o entre un dispositi%o y una aplicacin, consiste en poner un 'uffer entre am'as partes para contrarrestar las diferencias de %elocidad, por ejemplo, entre un mdem y un disco, el mdem al ir reci'iendo los datos los %a almacenando en un 'uffer, cuando reci'e el dato completo, el disco lo toma del 'uffer y lo escri'e de una sola %ez. !l 'uffering tam'i.n se usa en redes, cuando el dispositi%o que en%&a un dato, parte este dato en peque>os fragmentos para poder en%iarlos, el receptor los almacena en un 'uffer y cuando est.n todos los fragmentos, procede a unirlos.
/

Otro de los usos es para Wcopy semanticsW cuando una operacin realiza la llamada al sistema write)* almacena los datos en un 'uffer, se esta manera si la aplicacin cam'iase esos datos no importar&a porque ya est#n almacenados en un 'uffer, por lo que la llamada al sistema se garantiza siempre tener el dato que le entregaron cuando fue llamada. &ac+ing( Una cache es una porcin de memoria que almacena copia de datos. Suele ser una memoria muy r#pida, la diferencia entre cache y 'uffer, es que un 'uffer puede contener un dato "nico en el sistema, mientras que la cache, por definicin, solo contiene copias. S!ooling 6 reservacin de dis!ositivos( Un spool es un 'uffer, que act"a como salida a dispositi%os que solo pueden lle%ar a ca'o un solo tra'ajo a la %ez, por ejemplo, una impresora. 8uando se manda mas de un tra'ajo a la impresora, realmente se en%&a uno solo, el primero, los dem#s quedan en el spool, luego que la impresora termina este tra'ajo, le mecanismo de spool en%&a el siguiente. !l SO, por lo general, pro%ee una interface para manejar el spooling, es decir, cancelar tra'ajos, demorar, agregar nue%os, etc. Otros SO pro%een funciones para 'loquear un dispositi%o y luego li'erarlo una %ez que se termino de usar, en estos casos es responsa'ilidad de la aplicacin el e%itar deadlocHs. $ane7os de errores( (os dispositi%os de !<S pueden fallar de %arias maneras, el SO de'e pro%eer mecanismos para so'relle%ar esto, por ejemplo si la llamada al sistema read)* falla, el SO puede reintentarla. 8omo regla general, cada %ez que el sistema ejecute una llamada al sistema de !<S la misma de%ol%er# en un 'it el estado de la misma )si fallo o no*. !n Unix suele existir un entero, que de%uel%e el cdigo de error. Proteccin de %*S( (os SO distinguen entre distintos tipos de operaciones de !<S con distintos pri%ilegios, cuando el proceso realiza una llamada de !<S el SO %erifica que el mismo cuente con los permisos necesarios, si es as&, procede a la ejecucin de la misma.

/$

Parte D - Sistemas Distri'uidos %structura del sistema distri'uido Un sistema distri'uido es un conjunto de procesadores que no comparten memoria, ni un reloj, pero est#n conectados entre ellos a tra%.s de una red. (os procesadores en un sistema distri'uido pueden %ariar en tama>o y funcin. Se los conoce por %arios nom'res, como sitios, nodos, computadoras, hosts dependiendo del contexto. Usamos sitio para indicar la u'icacin de una maquina y host para referirnos al sistema especifico de un sitio. (as razones por la cual se construye un sistema distri'uido son0 8ompartir recursos0 un nodo dentro del sistema puede usar los recursos disponi'les en el resto de los nodos. !n general compartir recursos en un S9 pro%ee mecanismos para compartir archi%os, procesar informacin en una 'ase de datos distri'uida, imprimir archi%os en otro nodo y usar hardware remoto especializado. 4celeracin de la computacin0 si un cmputo puede particionarse en su'computos que pueden correr concurrentemente, entonces un S9 nos permite distri'uir estos su'computos entre %arios nodos, permiti.ndoles correr simult#neamente y generando un aumento en la %elocidad del cmputo. 4dem#s, si un nodo en particular esta so'recargado, se puede mo%er determinadas tareas a otro nodo, lo cual se conoce como 'alance de carga. !sta'ilidad0 Si un nodo falla en un S9, el resto puede seguir tra'ajando, otorgando al sistema mayor esta'ilidad. Sin em'argo, si un sistema esta compuesto de maquinas peque>as donde cada una es responsa'le de lle%ar a ca'o funciones criticas del sistema, luego una peque>a falla puede colapsar el sistema entero. !n general, otorgar redundancia )en hardware y datos* hace que el sistema pueda seguir operando aun cuando un nodo falle. Una falla de'e ser detectada y se de'en tomar acciones para recuperarla. !n este caso el nodo es apartado para luego, una %ez solucionada la falla, %ol%er a reint.gralo al sistema. 8omunicacin0 8uando %arios nodos est#n conectados a tra%.s de una red, los usuarios de los diferentes nodos pueden intercam'iar informacin, que a 'ajo ni%el son mensajes entre sistemas. ;i!os de SD( !xisten tipos0 SO de red y SO distri'uidos.

SO de red( Un SO de red pro%ee un entorno en que los usuarios pueden acceder a recursos remotos, identific#ndose en la maquina remota y transfiriendo datos a su propia maquina. (ogin remoto0 una funcin importante en un SO de red es permitir a los usuarios identificarse remotamente. -nternet pro%ee 2!(5!2 para este propsito. Una %ez que el cliente se identifico con .xito, puede operar en la maquina remota como si fuese un usuario local. 2ransferencia de archi%os remota0 estos sistemas de'en pro%eer un mecanismo para transmitir archi%os de forma remota, en donde cada nodo posee su propio sistema de archi%os. -nternet pro%ee algunos mecanismos para lograr esto, como 621. Si un usuario desea acceder a un archi%o de otro nodo, este archi%o de'e ser copiado expl&citamente de la computadora remota. (os nodos no comparten los archi%os realmente, dado que el usuario puede solamente copiar un archi%o de un nodo, por lo que pueden ha'er %arias copias de un mismo archi%o, causando p.rdidas de tiempo, espacio y pro'a'lemente inconsistencias. SO distri'uidos( !n estos sistemas los usuarios pueden acceder a recursos remotos de la misma manera que lo har&an si fueran recursos locales. (a migracin de datos y procesos de un nodo a otro, esta 'ajo el control del sistema distri'uido. 3igracin de datos0 si un usuario del nodo 4 necesita acceder datos de un nodo E, el sistema puede transferir los mismos de dos maneras. (a primera, transfiriendo todo el archi%o, una %ez modificado y si el usuario ya no lo necesita, el archi%o %uel%e a ser transferido para actualizarse. 4un si el usuario realizo peque>os cam'ios a un gran archi%o, todo el archi%o de'e ser en%iado. (a segunda, es transferir solo las partes necesarias cuando sea necesario, en%iando al terminar solo las partes que fueron modificadas. 3igracin de cmputo0 en algunos casos es preferi'le transferir el cmputo y no archi%os. Si un nodo quiere listar los archi%os de otro nodo, es preferi'le en %ez de pasar todos los archi%os, en%iar este tra'ajo al nodo remoto, que este escanee los archi%os de forma local para luego de%ol%er el resultado. !n general, si el tiempo para transferir los datos es mayor que el tiempo para ejecutar el comando remoto, de'emos usar la segunda opcin. Lay dos maneras de realizar esto, la primera a tra%.s de 718, el cual usa un datagrama para ejecutar una rutina en un sistema remoto. !l proceso local in%oca un procedimiento predefinido en el nodo remoto, el cual se ejecuta y de%uel%e el resultado. (a segunda manera, es que el proceso local en%&e un
/+

mensaje al nodo remoto, el SO remoto crea un nue%o proceso el cual lle%a a ca'o la tarea asignada, una %ez finalizada de%uel%e el resultado al proceso in%ocador %&a mensaje. 3igracin de procesos0 es una extensin lgica de la migracin de cmputo. 8uando un proceso comienza su ejecucin, no se ejecuta siempre en el mismo nodo que fue iniciado. !l proceso entero o algunas partes pueden ejecutarse en diferentes nodos. 7azones0 'alance de carga, aceleracin de cmputos, preferencias de hardware, preferencias de software y acceso a datos. (450 local area networH, las computadoras est#n distri'uidas en peque>as #reas, como oficinas. B450 wide area networH, las computadoras est#n distri'uidas en grandes #reas, como un pa&s. Su principal diferencia es la %elocidad y la esta'ilidad de la comunicacin. ;o!olog9a de la red( Se diferencian distintos tipos0 7ed conectada totalmente0 todos los nodos est#n conectados entre si por conexiones directas. !l n"mero de conexiones es el n"mero de nodos al cuadrado, causando un gran costo de instalacin. 7edes parcialmente conectadas0 existen conexiones entre algunos de los nodos. !l costo de instalacin es 'ajo, sin em'argo, si dos nodos que no est#n directamente conectados se en%&an mensajes, el mismo de'e ser ruteado. !sto causa un mayor costo de comunicacin.

/,

Anda mungkin juga menyukai