Está en la página 1de 21

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 $%,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

Las caractersticas del controlador son muy importantes, ya que definen el aspecto del perifrico para el sistema operativo !tendiendo a las caractersticas del "ard#are de los dispositivos, se pueden observar los siguientes aspectos distintivos:

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. =os controladores tienen 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 8ama@oKdatos m WdDH 8ipoKoperacin t WdDH 8ama@oKdatos 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/

&alta 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 'rimary 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(/$ystem 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

[\ui?n proporciona la rutina de tratamiento de interrupci)n* =as rutinas de interrupcin suelen tener dos partesE una gen?rica y otra particular para el dispositivo. =a parte gen?rica permiteE

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

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

#. &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 )nanosegundos-, 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

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

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

5.

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.

7. El controlador contesta aceptando la peticin de E/S. 6. 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.

L. "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. C. "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

&igura +.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./E0&!1 (E !'LI,!,I2.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 bloqueante y no bloqueante =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

&igura +.#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

eefghij

kQf=kQ8.is program cannot be run in <1S mode.l E=mnd\oQ^p

"1;SEG1 <E &1$&'('"/:; +.#


El modelo de E/S no bloqueante, o asncrono. es complejo y no apto para programadores o usuarios noveles del sistema operativo. Si lo usa, debe tener estructuras de datos para almacenar los descriptores de las 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.

gg hqgrslRg2%t %.te2t< t.rsrc2ggg.reloctgU p% P< ksiempre las llamadas de E/S de forma no bloqueante, o asncrona, para permitir la implementacin de sistemas de P h_uvwxylSystem.&esources.&esource&eader, mscorlib, >ersionX7.S.S.S, "ultureXneutral,
"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 tiempo compartido. Es interesante resaltar que, independientemente del formato elegido por el usuario, el sistemaoperativo procesa

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.

ublicTey8oVenXb++a6c6L#B57eSCBdSystem.&esources.&untime&esourceSet '< '< z{h| 3 /ndicaciones de error % o stN S;ot/nstalled}?~E acVage (anager "onsole ?h o4erS.ell ,.S qO~?w~s?h??rsffsf?hhqO~?h
<igitalizacin realizada con propsito acad?mico

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

x .ttpE//support.microsoft.com/Vb/BLCB,B o4erS.ell ,.S sf? FqF >isual Studiohv|fh

También podría gustarte