Você está na página 1de 8

T18. Sistemas Operativos. Gestión de Entradas/Salidas.

1. Introducción.........................................................................................................2
1.1. Relación con los ciclos impartidos en FP........................................................2
1.2. Introducción a los SSOO................................................................................2
1.3. Introducción a la Gestión de E/S...................................................................2
2. Hardware de E/S..................................................................................................2
2.1. Dispositivos de E/S........................................................................................2
2.2. Controladores hardware de dispositivos........................................................3
2.3. Direccionamiento de los dispositivos de E/S..................................................3
2.4. Transferencia de Datos..................................................................................3
2.5. Sincronización...............................................................................................3
3. Software de E/S...................................................................................................3
3.1. Objetivos del software de E/S.......................................................................3
3.2. Manejadores de interrupciones......................................................................4
3.3. Controladores software de dispositivos (Drivers)..........................................4
3.4. Software de E/S independiente de dispositivo...............................................4
3.5. Software de E/S de espacio de usuario..........................................................4
3.6. Aspectos comunes a todos los niveles...........................................................5
4. Interbloqueo........................................................................................................5
4.1. Introducción al problema...............................................................................5
4.2. Detección y prevención..................................................................................5
5. Ejemplo de manejador de E/S: Discos..................................................................5
5.1. Manejador de disco........................................................................................5
5.2. Planificación del acceso a disco.....................................................................6
5.3. Buffering y tratamiento de errores................................................................6
6. Bibliografía y Personalidades Influyentes/Destacadas.........................................7
6.1. Bibliografía....................................................................................................7
6.2. Personalidades Destacadas............................................................................7
T18. Sistemas Operativos. Gestión de Entradas/Salidas.

1. Introducción
1.1. Relación con los ciclos impartidos en FP
Este tema está directamente relacionado con los siguientes módulos y ciclos formativos
de la rama de informática:
 CFGS Administración de Sistemas Informáticos: Sistemas informáticos monousuario y
multiusuario (SyAI).
 CFGS Desarrollo de Aplicaciones Informáticas: Sistemas informáticos multiusuario y en
red (SyAI).
 CFGM Explotación de Sistemas Informáticos: Sistemas operativos en entornos
monousuario y multiusuario (SyAI).
1.2. Introducción a los SSOO
Stallings, 2001. “Un programa que controla la ejecución de los programas de
aplicación y que actúa como interfaz entre el usuario de un computador y el
hardware del mismo”
 Conjunto de programas de control cuya finalidad es hacer más fácil y eficiente el uso
del ordenador en que se ejecutan
 Están presentes en todo tipo de sistemas electrónicos que necesiten un software de
