Sei sulla pagina 1di 50

mdem, para comunicacin va red telefnica, y las tarjetas de interfaz a la red, para conec tar la computadora a una red

de rea local. El gran problema de todos estos dispositivos de E/S es que son muy lentos. iense que mi en tras la !" procesa instrucciones a casi # $%z y la memoria &'( tiene un tiempo de acceso de nanosegundos, los dispositivos de E/S ms rpidos tienen una velocidad de acceso del orden de milisegundos )*ig. +.,-. Esta diferencia en la velocidad de acceso, y el .ec.o de que las aplicacio nes son cada vez ms interactivas y necesitan ms E/S, .ace que los sistemas de E/S sean el cuello de botella ms importante de los sistemas de computacin y que todos los sistemas operativos dediquen un gran esfuerzo a desarrollar y optimizar todos los mecanismos de E/S. iense, por ejemplo, que el mero .ec.o de seguir el curso de un ratn supone inspeccionar su posicin varias veces por segundo. /gualmente, los dispositivos de comunicaciones interrumpen continuamente el flujo de ejecucin de la !" para comunicar la llegada de paquetes de datos. El sistema de E/S es la parte del sistema operativo que se ocupa de facilitar el manejo de los dispositivos de E/S ofreciendo una visin lgica simplificada de los mismos que pueda ser usada por otros componentes del sistema operativo )como el sistema de arc.ivos- o incluso por el usuario. (ediante esta visin lgica se ofrece a los usuarios un mecanismo de abstraccin que oculta todos los detalles relacionados con los dispositivos fsicos, as como del funcionamiento real de los mismos. El sistema operativo debe controlar el funcionamiento de todos los dispositivos de EIS para alcanzar los siguientes objetivos:

0 *acilitar el manejo de los dispositivos de E/S. ara ello debe ofrecer una interfaz entre los dispositivos y el
resto del sistema que sea sencilla y fcil de utilizar.

0 1ptimizar la E/S del sistema, proporcionando mecanismos de incremento de prestaciones donde sea
necesario.

0 0

roporcionar dispositivos virtuales que permitan conectar cualquier tipo de dispositivo fsico sin que sea necesario remodelar el sistema de E/S del sistema operativo. ermitir la cone2in de dispositivos nuevos de E/S, solventando de forma automtica su instalacin usando mecanismos del tipo plug3play.

En este captulo se caracterizan los componentes que constituyen el .ard4are de E/S de una computadora, se define la arquitectura del sistema de E/S de una computadora y se estudian algunos de los componentes ms importantes del sistema de E/S, tales como los sistemas de dato secundario y terciario, los terminales, los relojes, los dispositivos de red, etc. ara terminar se muestran los servicios de E/S ms .abituales en sistemas operativos, con ejemplos de programacin que involucran llamadas al sistema de E/S

567 Sistemas 1perativos. !na visin aplicada

+.,. "'&'"8E&/9'"/:; <E =1S </S 1S/8/>1S <E E/S

=a visin del sistema de E/S puede ser muy distinta dependiendo del nivel de detalle necesario en su estudio. ara los programadores, el sistema de E/S es una caja negra que lee y escribe datos en dispositivos e2ternos a trav?s de una funcionalidad bien definida. ara los fabricantes de dispositivos, un dispositivo es un instrumento muy complejo que incluye cientos o miles de componentes electrnicos o electromecnicos. =os dise@adores de sistemas operativos se encuentran en un lugar intermedio entre los dos anteriores. =es interesa la funcionalidad del dispositivo, aunque a un nivel de detalle muc.o ms grande que la funcionalidad que espera el programador de aplicaciones, pero tambi?n les interesa conocer la interfaz fsica de los dispositivos y su comportamiento interno para poder optimizar los m?todos de acceso a los mismos. En esta seccin se estudia brevemente cmo se conecta un dispositivo de E/S a una computa dora y se lleva a cabo una caracterizacin de los dispositivos de E/S segAn sus m?todos y tama@o de acceso, su forma de programacin, etc. +.,.#. "one2in de un dispositivo de E/S a una computadora =a *igura +.5 muestra el esquema general de cone2in de perif?ricos a una computadora /<e (iguel, #BBCD. En el modelo de un perif?rico se distinguen dos elementosE

0
F

erif?ricos o dispositivos de E/S. Elementos que se conectan a la unidad central de proceso a trav?s de las unidades de entrada/salida. Son el componente mecnico que se conecta a la computadora. "ontroladores de dispositivos o unidades de E/S. Se encargan de .acer la transferencia de informacin entre la memoria principal y los perif?ricos. Son el componente electrnico a trav?s del cual se conecta el dispositivo de E/S. 8ienen una cone2in al bus de la computa dora y otra para el dispositivo )generalmente mediante cables internos o e2ternos-.

*igura +.5. Conexin de dispositivos de EIS )/ una computadora.

<igitalizacin realizada con propsito acad?mico

56L

Sistemas 1perativos. !na visin aplicada #.


Devlce
Ox03F6-0x03F6 OxO 1 70-0xO 1 77 Ox0376-0x0376 OxE * -0xE * 3F Primary lOE Chennel Sec n!arv "DE Channel O K O K O K O K O

Entrada/Salida 566

System /n*ormation

D 5ystem Summary "G #ar!$are %es urces


!
C n'licts(Sharin) DD/0

Seconderv l1E C&ennel


+ntel,%- P%O(lOO. /ana)ement 0!1

OxE200-0xE23F Creative 0u!i tanto PC+ ,E513713E51373-4 =os controladores son muy variados, casi como los dispositivos de E/S. (uc.os de ellos, como los de "qfWl:T'~ !:"i M NM M D"E;Et1D M 5",stem Infornlation K PM Ox0500-0x0507 6ame P rt ' r Creative O "G pueden F rce! #ar!$are disco, mAltiples dispositivos. 1tros, como los de canales de E/S, incluyen PK I controlar Ox0050-0x0051 K De$ /M Pr )r amma&le / MGKOOK/MMNMMNM=M=MMMMNKKKK interru8t c ntr ller O NNNNNN N su propia !" y bus K para !"1l7l controlar la E/S por programa y evitar interrupciones en la !" de la computadora. <e cualquier forma, en los OxOO0O-OxOO0+ Pr )ramma&le interru8t c ntr ller O 91 : 1; +%<s K Ox00*0-0x00*3 System timer O Altimos "G /em a@os ry .a e2istido un esfuerzo importante de estandarizacin de los dispositivos, lo que permite usar un K OxOOOODirect mem ry aeeess c tr ller O HIJ# =- "omponents OxOOOF K mismo controlador para dispositivos de distintos fabricantes. !n buen ejemplo lo constituyen los dispositivos S"S/ Ox0021-0x0023 Direct mem ry access c ntr ller O ! S 't$are Envir nment K Ox0027 -Ox0027 Direct mem ry access c ntr ller O )Srna/l "omputer Svstern interftice-, cuyos controladores ofrecen una interfaz comAn independientemente de que >1?>?@ =; /nternet E2plorer 6 K Ox002B-0x0022 Direct mem ry eccess c ntr ller O 'A" "G 088licati ns un disco, una cinta, un "<K&1(, etc. 1tro buen ejemplo se trate de son los controladores /<E )/n tegrated <rive K Ox002F-Ox00B1 Direct mem ry eccess c ntr ller O K Electronics-, que suelen usarse para conectar los discos computadoras personales. En cualquier caso, y OxOOCODirect mem ry eccess c ntr en ller todas las O OxOODF K Ox0060-0x0060 PC(0C Enhance! PS(5 Key& ar! ,lO O sea como sea el controlador, su misin es convertir los datos del formato interno del dispositivo a uno e2terno que K Ox006*-0x006* O PC(0C Enhance! PS(5 Key& ar! u 11 K se ofrezca a trav?s de una interfaz de programa cin bien definida. Ox0372-0x037F Printer P rt ,=PC+O

lttiMN

?1F3 GG 43

K punto de vista del sistema operativo. ya que El controlador es el componente Cms importante Ox05F2-0x05FF mmunicati ns P rt ,CO/5- desde el O K Stan!ar! 'lc v constituye la interfaz del dispositivo con el bus de la computadora y es el componente que se ve desde la !" . Su programacin se lleva a cabo mediante una interfaz de muy bajo nivel que proporciona acceso a una serie de registros del controlador )*ig. +.5-, incluidos en el mapa de E/S de la computadora, que se pueden acceder mediante instrucciones de mquina de E/S. %ay tres registros importantes en casi todos los controladoresE registro de datos, estado y control. El registro de datos sirve para el intercambio de datos. En ?l ir el controlador cargando los datos ledos y de ?l ir e2trayendo los datos para su escritura en el perif?rico. !n bit del registro de estado sirve para indicar que el controlador puede transferir una palabra. En las operaciones de lectura esto significa que .a cargado en el registro de datos un nuevo valor, mientras que en las de escritura significa que necesita un nuevo dato. 1tros bits de este registro sirven para que el controlador indique los problemas que .a encontrado en la ejecucin de la Altima operacin de E/S. El registro de control sirve para indicarle al controlador las operaciones que .a de realizar. =os distintos bits de este registro indican distintas acciones que .a de realizar el perif?rico. ara empezar una operacin de E/S, la !" tiene que escribir sobre los registros anteriores los datos de la operacin a trav?s de una direccin de E/S o de memoria asignada Anicamente al controlador. Este modelo vale tanto para los terminales o la pantalla como para los discos.

Ox03F2-0x03FF

C mmunicati ns P rt ,CO/1-

K O

=as caractersticas del controlador son muy importantes, ya que definen el aspecto del pe rif?rico para el sistema operativo. 'tendiendo a las caractersticas del .ard4are de los dispositivos, se pueden observar los siguientes aspectos distintivosE

0 <ireccin de E/S. En general .ay dos modelos de direccionamiento de E/S, los que usan puertos y los que
proyectan los registros en memoria.

0 !nidad de transferencia. =os dispositivos suelen usar unidades de transferencia de tama@o fijo.
%ay dos modelos clsicos de dispositivosE de caracteres y de bloques.

0 /nteraccin computadoraKcontrolador. =a computadora tiene que interaccionar con la computadora para


realizar las operaciones de E/S y saber cundo terminan.

+.,.,. <ispositivos conectados por puertos o proyectados en memoria

ara empezar una operacin de E/S, la !" tiene que escribir sobre los registros anteriores los datos de la operacin a trav?s de una direccin de E/S o de memoria asignada Anicamente al controlador. SegAn se .aga de una u otra forma, se distingue entre dispositivos conectados por puertos o proyectados en memoria. El modelo de dispositivos por puertos es clsico en las arquitecturas de /ntel. En ellas, cuando se instala un dispositivo, a su controlador se le asigna un puerto de E/S, una interrupcin

<igitalizacin realizada con propsito acad?mico

*igura +.7. "irecciones de E#S de al$unos controladores en un pe con Windo%s &'''.

.ard4are y un vector de interrupcin. =a *igura +.7 muestra las direcciones de E/S asignadas a algunos de los dispositivos de E/S de una computadora personaQ con el sistema operativo Rindo4s ,SSS. ara efectuar una operacin de E/S la !" ejecuta operaciones por o portout con la direccin de puerto del dispositivo y con parmetros para indicar qu? registro se quiere manipular. 8odas las operaciones de entrada/salida )pantalla grfica, impresoras, ratn, discos, etc.- se realizan usando esas dos instrucciones de lenguaje mquina con los parmetros adecuados. El problema de este tipo de direccionamiento es que e2ige conocer las direcciones de E/S y programar las instrucciones especiales de E/S, lo que es significativamente distinto del modelo de memoria de la computadora. El otro modelo de direccionamiento de E/S es el modelo proyectado en memoria. Este modelo, tpico de las arquitecturas de (otorola, asigna a cada dispositivo de E/S un rango de direcciones de memoria a trav?s de las cuales se escribe sobre los registros del controlador. En este modelo no .ay instrucciones especficas de E/S, sino que las operaciones se llevan a cabo mediante instrucciones mquina de manejo de memoria, lo que permite gestionar un mapa Anico de direcciones de memoria. Sin embargo, para no tener conflictos con otros accesos a memoria y para optimizar las operaciones, se reserva una zona de memoria fsica para asignar las direcciones de E/S.

+.,.5. <ispositivos de bloques y de caracteres

=os dispositivos de almacenamiento secundario y terciario manejan la informacin en unidades de tama@o fijo, denominadas bloques, por lo que a su vez se denominan dispositivos de bloques. Estos bloques se pueden direccionar de manera independiente, lo que permite leer o escribir un bloque con independencia de los dems. =os dispositivos de bloque lo son porque el .ard4are

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 56+

fuerza la e2istencia de accesos de un tama@o determinado. !n disco, por ejemplo, se divide en sectores de 6#, bytes o de # TU, siendo un sector la unidad mnima de transferencia que el con trolador del disco puede manejar. =os dispositivos de caracteres, como los terminales, impresoras, tarjetas de red, mdems, etc?tera, no almacenan informacin en bloques de tama@o fijo. $estionan flujos de caracteres de forma lineal y sin ningAn tipo de estructura de bloque. !n teclado es un buen ejemplo de estos dispositivos. Est conectado a una !'&8 )!niversal 'svnc.ronous &eceiver/8ransmiter- que recibe un carcter del teclado cada vez que se pulsa una tecla. ;o es posible leer un bloque de teclas de un golpe o buscar dentro del dispositivo por ninguna unidad. !n terminal por lnea serie tambi?n es un dispositivo de caracteres. Su controlador se limita a enviar al perif?rico el flujo de caracteres que debe representar en la pantalla y a recibir del mismo los caracteres tecleados por el usuario.

+.,.7. E/S programada o por interrupciones

!n controlador de dispositivo o unidad de E/S se encarga de controlar uno o ms dispositivos deQ mismo tipo y de intercambiar informacin entre ellos y la memoria principal o unidad central de proceso de la computadora. El controlador debe encargarse adems de sincronizar la velocidad del procesador con la del perif?rico y de detectar los posibles errores que se produzcan en el acceso a los perif?ricos. En el caso de un controlador de disco, ?ste debe encargarse de convertir un flujo de bits procedente del disco a un bloque de bytes detectando y corrigiendo, si es posible, los errores que se produzcan en esta transferencia. !na vez obtenido el bloque y comprobado que se encuentra libre de errores, deber encargarse de transferirlo a memoria principal. =a informacin entre los controladores de dispositivo y la unidad central de proceso o me moria principal se puede transferir mediante un programa que ejecuta continuamente y lee o escribe los datos del )al- controlador. "on esta t?cnica, que se denomina E/S programada, la transferencia de informacin entre un perif?rico y el procesador se realiza mediante la ejecucin de una instruc cin de E/S. "on esta t?cnica, es el procesador el responsable de e2traer o enviar datos entre el procesador y el controlador de dispositivo, lo que provoca que el procesador tenga que esperar mientras se realiza la transferencia entre el perif?rico y el controlador. <ado que los perif?ricos son sensiblemente ms lentos que el procesador, ?ste deber esperar una gran cantidad de tiempo .asta que se complete la operacin de E/S. En este caso no e2iste ningAn tipo de concurrencia entre la E/S y el procesador ya que ?ste debe esperar a que finalice la operacin. 'unque esta t?cnica es muy antigua, ya que proviene del tiempo en que los controladores no tenan interrupciones, actualmente los canales de E/S y algunos multiprocesadores usan esta t?cnica para evitar que lleguen a la !" de la computadora muc.as interrupciones de E/S. En ambos casos, la t?cnica es la mismaE dedicar una !" especial para la E/S. =a forma de .acerlo es muestrear continuamente los registros de estado de los controladores para ver si estn disponibles y, en ese caso, leer o escribir los registros. /magine un canal de E/S al que .ay conectados mAltiples buses de E/S que, a su vez, tienen mAltiples dispositivos de E/S. Si la !" quiere escribir en uno de ellos, debe mirar su registro de estado .asta que los bits indiquen que no est ocupado. "uando esto ocurra, escribir un bloque en los registros del controlador y esperar .asta que los bits de estado indiquen que est disponible. /magine que quiere leer de otro controlador, deber esperar a que los bits de estado le indiquen que est disponible, programar la operacin y esperar a que se indique que los datos estn disponibles. Evidentemente, incluso aunque la !" est? controlando varios dispositivos de E/S, siempre e2iste p?rdida de ciclos debido a la e2istencia de las esperas. Sin embargo, e2isten situaciones en que esto no es as. En algunos sistemas de tiempo real, como por

<igitalizacin realizada con propsito acad?mico

56C Sistemas 1perativos. !na visin aplicada

ejemplo un sat?lite, la velocidad de E/S es tan rpida )byte/microsegundos- que sera imposible efectuarla con interrupciones, debido al coste de tratar cada interrupcin. En estos casos, la E/S programada es la t?cnica de eleccin. !n bucle de E/S programada en la que se controlan las lecturas y escrituras sobre mAltiples dispositivos podra tener la estructura que se muestra en el rograma +. #. "omo se puede observar, el bucle .ace un muestreo de todos los dispositivos en orden, siempre que tengan peticiones de E/S pendientes. Este criterio de muestreo se puede alterar usando una prioridad distinta para cada dispo sitivo, por ejemplo.

rograma +.#. Uucle de E/S progamada para multiples dispositivos.

;umeroKdispositivos dH ;umeroKdispositivos VH 8amanyoKdatos m WdDH 8ipoKoperacin t WdDH 8amanyoKdatos n WdDH

/0 ;umero de dispositivos a controlar 0 / /0 ;umero de dispositivo particular 0/ /0 Uuffer por dispositivo 0/ /0 lectura, escritura 0/ /0 osicin de operacin por dispositivo 0/

for )VX1H VYXdH VJJnW VD H 1H VX 1H 4.ile )8&!EZ if /0 osicin al inicio de los buffers 0/ /0 rimer dispositivo 0/

Falta un pedazo de codigo

<igitalizacin realizada con propsito acad?mico

5LS Sistemas 1perativos. !na visin aplicada


#7 #S ## ## 7

Entrada/Salida 56B
I iGlOG I,H,^HH
,? C)*

