El sistema operativo: gestión de entrada/salida
El sistema operativo: gestión de entrada/salida Índice de contenido El sistema operativo: gestión de entrada/salida...........................................................................................1 entrada/salida ...........................................................................................1 Licencia. ................................ ................................ ................................. .................................. ............................... ............. ....... ............ ...... 1 Introducción y evolución histórica ............................. .................................. ............................. ............. ...... .......... ...1 1 Esquemas hardware de gestión de E/S ...................................................................................................3 Polling.................................................................................................................................................................3 Polling.................................................................................................................................................................3 Interrupciones.....................................................................................................................................................3 Interrupciones.....................................................................................................................................................3 Acceso directo a memoria (DMA).......................................................................................................................3 (DMA).......................................................................................................................3
Gestión de la E/S por parte del SO. ................................ ................................ .................................. ......................... ................... ............. ............. ......... ...4 4 Tipos de dispositivos........................................................................................................................................... dispositivos ...........................................................................................................................................
Dispositivos de bloques y caracteres............................................................................................5 caracteres............................................................................................5 Dispositivos de red.......................................................................................................................6 red.......................................................................................................................6 Mejoras del rendimiento .................................. ................................. .................................. ............... ........ ............. ........ .. u!!ering................................................................................................................................................6 u!!ering................................................................................................................................................6 "ol#ticas de plani!icación de discos........................................................................................................6 discos ........................................................................................................6 $ach% de disco........................................................................................................................................& disco ........................................................................................................................................& !incroni"ación con el disco.................................................................................................................................# disco. ................................................................................................................................# Pol$ticas de reempla"o........................................................................................................................................# reempla"o........................................................................................................................................#
Licencia Este Este obra obra de 'es(s 'es(s 'im% 'im%ne ne)) *err *erran an)) est+ est+ ba,o ba,o una una licencia licencia $reative $reative $ommons $ommons -tribución -tribución icenciar0gual 3.1 Espa2a. Espa2a. asada en una obra en oposcaib.wiispaces.com. en oposcaib.wiispaces.com.
Introducción y evolución histórica El sistema de entrada/salida 4E/S es la parte del sistema operativo encargada de la gestión de los dispositivos de E/S. -s# act(a como inter!a) entre los dispositivos y los usuarios de manera los archivos y dispositivos se traten de una manera uni!orme y puedan ser manipulados por medio de instrucciones de alto nivel. a gestión de la E/S tiene asociados una serie de problemas7 8perac 8peración ión as#ncr as#ncrona ona77 os evento eventoss y sucesos sucesos asociados asociados a la operac operación ión E/S no guard guardan an ninguna relación de sincronismo con los de la $"9 por lo que la sincroni)ación entre $"9 y E/S no es trivial Di!erencia de velocidad7 a E/S es varios órdenes de magnitud m+s lenta que la $"9. 0ncluso hay grandes di!erencias entre di!erentes tipos de E/S 4p. e,. es m+s r+pida una red ethernet que una disquetera. Di!erencias Di!erencias de !ormato7 a $"9 traba,a traba,a con representaci representaciones ones de los datos y !ormatos !i,as mientras que cada dispositivo E/S lo gestiona de una manera di!erente. *eterogeneidad de los dispositivos7 os dispositivos de E/S toman m(ltiples !ormas lo que complica la gestión al tener que tener en cuenta todos los posibles tipos. a cone:ión de los di!erentes dispositivos de E/S al sistema y la visión que tiene el sistema operativo y las aplicaciones de ellos es la mostrada en la siguiente !igura7 •
•
•
•
'es(s 'im%ne) *erran) http7//oposcaib.wiispaces http7//oposcaib.wiispaces.com .com
;
El sistema operativo: gestión de entrada/salida
Aplicaciones Sistema operativo
driver
Controlador
Dispositivo
Se de!inen por tanto los siguientes conceptos b+sicos7 Dispositivo7 Es cada uno de los dispositivos de E/S que se van a gestionar. $ontrolador7 Dispositivo hardware encargado de gestionar los aspectos internos de gestión del dispositivo 4se2ales de control etc. o!reciendo al e:terior un inter!a) estandari)ado. Este inter!a) consiste en una serie de registros internos que generalmente son7 raducción de las operaciones de la -"0 en operaciones del controlador que ser+n enviadas para la e,ecución de operaciones de E/S en el dispositivo. 0nter!a) con el ernel7 $omunicación entre el driver y el ernel para su gestión interna. ". e,. para la carga de drivers gestión de recursos noti!icación de eventos etc. •
•
◦
◦
◦
◦
•
◦
◦
◦
'es(s 'im%ne) *erran) http7//oposcaib.wiispaces.com
?
El sistema operativo: gestión de entrada/salida
Esquemas hardware de gestión de E/S -s# la principal tarea del controlador de E/S del sistema operativo ser+ gestionar la comunicación entre los di!erentes dispositivos. "ara ello e:isten distintos esquemas7 !ollin"
El controlador de E/S consulta de !orma c#clica a todos los dispositivos buscando si tienen operaciones pendientes. Es un esquema sencillo si bien se pierde mucho tiempo de $"9 consultando y esperando especialmente en dispositivos lentos. -dmite dos en!oques7 0nstrucciones espec#!icas7 a $"9 dispone de instrucciones especiales para el acceso a los dispositivos de E/S E/S mapeada en memoria7 Se reserva un espacio del direccionamiento de memoria para los dispositivos de E/S de manera que toda la in!ormación que %stos presentan en !orma de registros etc se hace accesible leyendo esas posiciones de memoria. 0gualmente cualquier operación sobre el dispositivo se reali)a escribiendo en las posiciones apropiadas de la memoria. El sistema operativo se encargar+ de traducir estas lecturas/escrituras a memoria en las operaciones reales sobre el dispositivo apropiado. a venta,a de este m%todo es que no requiere implementar instrucciones espec#!icas en la $"9 para la gestión de la E/S ya que se utili)an las instrucciones convencionales de lectura/escritura en memoria.. •
•
Interrupciones
En este esquema la $"9 dispone de una l#nea e:tra llamada solicitud de interrupción 40<@ que !unciona de manera que cuando se activa la $"9 detiene lo que est% haciendo y pasa a e,ecutar una rutina especial que actuar+ en !unción de los par+metros de la interrupción y que una ve) acabada devolver+ el control al !lu,o de programa que se estuviera utili)ando. 9sando este esquema cada dispositivo puede solicitar la atención de la $"9 cuando lo necesite de manera que no es necesario perder tiempo de la $"9 monitori)ando los dispositivos. "ara gestionar di!erentes tipos de interrupción en la solicitud de interrupción se indica un n(mero correspondiente a di!erentes tipos de interrupción. -s# el gestor de interrupción consultar+ una tabla o vector de interrupciones y e,ecutar+ la rutina indicada en la posición correspondiente. as interrupciones se clasi!ican generalmente en enmascarables o no enmascarables re!iri%ndose a si la $"9 puede inhibir la interrupción del código por una 0<@. -s# generalmente la $"9 puede impedir para )onas cr#ticas del código que una interrupción convencional interrumpa el !lu,o de e,ecución. Ao obstante las interrupciones no enmascarables se reservan para eventos de alta prioridad para los que no se acepta el enmascaramiento. "or e,emplo una petición de un disco ser#a enmascarable mientras que el aviso de un inminente corte el%ctrico no lo ser#a. #cceso directo a memoria $%M#&
"ara aquellos dispositivos que reali)an grandes trans!erencias de datos incluso el mecanismo de interrupciones es ine!iciente ya que hay que reali)ar una operación para cada dato. -s# un esquema com(n es para estos casos utili)ar un procesador dedicado llamado controlador D=- que se encargar+ de los detalles de la trans!erencia. a programación de este procesador consiste simplemente en indicarle el origen de los datos la posición de destino en la memoria y el n(mero de datos a trans!erir y a partir de aqu# el procesador D=- se encargar+ de la comunicación con el dispositivo y con el bus de memoria. De esta !orma
'es(s 'im%ne) *erran) http7//oposcaib.wiispaces.com
3
El sistema operativo: gestión de entrada/salida
la $"9 principal sólo intervendr#a al inicio de la operación y al !inal cuando el procesador D=avisase a la $"9 del !in de la trans!erencia mediante una interrupción.
estión de la E/S por parte del S! - pesar de los numerosos tipos de dispositivos e:istentes y sus di!erencias el ob,etivo del tratamiento de la E/S del sistema operativo es tratar los dispositivos de una !orma uni!orme y estandari)ada de manera que las aplicaciones no deban preocuparse por los detalles de cada tipo de dispositivo. -s# una estrategia com(n es catalogar los dispositivos en !unción de sus caracter#sticas principales7 Blu,o de caracteres o de bloques7 Si trans!ieren los datos de car+cter en car+cter 4p. e,. un módem o en bloques de bytes 4p. e,. un disco duro. De acceso aleatorio o secuencial S#ncrono o as#ncrono7 9n dispositivo s#ncrono trans!iere datos con tiempos de respuesta predecibles mientras que uno as#ncrono es irregular e impredecible a priori. $ompartido o dedicado7 Si puede ser usado por varios procesos a la ve) o debe ser usado en !orma e:clusiva. Celocidad de operación7 En qu% orden de magnitud reali)a las trans!erencias. •
•
•
•
•
=ediante esta catalogación el subsistema de E/S del sistema operativo de!ine una inter!a) para el tratamiento de cada clase de dispositivos. $ada dispositivo necesitar+ (nicamente de un peque2o programa o driver que implemente las operaciones de este inter!a). - continuación se muestra este esquema7 Kernel Subsistema de E/S
Disp. de bloques
Disp. de caracteres
Disp. de red
driver
driver
driver
driver
controlador
controlador
controlador
controlador
CD-RM
Disco
Terminal
Módem
De esta !orma se consiguen dos cosas7 -bstraer los detalles de implementación de cada dispositivo de modo que las aplicaciones no tienen por qu% saber de qu% dispositivo se trata. Simpli!icar la tarea de soporte de un nuevo dispositivo 4es m+s sencillo hacer un driver que modi!icar el ernel. •
•
'es(s 'im%ne) *erran) http7//oposcaib.wiispaces.com
El sistema operativo: gestión de entrada/salida
8tro aspecto que clasi!ica a las operaciones de E/S es su sincronicidad7 8peraciones bloqueantes 4s#ncronas7 $uando se invocan la e,ecución de la aplicación se suspende hasta que !inali)a la operación. 8peraciones no bloqueantes 4as#ncronas7 9na ve) invocada la aplicación contin(a su tarea. a !orma de !uncionar se divide en dos tipos7 a operación devuelve el me,or resultado que tenga. ". e,. a una lectura de un socet se le puede especi!icar un timeout y cuando e:pire devolver+ los datos que tenga. a operación se termina de e,ecutar en ? plano y avisa a la aplicación principal cuando haya terminado y el subsistema de E/S requiera su atención. •
•
◦
◦
as operaciones as#ncronas son m+s e!icientes que las s#ncronas ya que evitan las esperas activas 4especialmente graves en dispositivos lentos si bien el uso de operaciones as#ncronas complica el código del programa. 'ipos de dispositivos
- continuación se muestran algunos detalles de las clases de dispositivos m+s comunes7 Dispositivos de %lo&ues ' caracteres os dispositivos de bloques y los de caracteres tienen un tratamiento muy similar y se di!erencian (nicamente en la unidad de datos que mane,an 4bloque o car+cter. -parte de estas consideraciones disponen de tres operaciones b+sicas7 eer Escribir See 4sólo si permite acceso aleatorio •
•
•
Feneralmente un dispositivo de bloques ser utili)a de una de las siguientes !ormas7 En bruto 4raw7 Se utili)an las tres operaciones b+sicas para leer/escribir bloques arbitrarios $omo sistema de !icheros7 9na capa superior del S8 proporciona el acceso al dispositivo en !orma de sistema de !icheros. $omo mapeo en memoria7 En lugar de leer/escribir e:pl#citamente al dispositivo se asigna una región de la memoria de manera que todas las lecturas/escrituras a esa )ona se trasladan al dispositivo. De esta !orma desde el punto de vista del programa se puede usar el dispositivo de !orma transparente sin necesidad de usar ninguna operación de E/S. •
•
•
os dispositivos de caracteres se suelen utili)ar mediante sus operaciones b+sicas y se usan para aquellos dispositivos que generan/esperan !lu,os de datos lineales y relativamente as#ncronos como teclados ratones o impresoras.
'es(s 'im%ne) *erran) http7//oposcaib.wiispaces.com
5
El sistema operativo: gestión de entrada/salida
Dispositivos de red Debido a su importancia para los dispositivos de red si bien podr#an mane,arse de !orma gen%rica como un dispositivo de caracteres se utili)a una abstracción espec#!ica que es la de socet. 9n socet es un !lu,o de datos al que las aplicaciones pueden GconectarseH reali)ando las siguientes operaciones7 $onectarse a otro socet en otra m+quina remota eer o escribir paquetes de datos
•
•
=ediante el uso de socets se !acilita notablemente la gestión de las comunicaciones de red con independencia del hardware de red o incluso de los protocolos subyacentes ma:imi)ando la e!iciencia y evitando situaciones de espera activa.
"e#oras del rendimiento $u%%ering 9n bu!!er es un +rea de memoria en la que se almacenan los datos mientras se trans!ieren entre dos dispositivos o entre un dispositivo y una aplicación. Su utilidad es diversa7 "ermiten hacer !rente a las di!erencias de velocidad entre dispositivos7 ". e,. la trans!erencia de un módem 4lenta puede acumularse en un bu!!er para ser escrita en un disco duro 4r+pido de una sola ve) reduciendo as# el n(mero de operaciones necesarias. Doble bu!!er7 En el caso de escrituras a un dispositivo el mantener dos bu!!ers de !orma circular 4uno con los datos que se escriben al dispositivo y otro con los que escribe la aplicación permite mantener un !lu,o continuo de datos sin esperas. Spooling7 -lgunos dispositivos deben tratar con una unidad de datos completa y no pueden hacerlo sólo con una parte por lo que el uso de un bu!!er permite ir acumulando los datos hasta que se dispongan de su!icientes para operar. ectura adelantada7 $uando se reali)a una lectura a un dispositivo lento es com(n que el S8 lea m+s datos de los necesarios y los coloque en un bu!!er. -s# si en el !uturo se solicitan 4cosa probable seg(n los principios de localidad ya se encuentran en memoria y se acelera la operación. $ach%7 Si una lectura solicita datos que se han le#do anteriormente y se encuentran ya en un bu!!er es posible leerlos directamente del bu!!er y ahorrarse una operación a E/S. •
•
•
•
•
&ol'ticas de plani%icación de discos Debido a la importancia de los discos en los sistemas actuales como principal sistema de almacenamiento secundario e:isten numerosas t%cnicas para acelerar su rendimiento. "ara comprender la motivación de muchas de estas t%cnicas es necesario entender cómo !unciona un disco duro. +sicamente la in!ormación en un disco duro se almacena en pistas conc%ntricas de discos magn%ticos que a su ve) se dividen en sectores. a in!ormación se lee y escribe mediante un cabe)al. -s# una operación de disco se compone de tres etapas7 •
See7 >iempo necesario para que el cabe)al se posicione en la pista apropiada. Depende de la tecnolog#a de !abricación del disco duro y es con di!erencia el mayor de los tres.
'es(s 'im%ne) *erran) http7//oposcaib.wiispaces.com
6
El sistema operativo: gestión de entrada/salida
•
•
atencia7 9na ve) posicionado el cabe)al tiempo que transcurre hasta que el sector deseado pasa por el cabe)al. Depende de la velocidad de rotación del disco. >rans!erencia7 >iempo que se tarda en recorrer todo el sector para leer/escribir su contenido. Depende de la velocidad de rotación y la densidad de los datos.
Feneralmente el tiempo de see se mueve en torno a los &;1 ms mientras que el tiempo de latencia est+ en 3 ms. 9na velocidad de trans!erencia t#pica podr#an ser ?131 =/s por lo que por e,emplo para leer ;11 I ser#an necesarios apro:imadamente 3 ms. Dado que el tiempo de posicionamiento del cabe)al de un disco duro depende adem+s de las propias caracter#sticas !#sicas del disco de la posición desde la que parta es deseable ordenar convenientemente las operaciones de E/S para minimi)ar el movimiento del cabe)al y me,orar por tanto el rendimiento del disco duro. E:isten numerosos esquemas de plani!icación de operaciones de disco7 •
•
B0B87 as peticiones se procesan en orden de llegada. Ao tiene un buen rendimiento pero tampoco genera desigualdades entre las peticiones. 0B87 Siempre se procesa en primer lugar la (ltima petición en llegar. Es me,or que B0B8 ya que aprovecha el principio de localidad que dice que la (ltima petición es probable que sea a )onas del disco cercanas a las m+s recientes. -hora bien puede generar inanición si contin(an llegando peticiones mientras otras quedan en espera.
Si desde el sistema operativo se tiene in!ormación sobre la posición actual del cabe)al es posible llevar a cabo pol#ticas m+s comple,as y e!icientes7 •
•
•
SS>B 4Shortest See >ime Birst7 Encolar las peticiones y enviar cada ve) a disco la petición m+s cercana a la posición actual del cabe)al. Es e!iciente pero puede provocar inanición al discriminarse peticiones a )onas le,anas. S$-A7 8rdena las peticiones seg(n accedan al principio o al !in del disco. 9na ve) !inali)ado un recorrido de principio a !in hace otro desde el !in hasta el principio. El problema que tiene a pesar de que no es posible la inanición es que estad#sticamente !avorece a las peticiones de los e:tremos del disco. 9na variación de S$-A es 88I en la que se cambia de dirección en cuanto ya no hay m+s operaciones en un sentido. Este algoritmo se conoce tambi%n como del ascensor ya que emula su comportamiento. S$-A circular7 Similar a S$-A pero una ve) acabada una pasada se vuelve a empe)ar otra ve) desde el principio en lugar de hacer una pasada inversa. De esta !orma el tiempo m+:imo de espera es globalmente menor y el uso de disco es equitativo.
Estas pol#ticas pueden tener problemas ante la llegada de nuevos traba,os que si se producen !recuentemente en las mismas )onas pueden ralenti)ar las pasadas y discriminar a otras peticiones. "ara evitarlo se pueden usar di!erentes t%cnicas7 •
•
S$-A de A pasos7 En cada pasada se procesan (nicamente A peticiones. Si durante una pasada llegan m+s ponerlas en una cola y procesarlas despu%s. BS$-A7 9sar dos colas. En cada pasada se procesa una de ellas encolando las nuevas peticiones en la otra. -l acabar la pasada intercambiarlas y repetir el proceso.
'es(s 'im%ne) *erran) http7//oposcaib.wiispaces.com
J
El sistema operativo: gestión de entrada/salida
(ach) de disco $omo se ha comentado anteriormente una t%cnica para aumentar el rendimiento es el uso de memorias cach% para las operaciones de disco de manera que se puedan evitar operaciones al disco si la in!ormación solicitada se encuentra en la cach%. a cach% de disco puede implementarse de dos !ormas7 =emoria espec#!ica en el propio dispositivo
•
Sincroni(ación con el disco
Si bien el uso de cach% permite evitar operaciones al disco tambi%n retrasa las escrituras haciendo que el disco se encuentre en un estado inconsistente respecto a la memoria cach%. "or tanto una de las tareas del S8 es asegurar que las escrituras en cach% se trasladan en alg(n momento al disco duro de !orma que a largo pla)o el disco duro quede en un estado consistente. "ara ello hay dos en!oques7 Kritebac7 -cumular escrituras a la memoria cach% traslad+ndolas al disco pasado un tiempo. Si bien esta t%cnica aumenta considerablemente la velocidad de las escrituras tambi%n es peligrosa ya que un !allo del sistema cuando a(n no se han escrito los cambios de,ar#a al disco en un estado inconsistente. Kritethrough7 Escribir los cambios a disco inmediatamente despu%s de producirse. Es una opción m+s lenta al no permitir acumular varias operaciones pero tambi%n es m+s segura al mantener el disco siempre consistente con la cach%. •
•
!ol)ticas de reempla(o
8tro aspecto importante que debe gestionar el S8 relacionado con las cach%s de disco es qu% bloques de la misma debe descartar cuando haya que cargar bloques nuevos. a incorrecta elección de los bloques a descartar puede provocar problemas importantes de rendimiento si por e,emplo un mismo bloque se descarta y se vuelve a cargar repetidamente. -s# e:isten principalmente las siguientes pol#ticas de reempla)o de bloques7 <9 4east
•
-unque en principio pueda parecer que B9 es una estrategia m+s apropiada tiene problemas con las r+!agas de acceso a un bloque ya que puede suceder que un bloque sea accedido muchas veces en un instante dado 4incrementando as# su contador pero no vuelva a ser accedido posteriormente. El alto contador generado por la r+!aga de accesos impedir#a el descarte de este bloque. 'es(s 'im%ne) *erran) http7//oposcaib.wiispaces.com
&
El sistema operativo: gestión de entrada/salida
"ara solucionar este problema se utili)a una t%cnica h#brida entre <9 y B9 llamada descarte basado en !recuencia que consiste en organi)ar los bloques en tres secciones7
Alta
Media
!a"a
$uando un bloque es accedido se incrementa su contador y se mueve a la )ona alta. Si ya estaba en la )ona alta su contador no se incrementa de !orma que se evita que una r+!aga incremente los contadores arti!icialmente. $uando transcurre un tiempo en la )ona alta el bloque se mueve a la )ona media y tiempo despu%s a la )ona ba,a. "ara descartar un bloque se escoge el que tenga el contador m+s ba,o de la )ona ba,a de la cola.
'es(s 'im%ne) *erran) http7//oposcaib.wiispaces.com
L