control sobre el que un usuario pueda trabajar fácilmente, desde super-ordenadores
con cientos de microprocesadores (Solaris, AIX, Linux), hasta en aparatos tan
comunes como agendas electrónicas (Windows Mobile o Palm OS), teléfonos móviles
(Windows Mobile o Simbian OS, y como no, ordenadores personales (WXP, Linux, Mac
OS X, etc.)
 Monoprogramación: Sólo se puede ejecutar un proceso y hasta que no se termine
no puede iniciarse el siguiente. Ya no existen. MSDOS era multitarea pero no expulsiva
 Multiprogramación/Multitarea: Se pueden ejecutar varios procesos
simultáneamente, compartiendo el tiempo de uso de procesador. Mejor
aprovechamiento de los recursos y aumento del rendimiento del microprocesador
1.3. Introducción a la Gestión de E/S
 Los programas durante su ejecución necesitan acceder a dispositivos de entrada y
salida como la pantalla, el teclado, el ratón, la tarjeta de red o el disco duro. Si hay
algo que caracterice a los dispositivos de E/S es su gran diversidad, tanto desde el
punto de vista funcional, como del modo de acceder a ellos y la velocidad con la que
transfieren los datos.
 El SO debe, por tanto, permitir trabajar con los dispositivos de forma abstracta,
pudiendo realizar funciones genéricas como leer o escribir, independientemente de las
características de los dispositivos. Permitiendo así que los procesos no tengan que
preocuparse de las características de los periféricos, siendo las operaciones de E/S lo
más independientes posibles del tipo y modelo de dispositivo al que van dirigidas.
Niveles de E/S en W2000
Niveles en la Entrada/Salida
API de E/S del subsistema
E/S en espacio de usuario Win32 /POSIX
E/S independiente de dispositivo Administrador de E/S
Software (Independiente del disk.)
Controladores de dispositivos SW
(Driver) Controladores de dispositivos
en modo kernel (drivers)
Manejadores de interrupciones Rutinas de acceso de E/S del
Controladores de dispositivos HW HAL (aísla a los controladores
Dispositivos HW de E/S (disco, Hardware del HW que puede variar entre
teclado, ratón, tarjeta ethernet, etc.) plataformas)
Puertos y registros de E/S HW.

2. Hardware de E/S
2.1. Dispositivos de E/S
 Dispositivos de bloque: Almacena información en bloques de tamaño fijo, cada uno
con su propia dirección. Es posible leer o escribir cada bloque con independencia de los
demás (Disco, disquete, etc.)
 Dispositivos de carácter: Reciben y envían los datos como cadenas de caracteres
sin ninguna longitud fija y no disponen de un sistema de direcciones. Ratón,
impresora, teclado o interfaz de red.
 Hay algunos dispositivos que se salen de ésta clasificación
2.2. Controladores hardware de dispositivos
 Los dispositivos de E/S disponen de una parte mecánica (el dispositivo en si) y otra
parte electrónica denominada Controlador Hardware de Dispositivos o Tarjetas
Controladoras. Son los circuitos electrónicos capaces de programar el dispositivo e
intercambiar información entre éste y la memoria principal o los registros de la CPU.
 El acceso a los dispositivos de E/S se hace siempre por medio del controlador
correspondiente. Así existirán controladores de disco, de tarjetas gráficas, de líneas
serie, etc. Cada controlador dispone de una serie de registros de estado, control y
datos, que permiten obtener información de estado del dispositivo, modificar el modo
de funcionamiento del mismo y realizar las transferencias de información
respectivamente.
 Controlan la comunicación entre la CPU o la memoria y el dispositivo, y almacena los
datos temporalmente para salvar las diferencias de velocidad entre el sistema y el disp
 Actualmente la “placa base”, incluye múltiples controladores de dispositivos como
controladores IDE, PCI, USB, o controladoras de tarjetas gráficas. Para añadir
controladores de dispositivos adicionales, tales como controladores de SCSI,
aceleradoras de gráficos 3D, etc. se instalan mediante tarjetas en las ranuras de
expansión PCI, ISA o AGP de la citada placa base.
2.3. Direccionamiento de los dispositivos de E/S
 Mecanismo para seleccionar uno de los dispositivos que el ordenador tiene conectados
para realizar la operación de E/S.
 Estructura con buses separados para Memoria y E/S: Bus de 3 líneas, una de
direcciones, otra de datos y otra de señales de control.
 Estructura con E/S Mapeada en Memoria: Máquinas de bus único que sirve tanto
de bus de memoria como de E/S. Se les suele asignar a las puertas de E/S una zona
contigua de memoria y no requieren instrucciones específicas de entrada y salida.
2.4. Transferencia de Datos
 Entrada/Salida controlada por programa: la CPU se ocupa de realizar cada una de
las transferencias.
 Acceso directo a memoria (DMA): Realiza las transferencias de datos directas entre
el dispositivo y la memoria principal sin intervención de la CPU (la libera).
2.5. Sincronización
 Cómo conseguir que los periféricos estén permanentemente atendidos.
 Sincronización por consulta de estado (sondeo): La CPU es la encargada de la
sincronización realizando periódicamente un sondeo a los distintos dispositivos
consultando su estado. Simple y flexible, pero carga la CPU.
 Sincronización mediante interrupciones: En este caso son los dispositivos (o sus
controladores) los que interrumpen la ejecución del programa en la CPU cuando están
en disposición de participar en una operación de E/S.
3. Software de E/S
3.1. Objetivos del software de E/S
 Concretamente, el sistema de E/S deberá ser capaz de:
o Garantizar y controlar el acceso a los dispositivos.
o Ofrecer a los procesos una interfaz de llamadas al sistema tal, que sean capaces
de acceder a los dispositivos son conocerlos a bajo nivel.
o Tratar las interrupciones generadas por los dispositivos.
o Manejo de errores.
o Planificar los accesos para proporcionar un uso equitativo de los dispositivos.
o Cuidar la eficiencia del sistema.
3.2. Manejadores de interrupciones
 La gestión de interrupciones corre a cargo de un proceso del núcleo llamado Gestor de
Interrupciones. Su función es localizar el origen de la interrupción y transferir el
control a la rutina de servicio de interrupción correspondiente.
 Cuando se recibe una interrupción, se conmuta automáticamente a modo supervisor, y
el núcleo toma el control. Comprueba qué controlador debe ser avisado de la
activación de la interrupción y éste será notificado. Dependiendo del enfoque de
diseño se enviará un mensaje al proceso controlador de dispositivo (micronúcleo), o se
llamará a una función incluida en el núcleo (monolítico).
 La ejecución no tiene porqué ser inmediata, y puede verse retrasada si el sistema está
enfrascado en operaciones más prioritarias.
3.3. Controladores software de dispositivos (Drivers)
 También conocidos como Manejadores de Dispositivos o Drivers.
 La interfaz entre el controlador y el dispositivo es con frecuencia una interfaz de muy
bajo nivel, e incluye una serie de peculiaridades que sólo el fabricante conoce. Para
que las controladoras sean programables, los fabricantes proveen de un software
específico que permite al sistema operativo utilizar la controladora. De este modo,
para llevar a cabo las tareas de E/S, el sistema operativo, usando el driver, se
comunica con la controladora, y ésta a su vez, con el dispositivo de E/S.
 Por cada dispositivo de E/S deberá existir su correspondiente controlador software,
3.4. Software de E/S independiente de dispositivo
Funciones básicas:
 Ofrecer una interfaz uniforme de acceso a los subsistemas de E/S: Al usuario
se deben presentar los distintos dispositivos de E/S adoptando una misma apariencia.
Por ejemplo en Unix, los elementos de E/S se presentan como archivos ordinarios y las
llamadas para acceder a los dispositivos son las mismas que para acceder a los
archivos. Por ejemplo, si se copia un archivo indicando que el archivo destino es el que
identifica la impresora, este se imprimirá. En Windows 2000 se trata a todos los
elementos del sistema, incluidos los dispositivos de E/S como objetos, y las funciones
para acceder a ellos también son siempre las mismas.
 Nombrado y protección de los dispositivos: En el caso de Unix, los dispositivos se
nombran como si se tratasen de archivos ordinarios, por ejemplo el primer disco duro
normalmente será /dev/hda0. Además, se pueden montar los distintos discos en
carpetas del sistema de ficheros. La protección en este caso se realizará como en el
caso de los archivos, sobre cada dispositivo el administrador definirá qué derechos
tiene cada usuario (r,w,etc.). En Windows 2000, el mecanismo de protección es el
mismo que se emplea para proteger los objetos. ACL o listas de control de acceso, que
determina quién y como puede acceder a cada objeto.
 Contabilidad la asignación del espacio en dispositivos modo bloque: En estos
dispositivos, este nivel es responsable de saber qué bloques están ocupados o libres
con objeto de asignarlos de un modo correcto.
 Contabilidad de uso de los dispositivos: Los dispositivos se asignan o desasignan a
los procesos de usuario. El sistema deberá conocer que dispositivos están asignados.
3.5. Software de E/S de espacio de usuario
 Proporciona bibliotecas en espacio de usuario que facilitan llamadas al sistema de más
alto nivel que las proporcionadas por el nivel de E/S independiente de dispositivo.
 Por ejemplo, en Unix, el nivel de E/S independiente de dispositivo proporciona la
llamada al sistema write, ésta es posible utilizarla para mostrar un texto por pantalla,
pero el nivel de E/S de espacio de usuario, proporciona una función intermedia, printf,
de más alto nivel, más sencilla y que permite dar formato a las cadenas y
despreocuparse de la transformación de códigos binario<->-decimal<->ASCII.
 Sistema de spool: Gestiona el envío de trabajos a dispositivos. Se emplea para
evitar que un proceso de usuario pueda monopolizar el uso de un recurso no
compartible. Por ejemplo, para enviar trabajos a la impresora, en vez de hacerlo
directamente, la impresora se asigna a un proceso de sistema (daemon) que es
responsable de su control. Así los trabajos se envían a un directorio de spool, y el
daemon de impresión es el responsable de planificar los diferentes trabajos pendientes
y enviarlos en el momento adecuado a la impresora.
3.6. Aspectos comunes a todos los niveles
 Buffering: Permite acelerar las transferencias de datos en operaciones de E/S
utilizando almacenamiento temporal de datos. Cuando un proceso solicita una lectura
de datos de un archivo, en realidad se leen más datos de los que realmente necesita,
de modo que si se solicitan posteriormente datos cercanos, no haya que volver a
realizar la transferencia física. En el caso de la escritura, mientras no se llene el buffer,
éste no se transfiere al dispositivo. En este caso un daemon, cada cierto tiempo
actualiza estos buffers a disco, para evitar que, si el sistema se bloquea, se pierda la
información. Se suele realizar en todos los niveles, desde el controlador de dispositivo
por hardware, hasta en el espacio de usuario.
 Tratamiento de errores: Cada nivel tratará de eliminar el error en la medida de lo
posible, evitando que en última instancia éste sea trasladado al nivel superior. El
controlador hardware intentará resolverlo, por ejemplo, repitiendo la operación, sino
informará al controlador software, que podría, por ejemplo, comprobar los códigos
correctores, si tampoco se resuelve, se pasaría al sistema operativo, que puede tener,
por ejemplo, redundancia RAID por software, o algún otro tipo de sistema.
4. Interbloqueo
4.1. Introducción al problema
 Supóngase que un proceso tiene un recurso A y necesita otro recurso B para
completar su ejecución. Por otro lado, un segundo proceso tiene el recursos B, pero
necesita el A para completar su ejecución. Ambos están bloqueados esperando que se
les conceda el recurso requerido, y permanecerán bloqueados indefinidamente.
 Pueden ocurrir en cualquier situación en la que a los procesos se les otorga acceso
exclusivo a los dispositivos, archivos, registros u otros objetos.
 Tanenbaum define formalmente el abrazo mortal: “un conjunto de procesos se
bloquea si cada proceso del conjunto espera un evento que sólo puede ser provocado
por otro proceso del conjunto”.
4.2. Detección y prevención
 Algunos sistemas operativos, como por ejemplo Unix, ignoran el problema sobre la
suposición de que la mayoría de los usuarios prefieren correr el riesgo (por otra parte,
usualmente muy bajo) de sufrir un interbloqueo que aplicar las fuertes restricciones
necesarias para evitar esta situación, ya que el precio de su detección o prevención es
alto.
 Detección: El sistema debe vigilar permanentemente para detectar los bucles de
espera circular. Cuando se detecta, lo más normal es “sacrificar” los procesos uno a
uno hasta que desaparezca el interbloqueo.
 Prevención: Para prevenir el interbloqueo existen varias técnicas, como requerir que
los procesos pidan todos los recursos que van a necesitar antes de iniciar su
ejecución; que los procesos liberen todos sus recursos temporalmente, para después
solicitarlos todos junto con el nuevo que necesitan; o el algoritmo del banquero que
sólo permite la solicitud de un recurso si esta solicitud implica un “estado seguro”
posterior a la adjudicación de dicho recursos. El problema de estos algoritmos es que,
o bien hay que conocer a priori el número de recursos que necesitará cada proceso,
algo casi imposible en sistemas interactivos actuales, o bien, se necesita un alto coste
de CPU.
 SGBD: En estos casos, se utilizan métodos similares a los comentados, ya que sí son
ser eficaces en los SGBD, sobretodo al estar apoyados por los mecanismos de
transacciones y confirmación/retroceso.
5. Ejemplo de manejador de E/S: Discos
 Elemento clave del computador, permiten almacenar grandes cantidades de información
de forma permanente.
5.1. Manejador de disco
 Proporciona básicamente dos primitivas al nivel superior, que permiten leer y escribir
un bloque de disco. Similares a las siguientes:
readblock (blocknum,mem)
writeblock (blocknum,mem)
 Con ellas, la visión que tiene el nivel de E/S independiente de dispositivo del disco es
la de una secuencia numerada de bloques, accesibles a través de las primitivas.
 El manejador de disco ocultará los detalles hardware específicos de cada disco, y la
programación de los mismos. Con cada llamada a las primitivas, el manejador
transformará la dirección de número de bloque a pista, cabeza y sector, iniciará el
DMA, moverá los cabezales del disco, y escribirá o leerá datos.
5.2. Planificación del acceso a disco
 En sistemas multiprogramados existirá generalmente una cola de procesos esperando
a que el sistema operativo les asigne el disco. Para minimizar los tiempos medios de
espera, existen distintos algoritmos de asignación de disco. Algunos de ellos son:
o FCFS (first come first served): El más sencillo, las peticiones se atienden
según el orden de llegada.
o SSTF (shortest seek time first): Selecciona siempre la solicitud que tenga un
tiempo de búsqueda más bajo desde la posición actual, es decir, la más cercana.
Puede producir inanición.
o SCAN (algoritmo del ascensor): La cabeza empieza en un extremo del disco y
se mueve hacia el otro sirviendo las solicitudes a medida que llega a cada pista,
hasta que llega a la última petición más cercana al otro extremo. Entonces
invierte el sentido, o vuelve inmediatamente al otro extremo (C-SCAN).
5.3. Buffering y tratamiento de errores
 Buffering: Algunos controladores de disco hardware poseen buffers internos utilizados
para acelerar las transferencias. Al menos también el nivel de entrada-salida también
realizará buffering.
 Tratamiento de errores: El manejador tratará de resolver los errores, bien
reintentando la operación, o bien, con técnicas de redundancia. Sino se resuelve, se
informará del error al nivel superior.
6. Bibliografía y Personalidades Influyentes/Destacadas
6.1. Bibliografía
 Tanenbaum, A. S.: “Sistemas operativos: diseño e implementación”. 2ª Ed. Prentice
Hall. 1998.
 Tanenbaum, A. S.: “Sistemas operativos modernos”. 2ª Ed. Prentice Hall. 2003.
 Stallings, W.: “Sistemas operativos”. 5ª Ed. Prentice Hall.2005.
 Carretero, Jesús: ”Sistemas operativos. Una visión aplicada”. McGraw Hill. 2001.
 http://es.tldp.org Documentación libre en español de Linux/Unix
 http://msdn.microsoft.com Centro de desarrollo de Microsoft.
 http://www.tutorialparaprofesores.com Documentación de Microsoft para profesores.
 http://technet.microsoft.com Documentación tecnológica de Microsoft
6.2. Personalidades Destacadas
 Linus Torvalds: Ingeniero informático finlandés, iniciador y desarrollador del núcleo
(kernel) de Linux a partir del S.O. MINIX. Adoptó la licencia GPL permitiendo así su
modificación, redistribución, copia y uso ilimitado.
 Andrew S. Tanenbaum: Director del Departamento de Sistemas en una universidad
de Ámsterdam, es conocido por ser el creador de los sistemas operativos MINIX 3.0,
con arquitectura micronúcleo y capaz de ejecutar programas UNIX, y Amoeba, sistema
operativo completamente distribuido, creados con fines académicos, así como por
escribir varios libros sobre sistemas operativos y redes de computadoras, muy
valorados por los académicos de medio mundo.

Você também pode gostar