Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de entrada/salida
Teodor Jov Lagunas
P05/75097/00807
Mdulo 4
ndice
Introduccin.............................................................................................
Objetivos ....................................................................................................
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 tratamiento que el sistema hace de los mismos y la percepcin que tiene el usuario
de stos mediante este tratamiento. Para alcanzar estos conocimientos ser necesario 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.
El concepto de dispositivo de entrada/salida se asocia al de perifrico. Entendemos 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 elaboran los procesos.
Con el teclado introducimos informacin
en el sistema.
El sistema operativo (SO) se encarga de gestionar los dispositivos proporcionando 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 diferentes dispositivos sin tener que modificarlas.
Aparentemente, todos los dispositivos funcionan de la misma forma, es decir, todos llevan a cabo operaciones de entrada/salida de informacin: las impresoras
vierten la informacin en un soporte material como el papel, los teclados permiten 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 presentan caractersticas singulares que el sistema tiene que gestionar de diferentes
modos.
Por ejemplo,...
... no es lo mismo tener una
impresora de agujas que tener
una de inyeccin de tinta
o 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.
Podemos realizar una clasificacin de los dispositivos en funcin de sus caractersticas para analizar las diferencias que presentan. Teniendo en cuenta su elevado 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.
Las caractersticas fsicas hacen referencia a propiedades intrnsecas de los dispositivos. Son las siguientes:
* Contenedores de informacin
como las cintas, disquetes, etc.
Los dispositivos pueden ser tiles para visualizar, recoger o almacenar informacin. 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 espacio organizado de diferentes formas, siguiendo geometras diferentes. Por
ejemplo, un disco organiza el espacio en pistas, caras y sectores; una cinta en
bloques, etc.
Dispositivos que transfieren caracteres. Por ejemplo, un terminal es un dispositivo 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 enviado al sistema.
Por ejemplo,...
... podemos encontrar
mdems que utilizan
diferentes velocidades de
salida. Encontraremos desde
los que van a 110 bits por
segundo hasta los que van
a 921.600 bits por segundo.
10
a) El almacenamiento en la memoria intermedia (buffering). En algunas ocasiones, 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 problema, 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.
Figura 1
El almacenamiento
en 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 tiene
que esperar si sta est vaca.
lenta.
Impresin de un documento
Un caso muy corriente es el de trabajar con un procesador de textos y realizar una impresin de un documento relativamente largo. Si no se utiliza la tcnica de la gestin
de colas (spool), el computador, y por lo tanto el usuario, perder su capacidad de operar
hasta que la impresin haya finalizado. Un efecto adicional del uso de la tcnica de la
gestin de colas es la sensacin que tienen los usuarios de estar utilizando todos al mismo tiempo la impresora, a pesar de que se trata de un dispositivo no compartible. Todo
esto es posible gracias al hecho de que el dispositivo intermedio (en este caso, el disco)
es compartible.
11
Figura 2
La informacin que se lee o se escribe en un dispositivo tiene que seguir unas normas 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 alfabeto (cataln, castellano, etc.) y del fabricante. En consecuencia, al visualizarlos, el
resultado que se obtiene puede ser diferente del que se esperaba.
Un ejemplo
sorprendente...
... se da cuando intentamos
visualizar el contenido de un
fichero ejecutable (codificado
en binario) en la pantalla.
6) La estructura de la informacin
Por ejemplo,...
... la informacin de un fichero
de texto se estructura en prrafos, una base de datos contiene
registros de informacin, etc.
12
Cuando se entran datos desde algunos dispositivos, como pueden ser los terminales, es necesario ver lo que se entra y, en caso de equivocacin, es nece-
13
ducen por el teclado; a pesar de ello, algunas situaciones hacen que sea aconsejable que no se vea la entrada por la pantalla.
Por ejemplo,...
... el carcter ASCII 127 (delete)
produce la eliminacin de uno
de los caracteres entrados, etc.
ta la operacin de entrada.
As pues, un mismo dispositivo se puede comportar de maneras muy diferentes en funcin de cul de estos dos modos est activo. En general, el sistema
es el encargado de implementarlas por software; no obstante, algunos dispositivos las pueden tener implementadas directamente por hardware.
Las caractersticas de control hacen referencia a la forma de indicar a los dispositivos lo que queremos que hagan. Podemos distinguir estos dos tipos:
14
15
Un dispositivo fsico es un dispositivo que existe fsicamente. Est formado 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).
Por norma general, son dispositivos fsicos que se encuentran asociados a un perifrico. 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.
Los dispositivos lgicos tambin pueden ser el resultado de la redefinicin mediante un algoritmo de uno o varios dispositivos fsicos. Por ejemplo, un fiche-
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.
16
El nulo se utiliza...
... para dejar aparte los mensajes acerca del estado de evolucin de un proceso que por
norma general aparecen
en pantalla e indican que el
proceso trabaja.
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.
a) Una totalmente lgica, que se basa en una estructura de datos y unas operaciones que la manipulan, que se utilizada para comunicar procesos ejecutados en una misma mquina.
b) Otra que se basa en dispositivos fsicos, como el mdem o la placa de acceso a la red, y que se utiliza para comunicar procesos que se ejecutan en mquinas diferentes.
17
un proceso tambin se puede ver como un dispositivo que se puede leer y escribir. 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 programas (debugger), que necesitan acceder al espacio lgico del proceso que estn depurando.
Figura 3
18
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 particularidades, para as facilitar a los usuarios su utilizacin. Esto se consigue independizando 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 operaciones con un nico cdigo fuente.
19
Para conseguir la independencia de los programas con respecto a las entradas/salidas 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 operaciones que se pueden realizar sobre los dispositivos.
Si analizamos las operaciones de entrada/salida, podemos ver que hay operaciones 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.
20
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 (secuencial o directo) y el tipo y la estructura de los datos que hay que transferir.
Ahora bien, la mayor parte de los sistemas reducen todos los tipos de datos posibles a uno solo, el ms elemental, el byte. El motivo de esta decisin es sencillo: 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 administrador puedan hacer polticas que se adapten a sus necesidades particulares.
As pues, las operaciones de acceso mnimas quedan tal y como se indica a continuacin:
Estado = leer(disp, buff, cont).
Estado = escribir(disp, buff, cont).
21
22
Al cerrar la sesin de trabajo con el dispositivo, cuando ejecutamos la operacin cerrar, el sistema liberar las estructuras de datos necesarias para el acceso 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 manera implcita en el momento de iniciar o finalizar un proceso, tal y como hemos comentado en el caso de la asignacin de dispositivos reales a virtuales.
23
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 operaciones 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 ratones, 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
24
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:
Figura 4
El usuario que quiere dirigirse a los dispositivos reales de UNIX, tiene que hacerlo por medio del sistema de ficheros mediante el cual UNIX nombra ficheros especiales.
Por ejemplo,...
... en UNIX la impresora tiene
el nombre /dev/1p0, y el disco se llama /dev/hda.
El acceso bsico a los dispositivos que UNIX ofrece a los procesos es el secuencial, aunque tambin proporciona llamadas para que puedan efectuar accesos
directos.
Otra caracterstica importante es el control de accesos simultneos a un mismo dispositivo. Por defecto, UNIX permite que ms de un proceso acceda de
manera concurrente al mismo dispositivo, a pesar de que proporciona las herramientas 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 estndar de entrada (standard input), el 1 o estndar de salida (standard output), y el 2
25
Figura 5
Por ejemplo,...
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 proceso bloqueado pueda efectuar la lectura.
Si intenta escribir sobre una pipe llena se quedar bloqueado hasta que algn otro proceso lea suficientes caracteres de la pipe como para que el proceso bloqueado pueda efectuar la escritura.
26
Figura 6
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 dispositivo.
27
dencias entre las llamadas de UNIX y las que hemos visto en las operaciones
uniformes son las que mostramos en la siguiente tabla:
Operaciones uniformes
Llamadas al sistema
Llamadas de UNIX
Leer
read
Escribir
write
Posicionar
lseek
Abrir
open
Cerrar
close
ioctl
Control
fcntl
Operaciones de control
ioctl: controla el dispositivo real asociado a un
file descriptor.
fcntl: controla las caractersticas del file descriptor
y de la sesin de entrada/
salida a la que representa.
El proceso comodn
Un ejemplo de uso de las llamadas de entrada/salida de UNIX es un proceso que escribe en
la salida estndar lo que ha ledo en la entrada estndar.
/ * 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) ;
}
}
28
$ ps > nombre
$ tail
Ejemplo de filtro
La rden de UNIX tail es un filtro que muestra por la salida
estndar las ltimas diez lneas
que ha ledo por la entrada
estndar.
29
Resultado
ejecutar
aux
Result at dde
execut
ar psps- -aux
USER
PID
%UCP
%MEM
SIZE
RSS
TTY
STAT
START
TIME
COMMAND
root
0.5
1.0
848
336
06:24
0:02
init
root
0.0
0.0
SW
06:24
0:00
(kflushd)
root
0.0
0.0
SW<
06:24
0:00
(kswapd)
root
0.0
0.0
SW
06:24
0:00
(nfsiod)
root
0.0
0.0
SW
06:24
0:00
(nfsiod)
root
0.0
0.0
SW
06:24
0:00
(nfsiod)
root
0.0
0.0
SW
06:24
0:00
(nfsiod)
root
13
0.0
0.8
824
256
06:24
0:00
/sbin/update
root
14
0.0
0.9
836
304
06:24
0:00
/sbin/kerneld
root
60
0.0
1.2
856
392
06:24
0:00
/usr/sbin/syslogd
root
61
0.0
1.8
1104
560
06:24
0:00
/usr/sbin/klogd
root
64
0.0
1.0
844
324
06:24
0:00
/usr/sbin/crond - l10
root
88
0.0
0.9
840
292
06:24
0:00
/sbin/agetty 38400 tt
root
89
0.0
0.9
840
292
06:24
0:00
/sbin/agetty 38400 tt
root
90
0.0
0.9
840
292
06:24
0:00
/sbin/agetty 38400 tt
root
91
0.0
0.9
840
292
06:24
0:00
/sbin/agetty 38400 tt
root
92
0.0
0.9
840
292
06:24
0:00
/sbin/agetty 38400 tt
root
116
0.3
2.1
1188
656
06:28
0:00
-sh
root
126
0.0
1.1
876
356
06:30
0:00
ps - aux
alum1
87
0.0
1.9
1160
604
06:24
0:00
-bash
Result
d execut
$ps- -aux
aux|/ sort
sort ++ 2 -- 33 /|tail
Resultado
deatejecutar
$Sar ps
tail> >nom
nombre
USER
PID
%UCP
%MEM
SIZE
RSS
TTY
STAT
START
TIME
COMMAND
root
90
0.0
0.9
840
292
06:24
0:00
/sbin/agetty 38400 tt
root
91
0.0
0.9
840
292
06:24
0:00
/sbin/agetty 38400 tt
root
92
0.0
0.9
840
292
06:24
0:00
/sbin/agetty 38400 tt
root
127
0.0
1.1
876
356
06:31
0:00
ps - aux
root
128
0.0
2.1
1188
656
06:31
0:00
-sh
root
129
0.0
2.1
1188
656
06:31
0:00
-sh
alum1
87
0.0
1.9
1160
604
06:24
0:00
-bash
root
116
0.3
2.1
1188
656
06:28
0:00
-sh
root
0.5
1.0
848
336
06:24
0:02
init
30
Pues bien, como se puede apreciar, si tenemos un conjunto de filtros que realizan funciones concretas podemos, mediante las pipes y las redirecciones,
efectuar operaciones realmente complejas sin tener que escribir ni una sola lnea 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 hacia
la impresora.
31
Resumen
En este captulo hemos estudiado el concepto de dispositivo de entrada/salida bsicamente desde el punto de vista del usuario del sistema. Asimismo,
hemos podido observar que hay diferentes tipos de dispositivos reales (fsicos 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 permitir tambin que aquellas aplicaciones que lo necesiten puedan manipular
las caractersticas y extraer todo el rendimiento que stas ofrecen. Para conseguirlo, 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 independientes.
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 desde el intrprete de rdenes.
Las pipes, como un caso de dispositivo lgico que permite comunicar procesos entre s.
Los programas filtro que permiten efectuar operaciones complejas a partir
del encadenamiento de pequeos programas mediante pipes.
33
Actividades
1. Estudiad en el manual de UNIX qu redireccionamientos se pueden llevar a cabo desde los
intrpretes de rdenes Bourne shell (sh) y Cshell (csh).
2. Analizad las rdenes de UNIX y familiarizaos en especial con aquellos que se puedan considerar filtros.
3. Estudiad, en el apartado 4 del manual de UNIX, los dispositivos tty, mt y sd. Analizad
las caractersticas que tienen y cmo se pueden alterar, tanto desde el intrprete de rdenes
como desde las llamadas al SO.
4. Confrontad vuestra experiencia como usuarios de Windows 95 con lo que hemos estudiado
en 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 estructura
de la informacin. Justificad la respuesta.
4. En los terminales de UNIX, el carcter ^D (control D) hace que el SO d una seal de fin
de fichero al proceso que est llevando a cabo una lectura. Determinad qu resultado obtenemos si realizamos la siguiente entrada en el terminal:
$ sh <script
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 secuencial 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 o
explcita. Qu consecuencias puede tener el hecho de disponer slo de la asignacin explcita? Y si slo tenemos la implcita? Justificad las respuestas.
9. Qu consecuencias tiene el hecho de redireccionar la entrada y la salida estndar del proceso comodn hacia un terminal? Cmo se podra solucionar? Justificad las respuestas.
34
Solucionario
Ejercicios de autoevaluacin
1. Se pueden imprimir a, c, y d, porque la impresora es un dispositivo de tipo orientado a
caracteres y, por lo tanto, todos los ficheros de texto son imprimibles. Debemos tener claro
que puede haber ficheros ejecutables que sean de texto, como los scripts. Los ficheros objeto
o binarios no son imprimibles, puesto que su codificacin no se basa en caracteres, y en caso
de que se impriman, el resultado es ininteligible.
2. S, porque por definicin un dispositivo de entrada/salida es un objeto gestionado por el
SO sobre el cual los procesos pueden realizar una operacin de lectura y/o escritura para obtener, almacenar, mostrar o transferir informacin. Esta definicin se puede aplicar al reloj
del sistema, ya que existe la posibilidad de llevar a cabo tanto operaciones de lectura como
de escritura (consultar la hora actual y poner el reloj en hora, por ejemplo), con la finalidad
de 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 que
permite controlar que las manipulaciones que se realizan sobre la informacin sean correctas. Por
ejemplo, que slo se puedan editar ficheros de texto y no de dispositivo, o que los directorios no
se 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 prever
todos los posibles tipos de ficheros y, por tanto, puede ser que el hecho de tener que conocer
todos las posibles estructuras de los ficheros se convierta en una barrera que impida la adaptacin del sistema a nuevas situaciones.
Otro inconveniente es que nos aporta menos flexibilidad a la hora de llevar a cabo operaciones que estn fuera de lo habitual, por ejemplo editar un fichero objeto para ver su contenido.
4. Con la primera secuencia se crea el fichero con el contenido Esto es una prueba. El
carcter ^D no se guarda en el fichero, puesto que el dispositivo terminal lo interpreta como
la seal de fin de fichero. Al ejecutar la segunda rden de esta secuencia se visualiza el contenido 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 las
rdenes que ejecute tienen, salvo que se indique lo contrario, las mismas entradas/salidas estndar. El resultado de todas estas circunstancias hace que la rden comodin > fichero tenga como estndar de entrada el fichero script. Debido a que el carcter ^D no es
interpretado por los dispositivos ficheros, el programa comodn no detectar el final de fichero hasta que no haya ledo la totalidad del fichero script. As pues, el resultado, a pesar de
que aparentemente tendra que ser igual, es diferente.
5. La utilizan b y c, puesto que ambos son dispositivos de entrada y tienen una velocidad
muy diferente de la del procesador. Con el objetivo de reducir esta diferencia, se utiliza el
almacenamiento en la memoria intermedia, y para poder verlo con ms claridad slo tenemos que fijarnos en que cuando el intrprete de rdenes est ejecutando una rden, ya se
puede escribir la siguiente. Esta segunda rden se guarda en la memoria intermedia hasta que
el 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 que
la del procesador. A diferencia del teclado y el ratn, el disco es un dispositivo tanto de entrada como de salida, y en ambos casos se puede utilizar la tcnica del almacenamiento en la
memoria intermedia para reducir el impacto de esta diferencia de velocidad. En el caso de la
entrada permitir leer bloques (unidad de transferencia del disco) y almacenarlos en la memoria 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 esperar 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 diferencias de velocidad y, por tanto, no necesita utilizar la tcnica de almacenamiento en la memoria intermedia.
6. Una seal de fin de fichero informa a los procesos de que estn leyendo un recurso del que
ya no podrn extraer ms informacin. Se podra deducir que un proceso que utiliza una ventana 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 las
sesiones de trabajo con los ficheros, es decir, no podra distinguir qu operaciones se realizan
en asociacin con una u otra sesin. Como consecuencia de este hecho, no se podra guardar
informacin del estado de cada una de las sesiones y de su evolucin.
35
Glosario
almacenamiento en la memoria principal
Tcnica de entrada/salida que utiliza una memoria intermedia denominada buffer para aminorar las diferencias de velocidad de los dispositivos con respecto a la velocidad de ejecucin
de los procesos.
sin.: buffering
buffering
Ved almacenamiento en la memoria principal.
cooked/raw (cocinado/crudo)
Modos de edicin que se encuentran asociados a los dispositivos de entrada, como pueden
ser los terminales. El modo cooked hace que algunos caracteres que componen la entrada se
interpreten como rdenes que alteran la informacin que se ha introducido. El modo raw no
interpreta ningn carcter y, por lo tanto, todos los caracteres se entregan al proceso que lleva a cabo la operacin de entrada.
dispositivos de entrada/salida
Objeto gestionado por el SO sobre el cual los procesos pueden realizar operaciones de lectura/escritura para obtener, almacenar o transformar informacin.
dispositivo fsico
Dispositivo que existe fsicamente y que est formado por el perifrico y por su hardware de
control, constituyentes de la parte fsica, y por el software que los gestiona, denominado driver.
dispositivo lgico
Dispositivo que no existe fsicamente y que se obtiene como resultado de un software del sistema que lo crea.
dispositivo nulo
Dispositivo de entrada/salida sobre el cual se puede escribir todo lo que se quiere y siempre
contina vaco. Ignora cualquier cosa que se escriba en el mismo, y en la lectura nunca retorna ningn tipo de informacin. Se basa exclusivamente en el software que lo define.
dispositivo virtual
Dispositivo que no se encuentra asociado a priori a ningn dispositivo real. El programa lo utiliza
igual que lo hara con cualquier otro dispositivo, pero sin conocer a priori sobre qu dispositivo
en concreto se efectuarn las operaciones que se especifican en el mismo. El sistema asociar un
dispositivo real al dispositivo virtual en tiempo de ejecucin mediante el cdigo del SO.
36
driver
Software que gestiona un dispositivo de entrada/salida.
echo
Modo de los dispositivos de entrada/salida, como por ejemplo los terminales, que provoca
que se realice una salida de toda la informacin que se entra por el dispositivo, con el objetivo de verificar, y cuando sea necesario corregir, la informacin que se est entrando.
Ved cooked/raw.
file descriptors
Nombre que reciben los dispositivos virtuales en UNIX.
gestin de colas
Tcnica que utilizan las spool (Simultaneous Peripherical Operation On-Line), que permite que
en las entradas/salidas de un proceso encontremos un paso intermedio por dispositivos de
gran capacidad de almacenamiento. Hacen que el computador trabaje con un proceso en
concreto mientras, concurrentemente, los dispositivos finales van extrayendo e incorporando informacin con una mayor lentitud.
sin.: spooling
independencia de los dispositivos
Objetivo del SO que consiste en proporcionar una mquina virtual que uniformice los dispositivos respetando sus particularidades. Esto se consigue independizando el cdigo de los
programas con respecto a los dispositivos que utilizan y las operaciones con que se dirigen a
stos mediante el uso de dispositivos y operaciones independientes.
major y minor
Par de nmeros que identifican internamente los dispositivos de UNIX. El major identifica el
tipo de dispositivo, y el minor identifica un dispositivo concreto del tipo major.
named pipe
Dispositivo lgico de UNIX que se comporta como una pipe, con la diferencia de que tiene
un nombre que consta en el espacio de nombres del sistema de ficheros.
operaciones uniformes
Uniformizacin de las operaciones que proporciona el SO para conseguir la independencia de los
programas con respecto a las entradas/salidas. Para poder proporcionar esta nueva funcin, el sistema aade una capa de software por encima de los drivers que dependen de los dispositivos: las
operaciones uniformes de entrada/salida (que son independientes de los dispositivos).
pipe
Dispositivo lgico de UNIX que se destina a comunicar procesos, cuyo funcionamiento es el
de 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 un
proceso y se destruye cuando se cierra el ltimo proceso que lo tiene abierto.
spooling
Ved 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 fundamentales (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 Hispanoamericana.