Device Primary I E ".ennel System Informa!on '(< +6L M"/ to !SU 1pen %ost "on
... ( ~'~ /ntel)&- &1/l11J (anagement /='YtionNM. 'd ... 'udio "/ "reative

... "on )ES/5+#,ES/5+5E/S programada "/'l En.anced S/, Teyboard el procesador tiene que esperar .asta que el controlador est? listo para recibir o enviar loolsj=MMGNMGilMNMNMM.=MGlM=MMMI.M=NMMIP )#S ... "ommunications ort )"1(/5ystem Information datos, y mientras tanto no realiza ningAn trabajo Atil. Empleando E/S dirigida por interrupciones el procesador 8reel 5 "ommunications )"1(,Dort 6ystem Summary $ enva la Standard orden deHardware E/S al controlador de dispositivo y no espera a que ?ste se encuentre listo para enviar o transmitir floppy disV controller Resources 6 6ystem "(1S/real time "onfllctsQS.anng los datos, sino que D sedocV dedica a otras tareas .asta que llega una interrupcin del dispositivo que indica que se .a #5 Numenc data 8r cess r R<(' realizado la operacin solicitada. L.:J Forced Hardware

El modelo de !/Q1 interrupciones est ntimamente ligado a la arquitectura del procesador. "asi todas las !" I,#N D Memory actuales incluyen interrupciones vectorizadas y enmascarables. Es decir, un rango de interrupciones entre 1 y ,66, por ejemplo, alguna de las cuales se pueden in.ibir temporalmente para no recibir interrupciones de su vector correspondiente. "ada interrupcin se asigna a un dis positivo, o un rango de ellos en caso de un controlador S"S/ o una cadena de dispositivos tipo daisv c.ain, que usa el vector correspondiente para indicar eventos de E/S a la !" . "uando se programa una operacin en un dispositivo, como por ejemplo una bAsqueda en un disco, ?ste contesta con un '"T indicando que la .a recibido, lo que no significa que .aya terminado. En este caso e2iste concurrencia entre la E/S y el procesador, puesto que ?ste se puede dedicar a ejecutar cdigo de otro proceso, optimizando de esta forma el uso del procesador. 'l cabo de un cierto tiempo, cuando el disco .a efectuado la bAsqueda y las cabezas del disco estn sobre la posicin deseada, genera una interrupcin )poniendo un # en el vector correspondiente-. =a rutina de tratamiento de la interrup cin se encargar de leer o enviar el dato al controlador. 1bs?rvese que tanto la tabla de interrupcio nes como la rutina de tratamiento de la interrupcin se consideran parte del sistema operativo. Esto suele ser as por razones de seguridadH en concreto, para evitar que los programas que ejecuta un usuario puedan perjudicar a los datos o programas de otros usuarios. >?ase el "aptulo # para ver ms en detalle cmo se trata una interrupcin. =as computadoras incluyen varias se@ales de solicitud de interrupcin, cada una de las cuales tiene una determinada prioridad. En caso de activarse al tiempo varias de estas se@ales, se tratar la de mayor prioridad, quedando las dems a la espera de ser atendidas. 'dems, la computadora incluye un mecanismo de in!ibici"n selectiva que permite detener todas o determinadas se@ales de interrup cin. =as se@ales in.ibidas no son atendidas .asta que pasen a estar desin.ibidas. =a informacin de in.ibicin de las interrupciones suele incluirse en la parte del registro de estado que solamente es modificable en nivel de nAcleo, por lo que su modificacin queda restringida al sistema operativo. [\ui?n asigna las interrupciones a los dispositivos] ;ormalmente, el sistema operativo se .ace cargo de esa asignacin cuando instala el dispositivo. '.ora bien, tambi?n suele e2istir la posibilidad de que el administrador fije las interrupciones manualmente )'dvertencia +.#-. =a *i gura +.6 muestra la asignacin de interrupciones a dispositivos en un " con Rindo4s ,SSS.

,.
'<>E&8E;"/' +.# ;unca asigne interrupciones manualmente si no tiene e2periencia con el sistema operativo y la arquitec tura de la computadora. Si origina conflictos entre interrupciones, varios dispositivos usarn el mismo

[ \uien proporciona la rutina de tratamiento de interrupci"n# =as rutinas de nterrupc suelen tener dos partesE una gen?rica y otra particular para el dispositivo.=a parte gen?rica pemiteE

#. "apturar la interrupcin. ,. Salvaguardar el estado del procesador. 5. 'ctivar la rutina de manejo de la interrupcin. 7. /ndicar al planificador que debe poner lista para ejecutar la rutina particular. 6. <esactivar la interrupcin )'dvertencia +.,-.
<igitalizacin realizada con propsito acad?mico

:...J Components

%& Software Environrnent fil D Internet E2plorer 5 'AI D App !cat!ons

Figura +.6. Interrupciones asociadas a al$unos controladores en un pe con Windo+,s &'''.

L. &estaurar el estado del procesador. +. "eder el control )&E8/-.


=a rutina de tratamiento particular indica al planificador que encole la rutina particular, que se activa cuando le llega su tumo de planificacin, posiblemente ms tarde. =a rutina gen?rica la propor ciona el sistema operativo y es independiente del dispositivo. Se limita a preparar el entorno de ejecucin de la interrupcin, salvar los datos y parmetros, llamar a la rutina particular del manejador y restaurar el estado del proceso. =a rutina particular la proporciona el fabricante del dispositivo o del sistema operativo, si se trata de un dispositivo estndar. "uando se compra un dispositivo de E/S, como por ejemplo un ratn, es .abitual encontrar un disquete o un "<K&1( con los manejadores del dispositivo. El usuario o el administrador debe instalar estos manejadores en el sistema operativo y reiniciarlo antes de que sea posible acceder al dispositivo.

'<>E&8E;"/' +., Es importante desactivar las interrupciones despu?s de activar su tratamiento para evitar que se presenten nuevas interrupciones antes de terminar el tratamiento y perder alguna de ellas.

!n caso especial en la arquitectura /ntel es la controladora grfica, que se encarga de gestionar la salida a los dispositivos de mapas de bits )pantallas grficas-. Estas controladoras suelen tener su propia memoria, sobre la cual se llevan a cabo las operaciones de E/S. 'unque la memoria de la controladora se escribe tambi?n a partir de un puerto de E/S, sus prestaciones son muy altas )na nosegundos-, por lo que el tratamiento de las operaciones de E/S se desva del estndar en el sistema operativo, ya que estos dispositivos no interrumpen, por lo que se efectAa E/S programada.

<igitalizacin realizada con propsito acad?mico

5L, Sistemas 1perativos. !na visin aplicada


/em ria

Entrada/Salida 5L#

%e)istr D !e !at s 1bserve que aunque la controladora grfica tiene asociada KKK una direccin de E/S en la *igura +.7, no tiene una interrupcin asociada en la *igura +.6. e K#

rKK

r D - de prestaciones o (ecanismos de incremento +.,.6.

e o

C nta! r

' medida que la fabricacin de controladores .a ido mejorando, la capacidad de efectuar operaciones 4 PeticiJn D/0 autnomas en los mismos se .a incrementado considerablemente. 'ctualmen te es muy frecuente que un ' r ? ,c nta! r3 controlador de dispositivo c tenga capacidad de procesamiento, memoria interna ).asta #L (U en controladoras !irecciJn3 e =J)ica !e grficas, por ejemplo- y capacidad de solapar bAsquedas en unos dispositivos con transferencias en otros. Estas !at cun ntr l mejoras convierten al controlador en aut?nti co procesador intermedio entre la !" y el dispositivo, lo que le ' 0ce8taciJn D/0 - r ' permite proporcionar varios servicios para incrementar las prestaciones de E/S del dispositivo. En esta seccin se +nterru8ciJn - r ' ' O8eraciJn comentan los ms importantes. ) f

KK

r E /
<

' tecnologa\de

DirecciJn

,=(E -

'cceso directo a memoria

C ntr la! r

8anto en la E/S programada como la basada en interrupciones, la !" debe encargarse de la transferencia de datos una vez que sabe que .ay datos disponibles en el controlador. !na mejora importante para incrementar la concurrencia entre la !" y la E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos, liberando de este trabajo a la !" , e interrumpir a la !" slo cuando .aya terminado la operacin completa de E/S. Esta t?cnica se denomina acceso directo a memoria )<(', <irect (emory 'ccess-. "uando se utiliza acceso directo a memoria, es el controlador el que se encarga directamente de transferir los datos entre el perif?rico y la memoria principal, sin requerir intervencin alguna por parte del procesador. Esta t?cnica funciona de la siguiente maneraE cuando el procesador desea # \e un bloq de datos, enva una orden al controlador indicndole la siguiente infor macin )*ig +.L-E

0 8ipo de operacinE lectura o escritura. 0


eriferico involucrado en la operacin. dispositivo )direccin-.

0 =a direccin de memoria desde la que se va a leer o a la que va a escribir ciirectamente "/ controlador de 0 El nAmero de bytes a transferir )contador-.
!na vez emitida la orden, el procesador continAa realizando otro trabajo sin necesidad de transferir el bloque de datos. Es el propio controlador el que se encarga de transferir el bloque de datos del perif?rico a memoria. =a transferencia se realiza palabra a palabra. "uando el controlador .a completado la transferencia, genera una interrupcin que activa la rutina de tratamiento correspon diente, de tal manera que se sepa que la operacin .a concluido. !tilizando acceso directo a memoria el procesador Anicamente se ve involucrado al inicio y al final de la transferencia. or tanto, cuando el sistema operativo despierta al proceso que pidi la E/S, no tiene que copiar el bloque a memoria porque ya est all. El <(' requiere una etapa de almacenamiento intermedio en el controlador del dispositivo para armonizar la velocidad del dis positivo de E/S con la copia de los datos en memoria principal )*ig. +.L-. =a razn para este almacenamiento intermedio reside en que una vez que el dispositivo empieza la transferencia de datos, ?sta debe .acerse a velocidad constante para evitar transferencias parciales y nuevas esperas de posicionamiento del dispositivo sobre los datos )latencia-. !na vez transferidos los datos a la memoria del controlador, ?ste los copia en memoria principal aprovec.ando el anc.o de banda libre del bus.

<igitalizacin realizada con propsito acad?mico

Disc

KCP

Figura +.L. -na operacin de E#S con "./.

=os pasos a seguir en una operacin de E/S con <(' son los siguientesE

C.

rogramacin de la operacin de E/S. Se indica al controlador la operacin, los datos a transferir y la direccin de memoria sobre la que se efectuar la operacin.

B. El controlador contesta aceptando la peticin de E/S. #S. El controlador le ordena al dispositivo que lea )para operacin de lectura- una cierta cantidad de
datos desde una posicin determinada del dispositivo a su memoria interna. +.5.

##. "uando los datos estn listos, el controlador los copia a la posicin de memoria que tiene en sus registros,
incrementa dic.a posicin de memoria y decrementa el contador de datospendientes de transferir.

#,. =os pasos 5 y 7 se repiten .asta que no quedan ms datos por leer. #5. "uando el registro de contador est a cero, el controlador interrumpe a la !" para in dicar que la
operacin de <(' .a terminado. "anales de E/S con <(' !n canal de E/S se puede mejorar si se incluye el concepto de <(' que permite al controlador ejecutar instrucciones de E/S. "on estos sistemas, las instrucciones de E/S se almacenan en me moria principal y son ejecutadas ordenando al procesador del canal que ejecute un programa en memoria. <ic.o programa se encarga de designar dispositivos y zonas de memoria de E/S. %ay dos tipos principales de canales de E/SE canal selector y canal multiple2or. 'mbos pueden interaccionar con varios dispositivos de E/S, pero mientras el canal selector slo puede transferir datos de un dispositivo a la vez, el canal multiple2or puede transferir datos de varios dispositivos simultneamente.

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5L5

"ac.es de disco en el controlador

=as cac.es de datos, tan populares en sistemas operativos, .an irrumpido en el mundo de los controI adores de disco con muc.a fuerza. =a idea es aprovec.ar la memoria interna de los controladores para leer los datos por adelantado, evitando muc.as operacines de usqueda en el disco y sobre todo los tiempos de latencia necesarios para esperar a que los datos pasen de nuevo bajo las cabezas del disco WUis4as, #BB5#. =a pro2imidad espacial permite optimizar la E/S en el mbito de controlador, ya que en lugar de leer un sector, o un grupo de ellos, se leen pistas enteras en cada vuelta de disco, lo que permite traer mAltiples bloques de datos en una Anica operacin. En los canales de E/S, donde suele .aber muc.a memoria interna, se guardan en memoria varias pistas por cada dispositivo de E/S. Estos mecanismos permiten optimizar muc.o la E/S, especialmente en operaciones de lectura con un comportamiento conocido. ara evitar afectar al rendimiento de las operaciones que no responden a patroues de pro2imidad espacial predecibles, los controladores incluyen instrucciones para desactivar este mecanismo, siempre que el sistema operativo lo crea conveniente.

Solapamiento de bAsquedas y transferencias =os controladores de disco actuales permiten la cone2in de varios dispositivos de E/S y tienen un canal de comunicaciones con ellos de varios (U. !n controlador S"S/K, permite conectar .asta oc.o dispositivos y tiene un anc.o de banda de 7S (U/segundo. !n problema grave de los disposi tivos es que las operaciones de bAsqueda son lentas y, mientras el controlador espera la respuesta, el bus de comunicaciones est vaco porque no est siendo usado por ningAn dispositivo. ara optimizar el uso del conjunto de los dispositivos, muc.os controladores actuales pro graman las operaciones de bAsqueda en los dispositivos y mientras reciben la respuesta transfieren datos de otros dispositivos listos para leer o escribir. <e esta forma e2iste paralelismo real entre los dispositivos, lo que permite e2plotar al m2imo el canal de comunicaciones. ["mo sabe el con trolador cundo .a terminado la espera] ues con un sistema similar al de la E/S no bloqueanteE programa un temporizador y cuando vence le pregunta al dispositivo si ya est listo para transmitir.

+.5.

'&\!/8E"8!&' <E= S/S8E(' <E E;8&'<'/S'=/<'

El sistema de entradalsalida est construido como un conjunto de manejadores apilados, cada uno de los cuales est asociado a un dispositivo de entradalsalida )arc.ivos, red, etc.-. 1frece a las aplicaciones y entornos de ejecucin servicios gen?ricos que permiten manejar los objetos de en trada/salida del sistema. ' trav?s de ellos se puede acceder a todos los manejadores de arc.ivos y de dispositivos tales como discos, cintas, redes, consola, tarjetas de sonido, etc. En esta seccin se estudia la estructura y los componentes del sistema de E/S y el soft4are del sistema de _/S. +.5.#. Estructura y componentes del sistema de E/S =a arquitectura del sistema de entrada/salida )*ig. +.+- es compleja y est estructurada en capas, cada una de las cuales tiene una funcionalidad bien definidaE

0 /nterfaz del sistema operativo para entrada/salida. roporciona servicios de E/S sncrona y asncrona a las
aplicaciones y una interfaz .omog?nea para poderse comunicar con losmanejadores de dispositivo ocultando los detalles de bajo nivel.

<igitalizacin realizada con propsito acad?mico

5L7 Sistemas 1perativos. !na visin aplicada


+nter'aL !el sistema 8erativ

Entrada/Salida 5L6

. ++ Sistemas !e archiv s 0 Sistemas de arc.ivos. roporcionan una interfaz .omog?nea, a trav?s del sistema de ar c.ivos virtuales, + MFCS++ #PFS+ F0C ++ CD-%O/ + 6estiJn !e re!es para acceder a todos los sistemas de arc.ivos que proporciona el sistema operativo )**S, S>, ;8*S, *'8, etc.-. ermite acceder a los manejadores de los dispositi vos de almacenamiento de forma transparente, ,+PN(SPN1 MEC7EK+1 CCP(+P 1111 incluyendo en muc.os casos, como ;*S o ;8*S, accesos remotos a trav?s de redes. En algunos sistemas, como Rindo4s ;8, los servidores para cada tipo de sistema de arc.ivos se pueden cargar y descargar dinmicaK mente como cualquier otro manejador. 6est r !e &l Oues

0 $estor de redes. roporciona una interfaz .omog?nea para acceder a todos los sistemas de red que
6est r !e cache proporciona el sistema operativo )8" // , ;ovell, etc.-. 'dems, permite acceder a

:+

+ +

res !e !is8 sitiv s 0 /anePa! los manejadores de cada tipo de red particular de forma transparente. +

0,CD-%O/1 $estor de bloques. =os de arc.ivos y otros dispositivos lgicos con acceso a nivel de bloque se cinta3 !isc 3 8uert 3 111sistemas -

suelen limitar a traducir las operaciones del formato del usuario al de bloques que entiende el dispositivo y se las pasan a este gestor de bloques. El gestor de bloques admite Anicamente operaciones a nivel de D bloque interacciona C ntr la!e res !e !is8 sitivcon la cac.e de bloques para optimi zar la E/S.

$estor de cac.e. 1ptimiza la entradalsalida mediante la gestin de almacenamiento inter medio en memoria para dispositivos de E/S de tipo bloque W #BC6D. 'unque en el "aptulo C se comenta con ms detalle la estructura de la cac.e de bloques, es importante saber que su tama@o vara dinmicamente en funcin de la memoria &'( disponible y que los bloques se escriben a los dispositivos segAn una poltica bien definida, que en !;/` y R/;<1RS ;8 es la de escritura retrasada.

0 (anejadores de dispositivo. roporcionan operaciones de alto nivel sobre los dispositivos y las traducen
en su mbito interno a operaciones de control de cada dispositivo particular. "omo ya se .a dic.o, los manejadores se comunican con los dispositivos reales mediante puertos o zonas de memoria especiales. "ada uno de los componentes anteriores se considera un objeto del sistema, por lo que .abi tualmente todos los sistemas operativos permiten modificar el sistema operativo de forma esttica o dinmica para reemplazar, a@adir o quitar manejadores de dispositivos. Sin embargo, .abitualmen te, y por razones de seguridad, no se permite a las aplicaciones de usuario acceder directamente a los dispositivos, sino a trav?s de la interfaz de llamadas al sistema operativo.

+.5.,. Soft4are de E/S

!na vez e2aminada la arquitectura de E/S de una computadora y las t?cnicas posibles de transferen cia entre el procesador y los perif?ricos, en esta seccin se va a presentar la forma en la que estructura el sistema operativo el soft4are de gestin de E/S. Este soft4are se organiza en una serie de capas que se muestran en la *igura +.C. Estas capas se corresponden, en general, con los niveles de la arquitectura de E/S. "omo puede verse en dic.a figura, los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. "uando un proceso solicita una operacin de E/S, el sistema operativo prepara dic.a operacin y bloquea al proceso .asta que se recibe una interrupcin del controlador del dispositivo indicando que la operacin est completa. =as peticiones se procesan de forma estruc turada en las siguientes capasE

0 (anejadores de interrupcin. 0 (anejadores de dispositivos o drivers.


<igitalizacin realizada con propsito acad?mico

5LL Sistemas 1perativos. !na visin aplicada

5.

*igura +.+. /rquitectura del sistema de entrada#salida.

0 Soft4are de E/S independiente de los dispositivos. Este soft4are est formado por la parte de alto nivel de
los manejadores, el gestor de cac.e, el gestor de bloques y el servidor de arc.ivos.

0 /nterfaz del sistema operativo. =lamadas al sistema que usan las aplicaciones de usuario.
El uso de capas conlleva la realizacin de varias copias de datos, alguna de las cuales son inevita bles. En algunos casos, la copia que se realiza en el nAcleo del sistema operativo puede ser innecesaria, por lo que e2isten mecanismos para acceder directamente a los controladores desde la interfaz de E/S del sistema a los manejadores. Sin embargo, y como norma general, esa copia e2iste siempre. El sistema operativo estructura el soft4are de gestin de E/S de esta forma para ofrecer a los usuarios una serie de servicios de E/S independientes de los dispositivos. Esta independencia implica que deben emplearse los mismos servicios y operaciones de E/S para leer datos de un disquete, de un disco duro, de un "<K&1( o de un teclado, por ejemplo. "omo se ver ms adelante, el servicio read de 1S/` puede utilizarse para leer datos de cualquiera de los dispositi vos citados anteriormente. 'dems, la estructuracin en capas permite .acer frente a la gestin de errores que se pueden producir en el acceso a los perif?ricos en el nivel de tratamiento ms adecua do. ' continuacin, se describe ms en detalle cada uno de los componentes.

(anejadores de interrupcin =os manejadores de interrupcin se encargan de tratar las interrupciones que generan los controla dores de dispositivos una vez que ?stos estn listos para la transferencia de datos o bien .an ledo o escrito los datos de memoria principal en caso de acceso directo a memoria. ara tratar dic.a interrupcin se ejecuta el correspondiente manejador de interrupcin cuyo efecto es el de salvar los registros, comunicar el evento al manejador del dispositivo y restaurar la ejecucin de un proceso )que no tiene por qu? ser el interrumpido-. En la seccin anterior se mostr ms en detalle cmo se trata una interrupcin.

<igitalizacin realizada con propsito acad?mico

Pr ces !e usuari C 8ia en mem ria !el usuari Servici s SR!e E(S in!e8en!iente !e !is8 sitiv 6est r !e archiv s C 8ia en el sistema 8erativ

/ ! usuari / ! nQcle

SR!e E(S in!e8en!iente !e !is8 sitiv SR !e E(S !e8en!iente !e !is8 sitiv

/anePa! r !e !is8 sitiv

S 't$are #ar!$are C 8ia en el c ntr la! r

Dis8 sitiv ,!isc -

7l Oue !el !is8 sitiv

*igura +.C. Estructuracin del soft%are de E#S v flu0o de una operacin de E#S.

=os manejadores de interrupcin suelen .acer algo ms que comunicar el evento al manejador de dispositivo. "uando una interrupcin ocurre muy frecuentemente, caso del reloj, o cuando la cantidad de informacin a transferir es muy peque@a, caso del teclado, sera muy costoso comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el propio manejador de interrupcin registra la ocurrencia del evento, bien mediante el incremento de una variable global para el reloj o la acumulacin de caracteres en un buffer del teclado. =a notificacin al manejador se .ace Anicamente cada cierto nAmero de ocurrencias del evento, en el caso del reloj, o activando unflag que indica que .ay datos en el buffer del teclado.

(anejadores de dispositivos "ada dispositivo de E/S, o cada clase de dispositivos, tiene un manejador asociado en el sistema operativo. <ic.o manejador incluyeE cdigo independiente del dispositivo para proporcionar al nivel superior del sistema operativo una interfaz de alto nivel y el cdigo dependiente del dis positivo necesario para programar el controlador del dispositivo a trav?s de sus registros y man datos. =a tarea de un manejador de dispositivo es aceptar peticiones en formato abstracto, de la parte del cdigo de E/S independiente del dispositivo, traducir dic.as peticiones a t?rminos que entienda el controlador, enviar al mismo las rdenes adecuadas en la secuencia correcta y esperar a que se cumplan. =a *igura +.B muestra un diagrama de flujo con las operaciones de un manejador.

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5L+

8odos los manejadores tienen una lista de peticiones pendientes por dispositivo donde se encolan las peticiones que llegan de niveles superiores. El manejador e2plora la lista de peticiones, e2trae una peticin pendiente y ordena su ejecucin. =a poltica de e2traccin de peticiones de la lista es dependiente de manejador y puede ser */*1, con pr etc. !na cz enviada la pet al controlador, el manejador se bloquea o no, dependiendo de la velocidad del dispositivo. ara los lentos )discos- se bloquea esperando una interrupcin. ara los rpidos )pantalla, discos &'(, etc?tera- responde inmediatamente. <espu?s de recibir el fin de operacin, controla la e2istencia de errores y devuelve al nivel superior el estado de terminacin de la operacin. Si tiene operaciones pendientes en la cola de peticiones, atiende a la siguiente, en caso de que le toque ejecutar despu?s de la operacin de EQS. En caso contrario se bloquea. En los sistemas operativos modernos, como Rindo4s ;8 WSolomon, #BBC#, los manejadores se agrupan en clases. ara cada clase e2iste un manejador gen?rico que se encarga de las operacio nes de E/S para una clase de dispositivos, tales como el "<K&1(, el disco, la cinta o un teclado. "uando se instala un dispositivo particular, como por ejemplo el disco SE'$'8E S5SS, se crea una instanclacin de manejador de e eoii Iius pai tiiiciro o de e objetn. 8odac lac. funciones comunes al manejador de una clase se llevan a cabo en el manejador gen?rico y las

S #K
!is8 sitiv Extraer 8eticiJn E(S !e la lista

Petici nes !e E(S !e

C ntestaciJn a la 8eticiJn

Cra!ucir a ' rmat !el c ntr la! r

Pre8arar res8uesta !e err r


S9

O8eraci nes s &re !at s

Enviar man!at s al c ntr la! r Pr )ramaciJn !el c ntr la! r M =eer re)istr s esta! !el c ntr la! r

Es8erar interru8ciJn

+nterru8ciJn

Figura +.B. "ia$rama de flu0o con las operaciones de un mane0ador.

<igitalizacin realizada con propsito acad?mico

5LC

Sistemas 1perativos. !na visin aplicada

particulares en el del objeto. <e esta forma se crea un apilamiento de manejadores que refleja muy bien qu? operaciones son independientes del dispositivo y cules no. Soft4are de E/S independiente del dispositivo =a mayor parte del sistema de E/S es soft4are independiente de dispositivo. "omo se puede ver en la *igura +.C, este nivel incluye el sistema de arc.ivos y el de gestin de red, el gestor de bloques, la cac.e de bloques y una parte de los manejadores de dispositivo. =a principal funcin de esta capa de soft4are es ejecutar las funciones de E/S que son comunes a todos los dispositivos a trav?s de una interfaz uniforme, /nternamente, en este nivel se proporciona acceso a nivel de bloques o caracteres, almacenamiento intermedio, gestin de los dispositivos, planificacin de la E/S y con trol de errores. El tama@o de acceso a nivel de bloques se .ace usando tama@os de bloque de acceso comunes para todo un sistema de arc.ivos, lo que permite ocultar que cada dispositivo puede tener distinto tama@o de sector y distinta geometria. Estos detalles quedan ocultos por la capa de soft4are in dependiente de dispositivo que ofrece una interfaz sobre la base de bloques lgicos del sistema de arc.ivos. =o mismo ocurre con los dispositivos de caracteres, algunos de los cuales trabajan con un carcter cada vez, como el teclado, mientras otros trabajan con flujos de caracteres, como el modem o las redes. ara optimizar la E/S y para armonizar las peticiones de usuario, que pueden ser de cualquier tama@o, con los bloques que maneja el sistema de arc.ivos, el soft4are de E/S proporciona almacenamiento intermedio en memoria del sistema operativo. Esta facilidad se usa para tres cosasE

0 1ptimizar la E/S evitando accesos a los dispositivos. 0 1cultar las diferencias de velocidad con que cada dispositivo y usuario manejan los datos. + 0 *acilitar la implementacin de la semntica de comparticin, al e2istir una copia Anica de los datos
enmemona. El sistema de E/S mantiene buffers en distintos componentes. or ejemplo, en la parte del manejador del teclado independiente del dispositivo e2iste un buffer para almacenar los caracteres que teclea el usuario .asta que se pueden entregar a los niveles superiores. Si se usa una lnea serie para leer datos de un sistema remoto y almacenarlos en el disco, se puede usar un buffer para guardar temporalmente los datos .asta que tengan una cierta entidad y sea rentable escribirlos a disco. Si se est leyendo o escribiendo un arc.ivo, se guardan copias de los bloques en memoria para no tener que acceder al disco si se vuelven a leer. =a gestin de los dispositivos agrupa a su vez tres serviciosE nombrado, proteccin y control de acceso. El nombrado permite traducir los nombres de usuario a identificadores del sistema. or ejemplo, en !;/`, cada dispositivo tiene un nombre )p. ej.E /dev/cdrom- que se traduce en un Anico identificador interno )o nodoKi-, que a su vez se traduce en un Anico nAmero de dispositivo principal )clase de dispositivo- y secundario )elemento de la clase-. "ada dispositivo tiene asociada una informacin de proteccin )en !;/` mediante 5 bits para due@o, grupo y mundo- y este nivel de soft4are asegura que los requisitos de proteccin se cumplen. 'dems proporciona control de acceso para que un dispositivo dedicado, como una impresora, sea accedido por un Anico usuario cada vez. !na de las funciones principales del sistema de E/S es la planificacin de la E/S de los distintos componentes. ara ello se usan colas de peticiones para cada clase de dispositivo, de las que se e2traen las peticiones de cada dispositivo en particular. "ada una de estas colas se ordena siguiendo una poltica de planificacin, que puede ser distinta en cada nivel. /magine el caso de =/;!`, donde e2iste una cola global de peticiones de E/S, ordenadas en orden */*1, para los discos instalados. "uando un manejador de disco queda libre, busca la cola global para ver si .ay

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5LB

peticiones para ?l y, si e2isten, las traslada a su cola de peticiones particular ordenadas segAn la poltica Se';, por ejemplo. Este mecanismo permite optimizar la E/S al conceder a cada me canismo la importancia que, ajuicio de los dise@adores del sistema operativo, se merece. En el caso de Rindo4s ;8, por ejemplo, el ratn es el dispositivo de E/S ms prioritario del sistema. =a razn que .ay detrs de esta poltica es conseguir un sistema muy interactivo. En otros sistemas, como !;/`, las operaciones de disco son ms prioritarias que las del ratn para poder desbloquear rpidamente a los procesos que esperan por la E/S. Sea cual sea el criterio de planificacin, todos los sistemas de E/S planifican las actividades en varios lugares. or Altimo, este nivel proporciona gesti"n de errores para aquellos casos que el manejador de dispositivo no puede solucionar. !n error transitorio de lectura de un bloque se resuelve en el manejador reintentando su lectura. !n error permanente de lectura no puede ser resuelto y debe ser comunicado al usuario para que tome las medidas adecuadas. En general, todos los sistemas operativos incluyen alguna forma de control de errores internos y de notificacin al e2terior en caso de que esos errores no se puedan resolver. /magine, por ejemplo, que una aplicacin quiere leer de un dispositivo que no e2iste. El sistema de E/S ver que el dispositivo no est y lo notificar a los niveles superiores .asta que el error llegue a la aplicacin. Sin embargo, es importante resaltar que los sistemas operativos son cada vez ms robustos y cada vez incluyen ms control y reparacin de errores, para lo cual usan m?todos de paridad, c.ecVsums, cdigos correctores de error, etc. 'dems, la informacin que proporcionan cuando .ay un error es cada vez mayor. En Rindo4s ;8, por ejemplo, e2isten monitores que permiten ver el comportamiento delas operaciones de E/S.

+.7.

I'(E)F*+ E *P,I%*%I-'ES

=as aplicaciones tienen acceso al sistema de E/S a trav?s de las llamadas al sistema operativo relacionadas con la gestin de arc.ivos y con la E/S, como octl por ejemplo. En muc.os casos, las aplicaciones no acceden directamente a las llamadas del sistema, sino a utilidades que llaman al sistema en representacin del usuario. =as principales utilidades de este estilo sonE

0 =as bibliotecas de los lenguajes, como la libe. so de e, que traducen la peticin del usua rio a llamadas del
sistema, convirtiendo los parmetros all donde es necesario. Ejemplos de utilidades de biblioteca en e son fread, f4rte o printf. =as bibliotecas de enlace dinmico )<==- de Rindo4s. or ejemplo, Terne#5, .dll incluye llamadas para la ges tin de arc.ivos y otros componentes de E/S.

0 =os demonios del sistema, como los de red o los spooler de las impresoras. Son programas privilegiados
que pueden acceder a recursos que las aplicaciones normales tienen vetados. 's, por ejemplo, cuando una aplicacin quiere acceder al puerto de telnet, llama al de monio de red )inetd- y le pide este servicio. <e igual forma, cuando se imprime un arc.ivo, no se enva directamente a la impresora, sino que se enva a un proceso spooler que lo copia a unos determinados directorios y, posteriormente, lo imprime. Esta forma de relacin a trav?s de representantes e2iste principalmente por razones de se guridad y de control de acceso. Es fcil dejar que un proceso spooler, generalmente desarrollado por el fabricante del sistema operativo y en el que se confa, acceda a la impresora de forma controlada, lo que evita problemas de concurrencia, filtrando los accesos del resto de los usuarios. =a interfaz de E/S de las aplicaciones es la que define el modelo de E/S que ven los usuarios, por lo que, cuando se dise@a un sistema operativo, .ay que tomar varias decisiones relativas a la funcionalidad que se va a ofrecer al mundo e2terior en las siguientes cuestionesE

<igitalizacin realizada con propsito acad?mico

5+S

Sistemas visin aplicada 7. 1perativos. 6. !na L.

Entrada/Salida 5+#

0 ; ombres independientes de dispositivo. 0 E/S bloqueante y no bloqueante. 0 "ontrol de acceso a dispositivos compartidos y dedicados. 0 /ndicaciones de error.
F ! so de estndares.
0 continuacin, se estudian brevemente cada una de ellas.
Ciem8 =lama!a !e E(S

=a eleccin de unas u otras caractersticas determina la visin del sistema de E/S del usuario. >%e)istr !e 8eraciJn !e E(S 111-11t1111lH----3 %et
rn !e llama!a !e E(S

;ombres independientes de dispositivo

!sar nombres independientes de dispositivo permite construir un rbol completo de nombres lgi cos, sin que el !e E+S usuario vea en ningAn momento los dispositivos a los que estn asociados. =a utilidad mount de !;/` es un buen o 4C ejemplo de dise@o. Si se monta el dispositivo /dev/.da5 sobre el directorio lgico /users, a partir de ese instante Y/l ntr la! r EEEEG todos los arc.ivos del dispositivo se pueden acceder a trav?s de /users, sin queC el nombre del dispositivo se vea en Dis8 sitiv EEEEG g C arc.ivo ntr la! r /dev/.da.5/pepe pasa a ser /users/pepe despu?s de la operacin de oK que el ningAn momento. Es decir, C ntr la! r o Dis8 sitiv E ?S montado. C ntr la! r l6 o

D -''iiEE E

=lama!a

'----r----'J
Pr )ramaciJn !e E(S

\-

!sar un rbol de nombres Anico complica la traduccin de nombres,epor lo que algunos sis temas operativos, como e n Rindo4s ;8, no la incluyen. En Rindo4s, cuando se accede a un dis positivo con un nombre completo, siempre D Cratamient interru8ciJn D .ay que escribir el nombre del dispositivo al que se accede )"E, <E,D etc.-. En las Altimas C ntestaciJn !e E(S versiones se enmascaran O Cratamient interru8ciJn > los dispositivos con unidades de red, pero siempre .ay que saber a cul se quiere acceder. or ejemplo, C ntestaciJn !e E(S e, "ondorausersaprofesores )9E- identifica a una unidad de red que est en la mquina "ondor y que est montada en la computadora local sobre el dispositivo lgico zE. ;o .ay en este sistema un rbol de nombres Anico tan claramente identificado como en !;/` o =/;!`.

Di

/,P,e,ruM,

i lI

nte rru 8elJn

OKKKrMQ GiffiRsK

E/S blo.ueante y no blo.ueante =a mayora de los dispositivos de E/S son no bloqueantes, tambi?n llamados asncronos, es decir, reciben la operacin, la programan, contestan e interrumpen al cabo de un cierto tiempo. Slo los dispositivos muy rpidos o algunos dedicados fuerzan la e2istencia de operaciones de E/S blo queantes )tambi?n llamadas sncronas-. Sin embargo, la mayora de las aplicaciones efectAan ope raciones de E/S con lgica bloqueante, lo que significa que emiten Ga operacin y esperan .asta tener el resultado antes de continuar su ejecucin. En este tipo de operaciones, el sistema operativo recibe la operacin y bloquea al proceso emisor .asta que la operacin de E/S .a terminado )*ig. +.lba-, momento en que desbloquea a la aplicacin y le enva el estado del resultado de la opera cin. En este caso, la aplicacin puede acceder a los datos inmediatamente, ya que los tiene disponi bles en la posicin de memoria especificada, a no ser que .ubiera un error de E/S. Este modelo de programacin es claro y sencillo, por lo que las principales llamadas al sistema de E/S. como read o 4rite en 1SE` y &ead*ile y Rrite*ile en Rin5,, bloquean al usuario y completan la operacin antes de devolver el control al usuario. =as llamadas de E/S no bloqueantes se comportan de forma muy distinta, reflejando mejor Ga propia naturaleza del comportamiento de los dispositivos de E/S. Estas llamadas permiten a la aplicacin seguir su ejecucin, sin bloquearla, despu?s de .acer una peticin de E/S )*ig +. l1b-. El procesamiento de la llamada de E/S consiste en recuperar los parmetros de la misma, asignar un identificador de operacin de E/S pendiente de ejecucin y devolver a la aplicacin este identifica dor. =as llamadas de 1S/` aioread aio4rite permiten realizar operaciones no bloqueantes. ' continuacin, el sistema operativo ejecuta la operacin de E/S en concurrencia con la apliK

<igitalizacin realizada con propsito acad?mico

%et rn !e llama!a E(S

a- E(S &l Oueante

b) E(S n &l Oueante

Figura +.#S. 1lu0o de las operaciones de E#S 2loqueantes 3 no 2loqueantes.

cacin, que sigue ejecutando su cdigo. Es responsabilidad de la aplicacin preguntar por el estado de la operacin de E/S, usando una llamada al sistema especial para realizar esta consulta )alo 4alt-, o cancelarla si ya no le interesa o tarda demasiado )aiocancel-. En Rindo4s se puede conseguir este mismo efecto indicando, cuando se crea el arc.ivo, que se desea E/S no bloqueante )*/=E N*='$ c usando las llamadas &ead*ileE2 y Rrite*ileE2.

<igitalizacin realizada con propsito acad?mico

5+, Sistemas 1perativos. !na visin aplicada

Entrada/Salida 5+5

ddefin E E&;( # /0 ;ot superKuser 0 e / ddefin , 0 E;1E;8 /0 ;o suc. file or directory e / ddefin ES&"% 5 /0 ; o suc. process 0 En !;/`, porde ejemplo, las llamadas al sistema que fallan K# y al ponen en una variable sistemas global errno Este modelo programacin es ms complejo, pero se devuelven ajusta muy bien modelo de algunos que e / el cdigo deE/;8& error. y =a descripcin del se puede vercierto en el tiempo. arc.ivo /usr/include/sys/errno.. o imprimirlo ddefin emiten peticiones reciben 7 la respuesta /0error interrupted despu?s de system un cali 0 !n programa que est? leyendo datos en de evarios arc.ivos, / de cdigos pantalla mediantepor la funcin ' conpara tinuacin, se muestran algunos de error !;/` junto con ejemplo,perror1. puede usarlo .acer lectura adelantada datos y tener los de datos de un arc.ivo ddefin El1 6 /0 l/1 error 0/ sus descripciones listos en memoria en el momento de procesarlos. !n programa que escuc.e por vanos canales de comunicaciones e ddefin E;`/1 este modelo L /0 ; o suc. device or address 0/ podria usar tambi?n )"onsejo de programacin +.#-. e ddefin E,U/$ + /0V 'rg iist too long 0 e / "1;SEG1 <EC &1$&'('"/:; ddefin E;1E`E" /0 E2ec+.# format error 0 El modelo de E/S no bloqueante, o asncrono. es complejo y no apto para e / programadores o usuarios noveles ddefin EU'1* B Uad file number 0 almacenar los descriptores de las del sistema operativo. Si lo /0 usa, debe tener estructuras de datos para e operaciones que devuelve el sistema y procesar todos ellos, con espera/o cancelacin. 8enga en
cuenta que almacenar el estado de estas operaciones en el sistema tiene un coste en recursos y que el espacio es finito. or ello, todos los sistemas operativos definen un m2imo para el nAmero de operacio nes de E/S no bloqueantes que pueden estar pendientes de solucin. ' partir de este lmite, las llamadas no bloqueantes devuelven un error.

Es interesante resaltar que, independientemente del formato elegido por el usuario, el sistemaoperativo procesa siempre las llamadas de E/S de forma no bloqueante, o asncrona, para permitir la implementacin de sistemas de tiempo compartido. "ontrol de acceso a dispositivos !na de las funciones ms importantes de la interfaz de usuario es dar indicaciones de control de acceso a los dispositivos e indicar cules son compartidos y cules dedicados. En general, las llamadas al sistema no .acen este tipo de distinciones, que, sin embargo, son necesarias. /magine qu? ocurrira si dos arc.ivos se escribieran en la impresora sin ningAn control. 'mbos saldrian mezclados, siendo el resultado del trabajo inAtil. ara tratar de resolver este problema se usan dos tipos de mecanismosE

0 (andatos e2ternos )como el lpr para la impresora- o programas especiales )demonios- que se encargan de
imponer restricciones de acceso a los mismos cuando es necesario.

=lamadas al sistema que permiten bloquear )locV- y desbloquear )unlocV- el acceso a un dispositivo o a parte de ?l. !sando estas llamadas, una aplicacin se puede asegurar acceso e2clusivo bloqueando el dispositivo antes de acceder y desbloquendolo al terminar sus accesos. ara evitar problemas de bloqueos indefinidos, slo se permiten bloqueos acon sejados )advisory-, nunca obligatorios. 'dems, es .abitual que el Anico usuario que puede bloquear un dispositivo de E/S como tal sea el administrador del sistema. ara el resto de usuarios, este privilegio se restringe a sus arc.ivos.

=a seguridad es un aspecto importante del control de accesos. ;o basta con que se resuelvan los conflictos de acceso. %ay que asegurar que el usuario que accede al sistema de E/S tiene de rec.os de acceso suficientes para llevar a cabo las operaciones que solicita. En !;/` y =/;!`, los aspectos de seguridad se gestionan en el gestor de arc.ivos. En Rindo4s ;8 e2iste un servidor de seguridad que controla los accesos a los objetos.

/ndicaciones de error =as operaciones del sistema operativo pueden fallar debido a cuestiones diversas. Es importante decidir cmo se va a indicar al usuario esos fallos.

<igitalizacin realizada con propsito acad?mico

5+7 Sistemas 1perativos. !na visin aplicada


+nter'aL !e llama!as al sistema Sistema !e archiv s virtual C ntr la! r !el Sistema !e archiv s !is8 sitiv Talt nivel@ Cache !e 8U)inas !e N. Cache !e &l Oues
"""" " "" " " "

i8f?iffem

////// " " " " " """" " " " " " "" //// " "

6est r !e 8etici nes a l s !isc s

+
1
+

Plani'ica! r !e l s !isc s C ntr la! r !e !is8 sitiv s T&aP nivel@

+
1

;=

En Rindo4s se devuelven ms cdigos de error en las llamadas a funcin, e incluso en algu nos parmetros de las mismas. /gualmente, se puede obtener ms informacin del error mediante la funcin $et=astError 1.

u so de estndares
roporcionar una interfaz de usuario estndar garantiza a los programadores la portabilidad de sus aplicaciones, as como un comportamiento totalmente predecible de las llamadas al sistema en cuanto a definicin de sus prototipos y sus resultados. 'ctualmente, el Anico estndar definido para la interfaz de sistemas operativos es 1S/` ) ortable 1perating Systeni interface- W #BCC#, basado principalmente en la interfaz del sistema operativo !;/`. 8odos los sistemas operativos modemos proporcionan este estndar en su interfaz, bien como interfaz bsica )en el caso de !;/` y =/;!`- o bien como un subsistema 1S/` )caso de Rindo4s- que se ejecuta sobre la interfaz bsica )Rin5,-. ;o se .ace ms ?nfasis en la interfaz 1S/` porque se va estudiando a lo largo de los distintos captulos.

+.6.

'=('"E;'(/E;81 SE"!;<'&/1

El sistema de almacenamiento secundario se usa para guardar los programas y datos en dispositivos rpidos, de forma que sean fcilmente accesibles a las aplicaciones a trav?s del sistema de arc.ivos. Esa es la razn por la que en la jerarqua de E/S )*ig. +,,- los dispositivos de almacenamiento se e jtv .a aia. m &'(. =a *igura +.## muestra el sistema de E/S en el sistema operativo =/;!` y la parte del mismo correspondiente a la gestion del sistema de almacenamiento secundario. "omo se puede ver, .ay dos elementos principales involucrados en este sistema.

0 <iscos. El almacenamiento secundario se lleva a cabo casi e2clusivamente sobre discos, por lo que es
interesante conocer su estructura y cmo se gestionan.

0 (anejadores de disco. "ontrolan todas las operaciones que se .acen sobre los discos, entre las que son
especialmente /mportantes las cuestiones de planificacion de peticiones a disco.

<igitalizacin realizada con propsito acad?mico

""""#

Sistema !e almacenamient secun!ari

*igura +.##. Estructura del sistema de E#S del sistema operativo 4I5-6.

En esta seccin se tratan los principales aspectos relativos a estos dos componentes, as como algunos otros relativos a tolerancia a fallos y fiabilidad. =os componentes que conforman los nive les superiores del sistema de E/S )sistemas de arc.ivos y cac.es- se estudian en el "aptulo C. +.6.#. <iscos

=os discos son los dispositivos bsicos para llevar a cabo almacenamiento masivo y no voltil de datos. 'dems se usan como plataforma para el sistema de intercambio que usa el gestor de me moria virtual. Son dispositivos electromecnicos )%'&< </ST- u optomecnicos )"<K&1( y <><-, que se acceden a nivel de bloque lgico por el sistema de arc.ivos y que, actualmente, se agrupan en dos tipos bsicos, atendiendo a la interfaz de su controladorE

0 <ispositivos S"S/ )Small "omputer System /nteiface-, cuyos controladores ofrecen una interfaz comAn
independientemente de que se trate de un disco, una cinta, un "<K&1(, etc. !n controlador S"S/ puede manejar .asta oc.o discos y puede tener una memoria interna de varios (U.

0 <ispositivos I E )/ntegrated <rive Electronics-, que suelen usarse para conectar los discos en todas las
computadoras personales. 'ctualmente estos controladores se .an e2tendido al sistema E/<E, una mejora de /<E que tiene mayor velocidad de transferencia. uede mane jar .asta cuatro discos /<E. Es barato y muy efectivo. y a tres tipos bsicos atendiendo a su tecnologa de fabricacinE

0 <iscos duros )Rinc.ester-. <ispositivos de gran capacidad compuestos por varias super ficies
magnetizadas y cuyas cabezas lectoras funcionan por efecto electromagn?tico. 'ctual mente su capacidad m2ima est en los 5S $U, pero se anuncian discos de #SS $U y ms.

<igitalizacin realizada con propsito acad?mico

5+L Sistemas 1perativos. !na visin +. aplicada

Entrada/Salida 5+6

iscos "pticos0 <ispositivos de gran capacidad compuestos por una sola superficie y cuyas cabezas lectoras funcionan por lser. 'ctualmente su capacidad m2ima est en los +SS (U. %asta .ace muy poco, la superficie se agujereaba fsicamente y no se podan regrabar. Sin embargo, actualmente e2isten discos con superficie magn?tica regrabables. iscos e1tra2bles0 <ispositivos de poca capacidad similares a un disco duro, pero cuyas cabezas lectoras se comportan de forma distinta. En este tipo se engloban los disquetes )floppies-, discos 9/ y G'99.

/ndependientemente del tipo al que pertenezcan, las estructuras fsica y lgica de todos los discos son muy similares, como se muestra a continuacin.

Estructura f2sica de los discos =a *igura +. #, muestra la estructura fisica de un disco duro y los parmetros de un disco comercial. un modelo de la familia Uarracuda '8' // de Seagate /Seagate, ,SSSD, tomado como ejemplo. "omo se puede ver, un disco duro es un dispositivo de gran capacidad compuesto por varias su perficies magnetizadas y cuyas cabezas lectoras funcionan por efecto electromagn?tico. =as ca bezas se mueven mediante un motor de precisin para poder viajar por las superficies que com ponen el disco. En el mbito organizativo, las superficies del disco estn divididas en cilindros, con una pista para cada cabeza y un cierto nAmero de sectores por pista. En el caso del ejemplo, #S,5,,6L c C5 respectivamente. =os cilindros se llaman as por ser la figura geom?trica que forman las cabezas al moverse en paralelo y simultneamente sobre los discos. El tama@o del sector es 6#, bytes. por lo que multiplicando los nAmeros anteriores se debe poder obtener la capacidad del discoE "apacidad H cilindros F pistas F sectores F tama@o sector articularizando esta ecuacin para el caso del ejemploE "apacidad H #S,5 F ,6L F C5 F 6#, H #S,5 $U =os parmetros de la estructura fsica del disco son muy importantes para el manejador del mismo, ya que las operaciones de E/S se calculan y optimizan mediante dos parmetros fundamen talesE tiempo de b3s.ueda )lo que se tarda en ir de una pista a otra- y tiempo de latencia )el tiempo medio que tardan en llegar los datos debajo de las cabezas, una vez posicionadas en la pista- W vy, #BB6#. ' grosso modo, se puede calcular el tiempo de acceso con un desplazamiento de a cilindros comoE 8 Nacceso H n F 8 NbAsqueda . 8 Nlatencia . 8 Ntransferencia donde el tiempo de transferencia para un sector depende de la velocidad rotacional del disco, que en este caso es +.,SS rpm, y del tama@o del sector, en este caso 6#, bytes. =os parmetros de configuracin fisica de un disco dependen de dos cosasE

#7. El dise@o del fabricante, que define su velocidad de rotacin, anc.o de banda del bus, etc. #6. =a operacin de formato fsico, que define el tama@o del sector y la posicin de los sectores en
las pistas. =os discos duros suelen venir con formato fisico de fbrica. En los disquetes se lleva a cabo el formato fsico al mismo tiempo que el lgico. <e cualquier forma, todos los sistemas operativos incluyen utilidades del administrador para dar for mato fsico a un dispositivo, como el mandato fdformat de =/;!` )'dvertencia +.5-.

<igitalizacin realizada con propsito acad?mico

SE060CE 7arracu!a 0C0 11 SC3306300 Val r 1035 67 1053 256 Sect res? Vel ci!a!? C1 &QsOue!a? =atencia? +1DeD ria

83
73500 r8m 235 mse) *316 mse) 5 /7

*igura +.#,. Estructura f7sica de un disco 3 par8metros arquitectnicos.

'<>E&8E;"/' +.5 ;unca d? foMMto fsico a un disco duro a nM ser que. est? muy seguro de lo que .ace y conozca muy beMn el d/SOH1S/tl>1. ara efectuar esta operacin se piden parmetros muy detallados de la estructura fsica del diS"1, que a veces no es fcil conocer.

=as ecuaciones anteriores se ven influenciadas por varios factoresE F <ensidad de cada pista. En los discos modernos las pistas tienen distinta densidad, por lo que el nAmero de sectores vara de unas pistas a otras. Si se mantiene el nAmero de bytes constante por pista, las pistas ms peque@as tienen mayor densidad, lo que afecta muc.o al controlador. Este problema se resuelve en el mbito del controlador. =os controladores S"S/ e /<E son de este tipo. F /ntercalado de sectores. El controlador debe emplear tiempo en copiar los datos ledos a memoria principal. <urante este tiempo no puede estar transfiriendo datos del disco, que se sigue moviendo a velocidad constante, lo que significa que si quiere leer el sector siguiente deber esperar a que las cabezas lectoras den una vuelta y lleguen de nuevo a ese bloque. !na solucin a este problema es intercalar sectores del disco de forma que no sean consecutivos. or ejemplo, en un disco se pueden colocar los bloques con un factor de entrelazado de ,, de forma que el orden en una pista de C sectores seraE S, 5, L, #,7, +, ,, 6. 's, una vez transmitidos los datos del controlador, las cabezas estn colocadas sobre el siguiente bloque a leer. El factor de entrelazado se puede definir cuando se .ace el formato fsico del disco. F 'lmacenamiento intermedio en el controlador. =a e2istencia de memoria en el controla dor permite optimizar muc.o las operaciones de E/S, ya que en lugar de leer sectores sueltos de una pista se puede optar por leer la pista entera y mantenerla en memoria del controlador. Si las peticiones de E/S son para arc.ivos contiguos en disco, el rendimiento se puede incrementar considerablemente. F "ontroladores inteligentes. "uando controlan varios dispositivos, permiten efectuar opera ciones de bAsqueda de forma solapada, como si funcionaran guiados por interrupciones. <e esta forma pueden solapar varios tiempos de bAsqueda mejorando muc.o el rendimiento global del sistema. 1bviamente, esta optimizacin no es posible mientras se efectAa trans ferencia de datos ya que el bus del controlador est ocupado.

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5++

8odos los detalles e2puestos en esta seccin, concernientes a la estructura fisica de los discos, no son visibles desde el e2terior debido a que el controlador se encarga de ofrecer una visin lgica del dispositivo como un conjunto de bloques, segAn se describe en la seccin siguiente. Estructura l"gica de los discos !na vez que el disco .a sido formateado en el mbito fisico, se procede a crear su estructura lgica, que es la realmente significativa para el sistema operativo. "omo parte del formato fsico se crea un sector especial, denominado sector S, aunque no siempre es el primero del disco, que se reserva para incluir en ?l la informacin de distribucin lgica del disco en subconjuntos denominados volAmenes o particiones. Esta informacin de guarda en una estructura denominada tabla de par ticiones )*ig. +. #5-. !na particin es una porcin contigua de disco delimitada por un sector inicial y final. ; o e2iste ninguna limitacin ms para crear particiones, si bien algunos sistemas operativos e2igen tama@os de particin mnimos en algunos casos. En el caso de la *igura +.#5, el dispositivo /dev/.da se .a dividido en dos particiones primarias usando la utilidad fdisV de =/;!`E

0 0

!na de intercambio )sivap-, llamada /dev/.da !na e2tendida )que tiene el sistema de arc.ivos e2t, de =/;!`-, llamada

/dev/.da,. ' su vez, la particin e2tendida se .a dividido en tres subparticiones lgicas /dev/.da6. /dev/.daL y /dev/.da+.

DD
D t3rchiv Wu!a Dessi ns 1<8ci nes 0??

. WG

Figura +.#5. Ta2la de particiones de un disco con el sistema operativo 4I5-6.

<igitalizacin realizada con propsito acad?mico

5+C Sistemas 1perativos. !na visin aplicada

F*,(* ,* P*40 567

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5+B

en memoria. "uando .a terminado salta a la direccin sistema operativo.

de memoria )donde puso el nAcleo- y se arranca el

=a segunda tarea importante que - a ca ia operac de c omia LgVo es Ita detecc de P os bloques lgicos defectuosos y su inclusin en una lista de bloques defectuosos. Estos bloques no son asignados nunca por el sistema de E/S, para lo que se marcan siempre como ocupados y no se liberan nunca. '.ora bien, [cmo se sabe que un bloque es defectuoso] !n bloque es defectuoso porque alguno de los sectores que lo componen son defectuosos. ["mo se sabe que un sector es defectuoso] ues se sabe porque cuando se efectAa el formateo fisico se crea una estructura de sector que contiene, al menos, tres elementosE cabecera, rea de datos y cola. =a cabecera incluye, entre otras cosas, el nAmero de sector y un cdigo de paridad. =a cola suele incluir el nAmero de sector y un cdigo corrector de errores )E"", Error "orrecting "ode-. ara verificar el estado del sector se escribe una informacin y su E"". ' continuacin se lee y se recalcula su E"". Si el sector est defectuoso, ambos E"" sern distintos, lo que indica que el E"" es incapaz de corregir los errores e2istentes en el sector. En ese instante, el bloque al que pertenece el sector se incluir en la lista de bloques defectuosos. =a tercera tarea consiste en elaborar una lista de bloques de repuesto para el caso en que algAn bloque del dispositivo falle durante el tiempo de vida del mismo. =os discos estn sujetos a rozamiento, suciedad y otros elementos que pueden da@ar su superficie. En este caso, algunos bloques que antes eran vlidos pasarn a la lista de bloques defectuosos. ara evitar que se reduzca el tama@o del dispositivo y para ocultar este defecto en el mbito del controlador, se suplanta este bloque por uno de los de la lista de repuesto, que a todos los efectos sustituye al anterior sin tener que modificar en absoluto el manejador. +.6.,. El manejador de disco El manejador de disco se puede ver como una caja negra que recibe peticiones de los sistemas de arc.ivos y del gestor de bloques y las traslada a un formato que entiende el controlador del dis positivo. Sin embargo, el dise@ador de sistemas operativos debe entrar en los detalles del interior de un controlador y determinar sus funciones principales, entre las que se incluyenE

#L. #+. #C.

roceso de la peticin de E/S de bloques. 8raduccin del formato lgico a mandatos del controlador.

/nsercin de la peticin en la cola del dispositivo, llevando a cabo la poltica de planifica cin de disco pertinente )*/*1, SG*, S"';, "S"';, E<*, etc.-.

#B. ,S. ,#. ,,. ,5.

Envo de los mandatos al controlador, programando el <('. Uloqueo en espera de la interrupcin de E/S. "omprobacin del estado de la operacin cuando llega la interrupcin. $estin de los errores, si e2isten, y resolverlos si es posible. /ndicacin del estado de terminacin al nivel superior del sistema de E/S.

En =/;!` y Rindo4s ;8 )*ig. +.C-, el paso # se lleva a cabo en un manejador para la clase de dispositivo disco, pero independiente del tipo de disco en particular, denominado manejador gen?rico. Sin embargo, el paso , se lleva a cabo en un manejador dependiente del dispositivo, denominado manejador particular. ["mo distingue el manejador el tipo de dispositivo y el dispositivo en particular] =os distingue porque en la peticin de E/S viene informacin que lo indica. En el caso de !;/` y =/;!`, por ejemplo, en cada descriptor de arc.ivo .ay dos nAmeros, denominados nAmero primario )majomumber- y nAmero secundario )minomumber- W #BCL#, que indican el tipo de dispositivo )p. ej.E disco- y el nAmero de dispositivo )p. ej.E 5 para .da5-. En Rindo4s ;8 .ay conceptos equivalentes.

<igitalizacin realizada con propsito acad?mico

5CS

Sistemas 1perativos. !na visin aplicada

' continuacin, se inserta la peticin en una cola de peticiones pendientes. <ependiendo del dise@o del manejador, e2iste una cola global para cada tipo de dispositivo, una cola para dispositivo particular o ambas. <e cualquier forma, una vez insertadas las peticiones en las colas, el manejador se encarga de enviarlas al controlador cuando puede ejecutar operaciones porque este Altimo est libre y se bloquea en espera de la interrupcin del dispositivo que indica el fin de la operacin de E/S. Esta operacin puede terminar de forma correcta, en cuyo caso se indica al nivel superior eG estado de terminacin, o de forma incorrecta, en cuyo caso .ay que analizar los errores para ver si se pueden resolver en el manejador o deben comunicarse al nivel superior. ' continuacin, se estudia ms en detalle la estructura de un manejador de disco, as como las t?cnicas de planificacin de disco y de gestin de errores en el manejador de disco. Estructura de un manejador de disco =os manejadores de disco actuales estn compuestos en realidad por un conjunto de manejadores apilados, como se muestra en la *igura +.#7, que refleja una estructura similar a la de los ma nejadores de disco de =/;!` W #BBL#. En Rindo4s ;8 esta tendencia es todava ms acusa da, ya que los manejadores estn dise@ados como objetos y e2iste .erencia de propiedades y com portamiento. En cada nivel de la pila se lleva a cabo una funcionalidad especfica, que es ms dependiente del dispositivo a medida que se profundiza en la jerarqua. En el caso de =/;!`, el manejador de dispositivos de bloque incluye operaciones gen?ricas como open, close, read y 4rite para dispositivos de tipo bloque. Este manejador accede a dos mdulosE F (dulo de planificacin, que se encarga de ordenar las peticiones de bloque a un dis positivo con poltica "S"'; . F (anejador de disco, que se encarga de proporcionar una interfaz comAn a todos los dis positivos y demultiple2ar las peticiones a cada tipo de dispositivo en particular. "uando le llega una operacin de cerrar un dispositivo, el planificador mira si tiene peticiones pendientes y fencolag la peticin de descone2in del dispositivo .asta que .ayan terminado. !na vez procesadas las peticiones, el planificador las redirige al manejador de tipo de dispositivo ade cuado )/<E, "<K&1(, S"S/, floppy, etc.-, usando para ello el major number, que se encarga de llevar a cabo las operaciones especficas para ese dispositivo y de enviarlas al dispositivo espe cfico, usando el minor number.

/anePa! r !e !is8 sitiv !e &l Oues

/anePa! r !e !isc /anePa! r SCS+ /anePa! r lOE

O K ... +

/anePa! r !e 'l 88y

*igura +.#7. Estructura de un mane0ador de disco.

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5C#
!no de los manejadores de tipo de dispositivo e2istente en =/;!` es el de dispositivos /<E, algunas de cuyas operaciones se indican a continuacinE bloc Vread, blocV N 4rite, ideNoctl, ideNopen, ide Gelease, blocV jsync, ide Nc.ecVNmedia N /0 operacin de lectura de bloque 0/ /0 operacin de escritura de bloque 0/ /0 ioctl 0/ /0 abrir 0/ /0 cerrar 0/ /0 sincronizacin 0 / /0 comprobar el medio 0 / /0 vuelca datos a disco

c.ange, revalidate NdisV, 0/ "omo seide puede ver, el manejador proporciona muy pocas funciones de alto nivel. Gequests, /0 llamadas del planificador 0 / 'dems de las tpicas de lectura y escritura, merece la pena resaltar las de control del dispositivo )ide Nioctl-, las de sincronizacin )bl ocV ' sync-, las de comprobacin del medio )ideNc.ecVNmedi aNc.ange-. /nternamente, el manejador /<E se estructura en dos nivelesE

,7. ;ivel independiente de dispositivo, definido por algunas de las funciones de la interfaz. Estas funciones
acaban llamando a funciones internas de bajo nivel. !na de las ms unK portantes es la autodeteccin de los desplazamientos de bloques en el disco a partir de los datos de la tabla de particiones.

,6. ;ivel dependiente de dispositivo. *unciones de bajo nivel que se encargan de contactar con el
controlador del dispositivo. 'lgunas de estas funciones sonE

0 0 0 0 0 0 0

ideNsetup, que calcula los datos del disco a partir de la U/1S. controller N busy, que comprueba si el controlador est libre u ocupado. Status N 1T, que comprueba el estado del disco. ide Nout, que emite los mandatos al controlador para escribir en el disco. resetN controller y resetN .d, que reinician el controlador y el dispositivo respec tivamente. recalibrate, que ordena al controlador recalibrar el motor del disco. identify intr, que lleva a cabo el tratamiento de interrupcin.

El rograma +., muestra una versin simplificada de la rutina del manejador /<E que escribe datos al controlador del dispositivo. 1bserve que es similar al programa canal que se mostr en el rograma +.#. "onsiste bsicamente en una operacin de inicio del controlador para cargar el registro de datos, la direccin de memoria y el contador de datos. !n bucle que escribe los datos, incrementando el contador de memoria, y una etapa de fin de escritura.

Programa 6080 )utina de escritura de datos en un controlador l-E0 void ide_output_data

(ide_drive_L *drivc, void ~buffer, unsi ned int !count"

% &'()(drive"-*io_base unsi ned s#ort data_re ~ io_base+,$-_$.(._/))0-( b1te io_32bit % drive-*io_32bit2 unsi3ned s#ort *ptr % (unsi ned s#ort *" buffer2
unsi ned s#ort i$_base
09

,nicio de escritura *4

<igitalizacin realizada con propsito acad?mico

5C, Sistemas 1perativos. !na visin aplicada


outs6(data_re , buffer, !count"2 YF -scritura de datos FY !#i6e (!count--" 7 out!_p(*ptr++, data_re "2 out!_p(*ptrtt, data_re "2

2*

)in de escriLura *2 outs!(data_re , buffer, !count56"2

Planificaci"n del disco El rendimiento de un disco puede ser muy distinto dependiendo del orden en que reciba las peticio nes de E/S. =a razn principal es que un disco, a diferencia de una tarjeta de red por ejemplo, tiene una geometra que fuerza a mover las cabezas de unas posiciones del disco a otras. or ello es fundamental usar polticas de planificacin que minimicen el movimiento de cabezas para obtener un buen rendimiento medio del disco. El manejador de disco es el responsable de llevar a cabo la poltica de planificacin adecuada dependiendo del tipo de peticin, de la posicin de las cabezas del disco y de la posicin de la peticin a realizar, teniendo en cuenta fundamentalmente el tiempo de bAsqueda del disco. Sin embargo, es responsabilidad del dise@ador elegir la poltica, o polticas, de planificacin e2istentes en el sistema, para lo cual debe conocer las ventajas e inconvenientes de las ms populares, algunas de las cuales se describen a continuacin. !na opcin es usar la poltica *"*S )*irst "ome *irst Served-, segAn la cual las peticiones se sirven en orden de llegada. Esta poltica no permite optimizar el rendimiento del disco ni ordenar las peticiones segAn la geometra del disco. ara ver el comportamiento de este algoritmo, con sidere que las cabezas del disco estn en el cilindro L y que .ay encoladas peticiones para los cilindros ,S, ,, 6L c +. El nAmero de desplazamientos necesario para servir todas las peticiones seraE <esplazamientos H ),S K L- . ),S K ,- . )6L K ,- . )6L K+- H #7 . #C . 67 . 7B H #56 !na forma de mejorar la planificacin del disco es usar la poltica SSE )S.ortest SeeV *irst-, que como su nombre indica trata de minimizar el tiempo de bAsqueda sirviendo primero las pe ticiones que estn ms cerca de la posicin actual de las cabezas. 's, en el ejemplo anterior las peticiones se atenderan en el siguiente ordenE +, ,, ,S c 6L. El nAmero de desplazamientos seraE <esplazamientos H )+ K L- . )+ K ,- . ),S K ,- . )6L K ,S- # . 6 . #C . 5L LS Sin embargo, este algoritmo tiene un problema serioE el retraso indefinido de peticiones por inanicin o .ambruna. Si el sistema est congestionado, o se produce alguna circunstancia de pro2imidad espacial de las peticiones, se da prioridad a las peticiones situadas en la misma zona del disco y se relega a las restantes. /magine un conjunto de peticiones como las siguientesE #,,,5,6L,7,,,5, #,,, ... =a peticin del cilindro 6L podra morir de inanicin. Sera pues conveniente buscar una poltica que siendo relativamente justa minimizara los movimientos de las cabezas y ma2imizara el rendimiento. Esta poltica, o polticas, es la poltica del ascensor con todas sus variantes. Su nombre se debe a que es la poltica que se usa en edificios altos para controlar eficientemente los ascensores y asegurar que todo el mundo puede subir al

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5C5

ascensor. El fundamento de la poltica bsica del ascensor, denominada S"';, consiste en mover las cabezas de un e2tremo a otro del disco, sirviendo todas las peticiones que van en ese sentido. 'l volver se sirven todas las del sentido contrario. "on esta poltica, el ejemplo anterior, en el que las cabezas estn en el cilindro L con movimiento ascendente y las peticiones encoladas son ,S, ,, 6L c +, causara los siguientes desplazamientos, asumiendo un disco de +S cilindrosE <esplazamientos X )+KL- J ),S K+- J )6LK,S- J)+S K 6L-J )6LK ,-X # J #5 J 5L J #7 J J67X##C

"omo se puede ver, el nAmero de desplazamientos es menor que el *"*S, pero considerable mente mayor que el SS*, debido fundamentalmente al Altimo desplazamiento que obliga a recorrer el disco entero. El comportamiento de este algoritmo es ptimo cuando las peticiones se distribuyen uniformemente por todo el disco, cosa que casi nunca ocurre. or ello se optimiz para mejorar el tiempo de bAsqueda aprovec.ando una propiedad de los discos que tambi?n tienen los ascensoresE es muc.o ms costoso subir un edificio parando que ir de un golpe de arriba abajo, o viceversa. EQ ascensor de las torres Sears de ".icago, por ejemplo, sube los ##S pisos sin parar en menos de , minutos, mientras que parando dos o tres veces tarda ms de #S. Esto es lgico, porque los motores tienen que frenar, acelerar y ajustarse al nivel de los pisos en que para el ascensor. En un disco pasa lo mismoE cuesta casi lo mismo ir de un e2tremo a otro que viajar entre dos pistas. or ello se puede mejorar el tiempo de respuesta del disco usando una versin de la poltica del ascensor que viaje en un solo sentido. "on esta poltica, denominada "S"'; )"vclic Sean-, las cabezas se mueven del principio al final del disco, atienden las peticiones en ese sentido sin parar y vuelven al principio sin atender peticiones. "on esta poltica, el nAmero de desplazamientos del ejemplo anterior seraE <esplazamientos X )+KL- J ),SK+- J )6LK,S- J )+SK6L- J +S J ),KS- X # J #5 J 5L J J #7J+SJ,X #5L (uy alto, como puede observar. Sin embargo el resultado es enga@oso, ya que los desplaza mientos realmente lentos, con paradas en cilindros, son LL. El tiempo de respuesta de este algoritmo es pues muc.o menor que el del S"'; y casi similar al de SS*. En dispositivos con muc.as peticiones de E/S, esta poltica tiene un rendimiento medio superior a las otras. =a poltica "S"'; todava se puede optimizar evitando el desplazamiento .asta el final del disco, es decir, volviendo de la Altima peticin en un sentido a la primera en el otro. En el caso del ejemplo se ira de 6L a , con un desplazamiento rpido. =os desplazamientos del ejemplo con esta poltica, denominada =11T W #BBCD, seranE <esplazamientos X )+KL- J ),SK+- J )6LK,S- J )6LK,- # J #5 J 5L J 67 X #S7 donde los desplazamientos realmente lentos son 6S. El algoritmo "S"'; es el ms usado actualmente. Se usa en prcticamente todas las ver siones de !;/`, =/;!` c Rindo4s, debido a que da el mejor rendimiento en sistemas muy cargados. Sin embargo, su rendimiento depende muc.o de la distribucin de las operaciones de E/S por el disco y de la situacin de los bloques que se acceden con ms frecuencia. or ello, suele ser una t?cnica .abitual en sistemas operativos situar en el centro del disco aquellos datos que se acceden ms a menudo. Estos algoritmos, sin embargo, no resuelven el problema de algunas aplicaciones modernas que requieren un tiempo de respuesta determinado. Es el caso de las aplicaciones de tiempo real y multimedia, en las que es importante realizar las operaciones de E/S antes de que termine un plazo

<igitalizacin realizada con propsito acad?mico

5C7

Sistemas 1perativos. !na visin aplicada

determinado )deadline-. ara este tipo de sistemas se pueden usar otras t?cnicas de planificacin, como la poltica E<* )Earliest <eadline *irst-, S"';KE<* o S"';K&8. ara tratar de satisfacer los requisitos de sistemas de propsito general y los de multimedia se .an propuesto algoritmos que optimi zan simultneamente geometra y tiempo de respuesta, tales como "ello y ,K\ W ,SSS#. 4esti"n de errores 1tra de las funciones bsicas del manejador de disco es gestionar los errores de E/S producidos en el mbito del dispositivo. Estos errores pueden provenir deE

0=as aplicaciones. or ejemplo, peticin para un dispositivo o sector que no e2iste. 0<el controlador. or ejemplo, errores al aceptar peticiones o parada del controlador. 0
<e los dispositivos. or ejemplo, fallos transitorios o permanentes de lectura o escritura y fallos en la bAsqueda de pistas. 'lgunos de ellos, como los errores transitorios, se pueden resolver en el manejador. 1tros, como los errores de aplicacin o fallos permanentes del dispositivo, no se pueden resolver y se deben comunicar al nivel superior de E/S. =os errores transitorios pueden ser debidos a la e2istencia de partculas de polvo en la su perficie del disco cuando se efectAa la operacin de E/S, a peque@as variaciones el?ctricas en la transmisin de datos o a radiaciones que afecten a la memoria del controlador, entre otras cosas. Esos errores se detectan porque el E"" de los datos no coincide con el calculado y se resuelven repitiendo la operacin de E/S. Si despu?s de un cierto nAmero de repeticiones no se resuelve el problema, el manejador concluye que la superficie del disco est da@ada y lo comunica al nivel superior de E/S. 1tro tipo de errores transitorios tiene su origen en fallos de bAsqueda debidos a que las cabezas del disco estn mal calibradas. Se puede intentar resolver este problema recalibrando el disco, lo que puede .acerse mediante la operacin del controlador recalbra =os errores permanentes se tratan de distintas formas. 'nte errores de aplicacin el ma nejador tiene poco que .acer. Si se pide algo de un dispositivo o bloque que no e2iste, lo Anico que se puede .acer es devolver un error. 'nte errores del controlador, lo Anico factible es tratar de reiniciar el controlador mediante sus instrucciones especficas para ello. Si al cabo de un cierto nAmero de repeticiones no se resuelve el problema, el manejador concluye que la superficie del disco o el controlador estn da@ados y lo comunica al nivel superior de E/S. 'nte errores permanen tes de la superficie del dispositivo, lo Anico que se puede .acer es sustituir el bloque por uno de repuesto, si e2iste una lista de bloques de repuesto, y comunicar el error al nivel superior.

+.6.5. iscos en memoria =os discos en memoria &'( son una forma popular de optimizar el almacenamiento secundario en sistemas operativos convencionales y de proporcionar almacenamiento en sistemas operativos de tiempo real, donde las prestaciones del sistema e2igen dispositivos ms rpidos que un disco con vencional. %ay dos formas bsicas de proporcionar discos en memoriaE

0<iscos &'(. 0<iscos slidos.


=os discos )*9 son dispositivos de bloques que proporciona el sistema operativo y que se almacenan, generalmente, en la propia memoria del sistema operativo )/dev/Vmem en !;/`-. !n disco &'( es una porcin de memoria de un tama@o arbitrario dividida en bloques, a nivel lgico,

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5C6

por el sistema operativo que muestra una interfaz de disco similar al de cualquier disco de dis positivo secundario. El manejador de esos dispositivos incluye llamadas open, read, 4rite, etc., a nivel de bloque y se encarga de traducir los accesos del sistema de arc.ivos a posiciones de memoria dentro del disco &'(. =as operaciones de transferencia de datos son copias de memoria. ; o tienen ningAn .ard4are especial asociado y se implementan de forma muy sencilla. ero tienen un problema bsicoE si falla la alimentacin se pierden todos los datos almacenados. =os discos slidos son sistemas de almacenamiento secundario no voltiles fabricados co locando c.ips de memoria &'( en placas. =as placas se conectan al bus del sistema y se acceden a la misma velocidad que la memoria principal )nanosegundos-. %ay una diferencia fundamental entre estos sistemas y los discos &'(E tienen .ard4are, y puede que un controlador, propio. =a interfaz sigue siendo la de un dispositivo de bloques, encargndose el manejador de traducir pe ticiones de bloque a memoria. =as transferencias, sin embargo, se pueden convertir en operaciones de lectura o escritura a puertos, dependiendo de la instalacin del disco slido. =os discos en c.ips son la Altima tendencia en discos slidos implementados con memoria. "ombinan memoria flas. de alta densidad y una interfaz sencilla, proyectada en memoria o a trav?s de puertos, para proporcionar almacenamiento secundario en un c.ip que se parece a una memoria &1( de 5, pines. !sando estos sistemas se pueden crear discos de estado slido con almacena miento no voltil con una capacidad de .asta ,6L (U. 'dems, estos c.ips se pueden combinar en placas para proporcionar varios $U de capacidad, como por ejemplo la "(K 5C7S de 'dvantec.. !na vez instalados en el sistema, se ven como un objeto ms del sistema de E/S que se manipula a trav?s del manejador correspondiente, por lo que proporciona las mismas operaciones que cualquier otro dispositivo de almacenamiento secundario. <e tal forma que cuando se crea sobre el disco un sistema de arc.ivos, se puede montar en el rbol de nombres sin ningAn problema.

+.6.7. *iabilidad y tolerancia a fallos El sistema de E/S es uno de los componentes del sistema con mayores e2igencias de fiabilidad, debido a que se usa para almacenar datos y programas de forma permanente. =as principales t?c nicas usadas para proporcionar esta fiabilidad sonE

0 "digos correctores de error, como los e2istentes en las cabeceras y colas de los sectores. 0
o

1peraciones fiables, cuya correccin se puede verificar antes de dar el resultado de la opera cin de E/S. Esta t?cnica se implementa mediante t?cnicas de almacenamiento estable. &edundancia, tanto en datos replicados W #BB,# como en cdigo de paridad para detectar errores y recuperarlos. Esta t?cnica se implementa mediante el uso de dispositivos &'/< )&edundan 'rray of/ne2pensive <isVs-. &edundancia .ard4are, como el sistema de Rindo4s ;8 que permite conectar un disco a trav?s de dos controladores.
o

8odas estas t?cnicas contribuyen a incrementar la fiabilidad del sistema de E/S y proporcionan tolerancia a fallos para .acer frente a algunos de los errores que antes se calificaron de permanen tes. ' continuacin se estudian con ms detalle los mecanismos de almacenamiento estable y los discos &'/<. 'lmacenamiento estable =a t?cnica clsica de almacenamiento redundante es usar discos espejo /8anenbaum, #BB,D, es decir, dos discos que contienen e2actamente lo mismo. Sin embargo, usar dos discos no es suK

<igitalizacin realizada con propsito acad?mico

5CL

Sistemas 1perativos. !na visin aplicada

ficiente, .ay que modificar el manejador, o el gestor de bloques, para tener almacenamiento fiable, de forma que las operaciones de escritura y de lectura sean fiables. !na escritura fiable supone escribir en ambos discos con ?2ito. ara ello se escribe primero en un disco. "uando la operacin est completa, se escribe en el segundo disco. Slo si ambas tienen ?2ito se considera que la operacin de escritura .a tenido ?2ito. En caso de que una de las dos escrituras falle, se considera un error parcial. Si ambas fallan, se considera que .ay fallo total del almacenamiento estable. En el caso de la lectura fiable, basta con que uno de los dispositivos est? disponible. '.ora bien, si se quiere verificar el estado de los datos globales, .abr que leer ambos dispositivos y comparar los datos. En caso de error, .abr que elegir alguno de ellos segAn los criterios definidos por el sistema o la aplicacin. Este tipo de redundancia tiene dos problemas principalesE

0<esperdicia el 6S por #SS del espacio de almacenamiento. 0


&educe muc.o el rendimiento de las operaciones de escritura. Ello se debe a que una es critura no se puede confirmar como vlida .asta que se .a escrito en ambos discos espejo, lo que significa dos operaciones de escritura. Sin embargo, tiene la ventaja de ser una t?cnica barata y sencilla de implementar. 'dems, si se lee simultneamente de ambos discos, se puede incrementar muc.o el rendimiento del sistema. En Rindo4s ;8, por ejemplo, e2isten manejadores para proporcionar almacenamiento estable en el mbito del sistema y de forma transparente al usuario.

<ispositivos )*I !na t?cnica ms actual para proporcionar fiabilidad y tolerancia a fallos consiste en usar dispositi vos &'/< )&edundant 'rray of/ndependent <isVs- a nivel .ard4are W #BB6# o soft4are E".en, #BB6D. Estos dispositivos usan un conjunto de discos para almacenar la informacin y otro conjunto para almacenar informacin de paridad del conjunto anterior )*ig. +.#6-. En el mbito fsico se ven como un Anico dispositivo, ya que e2iste un Anico controlador para todos los discos. Este controlador se encarga de reconfigurar y distribuir los datos como es necesario de forma transparente al sistema de */S. Se .an descrito .asta siete niveles de &'/<, pero solamente los cinco primeros estn realmen te operativos. Estos niveles son los siguientesE &'/< #. Son discos espejo en los cuales se tiene la informacin duplicada. 8iene los pro blemas y las ventajas del almacenamiento estable.
o

&'/< ,. <istribuye los datos por los discos, reparti?ndolos de acuerdo con una unidad de distribucin definida por el sistema o la aplicacin. El grupo de discos se usa como un disco lgico, en el que se almacenan bloques lgicos distribuidos segAn la unidad de reparto.
o

&'/< 5. &eparte los datos a nivel de bit por todos los discos. Se puede a@adir bits con cdigos correctores de error. Este dispositivo e2ige que las cabezas de todos los discos est?n
o

sincronizadas, es decir, que un Anico controlador controle sus movimientos. &'/< 7. &eparto de bloques y clculo de paridad para cada franja de bloques, que se al macena en un disco fijo. En un grupo de cinco discos, por ejemplo, los cuatro primeros seran de datos y el quinto de paridad. Este arreglo tiene el problema de que el disco de paridad se convierte en un cuello de botella y un punto de fallo Anico.
o

<igitalizacin realizada con propsito acad?mico

5CC
(ab6a 89:9 ;nidad

Sistemas 1perativos. !na visin aplicada


Evolucin de las cintas ma$n:ticas

Entrada/Salida 5C+
358= <><= <8>= 35< =-

DLT
2===

35<=

0$-3

En algunos sistemas de almacenamiento es necesario disponer de dispositivos e2trables y de alta capacidad para poder .acer copias de respaldo de datos o para arc.ivar datos que se usan poco frecuentemente. Estas dos Fecha 19<J5 #BB5 #BB6 #BB+ #BBC #BBC #BB necesidades justifican la e2istencia de almacenamiento terciario, que se puede definir como un sistema de B "apacida #S.SSS #S.SSS 6S.SSS 6.SSS e2trables #.LSS en eD que ,S.SSS 7S. los datos que no almacenamiento de alta capacidad, bajo coste y con dispositivos se almacenan d SSS )(Use necesitan de forma inmediata en el sistema. >elocida #,, B + L #S #7
++ d seccin se estudia brevemente la tecnologa para sistemas de almacenamiento ter ciario, la estructura y los transferencia En esta )(U/seccomponentes del sistema de almacenamiento terciario y se estudia el sistema % SS, un sistema de almacenamiento =ongitud #.,SS l.lSS #.,SS ;;' ,.,SS BSS ,., terciario de altas prestaciones. SS )piesistas #,C #,C
Disc

%elicoidal

#,C
Disc 5

5L
Disc 3

,CC

,6L

+.L.#. 8ecnologa para almacenamiento terciario

Disc 1

*igura +.a6. <istrifmcilhn de bloques en #### dispositivo RAID 5 .

=a tecnologa de almacenamiento terciario no .a evolucionado muc.o en los Altimos a@os. =os dispositivos de eleccin son los "<K&1(, los <>< y, sobre todo, las cintas magn?ticas. En cuanto al soporte usado, se usan juVebo2es y sistemas robotizados para las cintas. F &'/< 6. &eparto bloques y paridado por todos los discos demquinas forma cclica. 8iene la ventaja de laalgunos tolerancia a y =os juVebo2es son de torres de "<K&1( <>< similares a las de mAsica que se ven en bares fallos de sinbaile. los inconvenientes del &'/< 7. 'ctualmente e2isten mAltiples salas "uando se quiere leer algo, las cabezas lectoras suben o bajan por la torre, seleccionan el disco adecuado y lo leen. Este de m?todo es adecuado para bases deen datos medianas o centros de distribucin de mAsica o dispositivos comerciales este estilo y son muy populares de pelculas. Sin embargo, estos dispositivos se usan principalmente como discos R1&( ) Rrite 1nce fiabilidad. &ead(any-, lo que significa que es difcil o costoso rescribir informacin sobre ellos. 'dems, tienen poca capacidad, ya que un "<K&1( almacena (U c un unos #Cla $U. =a *igura +.#6 muestra un dispositivo de+SS tipo &'/< 6,<>< donde toda paridad se reparte por todos los discos de forma cclica. =a paridad se calcula por .ard4are en el controlador .aciendo el `K1& de los bloques de datos de cada conlieva problemas si las no llenan todos los discos de datos )escrituras ya %astafranja. a.ora,Esto la alternativa como sistema deescrituras almacenamiento son las cintas magn?ticas, que son ms peque@as-, baratas, igual que .ay que leer los datos restantes para calcular la paridad. Sin embargo, los &'/< proporcionan un gran anc.o de rpidas y tienen ms capacidad )8abla +.#-. Estas cintas se pueden mani pular de forma manual o mediante de banda para y escrituras grandes restaciones +.#-. robots que, en lecturas base a cdigos de barras, las ) almacenan una vez escritas y las colocan en las cabezas lectoras cuando es necesario. !n buen ejemplo de sistema de almacenamiento terciario lo constituye el e2istente en el "E&; )"entro Europeo &ES8'"/1;ES +.# donde los datos de los e2perimentos se almacenan en cintas magn?ticas que para la /nvestigacin ;uclear-, 'ctualmente los &'/< son los dispositivos eleccin en un sistema que requiera fiabilidad y altas controlan un sistema de almacenamiento controladodepor un robot. "uando se va a procesar un e2perimento, sus Sus controladores estn muy optimizados y penureneonvertir la informacin de unos datos se cargan prestaciones. en el almacenamiento se cundario. =a gran ventaja de este sistema es que el un Anico robot puede formatos de &'/< a otros de forma transparente al usuario para optimizar su rendimiento. Eso es lo que manipular un gran nAmero .ace, por ejemplo, el % K'!81&'G< ZRilVes, #BB6D, que permitecambiar los arc.ivos de &'/< l a
&'/< 6 de forma automtica o bajo demanda del sistema de E/S.

+.L.

'=('"E;'(/E;81 (E)%I*)I-

=os sistemas de almacenamiento secundario estn bien para acceso rpido a datos y programas, sm embargo tienen tres problemas seriosE

,L. ,+. ,C.

oca capacidad. 'lto coste. ; o se pueden e2traer de la computadora.

<igitalizacin realizada con propsito acad?mico

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5CB

de cintas con pocas unidades lectoras. Su gran desventaja es que los datos no estn inmediatamente disponibles para los usuarios, que pueden tener que esperar segundos u .oras .asta que se instalan en el sistema de almacenamiento secundario. !na tecnologa novedosa para el almacenamiento secundario y terciario la constituyen las S'; )Storage 'rea ;et4orVs-, que son redes de altas prestaciones a las que se conectan directa mente dispositivos de almacenamiento. resentan una interfaz uniforme para todos los dispositivos y proporcionan un gran anc.o de banda. 'ctualmente empiezan a ser dispositivos de eleccin para sistemas de almacenamiento secundarios y terciarios de altas prestaciones. En sistemas de altas prestaciones, como el descrito ms adelante, se usan servidores de E/S muy complejos, incluidos multiprocesadores, para crear sistemas de almacenamiento terciario cuyo tiempo de respuesta es muy similar a los sistemas de almacenamiento secundario. +.L.,. Estructura y componentes de un sistema de almacenamiento terciario

<esde el punto de vista del sistema operativo, el principal problema de estos sistemas de almacena miento terciario es que se crea una jerarqua de almacenamiento secundario y terciario, por la que deben viajar los objetos de forma automtica y transparente al usuario. 'dems, para que los usua rios no est?n descontentos, se debe proporcionar accesos con el mismo rendimiento del nivel ms rpido y el coste apro2imado del nivel ms bajo. =a e2istencia de un sistema de almacenamiento terciario obliga al dise@ador del sistema opera tivo a tomar cuatro decisiones bsicas relacionadas con este sistemaE

0 [\u? estructura de sistema de almacenamiento terciario es necesaria] 0 ["mo, cundo y dnde se mueven los arc.ivos del almacenamiento secundario al terciario] 0 ["mo se localiza un arc.ivo en el sistema de almacenamiento terciario] 0 [\u? interfaz de usuario va a estar disponible para manejar el sistema de almacenamiento terciario]
=os sistemas de almacenamiento terciario e2istentes en los sistemas operativos actuales, tales como !;/`, =/;!` c Rindo4s, tienen una estructura muy sencilla consistente en un nivel de dispositivos e2trables, tales como cintas, disquetes o "<K&1(. Estos dispositivos se tratan e2acta mente igual que los secundarios, e2ceptuando el .ec.o de que los usuarios o administradores deben insertar los dispositivos antes de trabajar con ellos. Solamente en grandes centros de datos se pue den encontrar actualmente sistemas de almacenamiento terciario con una estructura compleja, como la de % SS que se estudia en la seccin siguiente. =a cuestin de la migracin de arc.ivos del sistema secundario al terciario, y viceversa, depende actualmente de las decisiones del administrador )en el caso de las copias de respaldo- o de los propios usuarios )en el caso de arc.ivos personales-. En los sistemas operativos actuales no se define ninguna poltica de migracin a sistemas terciarios, dado que estos sistemas pueden no e2istir en muc.as computadoras. Sin embargo, se recomienda a los administradores tener una plani ficacin de migracin para asegurar la integridad de los datos del sistema secundario y para migrar aquellos arc.ivos que no se .an usado durante un perodo largo de tiempo. =a poltica de migracin define las condiciones bajo las que se copian los datos de un nivel de la jerarqua a otro, u otros. En cada nivel de la jerarqua se puede aplicar una poltica distinta. 'dems, en el mismo nivel se puede aplicar una poltica distinta dependiendo de los datos a migrar. /magine que se quiere mover un arc.ivo de usuario cuya cuenta de acceso a la computadora se .a cerrado. =as posibilidades de volver a acceder a estos datos son peque@as, por lo que lo ms proba

<igitalizacin realizada con propsito acad?mico

5BS Sistemas 1perativos. !na visin aplicada


ble es que la poltica los relegue al Altimo nivel de la jerarqua de E/S )p. ej.E cintas e2trables-. /magine a.ora que se quiere migrar un arc.ivo de datos del sistema que se accede con cierta frecuencia, lo ms probable es que la poltica de migracin decida copiarlo a un dispositivo de alta integridad y disponibilidad, como un &'/<. En los sistemas automatizados, como % SS, .ay mo nitores que rastrean los arc.ivos del sistema de almacenamiento secundario y crean estadsticas de uso de los mismos. %abitualmente, los arc.ivos usados son los primeros candidatos para la poltica de migracin. "mo y dnde migrar los arc.ivos depende muc.o de la estructura del sistema de almacena miento terciario. E2isten dos opciones claras para mantener los arc.ivos en almacenamiento terciarioE

0 0

!sar dispositivos e2trables y mantenerlos o/jKline . !sar dispositivos e2trables o no, pero mantenerlos enKune.

En el primer caso, los arc.ivos se copian en el sistema terciario y se eliminan totalmente del secundario. En el segundo se copian en el sistema terciario pero se mantienen enlaces simblicos desde el sistema secundario, de forma que los arc.ivos est?n automticamente accesibles cuando se abren. !n caso especial lo constituyen las copias de respaldo, en las que se copian los datos a un terciario e2trable por cuestiones de seguridad y no de prestaciones. En este caso, los datos siguen estando completos en el sistema secundario de almacenamiento. "on cualquiera de las opciones, es .abitual comprimir los datos antes de copiarlos al sistema terciario, para aumentar la capacidad del mismo. =a compresin se puede .acer transparente a los usuarios incorporando .erramientas de compresin al proceso de migracin. =a localizaci"n de arc!ivos en un sistema de almacenamiento terciario es un aspecto muy importante de los mismos. En un sistema operativo de una instalacin informtica convencional, lo normal es que el usuario deba preguntar al administrador del sistema por ese arc.ivo si ?ste lo .a migrado a un sistema terciario e2trable, ya que no estar en el almacenamiento secundario. En el caso de que el sistema terciario sea capaz de montar dinmicamente los dispositivos e2trables )robots de cintas,juVe.o2es, etc.-, se pueden mantener enlaces desde el sistema secundario al ter ciario, por lo que se migrar el arc.ivo automticamente )en cuestin de segundos-. !n sistema terciario de altas prestaciones como % SS intenta que los usuarios no puedan distinguir si los arc.ivos estn en el sistema secundario o terciario, tanto por la transparencia de nombres "1fll 1 por el rendimiento. ara ello usa servidores de nombres, localizadores de arc.ivos y, si es necesario, bases de datos para localizar los arc.ivos. =a interfaz de usuario de los sistemas de almacenamiento terciario puede ser la misma que la del sistema secundario, es decir, las llamadas al sistema de 1S/` o Rin5, para manejar dispositi vos de E/S. Sin embargo, es .abitual que los sistemas operativos incluyan mandatos, tales conio el tar de !;/` o el bacVup de Rindo4s, para llevar a cabo copias de arc.ivos en dispositivos e2trables de sistema terciario. or ejemploE

tar cvf /usr/jesus /dev/rmt1

%ace una copia de los datos del usuario jesAs al dispositivo de cinta rrnt1 de una computado ra !;/`. /gualmenteE

tar cvf / /dev/rmt1

%ace una copia de todos los sistemas de arc.ivos de una computadora !;/` al dispositivo de cinta rmt1.

<igitalizacin realizada con propsito acad?mico

5B, Sistemas 1perativos. !na visin aplicada C.

Entrada/Salida 5B#

Estos mandatos permiten .acer copias totales el de tos datos o parciales, es decir, slo los F /nterfaz. !tilidades para administrar y controlar sistema de almacenamiento y para decopiar finir polticas de arc.ivos modificados actuacin. desde la copia anterior. En los sistemas de almacenamiento terciario de alto rendimiento, como % SS, se encuentran interfaces muy sofisticadas para configurar y manipular los datos, como se muestra a continuacin. F Servidor de nombres. 8raduce nombres de usuario a identificadores de objetos % SS, tales como arc.ivos o directorios. 8ambi?n proporciona control de acceso a los objetos. F =ocalizador de arc.ivos. !na vez resuelto el nombre, este mdulo se encarga de localizar el arc.ivo fsicamente +.L.5. Estudio de casoE sistema de almacenamiento de altas mediante los descriptores proporcionados por el sistema de prestaciones nombres. )% SSF &eubicador de arc.ivos. Se encarga de la transferencia de datos desde el origen al destino. /nteracciona con el servidor de nombres y el localizador de arc.ivos para determinar si el origen y el destino son correctos. !sa un El sistema de almacenamiento de altas prestaciones )% SS, %ig. erformance Storage Svstern- W #BBB# es un modelo de trabajadores, en el que se crea un trabajador para cada transferencia de datos, que realiza directamente sistema de E/S dise@ado para proporcionar gestin de almacenamiento jerr quico, secundario y terciario, y entre el dispositivo origen y el destino. servicios para entornos con necesidades de almacenamiento me dianas y grandes. Est pensado para ser instalado en entornos de E/S de con alto potencial terciario. de creci miento y muy en objetos t?rminos capacidad, tama@o de i$estor del sistema almacenamiento roporciona la e2igentes jerarqua de de de almacenamiento, traduce arc.ivos, velocidad deinterfaz transferencia, nAmero de objetos almacenados nAmero de usuarios. Se distribuye como las peticiones de la de usuario a sus correspondientes disy positivos fisicos y proporciona toda la parte de !)/ )=fls funcionalidad de tri.uted gestin "omputing del sistemaEnvironment-. de E/S, incluyendo instalacin, configuracin, terminacin y accesos a dispositivos. /ncluye tambi?n facilidades de monitorizacin que permiten conocer la situacin del sistema de !no de los objetivos de dise@o primarios de % SS fue mover los arc.ivos grandes de dis positivos de almacenamiento y la almacenamiento secundario a sistemas terciarios, que pueden ser incluso sistemas de E/S paralelos, a velocidades dpon dems recursos las los d clases de d de or A incluyetradicionales fac dades de acceso los datos. etc.-, de forma ms fiable y muc.o altasen que sistemas arc.ivo )cintas.a juVe.o2es. totalmente transparente al usuario. El resultado del dise@o fue un sistema de almacenamiento de altas prestaciones El sistema de almacenamiento fsico incluye volAmenes fsicos y virtuales que pueden estar en con las siguientes caractersti cas )*ig. +.#L-E cualquier tipo de soporte )discos, &'/<, cintas, robots de cintas, juVebo2es, S';, etc.-. =os vo lAmenes virtuales F 'rquitectura distribuida a trav?s de redes, siempre que es posible, para proporcionar escala bilidad y paralelismo. son internos a % SS y se forman agrupando varios volAmenes fsicos bajo una F Gerarquas mAltiples de dispositivos que permiten incorporar todo tipo de dispositivos ac tuales )&'/<, S';, juVebo2, cintas, etc.- y e2perimentar con medios de almacenamiento nuevos. =os dispositivos se agrupan en clases, cada una de las cuales tiene sus propios servicios. E2isten servicios de migracin entre clases para mover arc.ivos de una clase de dispositivo a otra.Sistema !e E(S 8ransferencia de datos directa entre los clientes y los dispositivos de almacenamiento. sm "1p/aS intermedias de memoria. ara ello se usan reubicadores de arc.ivos que se encargan de las transferencias de arc.ivos de forma distribuida. F >elocidad de transferencia muy alta, debido a que los reubicadores e2traen los datos directa mente de los dispositivos y los transmiten a la velocidad de ?stos )p. ej.E 6S (U/segundo para algunos &'/<-. F /nterfaz de programacin con acceso paralelo y secuencial a los dispositivos de E/S. <ise@o interno multit.read que usa un protocolo *8 )*ile 8ran,sfer rotocol- paralelo. F !so de componentes estandarizados que le permiten ejecutar sobre 1S/` sin ninguna moK dificacin. Est escrito en ';S/ " e incorpora varios estndares del /EEE para sistemas de almacenamiento. F !so de transacciones para asegurar la integridad de los datos y de Terberos )"aptulo B- como sistema de seguridad. Estructura de % SS =a *igura +. #L muestra una estructura muy simplificada de % SS. Usicamente se pueden distin guir cinco mdulos principales en el sistema de almacenamiento terciarioE

<igitalizacin realizada con propsito acad?mico

Sistema !e almacenamient secun!ari

cintas

*igura +.#L. Estructura del sistema de almacenamiento terciario de <=SS.

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5B5

misma entidad, sobre la cual se reparten los datos. Sobre ellos se proyectan los segmentos de almacenamiento, entidades asociadas a una clase de almacenamiento y con localizacin de arc.ivos transparentes. Estas clases de almacenamiento se organizan en jerarquas a trav?s de las cuales pueden migrar los arc.ivos de acuerdo con la disponibilidad de recursos y la poltica de migracin definida. Interfaz de usuario de :PSS % SS es un sistema complejo que proporciona varias interfaces de usuario, si bien la interfaz primaria es la basada en el estndar 1S/`, para facilitar el uso de aplicaciones po # para e2plotar la nueva funcionalidad de % SS se .an a@adido bibliotecas nuevas que permiten optimizar la gestin y el uso de los sistemas de almacenamiento que usan % SS. 'dems de esta inter de usuario, lKRSS plopo8c4m aa

0 0 0 0

'cceso remoto a trav?s del protocolo *8 estndar y una versin paralela *8 . 'cceso a dispositivos remotos a trav?s de ;*S. 'cceso paralelo a trav?s del sistema de arc.ivos paralelo /1*S. 'cceso a trav?s de la parte de E/S del estndar ( Q )( QK/1-.

En conjunto los usuarios de % SS disponen de una amplia funcionalidad para instalar y operar un sistema de almacenamiento secundario y terciario de altas prestaciones.

+.+. E, )E,-&

El reloj es un elemento imprescindible en cualquier sistema informtico. Es necesario aclarar desde el principio que se trata de un t?rmino que presenta varias acepciones en este entornoE

0 El reloj del procesador, que marca el ritmo con el que se ejecutan las instrucciones. 0 El reloj del sistema, que mantiene la fec.a y la .ora en el mismo. 0 El reloj temporizador, que .ace que el sistema operativo se active peridicamente para realizar las
labores correspondientes. =a primera acepcin queda fuera de esta presentacin ya que no involucra al sistema operati vo, consistiendo generalmente en una se@al generada por un cristal de cuarzo que alimenta directa mente el procesador. Este apartado se centra en los dos A.iinos sentidos del t?rmino ya que en ellos s que interviene el sistema operativo. El estudio del reloj se .a englobado en este captulo puesto que presenta caractersticas si aval d.spI d e vtts e Vs sI pv .m normalmente escribir en los registros de entradalsalida y usa interrupciones para notificar sus even tos. Sin embargo, la mayora de los sistemas operativos no lo consideran como un dispositivo ms, sino que le dan un tratamiento especfico. En esta seccin se presentarn en primer lugar los aspectos .ard4are del reloj para pasar a continuacin a analizar las cuestiones relacionadas con el soft4are. +.+.#. El !ard;are del reloj ara medir el tiempo slo se requiere un componente que genere una se@al peridica que sirva como base de tiempo. ;ormalmente se dispone de un circuito temporizador que, a partir de las

<igitalizacin realizada con propsito acad?mico

5B7

Sistemas 1perativos. !na visin aplicada

oscilaciones producidas por un cristal de cuarzo, genera peridicamente interrupciones )a cada una de estas interrupciones del reloj se las suele denominar en ingl?s ticV-. Este elemento est conectado generalmente a una lnea de interrupcin de alta prioridad del procesador debido a la importancia de los eventos que produce. =a mayora de estos temporizadores permiten programar su frecuencia de interrupcin. 8pi camente contienen un registro interno que actAa como un contador que se decrementa por cada oscilacin del cristal generando una interrupcin cuando llega a cero. El valor que se carga en este contador determina la frecuencia de interrupcin del temporizador, que se comporta, por tanto, como un divisor de frecuencia. 'dems de ser programable la frecuencia de interrupcin, estos dispositivos frecuentemente presentan varios modos de operacin seleccionables. Suelen poseer un modo de fun solo disparog en el que cuando el contador llega a cero y se genera la interrupcin, el temporizador se desactiva .asta que se le reprograme cargando un nuevo valor en el contador. 1tro tpico modo de operacin es el de fonda cuadradag en el que al llegar a cero el contador y generar la interrupcin el propio temporizador vuelve a recargar el valor original en el contador sin ninguna intervencin e2terna. %ay que resaltar que generalmente un circuito de este tipo incluye varios temporizadores independientes, lo que permite, en principio, que el sistema operativo lo use para diferentes labores. Sin embargo, en muc.os casos no todos ellos son utilizables para esta misin ya que no estn conectados a lneas de interrupcin del procesador. !n ejemplo tpico de este componente es el circuito temporizador C,65 que forma parte de un " estndar. 8iene tres temporizadores pero slo uno de ellos est conectado a una lnea de in terrupcin )en concreto, a la lnea /&\ nAmero 1-. =os otros estn destinados a otros usos. or ejemplo, uno de ellos est conectado al altavoz del equipo. =a frecuencia de entrada del circuito es de #,#B5 (%z. <ado que utiliza un contador interno de #L bits, el temporizador se puede programar en el rango de frecuencias desde #C,6 %z )con el contador igual a L665L- .asta #,#B5 (%z )con el contador igual al-. "ada temporizador puede programarse de forma independiente presentando diversos modos de operacin, entre ellos, el de fun solo disparog y el de fonda cuadradag. 1tro elemento .ard4are presente en prcticamente la totalidad de los equipos actuales es un reloj alimentado por una batera )denominado en ocasiones reloj "(1S- que mantiene la fec.a y la .ora cuando la mquina est apagada.

+.+.,. El soft;are del reloj

<ado que la labor fundamental del .ard4are del reloj es la generacin peridica de interrupciones, el trabajo principal de la parte del sistema operativo que se encarga del reloj es el manejo de estas interrupciones. uesto que, como se analizar a continuacin, las operaciones asociadas al trata miento de una interrupcin de reloj pueden implicar un trabajo considerable, es preciso establecer un compromiso a la .ora de fijar la frecuencia de interrupcin del reloj de manera que se consiga una precisin aceptable en la medicin del tiempo, pero manteniendo la sobrecarga debida al trata miento de las interrupciones en unos t?rminos razonables. !n valor tpico de frecuencia de interrup cin, usado en muc.os sistemas !;/`, es de #SS %z )o sea, una interrupcin cada #S ms-. %ay que resaltar que, dado que las interrupciones del reloj son de alta prioridad, mientras se procesan no se aceptan interrupciones de otros dispositivos menos prioritarios. Se debe, por tanto. minimizar la duracin de la rutina de tratamiento para asegurar que no se pierden interrupciones de menor prioridad debido a la ocurrencia de una segunda interrupcin de un dispositivo antes de que se .ubiera tratado la primera. ara evitar esta posibilidad, muc.os sistemas operativos dividen el trabajo asociado con una interrupcin de reloj en dos partesE

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5B6

0 1peraciones ms urgentes que se ejecutan en el mbito de la rutina de interrupcin. 0 1peraciones menos urgentes que lleva a cabo una rutina que ejecuta con una prioridad ms baja que
cualquier dispositivo del sistema. Esta funcin es activada por la propia rutina de interrupcin de reloj mediante un mecanismo generalmente denominado interrupcin soft4are )en el caso de =inu2 se denomina fmitad inferiorg-, 'unque la labor principal del sistema operativo con respecto al manejo del reloj es ci trata miento de sus interrupciones, .ay que .acer notar que tambi?n debe realizar su iniciacin y llevar a cabo las llamadas al sistema relacionadas con el mismo. "on independencia de cual sea el sistema operativo especfico, se pueden identificar las si guientes operaciones como las funciones principales del soft4are de manejo del relojE

0 (antenimiento de la fec.a y de la .ora. 0 $estin de temporizadores. 0 "ontabilidad y estadsticas. 0 Soporte para la planificacin de procesos.
9antenimiento de la fec!a y de la !ora En el arranque del equipo, el sistema operativo debe programar el circuito temporizador del sistema cargndole en su contador interno el valor correspondiente a la frecuencia deseada y estableciendo un modo de operacin de fonda cuadradag, si es que el temporizador dispone del mismo. 'simis mo, debe leer el reloj mantenido por una batera para obtener la fec.a y .ora actual. ' partir de ese momento, el sistema operativo se encargar de actualizar la .ora segAn se vayan produciendo las interrupciones. =a principal cuestin referente a este tema es cmo se almacena internamente la informacin de la fec.a y la .ora. En la mayora de los sistemas la fec.a se representa como el nAmero de unidades de tiempo transcurridas desde una determina fec.a en el pasado. or ejemplo, los sistemas !;/` toman como fec.a base elide enero de #B+S. 'lgunos de ellos almacenan el nAmero de segundos transcurridos desde esta fec.a, mientras que otros guardan el nAmero de microsegundos que .an pasado desde entonces. or lo que se refiere a Rindo4s, la fec.a se almacena "omo el nAmero de centenas de nanosegundos )#SK segundos- transcurridos desde la fec.a de referencia del /de enero de #LS#. Sea cual sea la informacin almacenada para mantener la fec.a y la .ora, es muy importante que se le dedique un espacio de almacenamiento suficiente para que se puedan representar fec.as en un futuro a medio o incluso a largo plazo. <e esta forma se asegura que la vida del sistema operativo no quede limitada por este aspecto. 's, por ejemplo, un sistema !;/` que use una variable de 5, bits para guardar el nAmero de segundos desde la fec.a de referencia )#K #K#B+S- permitira representar fec.as .asta principios del siglo ``//. 1tro aspecto importante es cmo tratar las peculiaridades e2istentes en el .orario de cada pas. Esto no slo implica las diferencias que .ay dependiendo del .uso .orario al que pertenezca el pas, sino tambi?n la e2istencia en algunos pases de polticas de cambio de .orario con el objetivo de a.orrar energa. En el caso del sistema !;/`, el sistema operativo almacena la .ora en el sistema de tiempo estndar !8" )!niversal "eordinated 8ime-, con independencia de las peculiaridades del pas donde reside la mquina. =a conversin al .orario local no la realiza el sistema operativo sino las bibliotecas del sistema. or Altimo, es interesante resaltar que algunos sistemas operativos, adems de un servicio para cambiar la .ora en el sistema de forma inmediata, ofrecen un servicio que permite .acer este ajuste de forma de progresiva, para as no perturbar bruscamente el estado del sistema. 1bserve que un cambio inmediato de la .ora que implique un retraso de la misma puede causar situaciones proble mticas en el sistema )evidentemente, el tiempo real nunca va .acia atrs-. <igitalizacin realizada con propsito acad?mico

5BL

Sistemas 1perativos. !na visin aplicada

4esti"n de temporizadores En numerosas ocasiones un programa necesita esperar un cierto plazo de tiempo antes de realizar una determinada accin. El sistema operativo ofrece servicios que permiten a los programas es tablecer temporizaciones y se encarga de notificarles cuando se cumple el plazo especificado )en caso de !;/` mediante una se@al-. ero no slo los programas de usuario necesitan este meca nismo, el propio sistema operativo tambi?n lo requiere. El mdulo de comunicaciones del sistema operativo, por ejemplo, requiere establecer plazos de tiempo para poder detectar si un mensaje se pierde. 1tro ejemplo es el manejador del disquete que, una vez arrancado el motor del mismo, requiere esperar un determinado tiempo para que la velocidad de rotacin se estabilice antes de poder acceder al dispositivo. <ado que en la mayora de los equipos e2iste un Anico temporizador )o un nAmero muy reducido de ellos-, es necesario que el sistema operativo lo gestione de manera que sobre ?l puedan crearse los mAltiples temporizadores que puedan requerirse en el sistema en un determinado momento. El sistema operativo maneja generalmente de manera integrada tanto los temporizadores de los procesos de usuario como los internos. ara ello mantiene una lista de temporizadores activos. En cada elemento de la lista se almacena tpicamente el nAmero de unidades de tiempo )para facilitar el trabajo, generalmente se almacena el nAmero de interrupciones de reloj requeridas- que falta para que se cumpla el plazo y la funcin que se invocar cuando ?ste finalice. 's, en el ejemplo del disquete se corresponder con una funcin del manejador de dic.o dispositivo. En el caso de una temporizacin de un programa de usuario, la funcin corresponder con una rutina del sistema operativo encargada de mandar la notificacin al proceso )en !;/`, la se@al-. E2isten diversas alternativas a la .ora de gestionar la lista de temporizadores. !na organiza cin tpica consiste en ordenar la lista de forma creciente segAn el tiempo que queda por cumplirse el plazo de cada temporizador. 'dems, para reducir la gestin asociada a cada interrupcin, el plazo de cada temporizador se guarda de forma relativa a los anteriores en la lista. 's se almacenan las unidades que quedarn pendientes cuando se .ayan cumplido todas las temporizaciones corres pondientes a elementos anteriores de la lista. "on este esquema se complica la insercin, puesto que es necesario buscar la posicin correspondiente en la lista y reajustar el plazo del elemento situado a continuacin de la posicin de insercin. Sin embargo, se agiliza el tratamiento de la interrupcin # +.C ya que slo .ay que modificar el elemento de cabeza, en lugar de tener que actualizar todos los temporizadores. En Altimo lugar .ay que resaltar que generalmente la gestin de temporizadores es una de las operaciones que no se ejecutan directamente dentro de la rutina de interrupcin sino, como se coment previamente, en una rutina de menor prioridad. Esto se debe a que esta operacin puede conllevar un tiempo considerable por la posible ejecucin de las rutinas asociadas a todos aquellos temporizadores que se .an cumplido en la interrupcin de reloj en curso. %ontabilidad y estad2sticas uesto que la rutina de interrupcin se ejecuta peridicamente, desde ella se puede realizar un muestreo de diversos aspectos del estado del sistema llevando a cabo funciones de contabilidad y estadstica. Es necesario resaltar que, dado que se trata de un muestreo del comportamiento de una determinada variable y no de un seguimiento e2.austivo de la misma, los resultados no son e2actos, aunque si la frecuencia de interrupcin es suficientemente alta, pueden considerarse aceptables. <os de las funciones de este tipo presentes en la mayora de los sistemas operativos son las siguientesE

0 "ontabilidad del uso del procesador por parte de cada proceso . 0 1btencin de perfiles de ejecucin.

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5B+

or lo que se refiere a la primera funcin, en cada interrupcin se detecta qu? proceso est ejecutando y a ?ste se le carga el uso del procesador en ese intervalo. $eneralmente, el sistema operativo distingue a la .ora de realizar esta contabilidad si el proceso estaba ejecutando en modo usuario o en modo sistema. 'lgunos sistemas operativos utilizan tambi?n esta informacin para implementar temporizadores virtuales, en los que el reloj slo fcorreg cuando est ejecutando el proceso en cuestin, o para poder establecer lmites en el uso del procesador. "on respecto a los perfiles, se trata de obtener informacin sobre la ejecucin de un programa que permita determinar cunto tiempo tarda en ejedutarse cada parte del mismo. Esta informacin permite que el programador detecte los posibles cuellos de botella del programa para poder as optimizar su ejecucin. "uando un proceso tiene activada esta opcin, el sistema operativo toma una muestra del valor del contador de programa del proceso cada vez que una interrupcin en Z cuentra que ese proceso estaba ejecutando. =a acumulacin de esta informacin durante toda la ejecucin del proceso permite que el sistema operativo obtenga una especie de .istograma de las direcciones de las instrucciones que ejecuta el programa.

Soporte a la planificacin de procesos =a mayora de los algoritmos de planificacin de procesos tienen en cuenta de una forma u otra el tiempo y, por tanto, implican la ejecucin de ciertas acciones de planificacin dentro de la rutina de interrupcin. En el caso de un algoritmo roundKrobin, en cada interrupcin de reloj se le descuenta el tiempo correspondiente a la rodaja asignada al proceso. "uando se produce la interrupcin de reloj que consume la rodaja, se realiza la replanificacin. 1tros algoritmos requieren que cada cierto tiempo se recalcule la prioridad de los procesos teniendo en cuenta el uso del procesador en el Altimo intervalo. ;uevamente, estas acciones estarn asociadas con la interrupcin de reloj.

+.C. E= 8E&(/;'=

Se trata de un dispositivo que permite al usuario comunicarse con el sistema y que est presente en todos los sistemas de propsito general actuales. Est formado tpicamente por un teclado que permite introducir informacin y una pantalla que posibilita su visualizacin. %ay una gran variedad de dispositivos de este tipo, aunque en esta seccin se analizan los dos ms tpicosE los terminales serie y los proyectados en memoria. or lo que se refiere al tipo de informacin usada por el terminal, esta e2posicin se centra en la informacin de tipo te2to, de jando fuera de la misma el tratamiento de informacin grfica, puesto que la mayora de los sis temas operativos no dan soporte a la misma, En primer lugar se e2pondr cmo es el modo de operacin bsico de un terminal con indepen dencia del tipo del mismo. ' continuacin, se analizarn las caractersticas .ard4are de los termi nales. or Altimo, se estudiarn los aspectos soft4are identificando las labores tpicas de un maneja dor de terminal. +.C.#. (odo de operacin del terminal El modo de operacin bsico de todos los terminales es bastante similar a pesar de su gran diversi dad. =a principal diferencia est en qu? operaciones se realizan por .ard4are y cules por soft4are. En todos ellos e2iste una relativa independencia entre la entrada y salida.

<igitalizacin realizada con propsito acad?mico

5BC

Sistemas 1perativos. !na visin aplicada

Entrada "uando el usuario pulsa una tecla en un terminal, se genera un cdigo de tecla que la identifica. Este cdigo de tecla debe convertirse en el carcter 'S"// correspondiente teniendo en cuenta el estado de las teclas modificadoras )tpicamente, "ontrol, S.ift y 'lt-. 's, por ejemplo, si est pulsada la tecla S.ift al teclear la letra PaP, el carcter resultante ser P'P. Salida !na pantalla de vdeo est formada por una matriz de pi2els. 'sociada a la misma e2iste una memoria de vdeo que contiene informacin que se visualiza en la pantalla. El controlador de vdeo es el encargado de leer la informacin almacenada en dic.a memoria y usarla para refrescar el contenido de la pantalla con la frecuencia correspondiente. ara escribir algo en una determinada posicin de la pantalla slo es necesario modificar las direcciones de memoria de vdeo correspon dientes a esa posicin. "uando un programa solicita escribir un determinado carcter 'S"// en la pantalla, se debe obtener el patrn rectangular que representa la forma de dic.o carcter, lo que depender del tipo de fuente de te2to utilizado. El controlador visualizar dic.o patrn en la posicin correspondiente de la pantalla. 'dems de escribir caracteres, un programa necesita realizar otro tipo de operaciones, tales como borrar la pantalla o mover el cursor a una nueva posicin. Este tipo de operaciones estn generalmente asociadas a ciertas secuencias de caracteres. "uando un programa escribe una de estas secuencias, no se visualiza informacin en la pan talla sino que se lleva a cabo la operacin de control asociada a dic.a secuencia. 8picamente, por razones .istricas, estas secuencias suelen empezar por el carcter Escape.

+.C.,. :ard;are del terminal "omo se coment previamente, se van a considerar dos tipos de terminalesE terminales proyectados en memoria y terminales serie. (erminales proyectados en memoria "omo se puede apreciar en la *igura +.#+, un terminal de este tipo est formado realmente por dos dispositivos totalmente independientesE el teclado y la pantalla. El teclado genera una interrupcin cuando se aprieta una tecla )en algunos sistemas tambi?n se genera cuando se suelta-. "uando se produce la interrupcin, el cdigo de la tecla pulsada queda almacenado en un registro de entradalsalida del controlador del teclado. 1bserve que tanto la con versin desde el cdigo de tecla .asta el carcter 'S"// como el tratamiento de las teclas modifica doras los debe realizar el soft4are. En este tipo de terminales, la memoria de vdeo est directamente accesible al procesador. or tanto, la presentacin de informacin en este tipo de terminales implica solamente la escritura del dato que se pretende visualizar en las posiciones correspondientes de la memoria de vdeo, no requiri?ndose el uso de interrupciones para llevar a cabo la operacin. "on respecto a la informacin que se escribe en la memoria de vdeo, va a depender de si el modo de operacin del terminal es alfanum?rico o grfico. En el modo alfanum?rico se considera la pantalla como una matriz de caracteres, por lo que la memoria de vdeo contiene el cdigo 'S"// de cada carcter presente en la pantalla. <urante una

<igitalizacin realizada con propsito acad?mico

Entrada/Salida 5BB

KKK K#
Pr cesa! r

+ +

/em -na + cDnt1 Y1[ !e !e 1 v9!e ? lv9!e

+D
r-

GKK

1 1111

"1
/em ria

C ntr la! r + !e tecla!

*igura +.#+. Esquema de !/l terminal pro3ectado en memoria.

operacin de refresco de la pantalla, el controlador va leyendo de la memoria cada carcter y el mismo se encarga de obtener el patrn de bits correspondiente al carcter en curso y lo visualiza en la pantalla. or lo que se refiere al modo grfico, en este caso la pantalla se considera una matriz de pi2eis y la memoria de vdeo contiene informacin de cada uno de ellos. "uando un programa solicita escribir un carcter, debe ser el soft4are el encargado de obtener el patrn de bits que define dic.o carcter. El trabajo con un terminal de este tipo no se limita a escribir en vdeo. El controlador de vdeo contiene un conjunto de registros de entradalsalida que permiten realizar operaciones como mover la posicin del cursor o desplazar el contenido de la pantalla una o varias lneas. !n Altimo aspecto que conviene resaltar es que en este tipo de terminales el tratamiento de las secuencias de escape debe ser realizado por el soft4are.

8erminales serie En este tipo de terminales, como se puede apreciar en la *igura +.#C, el terminal se presenta ante el resto del sistema como un Anico dispositivo conectado, tpicamente a trav?s de una lnea serie &SK,5,. al controlador correspondiente denominado !'&8 )!niversal 'svnc.ronous &eceiver 8ransmitter, 8ransmisorK&eceptor !niversal 'sncrono-. 'dems de la pantalla y el teclado, el terminal tiene algAn tipo de procesador interno que realiza parte de la gestin del terminal y que permite tambi?n al usuario configurar algunas de las caractersticas del mismo. ara poder dialogar con el terminal, se deben programar diversos aspectos de la !'&8 tales como la velocidad de transmisin o el nAmero de bits de parada que se usarn en la transmisin. 'l igual que ocurre con los terminales proyectados en memoria, la entrada se gestiona me diante interrupciones. "uando se pulsa una tecla, el terminal enva a trav?s de la lnea serie el carcter pulsado. =a !'&8 genera una interrupcin al recibirlo. ' diferencia de los terminales proyectados en memoria, el carcter que recoge de la !'&8 ya es el cdigo 'S"// de la tecla pulsada puesto que el procesador del terminal se encarga de pasar del cdigo de la tecla al cdigo 'S"// y de comprobar el estado de las teclas modificadoras. ara la visualizacin de informacin en este tipo de terminales se debe cargar el cdigo 'S"// del carcter deseado en un registro de la !'&8 y pedir a ?sta que lo transmita. !na vez

<igitalizacin realizada con propsito acad?mico

7SS Sistemas 1perativos. !na visin aplicada

Pr cesa! r

;.?(

/em ria

*igura +.#C. Esquema de un terminal serie.

transmitido, lo que puede llevar un tiempo considerable debido a las limitaciones de la transmisin serie, la !'&8 produce una interrupcin para indicar este .ec.o. or lo que se refiere al terminal, cuando recibe el carcter 'S"// se encarga de obtener su patrn y visualizarlo en la pantalla, manejando asimismo las secuencias de escape.

+.C.5. El soft4are del terminal


En esta seccin se van analizar las labores principales de un manejador de terminal. 'lgunas de estas labores son especficas del tipo de terminal. 's, por ejemplo, el manejador de un terminal serie debe encargarse de procesar interrupciones asociadas al envo de informacin al terminal, mientras que uno proyectado en memoria no lo tiene que .acer. "omo ejemplo del caso contrario, el manejador de un terminal proyectado en memoria tiene que encargarse de obtener el cdigo 'S"// a partir del cdigo de la tecla pulsada, mientras que, en el caso de un terminal serie, esta labor la realiza el .ard4are. %ay, sin embargo, numerosas labores del manejador independientes del tipo de terminal. En esta seccin se presentarn primero los aspectos relacionados con el soft4are que maneja la entrada para a continuacin estudiar el soft4are que gestiona la salida. <e todas formas, es necesario .acer notar que .ay algunos aspectos que tienen que ver tanto con la entrada como la salida. 's, por ejemplo, el manejador de un terminal serie debe encargarse de programar los pa rmetros de transmisin de la !'&8 )velocidad de transmisin, nAmero de bits de parada, etc.-, que corresponde con una labor que tiene que ver tanto con la entrada como con la salida.

Soft4are de entrada
"omo se coment antes, la lectura del terminal est dirigida por interrupciones. En el caso de un terminal proyectado en memoria, el manejador debe realizar ms trabajo ya que debe convertir el

<igitalizacin realizada con propsito acad?mico

7S,

Sistemas 1perativos. !na visin aplicada

Entrada/Salida 7S#

En el modo elaborado e2isten unos caracteres que "omo tienen contrapartida, asociadas funciones de edicin, pero ?stos no son los cdigo de tecla en el cdigo 'S"// correspondiente. este esquema propor ciona ms Anicos caracteres que reciben trato especial por parte del manejador. E2iste un conjunto de caracteres especiales fle2ibilidad al poder ofrecer alun usuario la posibilidad de configurar esta traduccin a su conveniencia. que normalmente no se le pasan al programa que lee del terminal, como ocurre con el resto de los caracteres, sino !na caracterstica que debe proporcionar todo manejador de terminal es el ftecleado anti cipadog )en ingl?s, tvpe que activa alguna funcin del manejador. Estos caracteres se pueden clasificar en las siguientes categorasE a.ead-. Esta caracterstica permite que el usuario teclee informacin antes de que el programa la solicite, lo que F "aracteres de edicin. una 8ienen asociadas funcin de edicin tales como el Altimo carcter tecleado, la proporciona al usuario forma de trabajo muc.o ms cmoda. araborrar implementar este mecanismo, se borrar requiere lnea en curso o indicar el fin de de la entrada de datos. Estos caracteres slo se para procesan si el terminal est tecleados en modo que el manejador use una zona alma cenamiento intermedio de entrada guardar los caracteres lnea. Supngase, por ejemplo, .asta que los solicite un proceso.que el carcter bacVspace tiene asociada la funcin de borrar el Altimo carcter tecleado. "uando el usuario pulsa este carcter, el maiiejador lo detecta y no lo encola en la zona donde almacena 1tro aspecto importante es la edicin de los datos de entrada. "uando un usuario teclea unos datos puede, la lnea en curso, sino que elimina de dic.a zona el Altimo carcter encolado. <entro de esta categora, es evidentemente, equivocarse y se requiere, por tanto, un mecanismo que le permita corregir el error cometido. Surge conveniente analizar cmo se procesa el carcter que indica el final de una lnea. 1bserve que, estrictamente, un entonces la cuestin de qui?n se debe encargar de proporcionar esta funcin de edicin de los datos introducidos. cambio de lnea implica un retomo de carro para volver al principio de la lnea actual y un avance de la lnea para Se presentan, al menos, dos alternativas. !na posibilidad es que cada aplicacin se encargue de realizar esta pasar a la siguiente. Sin embargo, no parece que tenga sentido obligar a que el usuario teclee ambos caracteres. 's, edicin. =a otra alternativa es que sea el propio manejador el que la lleva a cabo. ara poder analizar estas dos en los sistemas !;/`, el usuario puede teclear tanto un retomo de carro como un carcter de nueva lnea para opciones es necesario tener en cuenta los siguientes factoresE indicar el final de la lnea. El manejador se encarga de mantener esta equivalencia y, por convencin, en ambos 0entrega =a mayora de las aplicaciones unas funciones de edicin relativamente sencillas. casos un carcter de nueva lnea requieren al programa que lee del terminal. F "aracteres el control de procesos. los sistemas proporcionan al usuario algAn para abortar la 0 ; o para parece razonable .acer que 8odos cada programa tenga que encargarse de tratar concarcter la edicin de su entrada ejecucin de un proceso o detenerladesea temporalmente. de datos. !n programador centrarse en resolver el problema que le concierne y, por tanto, no quiere tenerde que ocuparse la edicin. F "aracteres control de de flujo. El usuario puede desear detener momentneamente la sa lida que genera un programa para poder revisarla y, posteriormente, dejar que continAe apareciendo la pantalla. El manejador 0 Es conveniente que la mayora de las aplicaciones proporcionen al usuario la en misma forma de editar la gestiona informacin. caracteres especiales que permiten rea lizar estas operaciones. F "aracteres escape. ' veces usuario quiere introducir como que entrada de datos un ca rcterde que est definido 0 %ay de aplicaciones, como el por ejemplo los editores de te2to, requieren unas funciones edicin como especial. Se necesita un mecanismo para indicar al manejador que no trate dic.o carcter, sino que lo pase complejas y sofisticadas. directamente a la aplicacin. ara ello, gene ralmente, se define un carcter de escape cuya misin es indicar que el 8eniendo en cuenta condiciones, la mayora de los sistemas operativos por una solucin que combina carcter que viene aestas continuacin no debe procesarse. Evidentemente, para optan introducir el propio carcter de escape ambasque posibilidadesE .abr teclear otro carcter de escape justo antes. or Altimo que resaltar que mayora de los sistemas ofrecen la posibilidad de cambiar 0 El .ay manejador ofrece unla modo de operacin en el que proporciona unas funciones de edicin relativamente sencillas, generalmente orientadas a lneas de te2to individuales. Este suele ser el modo de trabajo por qu? carcter estpuesto asociado a satisface cada una las de estas funciones o incluso desactivar dic.as funciones se considera defecto que necesidades de la mayora de las aplicaciones. En los S/ sistemas !;/`, este oportuno. modo se denomina elaborado ya que el ma nejador procesa los caracteres introducidos. Soft4are de salida =a salida en un terminal no es algo totalmente independiente de lase entrada. or defecto, elfuncin inane jador 0 El manejador ofrece otro modo de operacin en el que no proporciona ninguna de .ace eco de todos losedicin. caracteres va recibiendo en las sucesivas interrupciones del teclado. la salida que aparece en el =a que aplicacin recibe directamente los caracteres tecleados y ser la's, encargada terminal es una mezcla de lo que escriben los programas y del eco de los datos introducidos por el usuario. Esta de realizar las funciones de edicin que considere oportunas. En los entornos !;/` se califica a este modo como opcin se puede desactivar, en cuyo caso el manejador no escribe en la pantalla los caracteres que va recibiendo. crudo ya que no se procesan los caracteres introducidos. Esta forma de trabajo va a ser la usada por las aplicaciones ' diferencia de la entrada, salida no est orientada a lneas de te2to, sino que se escriben directamente los que requieran tener controlla de la edicin. caracteres solicita programa, aunque no constituyan una lnea )'clara cin de +.#-. or lo que que se refiere al el modo orientado a lnea, .ay que resaltar que una solicitud lectura de una aplicacin no se puede satisfacer si el usuario no .a introducido una lnea conipleta, aunque se .ayan tecleado caracteres suficientes. 1bserve que esto se debe a que, .asta que no se completa una lnea, el usuario todava tiene las posibilidades de editarla usando los caracteres de edicin correspondientes. "on respecto al modo crudo, en este caso no e2isten caracteres de edicin aunque, como se ver a continuacin, pueden e2istir otro tipo de caracteres especiales. "uando un programa solicita datos, se le entregan aunque no se .aya tecleado una lnea completa. <e .ec.o, en este modo el manejador ignora la organizacin en lneas realizando un procesado carcter a carcter.

<igitalizacin realizada con propsito acad?mico

Potrebbero piacerti anche