Sistemas Operativos Mod4

download Sistemas Operativos Mod4

of 36

description

Material didáctico usado en la asignatura Ingeniería Técnica de telecomunicación especialidad Telemática. U.O.C

Transcript of Sistemas Operativos Mod4

  • Los dispositivos de entrada/salidaTeodor Jov Lagunas

    P05/75097/00807Mdulo 4

  • FUOC P05/75097/00807 Mdulo 4 Los dispositivos de entrada/salida

    ndice

    Introduccin............................................................................................. 5

    Objetivos .................................................................................................... 5

    1. El concepto de dispositivo de entrada/salida............................. 7

    2. Las caractersticas de los dispositivos........................................... 8

    2.1. Caractersticas fsicas ....................................................................... 8

    2.2. Caractersticas de acceso.................................................................. 11

    2.3. Caractersticas de control ................................................................ 13

    2.4. Consecuencias de la diversidad de dispositivos .............................. 14

    3. Los dispositivos reales ....................................................................... 15

    3.1. Los dispositivos fsicos..................................................................... 15

    3.2. Los dispositivos lgicos ................................................................... 15

    4. La independencia de los dispositivos ............................................ 18

    4.1. Los dispositivos virtuales................................................................. 18

    4.2. Las operaciones uniformes .............................................................. 19

    5. La gestin de dispositivos en UNIX................................................ 23

    5.1. Las pipes, un caso especial de dispositivo ........................................ 25

    5.2. El punto de vista desde las llamadas al sistema .............................. 26

    5.3. El punto de vista desde el intrprete de rdenes (shell) .................. 27

    Resumen..................................................................................................... 31

    Actividades................................................................................................ 33

    Ejercicios de autoevaluacin ................................................................ 33

    Solucionario.............................................................................................. 34

    Glosario ...................................................................................................... 35

    Bibliografa............................................................................................... 36

  • FUOC P05/75097/00807 Mdulo 4 5 Los dispositivos de entrada/salida

    Los dispositivos de entrada/salida

    Introduccin

    En este mdulo didctico se analiza el primer elemento de los que constituyen

    el entorno de ejecucin de un programa: los dispositivos.

    Nos centraremos en el anlisis de los diferentes tipos de dispositivos, el trata-

    miento que el sistema hace de los mismos y la percepcin que tiene el usuario

    de stos mediante este tratamiento. Para alcanzar estos conocimientos ser ne-

    cesario confrontarlos con un sistema real y, con esta finalidad, utilizaremos el

    sistema operativo UNIX y lo analizaremos, tanto desde el punto de vista del

    intrprete de rdenes como desde el punto de vista del programador.

    Objetivos

    En los materiales didcticos que se facilitan en este mdulo encontraris las

    herramientas necesarias para alcanzar los siguientes objetivos:

    1. Conocer la variedad de dispositivos que existen y sus modos de trabajo.

    2. Distinguir los dispositivos fsicos de los lgicos.

    3. Entender la necesidad de independizar los programas de los dispositivos

    con los que trabajamos.

    4. Aprender el concepto de dispositivo virtual.

    5. Conocer el concepto de independencia de los dispositivos basados en los

    dispositivos virtuales y en la uniformidad de las operaciones.

    6. Aprender el significado de sesin de trabajo con un dispositivo y conocer las

    operaciones bsicas que se efectan durante la sesin de trabajo.

  • FUOC P05/75097/00807 Mdulo 4 7 Los dispositivos de entrada/salida

    1. El concepto de dispositivo de entrada/salida

    El concepto de dispositivo de entrada/salida se asocia al de perifrico. Enten-

    demos por perifricos elementos como:

    Los teclados, que permiten introducir informacin en el sistema para que

    pueda ser manipulada por los procesos.

    Las pantallas, que sirven para mostrar al exterior la informacin que elabo-

    ran los procesos.

    Los discos, que permiten almacenarla.

    Los mdems o las redes, destinados a transferirla entre procesos.

    A pesar de todo, y como vamos a poder comprobar a lo largo del presente m-

    dulo, un dispositivo de entrada/salida no tiene por qu estar asociado forzosa-

    mente a un perifrico, sino que puede ser cualquier objeto de hardware o

    software gestionado por el sistema que sea capaz de llevar a cabo el tipo de ac-

    ciones que hemos descrito.

    El sistema operativo (SO) se encarga de gestionar los dispositivos proporcio-

    nando las operaciones necesarias para que los procesos puedan acceder a ellos.

    Tal y como veremos despus, esta gestin tiene que ofrecer los elementos que

    indicamos a continuacin:

    Las herramientas que permitan desarrollar diferentes polticas de acceso

    en funcin de las necesidades de los usuarios.

    Un interfaz de acceso proceso/dispositivo que sea independiente de las

    particularidades de cada uno de los dispositivos, pero que al mismo tiempo

    permita, en caso de que sea necesario, explotar todas sus caractersticas.

    Un entorno portable que permita que las aplicaciones trabajen con dife-

    rentes dispositivos sin tener que modificarlas.

    Un dispositivo de entrada/salida es un objeto gestionado por el sistema

    operativo sobre el cual los procesos pueden realizar operaciones de lectu-

    ra/escritura con la finalidad de obtener, almacenar, mostrar o transferir

    informacin.

    Con el teclado introducimos informacin en el sistema.

    El mdem transfiere la informacin entre procesos.

  • FUOC P05/75097/00807 Mdulo 4 8 Los dispositivos de entrada/salida

    2. Las caractersticas de los dispositivos

    Aparentemente, todos los dispositivos funcionan de la misma forma, es decir, to-

    dos llevan a cabo operaciones de entrada/salida de informacin: las impresoras

    vierten la informacin en un soporte material como el papel, los teclados permi-

    ten entrar datos, las pantallas visualizan las salidas, etc. A pesar de que la funcin

    de los diferentes dispositivos es aparentemente la misma, el uso que se hace de

    ellos y el resultado final que proporcionan pueden ser muy diferentes en funcin

    del tipo y el modelo de dispositivo que utilicemos. As pues, los dispositivos pre-

    sentan caractersticas singulares que el sistema tiene que gestionar de diferentes

    modos.

    Podemos realizar una clasificacin de los dispositivos en funcin de sus caracte-

    rsticas para analizar las diferencias que presentan. Teniendo en cuenta su ele-

    vado nmero y variedad, las hemos agrupado en caractersticas fsicas, de acceso

    y de control. De entre todas las caractersticas que citamos a continuacin, slo

    comentaremos con un cierto detalle las que afectan de manera directa a los

    usuarios. Tenemos que destacar que esta clasificacin es una de las muchas que

    podramos hacer basndonos en las caractersticas de los dispositivos y que, en

    consecuencia, hay que entenderla como un marco orientativo para conseguir

    una comprensin ptima de la diversidad de los dispositivos.

    2.1. Caractersticas fsicas

    Las caractersticas fsicas hacen referencia a propiedades intrnsecas de los dis-

    positivos. Son las siguientes:

    1) Los dispositivos pueden ser extrables o fijos

    Hay dispositivos que son fijos, como los discos duros, y otros extrables, for-

    mados por una unidad de acceso que permite acceder a contenedores o vol-

    menes de informacin extrables, como pueden ser las unidades de cinta y las

    cintas, los lectores de discos compactos y los discos compactos, etc.

    Los dispositivos extrables necesitan un tratamiento adicional por parte del

    sistema y de los usuarios. As, por ejemplo, es necesario proporcionar los me-

    canismos precisos para poder hacer lo siguiente:

    Asignar estos dispositivos a un nico usuario al mismo tiempo, con el ob-

    jetivo de evitar que ms de uno intente acceder a la vez a los diferentes con-

    tenedores*.

    Por ejemplo,...

    ... no es lo mismo tener una impresora de agujas que tener una de inyeccin de tintao una lser. Tambin ser diferente tener la impresora conectada al ordenador mediante un puerto paralelo, como es habitual, que tenerla conectada mediante un puerto serie o directamente colgada en la red.

    * Contenedores de informacin como las cintas, disquetes, etc.

  • FUOC P05/75097/00807 Mdulo 4 9 Los dispositivos de entrada/salida

    Informar al sistema del hecho de que se ha insertado, o que se proceder a

    extraer, un volumen de la unidad, ya que el sistema, por cuestiones de efi-

    ciencia, puede guardar y manipular en la memoria informacin del estado

    del contenedor.

    2) La capacidad de almacenamiento de los dispositivos

    Los dispositivos pueden ser tiles para visualizar, recoger o almacenar infor-

    macin. Los dispositivos de almacenamiento tienen una capacidad o espacio

    concreto que puede variar entre los diferentes tipos de dispositivos, y que el

    SO se encarga de gestionar. Las caractersticas de estos dispositivos varan en

    funcin de los aspectos que ahora presentamos:

    a) La geometra. Los dispositivos de almacenamiento pueden tener el espa-

    cio organizado de diferentes formas, siguiendo geometras diferentes. Por

    ejemplo, un disco organiza el espacio en pistas, caras y sectores; una cinta en

    bloques, etc.

    b) El tipo de almacenamiento: permanente o temporal. Los dispositivos de

    almacenamiento pueden contener la informacin de manera permanente

    hasta que se borra explcitamente, o pueden guardarla de forma temporal. En

    este ltimo caso, la informacin se borra automticamente cuando se cumple

    una condicin concreta. Por ejemplo, en un fichero temporal o en una pipe de

    UNIX, la informacin almacenada se destruye al cerrarlos.

    3) El tipo de unidad de transferencia

    Las unidades de transferencia entre el sistema y los dispositivos pueden ser

    muy diferentes, pero en general distinguiremos los dos tipos siguientes:

    Dispositivos que transfieren caracteres. Por ejemplo, un terminal es un dis-

    positivo de caracteres de entrada/salida que est formado por una pantalla

    y un teclado, puesto que cada vez que pulsamos una tecla, el carcter es en-

    viado al sistema.

    Dispositivos que transfieren bloques de caracteres. Por ejemplo, el disco es un

    dispositivo de bloques, ya que cada vez que se quiere leer o escribir sobre el dis-

    co hay que transferir como mnimo un bloque, por ejemplo 512 caracteres.

    4) La velocidad de transferencia de los dispositivos

    La velocidad de transferencia, o ancho de banda del dispositivo, es otro de los

    factores que diferencian los dispositivos. Normalmente, la velocidad de trans-

    Podis ver las caractersticas de las pipes de UNIX en el subapartado 5.1. de este mdulo didctico.

    Por ejemplo,...

    ... podemos encontrar mdems que utilizan diferentes velocidades de salida. Encontraremos desde los que van a 110 bits por segundo hasta los que vana 921.600 bits por segundo.

  • FUOC P05/75097/00807 Mdulo 4 10 Los dispositivos de entrada/salida

    ferencia de los dispositivos es mucho menor que la velocidad del procesador.

    Esta diferencia de velocidades hace que el sistema, en la gestin de los dispo-

    sitivos, tenga que aplicar tcnicas que permitan reducir el tiempo de espera de

    los procesos, como el almacenamiento en la memoria intermedia (buffering) y

    la gestin de colas (spooling). A continuacin exponemos estas dos tcnicas

    con ms detalle:

    a) El almacenamiento en la memoria intermedia (buffering). En algunas oca-

    siones, la velocidad de los dispositivos no se adapta a la velocidad con que se

    est ejecutando el proceso, ya sea porque los dispositivos son ms lentos, ya sea

    porque el proceso trabaja a rachas. Con la intencin de solucionar este proble-

    ma, y que ni los dispositivos ni los procesos tengan que esperar mutuamente, el

    SO utiliza la memoria intermedia denominada buffering. As, esta memoria tiene

    la funcin de suavizar las diferencias de velocidades.

    b) La gestin de colas (spooling). La tcnica de la gestin de colas o SPOOL

    (Simultaneous Peripherical Operation OnLine) permite que las entradas/salidas

    de un proceso tengan un paso intermedio por dispositivos de gran capacidad

    de almacenamiento (discos, etc.). Este hecho permitir que el computador tra-

    baje con un proceso en concreto, mientras que, concurrentemente, los dispo-

    sitivos finales van extrayendo o incorporando informacin de manera ms

    lenta.

    Impresin de un documento

    Un caso muy corriente es el de trabajar con un procesador de textos y realizar una im-presin de un documento relativamente largo. Si no se utiliza la tcnica de la gestinde colas (spool), el computador, y por lo tanto el usuario, perder su capacidad de operarhasta que la impresin haya finalizado. Un efecto adicional del uso de la tcnica de lagestin de colas es la sensacin que tienen los usuarios de estar utilizando todos al mis-mo tiempo la impresora, a pesar de que se trata de un dispositivo no compartible. Todoesto es posible gracias al hecho de que el dispositivo intermedio (en este caso, el disco)es compartible.

    El almacenamientoen la memoria intermedia

    En el esquema con la memoria intermedia buffer,el dispositivo produce informacin y el proceso la consume. El dispositivo tiene que pasar la informacin a la memoria intermedia y slo surgen problemas si sta se encuentre llena. Por otra parte, el proceso slo consume informacin de la memoria intermedia y slo se tieneque esperar si sta est vaca.

    Figura 1

    Podis consultar la ejecucin concurrente de procesos en el subapartado 2.3. del mdulo didctico Introduccin a los sistemas operativos.

    Podis ver los dispositivos compartibles y no compartiblesen el subapartado 2.1. de este mdulo didctico.

  • FUOC P05/75097/00807 Mdulo 4 11 Los dispositivos de entrada/salida

    5) El tipo de codificacin de la informacin

    La informacin que se lee o se escribe en un dispositivo tiene que seguir unas nor-

    mas de codificacin que dependen de cada dispositivo en concreto. Por ejemplo,

    un terminal orientado a caracteres puede visualizar la informacin codificndola

    de diferentes maneras, por ejemplo: en ASCII de 7 bits o en ASCII de 8 bits. En este

    ltimo caso, los caracteres por encima del cdigo ASCII 127 dependen del alfabe-

    to (cataln, castellano, etc.) y del fabricante. En consecuencia, al visualizarlos, el

    resultado que se obtiene puede ser diferente del que se esperaba.

    6) La estructura de la informacin

    La informacin contenida en un dispositivo se puede estructurar de diferentes

    maneras. La estructura de la informacin condiciona las operaciones que po-

    demos llevar a cabo con dicha informacin. Por ejemplo, podemos compilar

    o editar un fichero que contenga un programa fuente, mientras que un fichero

    ejecutable slo se puede ejecutar.

    Si el sistema reconoce la estructura de la informacin, puede controlar que las

    manipulaciones que se hagan de esta informacin sean correctas.

    2.2. Caractersticas de acceso

    Las caractersticas de acceso hacen referencia a cmo acceden el SO y los

    procesos a la informacin contenida en los dispositivos. Estas caractersti-

    cas son las siguientes:

    1) Acceso a dispositivos de entrada/salida

    Los dispositivos pueden ser de entrada, de salida o de los dos tipos al mismo

    tiempo, y en funcin de esta caracterstica una operacin de acceso puede tener

    sentido o no. El sistema se encarga de controlar estas situaciones. Por ejemplo,

    es correcto hacer una salida sobre una impresora, pero en cambio, es absurdo

    hacerla sobre un ratn.

    Figura 2

    Un ejemplo sorprendente...

    ... se da cuando intentamosvisualizar el contenido de un fichero ejecutable (codificado en binario) en la pantalla.

    Por ejemplo,...

    ... la informacin de un fichero de texto se estructura en prra-fos, una base de datos contiene registros de informacin, etc.

  • FUOC P05/75097/00807 Mdulo 4 12 Los dispositivos de entrada/salida

    2) Acceso compartido o exclusivo

    A un dispositivo de uso exclusivo es imposible que acceda ms de un usuario a

    la vez, todo lo contrario de lo que sucede con los dispositivos compartidos. Un

    ejemplo de dispositivo exclusivo es, por ejemplo, la impresora, puesto que no

    puede escribir dos informaciones al mismo tiempo. El sistema tiene que propor-

    cionar mecanismos de exclusin, como pueden ser los semforos, o de compar-

    ticin, como el spooler.

    3) Acceso secuencial, directo o indexado

    El acceso a una informacin concreta contenida en un dispositivo de almace-

    namiento se puede llevar a cabo bsicamente de las tres formas siguientes:

    Secuencialmente: se tiene acceso a la informacin que sigue en posicin

    a la ltima informacin a la que se ha accedido.

    Directamente: se tiene acceso directo a una informacin por posicin.

    De manera indexada: se tiene acceso a la informacin mediante una clave

    lgica.

    Cada dispositivo permite, en funcin de su estructura, uno o ms de estos m-

    todos de acceso. El sistema, mediante su gestin, puede ofrecer aquellos mto-

    dos que el dispositivo no soporta directamente.

    4) Acceso sncrono o asncrono

    En el momento de acceder a un dispositivo, puede suceder que la informacin

    no se encuentre disponible. Entonces, en funcin del tipo de dispositivo del

    que se trate, tenemos estos casos:

    En un dispositivo sncrono, si la informacin no se encuentra disponible,

    el proceso que efecta el acceso esperar hasta que lo est. La mayor parte

    de los dispositivos tiene los accesos sncronos.

    En un dispositivo asncrono, si un proceso intenta realizar una entrada y

    no hay datos disponibles, se le informa de este hecho y se deja que conti-

    ne. En algunos dispositivos asncronos, esta funcionalidad se comple-

    menta con el hecho de que el dispositivo advierte al proceso cuando los

    datos ya estn disponibles.

    5) Otras caractersticas del acceso a los dispositivos de entrada

    Cuando se entran datos desde algunos dispositivos, como pueden ser los ter-

    minales, es necesario ver lo que se entra y, en caso de equivocacin, es nece-

    Podis ver el caso de los semforos en el apartado 4 del mdulo didctico La concurrenciay la comunicacin.

    El dispositivo puede advertiral proceso del hecho de que los datos estn listos mediante las seales descritas en el apartado 3 del mdulo didctico La gestin de procesos.

  • FUOC P05/75097/00807 Mdulo 4 13 Los dispositivos de entrada/salida

    sario que tengamos la posibilidad de rectificar. Estas dos caractersticas de los

    terminales hacen referencia respectivamente a lo que se denomina echo (eco)

    y al modo de edicin cooked/raw (cocinado/crudo).

    El hecho de activar o no el modo echo permite ver o no la entrada que se est

    llevando a cabo. En general, lo ms normal es ver los caracteres que se intro-

    ducen por el teclado; a pesar de ello, algunas situaciones hacen que sea acon-

    sejable que no se vea la entrada por la pantalla.

    El modo de edicin cooked hace que algunos caracteres que componen la

    entrada se interpreten como rdenes que alteran la informacin que se ha

    introducido. Con este modo activado, todos los caracteres que controlan la

    edicin se interpretarn y, por tanto, no se entregarn al proceso que efec-

    ta la operacin de entrada.

    As pues, un mismo dispositivo se puede comportar de maneras muy diferen-

    tes en funcin de cul de estos dos modos est activo. En general, el sistema

    es el encargado de implementarlas por software; no obstante, algunos disposi-

    tivos las pueden tener implementadas directamente por hardware.

    2.3. Caractersticas de control

    Las caractersticas de control hacen referencia a la forma de indicar a los dis-

    positivos lo que queremos que hagan. Podemos distinguir estos dos tipos:

    1) Las caractersticas del controlador

    El sistema controla los perifricos mediante el acceso a un conjunto de

    puertos que pertenecen al hardware denominado controlador. Las caracters-

    ticas de estos controladores condicionan la forma que el sistema tiene de

    gestionar las entradas/salidas: por interrupciones, por encuesta, con acceso

    directo a la memoria (DMA*), etc. El SO esconde a los usuarios todas estas

    particularidades.

    2) Los lenguajes de rdenes

    Algunos dispositivos utilizan lenguajes de control para configurar el tipo de

    entrada/salida que tienen que llevar a cabo. As, por ejemplo, algunas impre-

    soras lser utilizan el lenguaje PostScript para especificar el formato de la in-

    formacin que tienen que imprimir. Otro ejemplo podran ser los caracteres

    de control que se utilizan en un terminal para editar las entradas o para indicar

    si la salida tiene que estar en negrita, subrayada, etc.

    No utilizamos el echo cuando, por ejemplo, queremos introducir una

    contrasea.

    Por ejemplo,...

    ... el carcter ASCII 127 (delete) produce la eliminacin de uno de los caracteres entrados, etc.

    DMA es la sigla de la expresin inglesa Direct Memory Access.

    Podis ver los caracteres de control en el subapartado 2.2. de este mdulo didctico.

  • FUOC P05/75097/00807 Mdulo 4 14 Los dispositivos de entrada/salida

    2.4. Consecuencias de la diversidad de dispositivos

    Tal y como se puede apreciar en la relacin de caractersticas que acabamos de

    mencionar, los dispositivos son muy diferentes entre s, no slo entre tipos

    distintos, sino tambin dentro del mismo tipo. Como consecuencia de estas

    diferencias, tienen lugar las siguientes situaciones:

    Se accede a los dispositivos y se manipulan mediante operaciones diferen-

    tes y con parmetros tambin diferentes.

    Los dispositivos pueden producir resultados diferentes como respuesta a

    operaciones que en un principio podran parecer iguales.

    Finalmente, y como resultado de las dos consideraciones anteriores, los dis-

    positivos producen errores diferentes, incluso en situaciones anlogas.

    Esta diversidad hace que, como usuarios, deseemos independizarnos de esta

    multitud de casos diferentes. El sistema operativo es el encargado de conseguir

    este objetivo; mediante su gestin proporciona una mquina virtual que hace

    que toda esta variedad sea transparente para el usuario, y as le ofrece un grado

    ms elevado de independencia de los dispositivos.

    Recordad que presentamosel concepto de mquina virtualen el apartado 1 del mdulo didctico El sistema operativo: una mquina virtual.

  • FUOC P05/75097/00807 Mdulo 4 15 Los dispositivos de entrada/salida

    3. Los dispositivos reales

    Otra posible clasificacin de los dispositivos distingue los dispositivos fsicos

    de los lgicos. Estos dos tipos de dispositivos se denominan dispositivos reales,

    en contraposicin a los dispositivos virtuales, que analizaremos ms adelante.

    3.1. Los dispositivos fsicos

    Por norma general, son dispositivos fsicos que se encuentran asociados a un pe-

    rifrico. Sobre la base de este planteamiento tambin podremos considerar

    como dispositivos fsicos ciertos elementos del computador como puede ser

    la memoria principal, donde la memoria y el gestor de la memoria o MMU

    (Memory Management Unit) configuran respectivamente el perifrico y su hardware

    de control.

    3.2. Los dispositivos lgicos

    Los dispositivos fsicos son los dispositivos ms evidentes en un sistema, y r-

    pidamente los identificamos como tales. No obstante, en el sistema encontra-

    remos otros tipos de dispositivos que no estn asociados a un perifrico: los

    dispositivos lgicos.

    Los dispositivos lgicos tambin pueden ser el resultado de la redefinicin me-

    diante un algoritmo de uno o varios dispositivos fsicos. Por ejemplo, un fiche-

    Un dispositivo real es un dispositivo que existe realmente, y que es la

    combinacin de diferentes elementos de hardware y software.

    Un dispositivo fsico es un dispositivo que existe fsicamente. Est for-

    mado por el perifrico y por su hardware de control, que constituyen la

    parte fsica, y por el software que los gestiona y que denominamos driver

    (observad la figura 3).

    El dispositivo lgico no existe fsicamente. Un dispositivo lgico es el

    resultado de un software del sistema que crea este dispositivo. As pues,

    los dispositivos lgicos, a diferencia de los fsicos, estn formados ni-

    camente por su driver (observad la figura 3).

    Los dispositivos virtuales se analizan en el subapartado 4.2. de este mdulo didctico.

    Las impresoras, los mdems,los ratones y los escneres, entre

    otros, son algunos de los ejemplos de dispositivos fsicos.

    Por ejemplo,...

    ... un disco simulado sobre la memoria es un dispositivo que no existe fsicamente, sino que es el resultado de un algoritmo que simula, en este caso, un dispositivo fsico, un disco.

  • FUOC P05/75097/00807 Mdulo 4 16 Los dispositivos de entrada/salida

    ro es un dispositivo lgico que se obtiene como resultado de la redefinicin de

    un dispositivo fsico, como puede ser un disco. En este caso, se crea gracias al

    software que configura el sistema de ficheros.

    A continuacin nos disponemos a presentar algunos ejemplos de dispositivos

    lgicos (observad la figura 3):

    1) El nulo, que es un dispositivo de entrada/salida sobre el cual podemos es-

    cribir todo lo que queramos y siempre se mantiene vaco. En realidad, es un

    dispositivo que ignora cualquier cosa que se escriba en l, y que en la lectura

    nunca retorna ningn tipo de informacin. Este dispositivo se basa exclusiva-

    mente en el software que lo define.

    2) La ventana, que es un dispositivo lgico de entrada/salida que combina

    cuatro dispositivos fsicos: una pantalla, la memoria, un teclado y un disposi-

    tivo apuntador, como puede ser un ratn o un lpiz ptico. La ventana es un

    rea grfica almacenada en la memoria que se representa total o parcialmente

    sobre una pantalla.

    De los cuatro dispositivos que se han mencionado, tenemos que:

    La pantalla es el dispositivo donde se reflejan las salidas.

    El teclado es el medio para realizar las entradas.

    El dispositivo apuntador nos permite llevar a cabo ciertas operaciones de

    control sobre la ventana, como el hecho de cerrarla, variar su rea y posicin

    o seleccionar una entre otras para poder efectuar entradas desde el teclado.

    A diferencia del dispositivo nulo, el software que configura las ventanas se basa

    en la manipulacin de los drivers de los dispositivos que lo componen.

    3) La cola de mensajes, que es un dispositivo de entrada/salida pensado para

    comunicar procesos y que puede tener estas dos resoluciones:

    a) Una totalmente lgica, que se basa en una estructura de datos y unas ope-

    raciones que la manipulan, que se utilizada para comunicar procesos ejecuta-

    dos en una misma mquina.

    b) Otra que se basa en dispositivos fsicos, como el mdem o la placa de acce-

    so a la red, y que se utiliza para comunicar procesos que se ejecutan en mqui-

    nas diferentes.

    4) El espacio lgico, que es una agrupacin de informacin almacenada en

    la memoria fsica mediante el uso de la memoria virtual. El espacio lgico de

    Podis ver el software que formael sistema de ficheros en el apartado 2 del mdulo didctico El sistemade ficheros.

    El nulo se utiliza...

    ... para dejar aparte los mensa-jes acerca del estado de evolu-cin de un proceso que por norma general aparecenen pantalla e indican que el proceso trabaja.

    Podis ver el paso de mensajes en el apartado 7 del mdulo didctico La concurrencia y la comunicacin.

  • FUOC P05/75097/00807 Mdulo 4 17 Los dispositivos de entrada/salida

    un proceso tambin se puede ver como un dispositivo que se puede leer y es-

    cribir. Esta visin de los espacios lgicos no se encuentra lejos del concepto de

    fichero y, por tanto, puede recibir el mismo tratamiento.

    El espacio lgico resulta til para aplicaciones como los depuradores de pro-

    gramas (debugger), que necesitan acceder al espacio lgico del proceso que es-

    tn depurando.

    Podis ver la memoria virtual en el apartado 4 del mdulo didctico La gestin de la memoria.

    Figura 3

  • FUOC P05/75097/00807 Mdulo 4 18 Los dispositivos de entrada/salida

    4. La independencia de los dispositivos

    Como programadores nos interesa poder realizar programas portables y que se

    adapten a situaciones diferentes, y esta necesidad incluir el entorno de entra-

    da/salida donde se van a ejecutar. Hemos visto que los dispositivos presentan

    caractersticas que hacen que su gestin y las operaciones que se pueden llevar

    a cabo sean diferentes. El objetivo del SO es proporcionar una mquina virtual

    que uniformice los dispositivos respetando, al mismo tiempo, sus particulari-

    dades, para as facilitar a los usuarios su utilizacin. Esto se consigue indepen-

    dizando el cdigo de los programas con respecto a los dispositivos que utilizan

    y a las operaciones a que se dirigen.

    Algunos casos, como un programa que copia ficheros, una sencilla mquina

    de escribir, un editor de lneas y un visualizador de ficheros, se pueden reducir

    a un solo programa que escribe en un dispositivo lo que ha ledo en otro. A

    pesar de que se pueda hacer esta simplificacin, y teniendo en cuenta que los

    dispositivos con los que tendrn que trabajar los programas anteriores son tan

    diferentes, resulta difcil que podamos pensar que un nico programa fuente

    pueda servir para todos los dispositivos. A lo largo de este apartado veremos

    que, gracias a la gestin del SO, es posible efectuar este conjunto de operacio-

    nes con un nico cdigo fuente.

    4.1. Los dispositivos virtuales

    Esta asociacin entre dispositivo real y virtual se puede materializar de las

    dos maneras siguientes:

    a) En la asociacin implcita, tambin denominada redireccionamiento de las

    entradas/salidas, el programa ya encuentra la asociacin realizada en el instante

    en que inicia su ejecucin. El sistema y el proceso que ha iniciado la ejecucin

    El primer paso para independizar los programas del entorno de entrada/

    salida con el que trabajarn se basa en el uso de los dispositivos virtuales.

    Un dispositivo virtual es un dispositivo que, a priori, no se encuentra

    asociado a ningn dispositivo real. Este programa ser utilizado por el

    programa igual que cualquier otro dispositivo, pero sin saber de entrada

    sobre qu dispositivo en concreto se van a llevar a cabo las operaciones

    que se especifican en l. Ser en tiempo de ejecucin del programa cuan-

    do el sistema asociar un dispositivo real al dispositivo virtual mediante

    el cdigo del SO (observad la figura 3).

    Podis ver las caractersticas de los dispositivos en el apartado 2 de este mdulo didctico.

    Podis ver el ejemplo comodndel subapartado 5.2. del presente mdulo didctico.

    Veremos cmo los procesos pueden establecer la asociacin entre dispositivo real y virtual por mediodel sistema en el apartado 5 de este mdulo y en el subapartado 2.4.del mdulo La gestin de procesos.

  • FUOC P05/75097/00807 Mdulo 4 19 Los dispositivos de entrada/salida

    del programa se encargan de efectuar la asociacin. En general, los dispositivos

    virtuales asociados implcitamente reciben el nombre de dispositivos estndar;

    en el caso de UNIX tenemos tres: el estndar de entrada (standard input), el de

    salida (standard output) y el de error (standard error).

    b) La asociacin explcita entre un dispositivo real y uno virtual es efectuada

    por el mismo programa durante la ejecucin. Para llevarla a cabo necesita una

    operacin especfica que, dado un dispositivo real, genere el dispositivo virtu-

    al asociado. A partir del momento en que se ha realizado la asociacin, el pro-

    grama especificar todas las operaciones de entrada/salida del dispositivo

    mediante el dispositivo virtual.

    4.2. Las operaciones uniformes

    Para conseguir la independencia de los programas con respecto a las entradas/sa-

    lidas no es suficiente con el uso de dispositivos virtuales. No sirve de nada hacer

    que los programas trabajen sobre dispositivos virtuales si stos tienen que utilizar

    operaciones especficas de los dispositivos reales con los cuales estn asociados.

    Para evitar que los programas se vean obligados a conocer las particularidades de

    los dispositivos reales, el sistema tiene que uniformizar el conjunto de las ope-

    raciones que se pueden realizar sobre los dispositivos.

    Para hacerlo, es necesario conocer cules son las operaciones ms utilizadas

    por los programas y cules son las ms comunes a la mayora de los dispositi-

    vos. Estas operaciones se tienen que redefinir en un conjunto nuevo de ope-

    raciones independientes de las caractersticas de los dispositivos, que tiene que

    ofrecer el sistema. Con el fin de proporcionar esta nueva funcionalidad, el sis-

    tema aade una capa de software por encima de los drivers dependientes de los

    dispositivos: las operaciones independientes de los dispositivos.

    Si analizamos las operaciones de entrada/salida, podemos ver que hay operacio-

    nes bsicas de acceso y de control orientadas a proporcionar un acceso uniforme,

    y operaciones especficas de control orientadas a gestionar las particularidades de

    cada dispositivo. A continuacin vamos a estudiar cada una de estas operaciones.

    1) Operaciones bsicas de acceso

    Podis ver los dispositivos estndar en el apartado 5 de este mdulo didctico.

    Podis ver cmo se usan las operaciones utilizadas en la asociacin explcita para llevara cabo verificaciones de proteccinen el apartado 4 del mdulo El sistemade ficheros.

    Los drivers se han tratado en el subapartado 3.1. de este mdulo didctico.

  • FUOC P05/75097/00807 Mdulo 4 20 Los dispositivos de entrada/salida

    El tipo de acceso ms habitual es el secuencial, aunque hay que dar opcin al

    hecho de que las aplicaciones puedan realizar accesos directos a la informa-

    cin. Para permitirlo, es necesario proporcionar la operacin posicionar, que se

    analiza junto con las operaciones bsicas de control.

    Para especificar qu informacin hay que transferir es suficiente con dos

    parmetros:

    La variable desde la cual se extraern o se introducirn los datos con la ope-

    racin (buf).

    El nmero de datos que hay que transferir (cont).

    Si no introducimos ms parmetros, tenemos que suponer que accedemos

    siempre al mismo tipo de datos. De no ser as, sera necesario incluir otro pa-

    rmetro que especificase con qu tipo de datos reconocidos por el sistema se

    quiere realizar la operacin de entrada/salida.

    Ahora bien, la mayor parte de los sistemas reducen todos los tipos de datos po-

    sibles a uno solo, el ms elemental, el byte. El motivo de esta decisin es sen-

    cillo: no se pueden reconocer todos los tipos posibles; por ms tipos que

    reconociese el sistema, siempre surgiran aplicaciones con tipos nuevos. Por

    otro lado, cualquier tratamiento especfico se puede realizar a nivel de librera

    o de programa. Esta idea encaja a la perfeccin con uno de los principios de

    los SO: ofrecer herramientas para que los usuarios del sistema o su administra-

    dor puedan hacer polticas que se adapten a sus necesidades particulares.

    Con el fin de completar la lista de parmetros, hay que indicar el dispositivo

    virtual sobre el cual se quiere trabajar (disp) y, por ltimo, tras haber ejecutado

    estas operaciones, el sistema tiene que volver al estado en que han finalizado.

    Las operaciones bsicas de acceso son dos: leer y escribir, y nos tienen

    que permitir acceder a la informacin con independencia del dispositivo.

    Su funcionalidad debe ser compatible con la dinmica de funcionalidad

    de todos los dispositivos; esta dinmica incluye el tipo de acceso (secuen-

    cial o directo) y el tipo y la estructura de los datos que hay que transferir.

    As pues, las operaciones de acceso mnimas quedan tal y como se indi-

    ca a continuacin:

    Estado = leer(disp, buff, cont).

    Estado = escribir(disp, buff, cont).

    Podis ver el acceso secuencial en el subapartado 2.2. de este mdulo didctico.

  • FUOC P05/75097/00807 Mdulo 4 21 Los dispositivos de entrada/salida

    2) Operaciones bsicas de control

    Tal y como hemos visto en el caso de las operaciones de acceso, es necesario

    proporcionar un mecanismo para efectuar accesos directos. La operacin posi-

    cionar nos tiene que permitir acceder de manera directa a cualquier posicin

    dentro de la informacin de los dispositivos que lo permitan. Los parmetros

    necesarios para ejecutar esta operacin son los dos siguientes:

    El dispositivo virtual sobre el cual se quiere efectuar la operacin (disp).

    La posicin donde o desde donde se quiere llevar a cabo la siguiente ope-

    racin de acceso (pos).

    El inicio y el final de una sesin de acceso a un dispositivo se definen con las

    operaciones abrir y cerrar. Las aplicaciones no suelen acceder a los dispositivos

    de manera aislada, sino que por lo general realizan una serie de accesos que

    siguen una misma pauta: o bien se escribe todo un fichero de manera secuen-

    cial, o bien se modifica parcialmente mediante un acceso directo, o bien se lee

    de forma secuencial, etc. En cada una de estas sesiones los accesos que la com-

    ponen tienen necesidades comunes.

    Si no existiesen las operaciones abrir y cerrar que enmarcan todos los accesos

    de una sesin, sera necesario cubrir las necesidades comunes de cada acceso

    y, en consecuencia, se multiplicara el trabajo que tiene que llevar a cabo el

    sistema. Podemos resumir estas necesidades en tres ideas bsicas:

    1) Asociar un dispositivo real a un dispositivo virtual de manera explcita.

    2) Inicializar las estructuras de datos internos del SO que sean necesarias para

    realizar los accesos (secuencial y directo).

    3) Verificar los derechos de acceso que tiene el proceso sobre el dispositivo.

    Hay tres operaciones bsicas de control: posicionar, abrir y cerrar, las

    cuales permiten llevar a cabo las operaciones de control ms comunes

    que se ejecutan sobre los dispositivos.

  • FUOC P05/75097/00807 Mdulo 4 22 Los dispositivos de entrada/salida

    Al abrir una sesin de trabajo con un dispositivo, mediante la operacin abrir,

    debemos indicar los siguientes datos:

    El nombre del dispositivo real (nombre).

    El tipo de acceso* que se quiere efectuar (op).

    Con estos parmetros el sistema debe verificar la existencia del dispositivo y

    los derechos de acceso del proceso sobre este dispositivo. Si el dispositivo exis-

    te y se tiene derecho de acceso al mismo, el sistema generar un dispositivo

    virtual que lo asociar, para esta sesin de trabajo, con el dispositivo real. Al

    mismo tiempo, inicializar los punteros de acceso secuencial a los valores ne-

    cesarios, al inicio de la informacin del dispositivo en caso de lectura y modi-

    ficacin, y al final de la informacin en caso de escritura.

    Al cerrar la sesin de trabajo con el dispositivo, cuando ejecutamos la ope-

    racin cerrar, el sistema liberar las estructuras de datos necesarias para el ac-

    ceso y deshar la asociacin entre el dispositivo virtual y el real.

    Las operaciones abrir y cerrar se utilizan para llevar a cabo de manera explcita

    el conjunto de operaciones. El sistema, sin embargo, las puede efectuar de ma-

    nera implcita en el momento de iniciar o finalizar un proceso, tal y como he-

    mos comentado en el caso de la asignacin de dispositivos reales a virtuales.

    3) Operaciones especficas de control

    Podemos encontrar la operacin de control de las dos maneras siguientes:

    a) Como una operacin nica con parmetros variables que dependen de la

    funcin que se quiere efectuar y del dispositivo sobre el cual se lleva a cabo.

    b) Como tantas operaciones diferentes como funciones hay que realizar.

    As pues, las operaciones de control podran ser las siguientes:

    Estado = posicionar(disp, pos).

    Disp = abrir(nombre, op).

    Estado = cerrar(disp).

    Finalmente, el sistema permite, mediante la operacin control, que los

    usuarios que lo necesiten puedan utilizar las particularidades de los dis-

    positivos.

    * Los accesos pueden ser de lectura, escritura o modificacin.

    Podis ver el control de accesos sobre los dispositivos en el subapartado 4.3. del mdulodidctico El sistema de ficheros.

  • FUOC P05/75097/00807 Mdulo 4 23 Los dispositivos de entrada/salida

    5. La gestin de dispositivos en UNIX

    UNIX, como todos los SO, ofrece una visin de los dispositivos que hace que

    las caractersticas propias de cada uno sean transparentes para el usuario. En

    UNIX, un dispositivo es cualquier objeto sobre el cual se pueden realizar ope-

    raciones de lectura o escritura.

    El punto de vista del usuario de UNIX es de un dispositivo sobre el cual se pueden

    escribir o leer secuencias de bytes utilizando un entorno nico y bien definido.

    El sistema operativo UNIX reconoce los dos tipos bsicos de dispositivos que

    mencionamos a continuacin:

    1) Los dispositivos de bloques, como por ejemplo los discos, las cintas y los

    ficheros, permiten el acceso directo, ya que la unidad de direccionamiento es

    un bloque de tamao fijado por el sistema.

    Para estos tipos de dispositivos, UNIX utiliza una memoria cach de bloques

    con la finalidad de mejorar el rendimiento en sus accesos.

    2) Los dispositivos de caracteres, como los terminales, las impresoras, los ra-

    tones, etc. En general, todos aquellos dispositivos que no utilizan la memoria

    cach de bloques; suelen ser dispositivos sobre los cuales se tienen que llevar

    a cabo los accesos de manera secuencial.

    Dispositivos de bloques Dispositivos de carcteres

    Internamente, los diferentes tipos de dispositivos se identifican por su

    tipo bsico, bloques o caracteres, y por un nmero denominado major.

    Los diferentes dispositivos de un mismo tipo se identifican mediante

    otro nmero, denominado minor

    As pues, internamente un dispositivo se identifica por completo por el

    tro: tipo bsico, major, minor.

  • FUOC P05/75097/00807 Mdulo 4 24 Los dispositivos de entrada/salida

    El sistema gestiona los dispositivos por medio de drivers asociados a cada tipo

    de dispositivo, como se muestra en la figura que vemos a continuacin:

    El usuario que quiere dirigirse a los dispositivos reales de UNIX, tiene que ha-

    cerlo por medio del sistema de ficheros mediante el cual UNIX nombra fiche-

    ros especiales.

    El acceso bsico a los dispositivos que UNIX ofrece a los procesos es el secuen-

    cial, aunque tambin proporciona llamadas para que puedan efectuar accesos

    directos.

    Otra caracterstica importante es el control de accesos simultneos a un mis-

    mo dispositivo. Por defecto, UNIX permite que ms de un proceso acceda de

    manera concurrente al mismo dispositivo, a pesar de que proporciona las he-

    rramientas necesarias, mediante las llamadas de control, para que los usuarios

    puedan trabajar con modelos de exclusin mutua.

    Los procesos utilizan los file descriptors* para acceder a los dispositivos una vez

    han sido abiertos. Desde el punto de vista del usuario, un file descriptor es un

    nmero local en el proceso que forma parte de su entorno de ejecucin.

    En UNIX encontraremos tres file descriptors que por lo general estn asignados

    de manera implcita y por convenio tienen un significado concreto: el 0 o estn-

    dar de entrada (standard input), el 1 o estndar de salida (standard output), y el 2

    Figura 4

    Por ejemplo,...

    ... en UNIX la impresora tiene el nombre /dev/1p0, y el dis-co se llama /dev/hda.

    Podis ver los modelos de exclusin mutua en el apartado 2 del mdulo didctico El estado del arte de los sistemas operativos actuales.

    * Los file descriptors son los dispositivos virtuales de UNIX.

  • FUOC P05/75097/00807 Mdulo 4 25 Los dispositivos de entrada/salida

    o estndar de error (standard error). Los dispositivos estndares de entrada y de

    salida hacen referencia a la entrada/salida por defecto, y el dispositivo estndar

    de error se utiliza para comunicar las situaciones anmalas o de control en que

    se encuentra el proceso durante su ejecucin.

    5.1. Las pipes, un caso especial de dispositivo

    Un proceso, cuando quiere utilizar las pipes, se puede encontrar con los dos

    problemas siguientes:

    Si intenta leer sobre una pipe vaca se quedar bloqueado hasta que algn

    otro proceso escriba en l los caracteres suficientes como para que el pro-

    ceso bloqueado pueda efectuar la lectura.

    Si intenta escribir sobre una pipe llena se quedar bloqueado hasta que al-

    gn otro proceso lea suficientes caracteres de la pipe como para que el pro-

    ceso bloqueado pueda efectuar la escritura.

    Una pipe es un dispositivo lgico destinado a comunicar procesos. Su

    funcionamiento es el de una cola de caracteres con una longitud fija en

    la que los procesos pueden escribir y leer.

    Figura 5

    Por ejemplo,...

    ... un compilador puede leer el fichero fuente por el estndar de entrada, escribir el ejecuta-ble por el de salida, e indicar los errores o hacer advertencias sobre el estilo del programa por el estndar de error.

  • FUOC P05/75097/00807 Mdulo 4 26 Los dispositivos de entrada/salida

    Existen dos tipos de pipes: las named pipes y las denominadas simplemente pipes.

    1) Una named pipe es un dispositivo normal con un nombre que forma parte

    del sistema de ficheros, y cuyo comportamiento es idntico al de cualquier dis-

    positivo.

    2) Una pipe es un dispositivo que se crea en el momento en que un proceso lo

    abre, y se destruye cuando lo cierra el ltimo proceso lo que tiene abierto. Es un

    dispositivo que no se puede abrir de manera explcita mediante la operacin

    abrir (open). Una vez ha sido creado, los diferentes procesos que quieren utilizar-

    lo lo tienen que asociar a un dispositivo virtual* de manera implcita. A causa

    de esta particularidad, las pipes no tienen asociado ningn nombre que aparezca

    en el sistema de ficheros.

    5.2. El punto de vista desde las llamadas al sistema

    El objetivo de este subapartado es realizar un breve repaso de las principales lla-

    madas al sistema relacionadas con la entrada/salida. En ningn caso pretende-

    mos hacer una descripcin exhaustiva de todas sus posibilidades y sintaxis.

    En general, el sistema operativo UNIX posee una estructura de llamadas al siste-

    ma idntica a la que hemos descrito a lo largo de este mdulo. Las correspon-

    Figura 6

    * En UNIX, un dispositivo virtual es un file descriptor.

    Podis ver la asociacin implcitade una pipe a un dispositivo en el apartado 4 del mdulo didcticoLa gestin de procesos.

  • FUOC P05/75097/00807 Mdulo 4 27 Los dispositivos de entrada/salida

    dencias entre las llamadas de UNIX y las que hemos visto en las operaciones

    uniformes son las que mostramos en la siguiente tabla:

    El proceso comodn

    Un ejemplo de uso de las llamadas de entrada/salida de UNIX es un proceso que escribe enla salida estndar lo que ha ledo en la entrada estndar.

    Un caso especial son las llamadas pipe y dup:

    La llamada al sistema pipe crea una pipe y dos file descriptors, uno para lec-tura y otro para escritura. Una vez se ha creado, se accede a la pipe como si

    fuese un dispositivo ms.

    La llamada al sistema dup asocia un nuevo file descriptor al dispositivo rela-

    cionado con el file descriptor que se le pasa como parmetro.

    5.3. El punto de vista desde el intrprete de rdenes (shell)

    En este subapartado, como hicimos en el anterior, introducimos las principa-

    les caractersticas de los intrpretes de rdenes o shells de UNIX, sin pretender

    ser exhaustivos.

    Operaciones uniformes

    Llamadas al sistema Llamadas de UNIX

    Leer read

    Escribir write

    Posicionar lseek

    Abrir open

    Cerrar close

    Control ioctl

    fcntl

    / * PROCESO COMODIN */main ( ){

    char buff ;int fin_in, fin_out;

    fin_out = 1;fin_in = read (0, &buff, 1);

    /*mientras la entrada no encuentre fin de fichero,*//*y no se produzcan errores de acceso* /

    while ((fin_in>0) && (fin_out>0)){

    fin_out = write(1, &buff, 1);fin_in =read(0, &buff, 1) ;

    }}

    Operaciones de control

    ioctl: controla el dispositi-vo real asociado a un file descriptor.

    fcntl: controla las caracte-rsticas del file descriptor y de la sesin de entrada/salida a la que representa.

    Podis ver cmo se pueden utilizar las llamadas pipe y dup para redireccionar y enlazar los file descriptors de diferentes procesos en el apartado 4 del mdulo La gestin de procesos.

  • FUOC P05/75097/00807 Mdulo 4 28 Los dispositivos de entrada/salida

    El tema ms interesante de UNIX, desde el punto de vista de las entradas/salidas,

    es la facilidad con que se pueden redireccionar los files descriptors estndares de los

    procesos desde el shell, y el potencial que esto representa.

    Para entender este potencial es necesario analizar los dos factores que mencio-

    namos a continuacin:

    1) El primer concepto que hay que utilizar es el de filtro. Un filtro es un pro-

    grama que lee la entrada estndar, manipula la informacin y escribe el resul-

    tado de esta manipulacin en la salida estndar, y repite esta operacin hasta

    que detecta un final de fichero.

    Marca de fin de fichero

    El sistema informa a los procesos, mediante la seal de fin de fichero, de que leen de un dis-positivo sobre el cual ya no se puede conseguir ms informacin. Por ejemplo, si se accedesecuencialmente a un fichero y se intenta leer informacin ms all del ltimo carcteralmacenado, o en el caso de acceder a una pipe, si se ha ledo toda la informacin que conte-na y no quedan ms procesos que la tengan abierta para escritura. En UNIX esta seal se tra-duce en el hecho de que la operacin read retorna un nmero positivo menor que elnmero de caracteres que se ha solicitado en leer.

    2) El redireccionamiento es el segundo concepto. Mediante la sintaxis del

    shell se pueden redireccionar los files descriptors estndar de un proceso desde

    la rden que los invoca.

    El smbolo < se utiliza para redireccionar el estndar de entrada, y el smbolo >

    para el estndar de salida.

    3) En tercer lugar, desde una rden podemos encadenar la ejecucin de ms

    de un programa mediante pipes. Esto se consigue redireccionando la salida es-

    tndar de un proceso y la entrada estndar de otro a una pipe.

    Para indicar que se conectan dos procesos mediante una pipe se utiliza el sm-

    bolo |.

    Ejemplo de encadenamiento

    Podemos combinar las dos rdenes anteriores con el filtro sort (que ordena lo que lee porla entrada estndar y lo escribe en la salida estndar) para conseguir los nueve procesos queutilizan durante ms tiempo la CPU.

    La instruccin $ ps aux | sort + 2 3 | tail > nombre enva al fichero nombrela informacin de los nueve procesos que utilizan durante ms tiempo la CPU.

    Ejemplos de redireccionamiento

    $ ps ps muestra por la salida estndar actual el estado de los procesos.

    $ ps > nombre Guarda el estado de los procesos en un fichero nombre.

    $ tail tail muestra en la salida estndar las ltimas diez lneas que entran por la entrada estndar.

    $ tail < nombre Muestra por la salida estndar actual las diez ltimas lneas del fichero nombre.

    Ejemplo de filtro

    La rden de UNIX tail es un fil-tro que muestra por la salida estndar las ltimas diez lneas que ha ledo por la entradaestndar.

  • FUOC P05/75097/00807 Mdulo 4 29 Los dispositivos de entrada/salida

    Result at d execut ar ps - aux

    USER PID %UCP %MEM SIZE RSS TTY STAT START TIME COMMAND

    root 1

    2

    3

    4

    5

    6

    7

    13

    14

    60

    61

    64

    88

    89

    90

    91

    92

    116

    126

    87

    0.5

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.3

    0.0

    0.0

    1.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.8

    0.9

    1.2

    1.8

    1.0

    0.9

    0.9

    0.9

    0.9

    0.9

    2.1

    1.1

    1.9

    848

    0

    0

    0

    0

    0

    0

    824

    836

    856

    1104

    844

    840

    840

    840

    840

    840

    1188

    876

    1160

    336

    0

    0

    0

    0

    0

    0

    256

    304

    392

    560

    324

    292

    292

    292

    292

    292

    656

    356

    604

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    2

    3

    4

    5

    6

    1

    1

    1

    S

    SW

    SW nom

    USER PID %UCP %MEM SIZE RSS TTY STAT START TIME COMMAND

    root 90

    91

    92

    127

    128

    129

    87

    116

    1

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.0

    0.3

    0.5

    0.9

    0.9

    0.9

    1.1

    2.1

    2.1

    1.9

    2.1

    1.0

    840

    840

    840

    876

    1188

    1188

    1160

    1188

    848

    292

    292

    292

    356

    656

    656

    604

    656

    336

    4

    5

    6

    1

    1

    1

    1

    1

    ?

    S

    S

    S

    R

    R

    R

    S

    S

    S

    06:24

    06:24

    06:24

    06:31

    06:31

    06:31

    06:24

    06:28

    06:24

    0:00

    0:00

    0:00

    0:00

    0:00

    0:00

    0:00

    0:00

    0:02

    /sbin/agetty 38400 tt

    /sbin/agetty 38400 tt

    /sbin/agetty 38400 tt

    ps - aux

    -sh

    -sh

    -bash

    -sh

    init

    root

    root

    root

    root

    root

    alum1

    root

    root

    Resultado de ejecutar $S ps - aux | sort + 2 - 3 | tail > nombre

    Resultado de ejecutar ps - aux

  • FUOC P05/75097/00807 Mdulo 4 30 Los dispositivos de entrada/salida

    Pues bien, como se puede apreciar, si tenemos un conjunto de filtros que rea-

    lizan funciones concretas podemos, mediante las pipes y las redirecciones,

    efectuar operaciones realmente complejas sin tener que escribir ni una sola l-

    nea de cdigo.

    Ejemplo de utilizacin del proceso comodn

    Copia el contenido del fichero origen en el fichero destino.

    Acta como una mquina de escribir enviando todo lo que escribimos en el terminal haciala impresora.

    Edita el fichero destino. Acta como un sencillo editor de lneas.

    Muestra el contenido del fichero origen.

    $ comodin < origen > destino

    $ comodin < /dev/tty > /dev/1p0

    $ comodin < /dev/tty > destino

    $ comodin < origen > /dev/tty

  • FUOC P05/75097/00807 Mdulo 4 31 Los dispositivos de entrada/salida

    Resumen

    En este captulo hemos estudiado el concepto de dispositivo de entrada/sa-

    lida bsicamente desde el punto de vista del usuario del sistema. Asimismo,

    hemos podido observar que hay diferentes tipos de dispositivos reales (fsi-

    cos y lgicos) con caractersticas y particularidades muy diferentes. Ante esta

    realidad, el objetivo del SO consiste en ofrecer una visin de los dispositivos

    que, en principio, haga transparentes todas estas particularidades para los

    usuarios, con el fin de que las aplicaciones tengan la mxima independencia

    con respecto a los dispositivos que utilizan. Ahora bien, el SO tiene que per-

    mitir tambin que aquellas aplicaciones que lo necesiten puedan manipular

    las caractersticas y extraer todo el rendimiento que stas ofrecen. Para conse-

    guirlo, la gestin de los dispositivos que lleva a cabo el SO proporciona un interfaz

    de acceso que est formado por los elementos que anotamos a continuacin:

    Operaciones uniformes independientes de las caractersticas concretas de

    los dispositivos.

    Dispositivos virtuales sobre los cuales trabajan estas operaciones indepen-

    dientes.

    Como caso concreto hemos analizado el sistema de entrada/salida de UNIX,

    en el que se puede destacar:

    El redireccionamiento de los dispositivos estndar de entrada/salida des-

    de el intrprete de rdenes.

    Las pipes, como un caso de dispositivo lgico que permite comunicar pro-

    cesos entre s.

    Los programas filtro que permiten efectuar operaciones complejas a partir

    del encadenamiento de pequeos programas mediante pipes.

  • FUOC P05/75097/00807 Mdulo 4 33 Los dispositivos de entrada/salida

    Actividades

    1. Estudiad en el manual de UNIX qu redireccionamientos se pueden llevar a cabo desde losintrpretes de rdenes Bourne shell (sh) y Cshell (csh).

    2. Analizad las rdenes de UNIX y familiarizaos en especial con aquellos que se puedan con-siderar filtros.

    3. Estudiad, en el apartado 4 del manual de UNIX, los dispositivos tty, mt y sd. Analizadlas caractersticas que tienen y cmo se pueden alterar, tanto desde el intrprete de rdenescomo desde las llamadas al SO.

    4. Confrontad vuestra experiencia como usuarios de Windows 95 con lo que hemos estudiadoen este mdulo didctico.

    Ejercicios de autoevaluacin

    1. Cules de estos ficheros se pueden imprimir?a) Un fichero con cdigo fuente.b) Un fichero objeto.c) Un fichero con ensamblador.d) Un fichero ejecutable.Justificad la respuesta.

    2. Creis que el reloj del sistema se puede considerar un dispositivo? Justificad vuestra respuesta.

    3. Estableced las ventajas y los inconvenientes del hecho de que el SO reconozca la estructurade la informacin. Justificad la respuesta.

    4. En los terminales de UNIX, el carcter ^D (control D) hace que el SO d una seal de finde fichero al proceso que est llevando a cabo una lectura. Determinad qu resultado obte-nemos si realizamos la siguiente entrada en el terminal:

    Indicad qu resultado obtenemos si escribimos la secuencia anterior en un fichero de rdenesdenominado script y ejecutamos:

    Justificad la respuesta.

    5. Cules de estos dispositivos utilizan la tcnica del buffering?a) La pantalla.b) El ratn.c) El teclado.d) El disco.Justificad la respuesta.

    6. Los procesos que utilizan ventanas, en qu caso pueden recibir una seal de fin de fichero?

    7. Qu parmetros debera tener una operacin de lectura o escritura que diese acceso secuen-cial a la informacin si no existiesen las operaciones abrir y cerrar? Y si el acceso fuese directo?Justificad vuestras respuestas.

    8. Los dispositivos virtuales pueden ser asignados a dispositivos reales de manera implcita oexplcita. Qu consecuencias puede tener el hecho de disponer slo de la asignacin expl-cita? Y si slo tenemos la implcita? Justificad las respuestas.

    9. Qu consecuencias tiene el hecho de redireccionar la entrada y la salida estndar del pro-ceso comodn hacia un terminal? Cmo se podra solucionar? Justificad las respuestas.

    $ comodin > ficheroEsto es una prueba. ^D

    $ comodin < fichero

    $ sh

  • FUOC P05/75097/00807 Mdulo 4 34 Los dispositivos de entrada/salida

    Solucionario

    Ejercicios de autoevaluacin

    1. Se pueden imprimir a, c, y d, porque la impresora es un dispositivo de tipo orientado acaracteres y, por lo tanto, todos los ficheros de texto son imprimibles. Debemos tener claroque puede haber ficheros ejecutables que sean de texto, como los scripts. Los ficheros objetoo binarios no son imprimibles, puesto que su codificacin no se basa en caracteres, y en casode que se impriman, el resultado es ininteligible.

    2. S, porque por definicin un dispositivo de entrada/salida es un objeto gestionado por elSO sobre el cual los procesos pueden realizar una operacin de lectura y/o escritura para ob-tener, almacenar, mostrar o transferir informacin. Esta definicin se puede aplicar al relojdel sistema, ya que existe la posibilidad de llevar a cabo tanto operaciones de lectura comode escritura (consultar la hora actual y poner el reloj en hora, por ejemplo), con la finalidadde mostrarlo por pantalla, sincronizar procesos, sincronizar mquinas, etc.

    3. La principal ventaja del hecho de que el SO reconozca la estructura de la informacin es quepermite controlar que las manipulaciones que se realizan sobre la informacin sean correctas. Porejemplo, que slo se puedan editar ficheros de texto y no de dispositivo, o que los directorios nose puedan crear a mano como lo haramos con un fichero de texto (esto da ms seguridad), etc.Como principal inconveniente encontramos el hecho de que el sistema no puede prevertodos los posibles tipos de ficheros y, por tanto, puede ser que el hecho de tener que conocertodos las posibles estructuras de los ficheros se convierta en una barrera que impida la adap-tacin del sistema a nuevas situaciones.Otro inconveniente es que nos aporta menos flexibilidad a la hora de llevar a cabo opera-ciones que estn fuera de lo habitual, por ejemplo editar un fichero objeto para ver su con-tenido.

    4. Con la primera secuencia se crea el fichero con el contenido Esto es una prueba. Elcarcter ^D no se guarda en el fichero, puesto que el dispositivo terminal lo interpreta comola seal de fin de fichero. Al ejecutar la segunda rden de esta secuencia se visualiza el con-tenido del fichero.En la segunda secuencia se han escrito las rdenes de la primera dentro del fichero script.El intrprete de rdenes tiene su entrada estndar redireccionada desde el fichero. Todas lasrdenes que ejecute tienen, salvo que se indique lo contrario, las mismas entradas/salidas es-tndar. El resultado de todas estas circunstancias hace que la rden comodin > fichero ten-ga como estndar de entrada el fichero script. Debido a que el carcter ^D no esinterpretado por los dispositivos ficheros, el programa comodn no detectar el final de fiche-ro hasta que no haya ledo la totalidad del fichero script. As pues, el resultado, a pesar deque aparentemente tendra que ser igual, es diferente.

    5. La utilizan b y c, puesto que ambos son dispositivos de entrada y tienen una velocidadmuy diferente de la del procesador. Con el objetivo de reducir esta diferencia, se utiliza elalmacenamiento en la memoria intermedia, y para poder verlo con ms claridad slo tene-mos que fijarnos en que cuando el intrprete de rdenes est ejecutando una rden, ya sepuede escribir la siguiente. Esta segunda rden se guarda en la memoria intermedia hasta queel intrprete la reclame. De esta manera se agiliza todo el proceso de entrada/salida. El disco es un dispositivo que tambin trabaja a una velocidad significativamente menor quela del procesador. A diferencia del teclado y el ratn, el disco es un dispositivo tanto de en-trada como de salida, y en ambos casos se puede utilizar la tcnica del almacenamiento en lamemoria intermedia para reducir el impacto de esta diferencia de velocidad. En el caso de laentrada permitir leer bloques (unidad de transferencia del disco) y almacenarlos en la me-moria intermedia hasta que los procesos necesiten la informacin. Y en el caso de la salida,los procesos dejan la informacin en la memoria intermedia y su ejecucin contina sin es-perar que el sistema haya finalizado la escritura sobre el disco. Por ltimo, la pantalla es un dispositivo que no se encuentra con el problema de las diferen-cias de velocidad y, por tanto, no necesita utilizar la tcnica de almacenamiento en la me-moria intermedia.

    6. Una seal de fin de fichero informa a los procesos de que estn leyendo un recurso del queya no podrn extraer ms informacin. Se podra deducir que un proceso que utiliza una ven-tana recibir una seal de fin de fichero cuando se haya cerrado la ventana.

    7. Si no existiesen las operaciones abrir y cerrar, el sistema no tendra conocimiento de lassesiones de trabajo con los ficheros, es decir, no podra distinguir qu operaciones se realizanen asociacin con una u otra sesin. Como consecuencia de este hecho, no se podra guardarinformacin del estado de cada una de las sesiones y de su evolucin.

  • FUOC P05/75097/00807 Mdulo 4 35 Los dispositivos de entrada/salida

    Todo esto se traducir en lo que ahora apuntamos: Con los accesos secuenciales, el sistema no tendra constancia de cul era la ltima posicin

    accedida. Esta informacin se tendra que gestionar desde los programas y pasarla como par-metro al sistema, de modo que las operaciones de acceso secuencial no existiran, se tendranque construir por programa mediante operaciones de acceso directo.

    Las operaciones de acceso tendran que utilizar dispositivos fsicos o lgicos, pero no vir-tuales, ya que en la operacin abrir se lleva a cabo la asociacin con estos dispositivos.

    Finalmente, a pesar de que esto no afecta a los parmetros de las operaciones de acceso,hay que destacar que cada operacin de acceso tendra que verificar los derechos de accesosobre el dispositivo.

    As pues, las operaciones de acceso seran todas directas, y tendran los siguientes parmetros:

    Estado = acceso (nombre, pos, buff, cont),

    donde nombre es el nombre del dispositivo real, pos es la posicin del dispositivo al que sequiere acceder, buff es la variable a donde o desde donde se efectuar el acceso, y cont es lacantidad de informacin que hay que transferir.

    8. Si slo se dispusiese de la asignacin explcita, no se podran realizar redireccionamientos dela entrada/salida de los programas y estaramos limitados a las entradas/salidas definidas en el c-digo. Si slo dispusisemos de la asignacin implcita, los programas no podran especificar qudispositivos querran llevar a cabo las entradas/ salidas; estaran obligados a utilizar los dispositi-vos estndar que el sistema tuviese previstos. El hecho de poder realizar redireccionamientos ono vendra condicionado por el tipo de mecanismo que proporciona el sistema.

    9. La principal consecuencia es que todo lo que se escribe se ve dos veces, una por efecto delmodo echo del terminal como dispositivo de entrada, y otra como resultado de la salida queefecta el programa comodn. Para evitarlo y ver slo una vez lo que se escribe, se tendraque desactivar el modo echo del terminal.

    Glosario

    almacenamiento en la memoria principalTcnica de entrada/salida que utiliza una memoria intermedia denominada buffer para ami-norar las diferencias de velocidad de los dispositivos con respecto a la velocidad de ejecucinde los procesos.sin.: buffering

    bufferingVed almacenamiento en la memoria principal.

    cooked/raw (cocinado/crudo)Modos de edicin que se encuentran asociados a los dispositivos de entrada, como puedenser los terminales. El modo cooked hace que algunos caracteres que componen la entrada seinterpreten como rdenes que alteran la informacin que se ha introducido. El modo raw nointerpreta ningn carcter y, por lo tanto, todos los caracteres se entregan al proceso que lle-va a cabo la operacin de entrada.

    dispositivos de entrada/salidaObjeto gestionado por el SO sobre el cual los procesos pueden realizar operaciones de lectura/es-critura para obtener, almacenar o transformar informacin.

    dispositivo fsicoDispositivo que existe fsicamente y que est formado por el perifrico y por su hardware decontrol, constituyentes de la parte fsica, y por el software que los gestiona, denominado driver.

    dispositivo lgicoDispositivo que no existe fsicamente y que se obtiene como resultado de un software del sis-tema que lo crea.

    dispositivo nuloDispositivo de entrada/salida sobre el cual se puede escribir todo lo que se quiere y siemprecontina vaco. Ignora cualquier cosa que se escriba en el mismo, y en la lectura nunca re-torna ningn tipo de informacin. Se basa exclusivamente en el software que lo define.

    dispositivo virtualDispositivo que no se encuentra asociado a priori a ningn dispositivo real. El programa lo utilizaigual que lo hara con cualquier otro dispositivo, pero sin conocer a priori sobre qu dispositivoen concreto se efectuarn las operaciones que se especifican en el mismo. El sistema asociar undispositivo real al dispositivo virtual en tiempo de ejecucin mediante el cdigo del SO.

  • FUOC P05/75097/00807 Mdulo 4 36 Los dispositivos de entrada/salida

    driverSoftware que gestiona un dispositivo de entrada/salida.

    echoModo de los dispositivos de entrada/salida, como por ejemplo los terminales, que provocaque se realice una salida de toda la informacin que se entra por el dispositivo, con el obje-tivo de verificar, y cuando sea necesario corregir, la informacin que se est entrando.Ved cooked/raw.

    file descriptorsNombre que reciben los dispositivos virtuales en UNIX.

    gestin de colas Tcnica que utilizan las spool (Simultaneous Peripherical Operation On-Line), que permite queen las entradas/salidas de un proceso encontremos un paso intermedio por dispositivos degran capacidad de almacenamiento. Hacen que el computador trabaje con un proceso enconcreto mientras, concurrentemente, los dispositivos finales van extrayendo e incorporan-do informacin con una mayor lentitud.sin.: spooling

    independencia de los dispositivosObjetivo del SO que consiste en proporcionar una mquina virtual que uniformice los dis-positivos respetando sus particularidades. Esto se consigue independizando el cdigo de losprogramas con respecto a los dispositivos que utilizan y las operaciones con que se dirigen astos mediante el uso de dispositivos y operaciones independientes.

    major y minorPar de nmeros que identifican internamente los dispositivos de UNIX. El major identifica eltipo de dispositivo, y el minor identifica un dispositivo concreto del tipo major.

    named pipeDispositivo lgico de UNIX que se comporta como una pipe, con la diferencia de que tieneun nombre que consta en el espacio de nombres del sistema de ficheros.

    operaciones uniformesUniformizacin de las operaciones que proporciona el SO para conseguir la independencia de losprogramas con respecto a las entradas/salidas. Para poder proporcionar esta nueva funcin, el sis-tema aade una capa de software por encima de los drivers que dependen de los dispositivos: lasoperaciones uniformes de entrada/salida (que son independientes de los dispositivos).

    pipeDispositivo lgico de UNIX que se destina a comunicar procesos, cuyo funcionamiento es elde una cola de caracteres con una longitud fija en la que los procesos pueden escribir y leer.Es un dispositivo que no figura en el sistema de ficheros, se crea cuando es abierto por unproceso y se destruye cuando se cierra el ltimo proceso que lo tiene abierto.

    spoolingVed gestin de colas.

    Bibliografa

    Bibliografa bsica

    Milenkovic, M. (1994). Sistemas operativos, conceptos y diseo (2. ed.; trad. de A. Bautista).

    Madrid: McGraw-Hill.

    Silberschatz, A.; Peterson, J.; Galvin, P. (1994). Sistemas operativos, conceptos fundamen-

    tales (3. ed.; trad. de E. Morales). Wilmington: Addison-Wesley Iberoamericana.

    Tanenbaum, A. (1993). Sistemas operativos modernos (trad. de O. Palmas). Mxico: Prentice

    Hall Hispanoamericana.

    Bibliografa complementaria

    Robbins, K.; Robbins, S. (1997). UNIX: programacin prctica. Mxico: Prentice Hall His-

    panoamericana.