Sei sulla pagina 1di 15

1.

INTRODUCCION
TEMA 18. SISTEMAS OPERATIVOS. GESTION DE El control de las operaciones de E/S es una de las misiones que debe
ENTRADA / SALIDA realizar un sistema operativo para facilitar el uso de los distintos dispositivos
que forman parte de un sistema informático.
1. INTRODUCCIÓN Los dispositivos hardware de la computadora cuya misión es la de
intercambiar datos con el procesador y la memoria principal en un sentido, en
2. NIVEL INTERNO otro o en ambos, comúnmente denominados periféricos, no son fáciles ni
cómodos de utilizar directamente por los procesos. Por otro lado, los procesos
2.1. DIRECCIONAMIENTO no necesitan conocer las peculiaridades ni características de dichos
dispositivos, sino únicamente intercambiar datos con ellos. Por tanto, estos
2.2. SINCRONIZACION detalles deben ser ocultados para que de este modo las operaciones de E/S
sean independientes del tipo y modelo del dispositivo.
2.3. ACCESO DIRECTO A MEMORIA

3. NIVEL INTERMEDIO

3.1. SW DEPENDIENTE DEL DISPOSITIVO.

3.2. SW INDEPENDIENTE DEL DISPOSITIVO.

4. NIVEL USUARIO

5. ALMACENAMIENTO SECUNDARIO

5.1.DISCOS

5.1.1. MANEJADOR

5.1.2. PLANIFICACIÓN

5.1.3. GESTION DE ERRORES

6. WINDOWS NT, UNIX, VMS, OS/2

Podemos hacer una clasificación de los dispositivos del siguiente modo:

• Periféricos
– Proporcionan interfaz al usuario.
• Entrada: ratón, teclado, micrófono, cámara, scanner, etc.
• Salida: impresoras, pantalla, altavoces, etc.
• Dispositivos de almacenamiento
– Proporcionan almacenamiento no volátil de datos y memoria.
• Secundario: discos y disquetes.
• Terciario: cintas y sistemas de archivo.
• Dispositivos de comunicaciones
– Permiten conectar con otras computadoras.
• Los MODEM o tarjetas de interfaz a la red.

1 2
Complejidad del control: Una impresora necesita una interfaz de
A su vez, también se pueden clasificar en dos grandes categorías: control relativamente simple. En cambio, un disco es mucho más complejo. El
• Dispositivos de bloque. efecto de estas diferencias en el sistema operativo es filtrado, hasta cierto
punto, por la complejidad del módulo de E/S que controla al dispositivo.
• Dispositivos de carácter. Unidad de transferencia: Los datos pueden transmitirse como flujos de
bytes o caracteres (por ejemplo, en un terminal) o en bloques mayores (por
Las principales características de los dispositivos de bloque son:
ejemplo, con un disco).
• La información se almacena en bloques de tamaño fijo. Representación de los datos: En diferentes dispositivos se emplean
diferentes esquemas de codificación de datos, incluidas las diferencias en los
• Cada bloque tiene su propia dirección.
códigos de caracteres y los convenios de paridad.
• Los tamaños más comunes de los bloques van desde los 128 bytes Condiciones de error: la naturaleza de los errores, la manera en que se
hasta los 1.024 bytes. informa sobre ellos, sus consecuencias y el rango disponible de respuestas
diferentes ampliamente de un dispositivo a otro. Esta diversidad conduce hacia
• Se puede leer o escribir en un bloque de forma independiente de los un enfoque consistente y uniforme de la E/S, que es difícil de alcanzar, tanto
demás, en cualquier momento. desde el punto de vista del sistema operativo como de los procesos de un
usuario.
• Un ejemplo típico de dispositivos de bloque son los discos.
Las principales características de los dispositivos de caracter son:
El problema surge porque comparativamente estos dispositivos son muy
• La información se transfiere como un flujo de caracteres, sin sujetarse a lentos:
una estructura de bloques. – UCP ejecuta operaciones a 1 GHz aprox.
• No se pueden utilizar direcciones. – RAM: acceso de nanosegundos.
– Dispositivos de E/S: acceso de milisegundos o más.
• No tienen una operación de búsqueda.
Esta diferencia y el deseo de aplicaciones interactivas hace que la E/S
• Un ejemplos típico de dispositivos de caracter son las impresoras de sea el cuello de botella.
línea, terminales, interfaces de una red, ratones, etc.
Algunos dispositivos no se ajustan a este esquema de clasificación, por Los sistemas operativos se esfuerzan para optimizar la E/S, siendo sus
ejemplo los relojes, que no tienen direcciones por medio de bloques y no objetivos:
generan o aceptan flujos de caracteres. - Ofrecer una visión lógica simplificada de dispositivos de E/S:
– Para otros componentes del SO: Ej. el sistema de archivos.
El sistema de archivos solo trabaja con dispositivos de bloque abstractos, – Para el usuario.
por lo que encarga la parte dependiente del dispositivo a un software de menor - Optimizar la E/S, implementando mecanismos para mejorar
nivel, el software manejador del dispositivo. prestaciones.
Existen grandes diferencias entre las clases de dispositivos y éstas son, - Facilitar el manejo de los dispositivos periféricos.
incluso, sustanciales, dentro de cada clase. Las siguientes son las diferencias - Permitir conectar cualquier tipo de dispositivo físico sin remodelar el
principales: sistema operativo.
 - Permitir conectar dispositivos solventando automáticamente su
Velocidad de los datos: Puede haber una diferencia de varios órdenes instalación (plug&play).
de magnitud en las velocidades de transmisión de datos.
Aplicaciones: La utilidad que se le da a un dispositivo tiene una gran De este modo la visión del sistema de E/S será:
influencia en el software y en las políticas del sistema operativo y de las • Para programadores:
utilidades de apoyo. Por ejemplo, un disco que almacena archivos necesita el – Una caja negra: permite leer y escribir datos a través de una
soporte de un software de gestión de archivos. En cambio, un disco usado funcionalidad bien definida.
como almacén de páginas de un sistema de memoria virtual dependerá del uso • Para los fabricantes de dispositivos:
que se haga del hardware y el software de memoria virtual. Además, estas – Instrumento muy complejo: cientos o miles de componentes
aplicaciones tendrán su impacto en los algoritmos de planificación del disco. electrónicos o electro-mecánicos.
Como ejemplo adicional, un terminal puede valer para un usuario normal o para
el administrador del sistema. El uso que se le dé exigirá diferentes niveles de
privilegio y, quizá, diferentes prioridades en el sistema operativo.

3 4
2. NIVEL INTERNO
Capas del sistema de
Las unidades de E/S, generalmente, constan de:
E/S
• Periféricos y dispositivos
– Son el componente mecánico.
– Se conectan a través de las unidades de entrada/salida.
• Controladores de dispositivos o unidades de E/S.
– Son el componente electrónico.
– Se encargan de la transferencia de información entre la
memoria principal y los periféricos.
– Conectan el bus de la computadora con el dispositivo
(generalmente mediante cables).

Los estándares permiten usar un controlador para distintos dispositivos:

• SCSI, Small Computer System Interface.


• IDE, Integrated Drive Electronics.
• USB, Universal Serial Bus.

La interfaz entre el controlador y el dispositivo es con frecuencia de muy bajo


nivel:
• La comunicación es mediante un flujo de bits en serie que:
o Comienza con un preámbulo.
o Sigue con una serie de bits (de un sector de disco, por ej.).
o Concluye con una suma para verificación o un código corrector
de errores.
El controlador es el interfaz de acceso al dispositivo que se ve desde la UCP, y
debe:
• Convertir el flujo de bits en serie en un bloque de bytes.
• Efectuar cualquier corrección de errores necesaria.
• Copiar el bloque en la memoria principal.

Controladores

Los dispositivos complejos (discos...) no se conectan directamente al


procesador, sino que lo hacen a través de un controlador que contiene el
estado del dispositivo (status), el cual, controla el mismo y chequea los datos
transferidos.
El controlador E/S es el que acepta las órdenes del procesador y se
comunica con él a través de registros como si se tratara de un dispositivo. El

5 6
controlador, también llamado unidad de control, puede manejar varios
dispositivos del mismo tipo.
2.2. SINCRONIZACION
Estos registros tienen cuatro misiones:
• Transferir el estado del dispositivo (status). Según la interacción computadora-controlador, la sincronización puede ser:
• Transferir instrucciones al dispositivo.
• Transferir datos desde el dispositivo. • E/S programada:
• Transferir datos al dispositivo. – El procesador ejecuta transferencias de datos entre dispositivo y
memoria
– El procesador ejecuta periódicamente muestreo de estado de
Canales dispositivo
– Desventaja: Consume CPU para dispositivos poco usados
Normalmente los controladores se conectan al procesador a través de – Aplicación: Hardware sin interrupciones
un canal o procesador de E/S(IOP- Input Output Processor). El propósito de un
canal es conseguir que los dispositivos sean tratados como virtuales, • E/S por interrupciones:
abstractos o transparentes. – El procesador programa operación en controlador del dispositivo
Los canales son manejados por comandos y cuando terminan la y no espera.
operación devuelven el status correspondiente e interrumpen al procesador. – Se dedica a otras tareas hasta interrupción del dispositivo
– El gestor de interrupciones recibe y maneja la interrupción
Los Canales pueden ser de varios tipos:
Para evitar la E/S programada de grandes bloques de datos, ó un gran
Selectores. Pueden manejar varios dispositivos, pero sólo pueden número de interrupciones en E/S, por interrupciones, surge el DMA (Acceso
transferir datos de uno en uno. Directo a Memoria).
Multiplexores. Manejan varios dispositivos y pueden transferir datos
simultáneamente

Las características del controlador son muy importantes: 2.3. ACCESO DIRECTO A MEMORIA (DMA)

• Dirección de E/S. El acceso directo a memoria evita el uso de la CPU transfiriendo los
• Unidad de transferencia. datos directamente entre los dispositivos de E/S y la memoria. Este sistema es
• Interacción computadora-controlador. básico para aprovechar la CPU en un sistema multiprogramado, ya que libera
tiempo de la CPU que se puede usar para ejecutar otros programas.

2.1. DIRECCIONAMIENTO

Según la forma de direccionarlos, a los dispositivos se les puede clasificar en :

• Dispositivos en puertos de E/S (ej. arquitectura Intel):


– Al controlador se le asigna un puerto de E/S, una interrupción
hardware.
– Se programa con operaciones de E/S (portin y portout) para
indicar que registro se quiere manipular y como.

• Dispositivos proyectados en memoria:


– Se asigna a cada controlador un rango de direcciones a través
de las cuáles se accede a sus registros.
– Se programa con instrucciones de acceso a memoria.
– Se reserva una zona de memoria física para asignar a
controladores de E/S.

7 8
El mecanismo de DMA puede configurarse de muchas formas. Algunas
posibilidades se muestran a continuación:

Pasos de E/S por DMA:

1. Programación del controlador para la transferencia:


• Operación L/E, cantidad de datos y dirección de memoria.
2. El controlador contesta aceptando la petición de E/S.
3. El controlador le ordena al dispositivo la operación (ej. lectura).
• El dispositivo deja los datos en su propia memoria interna.
4. Según los datos están listos, el controlador los copia a la dirección de
memoria que se indicó, incrementa dicha dirección y decrementa la
cantidad de datos pendientes de transferir.
5. Los pasos 3 y 4 se repiten hasta que cantidad de datos es cero.
6. El controlador interrumpe a la UCP para indicar que la
operación de DMA ha terminado.

La unidad de DMA es capaz de imitar a la CPU y, de hecho, es capaz de


relevar a la CPU en el control del sistema para transferir los datos con la
memoria por el bus del sistema. Normalmente, el módulo de DMA debe usar el
bus sólo cuando la CPU no lo necesite, o debe forzar a la CPU a que suspenda
temporalmente su operación. Esta última técnica es más común y se denomina
robo de ciclos porque la unidad de DMA debe robar un ciclo del bus.

La CPU se ve suspendida justo antes de que necesite usar el bus.


Entonces, la unidad de DMA transfiere una palabra de memoria y devuelve el
control a la CPU. Nótese que esto no es una interrupción; la CPU no tiene que
guardar el contexto y hacer otra cosa. Más bien, la CPU espera un ciclo del Características de los Canales de E/S
bus. El efecto final es que la CPU ejecuta más lentamente. Sin embargo, el
DMA es mucho más eficiente que la E/S programada o dirigida por El canal de E/S es una extensión del concepto de DMA. Un canal de E/S
interrupciones para una transferencia de varias palabras. tiene la capacidad de ejecutar instrucciones de E/S, lo que le da un control total
sobre las operaciones de E/S. En un sistema informático que conste de tales

9 10
dispositivos, las instrucciones de E/S se almacenan en la memoria principal y
serán ejecutadas por un procesador de propósito específico en el mismo canal
de E/S. Así, la CPU inicia una transferencia de E/S ordenando al canal de E/S
que ejecute un programa en la memoria. El programa designará a el (los)
dispositivo(s), la(s) zona(s) de memoria para lectura o escritura, la prioridad y
las acciones a tomar bajo ciertas condiciones de error.

Hay dos tipos comunes de canales de E/S:


Un canal selector controla varios dispositivos de alta velocidad y
se dedica a la transferencia de datos con estos dispositivos, cada vez
con uno. De esta forma, el canal de E/S elige un dispositivo y realiza la
transferencia. Un controlador o módulo de E/S muy parecido a los
antes descritos, maneja un dispositivo o un pequeño conjunto de
dispositivos. Así, el canal de E/S actúa en vez de la CPU manejando
estos controladores.
Un canal multiplexor puede manejar la E/S con varios
dispositivos al mismo tiempo. Para dispositivos de baja velocidad, un
multiplexor de bytes recibe o transmite caracteres de/a varios
dispositivos tan rápido como sea posible. Por ejemplo, el flujo de
caracteres resultante para tres dispositivos con velocidades diferentes
de datos y con flujos individuales A1 A2A3A4..., B1 B2
B3B4...,ClC2C3C4... podría ser AlBlClA2C2A3B2C3A4, y así
sucesivamente. Para dispositivos de alta velocidad, un multiplexor de
bloques puede mezclar los bloques de datos de varios dispositivos.

3. NIVEL INTERMEDIO
La filosofía jerárquica propone que las funciones del sistema operativo
deben separarse de acuerdo a su complejidad, sus rangos característicos de
tiempo y su nivel de abstracción. Seguir este enfoque conduce a una
organización del sistema operativo en un conjunto de niveles. Cada nivel
realiza una parte afín de las funciones necesarias del sistema operativo. Cada
nivel cuenta con el nivel inferior para realizar funciones más básicas y ocultar
los detalles de éstas últimas. Así mismo, cada nivel ofrece servicios al nivel
superior. En el mejor de los casos, los niveles deben definirse de forma que los
cambios en un nivel no provoquen más cambios en otros niveles. De este
modo, el problema se ha descompuesto en una serie de subproblemas más
manejables.
En general, los niveles inferiores hacen frente a un rango de tiempos
mucho menor. Algunas partes del sistema operativo deben interactuar
directamente con el hardware del computador, donde los sucesos pueden
ocurrir en una escala de tiempos del orden de unos pocos nanosegundos. En el
otro extremo del espectro, algunas partes del sistema operativo se comunican
con el usuario, que emite órdenes a un ritmo mucho más pausado, como puede
ser una cada pocos segundos. El empleo de un conjunto de niveles se adapta
bien a este entorno.

11 12
Capas del software de E/S y flujo de Transferencias síncronas (por bloques) o asíncronas (controlada por
interruptores):
una operación
• La mayoría de la e / s es asíncrona: la cpu inicia la transferencia y
realiza otras tareas hasta una interrupción.
• La programación es más fácil si la e / s es síncrona (por bloques): el
programa se suspende automáticamente hasta que los datos estén
disponibles en el buffer.
El S. O. se encarga de hacer que operaciones controladas por
interruptores parezcan del tipo de bloques para el usuario.
También el S. O. debe administrar los dispositivos compartidos (ej.:
discos) y los de uso exclusivo (ej.: impresoras).

3.1. SW DEPENDIENTE DE DISPOSITIVO


Se define a los Drivers como el software formado por un conjunto de
rutinas y tablas que, formando parte del núcleo del sistema operativo, ejecutan
y controlan todas las operaciones de entrada y salida sobre cualquier periférico
conectado a la computadora, siendo particulares para cada dispositivo.

Un Driver no es un proceso o tarea independiente gestionada por el


sistema operativo, sino un conjunto de tablas en las que se aloja la información
que caracteriza a cada periférico conectado a la computadora, y una serie de
rutinas que controlan toda la gestión de los mismos y las informaciones que
fluyen en un sentido o en otro. Se encuentran permanentemente alojados en
memoria principal y requieren una elevada rapidez de ejecución sin formar
Entre los objetivos del SW de E/S podemos destacar: parte del proceso de usuario que lo utilice.
Independencia del dispositivo:
• Debe ser posible escribir programas que se puedan utilizar con Funciones de un Driver
archivos en distintos dispositivos, sin tener que modificar los
programas para cada tipo de dispositivo. Entre las funciones que realiza un Driver podemos citar las siguientes:

• El problema debe ser resuelto por el S. O. • Definir las características del periférico al resto del sistema operativo.
• Inicializar los registros asociados al periférico en el momento del
Lograr nombres uniformes : arranque (bootstrap) del sistema operativo.
• Habilitar y deshabilitar el dispositivo para un proceso.
• Todos los archivos y dispositivos adquieren direcciones de la misma • Procesar todas las operaciones de E/S solicitadas por un proceso.
forma, es decir mediante el nombre de su ruta de acceso.
• Cancelar toda operación de E/S en el momento que sea necesario
Manejo de errores de e / s: por cualquier motivo.
• Procesar todas las interrupciones hardware generadas por el propio
• Generalmente los errores deben manejarse lo más cerca posible del periférico.
hardware. • Tratar los errores y estado del dispositivo haciendo la
correspondiente comunicación al usuario.
• Solo si los niveles inferiores no pueden resolver el problema, se
informa a los niveles superiores.
• Generalmente la recuperación se puede hacer en un nivel inferior y
de forma transparente.

13 14
• El procedimiento de interrupción realiza lo necesario para desbloquear el
proceso que lo inicio.

Manejadores de Dispositivos
El sistema debe proveer los manejadores de dispositivos necesarios
para los periféricos, así como ocultar las peculiaridades del manejo interno de
cada uno de ellos, tales como el formato de la información, los medios
mecánicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios
tipos diferentes de discos duros, para el usuario o programador las diferencias
técnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el
mismo conjunto de rutinas para leer y escribir datos.
Todo el código que depende de los dispositivos aparece en los
manejadores de dispositivos.
Cada controlador posee uno o más registros de dispositivos:
Driver de Entrada / Salida
• Se utilizan para darle los comandos.
• Los manejadores de dispositivos proveen estos comandos y verifican
su ejecución adecuada.
La labor de un manejador de dispositivos es la de:
• Aceptar las solicitudes abstractas que le hace el software
El tratamiento por el núcleo de un sistema operativo de toda la independiente del dispositivo.
información de E/S desde, o a un periférico, se puede dividir en dos niveles • Verificar la ejecución de dichas solicitudes.
para su estudio:
SW INDEPENDIENTE DE DISPOSITIVO. Esta formado por el Si al recibir una solicitud el manejador está ocupado con otra solicitud,
conjunto de rutinas que procesan información sin atender a las agregara la nueva solicitud a una cola de solicitudes pendientes.
características propias del periférico. La solicitud de e / s, por ejemplo para un disco, se debe traducir de
términos abstractos a términos concretos:
SW DEPENDIENTE DE DISPOSITIVO. Es el conjunto de rutinas
que el núcleo del sistema operativo ofrece para controlar el propio • El manejador de disco debe:
dispositivo periférico.
o Estimar el lugar donde se encuentra en realidad el bloque
solicitado.
o Verificar si el motor de la unidad funciona.
Manejadores de Interrupciones
o Verificar si el brazo está colocado en el cilindro adecuado, etc.
El primer objetivo referente a los manejadores de interrupciones consiste en
que el programador o el usuario no debe darse cuenta de los manejos de bajo o Resumiendo: debe decidir cuáles son las operaciones
nivel para los casos en que el dispositivo está ocupado y se debe suspender el necesarias del controlador y su orden.
proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o
usuario, el sistema simplemente se tardó más o menos en responder a su o Envía los comandos al controlador al escribir en los registros
petición. de dispositivo del mismo.

Las interrupciones deben ocultarse en el S. O.: o Frecuentemente el manejador del dispositivo se bloquea hasta
que el controlador realiza cierto trabajo; una interrupción lo
• Cada proceso que inicie una operación de e / s se bloquea hasta que libera de este bloqueo.
termina la e / s y ocurra la interrupción.

15 16
o Al finalizar la operación debe verificar los errores. • Interfaz uniforme para los manejadores de dispositivos.
o Si todo esta o.k. transferirá los datos al software independiente • Nombres de los dispositivos.
del dispositivo.
• Protección del dispositivo.
o Regresa información de estado sobre los errores a quien lo
llamó. • Proporcionar un tamaño de bloque independiente del dispositivo.

o Inicia otra solicitud pendiente o queda en espera. • Uso de buffers.


• Asignación de espacio en los dispositivos por bloques.
Operaciones en un manejador
• Asignación y liberación de los dispositivos de uso exclusivo.
• Informe de errores.
Las funciones básicas del software independiente del dispositivo son:
• Efectuar las funciones de e / s comunes a todos los dispositivos.
• Proporcionar una interfaz uniforme del software a nivel usuario.
El software independiente del dispositivo asocia los nombres simbólicos
de los dispositivos con el nombre adecuado.
Un nombre de dispositivo determina de manera única el nodo-i de un
archivo especial:
• Este nodo-i contiene el número principal del dispositivo, que se utiliza
para localizar el manejador apropiado.
• El nodo-i contiene también el número secundario de dispositivo, que
se transfiere como parámetro al manejador para determinar la unidad
por leer o escribir.
El software independiente del dispositivo debe:
• Ocultar a los niveles superiores los diferentes tamaños de sector de
los distintos discos.
• Proporcionar un tamaño uniforme de los bloques, por ej.: considerar
varios sectores físicos como un solo bloque lógico.
3.2. SW INDEPENDIENTE DEL DISPOSITIVO
En su mayor parte el SW de E/S independiente del dispositivo se integra
en lo que se conoce como Administrador de E/S, y tiene un papel 4. NIVEL USUARIO.
fundamental en la gestión de la E/S de los sistemas.
Este es un nivel superior de independencia que el ofrecido por los SW DE E/S EN EL ESPACIO DEL USUARIO
manejadores de dispositivos. Aquí el sistema operativo debe ser capaz, en lo La mayoría del software de E/S está dentro del S. O. Una pequeña parte
más posible, de ofrecer un conjunto de utiles para acceder a periféricos o consta de bibliotecas ligadas entre sí con los programas del usuario. La
programarlos de una manera consistente. Por ejemplo, que para todos los biblioteca estándar de E/S contiene varios procedimientos relacionados con
dispositivos orientados a bloques se tenga una llamada para decidir si se desea E/S y todos se ejecutan como parte de los programas del usuario.
usar 'buffers' o no, o para posicionarse en ellos.
La mayoría de las rutinas de entrada - salida trabajan en modo
Las funciones generalmente realizadas por el software independiente privilegiado, o son llamadas al sistema que se ligan a los programas del usuario
del dispositivo son: formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al
usuario en cuanto a la apariencia de los datos. Existen otras librerías en donde

17 18
el usuario si tiene poder de decisión (por ejemplo la llamada a "printf" en el 5. ALMACENAMIENTO SECUNDARIO
lenguaje "C").
Otra categoría importante de software de E/S a nivel usuario es el Son dispositivos de almacenamiento secundario los que ofrecen:
sistema de spooling: – Lectura y escritura aleatorias.
– Almacenamiento no volátil.
El spooling es una forma de trabajar con los dispositivos de e /s de – Alta velocidad de acceso, debajo de la RAM en la jerarquía.
uso exclusivo en un sistema de multiprogramación: – Susceptibles de ser soporte para el sistema de archivos.
– Ejemplo: discos magnéticos, DOCs (Disk On Chip), etc.
• El ejemplo típico lo constituye la impresora de líneas. • Los elementos principales de este sistema son:
– Discos.
• Los procesos de usuario no abren el archivo correspondiente a
• Es interesante conocer su estructura y cómo se gestionan.
la impresora.
– Manejadores de disco.
• Se crea un proceso especial, llamado demonio en algunos • Controlan todas las operaciones sobre los discos.
sistemas. • Es especialmente importante la planificación de peticiones.

• Se crea un directorio de spooling.


Para imprimir un archivo: 5.1 DISCOS
• Un proceso genera todo el archivo por imprimir y lo coloca en
el directorio de spooling. Los discos son el almacenamiento masivo no volátil. Su acceso es
aleatorio a nivel de sector:
• El proceso especial, único con permiso para utilizar el archivo • Son soporte para el sistema de intercambio del gestor de
especial de la impresora, debe imprimir los archivos en el memoria virtual o para el sistema de archivos.
directorio. • Atendiendo a la interfaz de su controlador:
– Dispositivos SCSI (Small Computer System Interface).
• Se evita el posible problema de tener un proceso de usuario
– Dispositivos IDE (Integrated Drive Electronics).
que mantenga un recurso tomado largo tiempo.
• Atendiendo a la tecnología que emplean:
Un esquema similar también es aplicable para la transferencia de – Discos duros (Winchester).
archivos entre equipos conectados: – Discos ópticos.
• Un usuario coloca un archivo en un directorio de spooling de la – Discos extraíbles.
red. • La estructura física y lógica de todos los discos es muy similar.

• Posteriormente, el proceso especial lo toma y transmite. Un ej.


son los sistemas de correo electrónico. Estructura física de los discos

El disco está compuesto por varias superficies magnetizadas y cabezas


lectoras/escritoras por efecto electromagnético. Estas superficies se dividen en
cilindros, con una pista para cada cabeza y un cierto número de sectores por
pista. Cada sector son 512 bytes.

• Capacidad del disco:


Capacidad = cilindros * pistas * sectores * tamaño sector
• Las operaciones de E/S se calculan en base a dos parámetros:
– tiempo de búsqueda: lo que se tarda a ir de una pista a otra.
– tiempo de latencia: la media rotación que tardan en llegar los
datos bajo las cabezas, una vez sobre la pista.

T_acceso = n * T_búsqueda + T_latencia + T_transferencia

19 20
• Densidad de cada pista. La densidad lineal de almacenamiento es 5.1.1. MANEJADOR DE DISCO
constante. Actualmente las pistas exteriores tienen más sectores que las
interiores.
• Intercalado de sectores. Permite optimizar la velocidad de acceso a Funciones principales:
sectores lógicamente consecutivos. Mientras el controlador copia datos a
memoria principal no puede estar transfiriendo datos del disco, que se sigue 1. Proceso de cada petición de E/S en bloques. Este paso lo realiza el
girando. manejador genérico para esa clase de dispositivo.
• Almacenamiento intermedio en el controlador. Se puede leer la 2. Traducción del formato lógico a mandatos del controlador. Este paso
pista entera y mantenerla en memoria del controlador. lo realiza el manejador particular dependiente del dispositivo concreto.
• Controladores inteligentes. Cuando controlan varios dispositivos, 3. Insertar la petición en la cola del dispositivo, llevando a cabo la política
permiten efectuar operaciones de forma solapada. de planificación de disco pertinente (FIFO, SJF, SCAN, CSCAN, EDF, etc.).
Este paso depende del diseño del manejador:
– Cola global para cada tipo de dispositivo
Estructura lógica de los discos – Cola para dispositivo particular
– Ambas.
• Los discos se ven como grandes vectores de bloques lógicos (unidad 4. Enviar los mandatos al controlador, programando la DMA.
mínima de transferencia). 5. Bloqueo en espera de la interrupción de E/S.
• Este vector se proyecta sobre los sectores del disco secuencialmente: 6. Comprobación del estado de la operación cuando llega la interrupción.
– Sector 0: primer sector de la primera pista del primer cilindro 7. Gestionar los errores, si existen, y resolverlos si es posible.
– La numeración crece en la pista, luego en las restantes pistas 8. Indicación del estado de terminación al nivel superior del sistema de
del cilindro y luego en los restantes cilindros del disco. E/S.
• El manejador de disco no sabe nada de ficheros, sólo de particiones y
bloques.
• El sector 0 guarda la tabla de particiones.
• Particiones activas o de sistema: permiten arrancar un sistema
operativo.

Creación de la estructura lógica

• Un disco o partición puede ser accedido vía dos interfaces distintos...


– Dispositivo de bloques. Todos los accesos pasan por la cache
de bloques.
– Dispositivo de caracteres. Acceso directo a bloques, sin pasar
por cache.
• Las peticiones deben ser múltiplo del tamaño de bloque
• Deben estar alineadas a bloque.
• La operación de formateado lógico (mkfs o format):
1. Construye un bloque de carga (BootBlock).
2. Crea una lista de bloques defectuosos.
3. Crea un sistema de archivos.
• El bloque de carga se carga y ejecuta al arranque del computador:
– Realiza un bucle que carga la imagen del SO en memoria.
– Luego salta a esa posición de memoria y se arranca el SO.
• La lista de bloques defectuosos, incluye los bloques en mal estado.
– Se marcan siempre como ocupados y no se liberan nunca.
– Un bloque es defectuoso porque alguno de los sectores que lo
componen es defectuoso (error de CRC al ser escrito y leído).

21 22
5.1.2. PLANIFICACIÓN DE DISCO 5.1.3. GESTION DE ERRORES
Algunos de los errores más comunes en discos son:
• El SO es responsable de usar el hardware de forma eficiente. Hablando
de discos, esto implica accesos rápidos y mucho ancho de banda. • Error de programación:
• El tiempo de acceso tiene dos componentes principales:
o Ej.: Solicitar un sector no existente.
– búsqueda: tiempo que tarda el brazo del disco para mover las
cabezas hasta el cilindro que contiene el sector deseado. • Error temporal en la suma de verificación:
– latencia: tiempo de espera adicional para que el disco gire hasta
ponerse sobre el sector deseado. o Ej.: Provocado por polvo en la cabeza.
• Objetivo: minimizar el tiempo de búsqueda, que es proporcional a la
distancia de búsqueda. • Error permanente en la suma de verificación:
• Ancho de banda: bytes transferidos / tiempo de transferencia o Ej.: Un bloque del disco dañado físicamente.
• Error de búsqueda:
ALGORITMOS DE PLANIFICACIÓN
o Ej.: El brazo se envía al cilindro 6 pero va al 7.
• Error del controlador:
o Ej.: El controlador no acepta los comandos.
El manejador del disco debe controlar los errores de la mejor manera
posible. La mayoría de los controladores:
• Verifican los parámetros que se les proporcionan.
• Informan si no son válidos.
Respecto de los errores temporales en la suma de verificación:
• Generalmente se eliminan al repetir la operación.
• Si persisten, el bloque debe ser marcado como un bloque
defectuoso, para que el software lo evite.
Otra posibilidad es que controladores “inteligentes” reserven cierta cantidad de
pistas:
• Serán asignadas en reemplazo de pistas defectuosas.

Selección de un Algoritmo de Planificación • Una tabla asocia las pistas defectuosas con las pistas de repuesto:
o Está alojada en la memoria interna del controlador y en el
• SSTF es frecuente y parece el más natural
disco.
• SCAN y C-SCAN tienen mejor rendimiento para sistemas que usan
mucho el disco o La sustitución es transparente para el manejador.
• El rendimiento depende del número y el tipo de peticiones
• Las peticiones al disco suelen estar muy relacionadas con la política de o Puede afectarse el desempeño de los algoritmos de
asignación de espacio a los ficheros. búsqueda, como el del elevador, ya que el controlador utiliza
• El algoritmo de planificación de disco debe ser escrito como un módulo pistas físicamente distintas de las solicitadas.
separado, para que sea fácil de reemplazar.
• Algoritmo de elección por defecto: SSTF o LOOK
• Algoritmo estándar en casi todos los sistemas: C-SCAN

23 24
6. WINDOWS NT, UNIX, VMS, OS/2
• Las rutinas de acceso de E/S del nivel de abstracción hardware
(Hardware Abstraction Layer – HAL) aíslan a los manejadores de
WINDOWS NT, es un sistema operativo muy complejo. Fue creado para dispositivos del hardware que puede variar en las distintas
conseguir un sistema operativo de propósito general que pudiera plataformas y configuraciones
implementarse en todo tipo de plataformas hardware y que además de sus
propias aplicaciones nativas Win32, permitiera ejecutar software Unix (Posix) y
OS/2.
MANEJADORES DE DISPOSITIVOS EN WINDOWS NT
Organización de E/S en Windows NT
Manejadores de dispositivos virtuales (VDD): Windows NT es un
API de E/S del subsistema sistema operativo completamente protegido donde cada servicio o aplicación
se ejecuta en un anillo de seguridad determinado y en el que todos los recursos
son susceptibles de ser protegidos.

Manejadores de pantalla e impresión: NT es un sistema operativo


Administrador de E/S orientado a gráficos que internamente trabaja con el GDI que es un motor de
gráficos independiente del dispositivo. Las llamadas de las aplicaciones de
usuario al GDI son traducidas por los manejadores de pantalla e impresión en
peticiones específicas del dispositivo. Dichas peticiones son enviadas, bien al
Controladores de puerto paralelo, en el caso de las solicitudes de impresión, bien a un manejador
dispositivos en modo kernel de clase de vídeo.

Manejadores del sistema de archivos: NT soporta al menos tres


Rutinas de acceso de E/S sistemas de archivos, NTFS el más avanzado y de mejores prestaciones, FAT
del HAL heredado de MS-DOS, y CD-ROM.

Manejador de filtro de sistemas de archivos: Se coloca por debajo de


los manejadores NTFS y FAT permitiendo la gestión de sistemas RAID y de
discos en espejo.
Puertos y registros de E/S
Manejadores de clase: Su función es implementar las funciones
comunes compartidas por todos los dispositivos de la misma clase.
Tal y como puede observarse en la figura anterior, el sistema operativo Manejadores de puerto: Implementan el procesamiento de petición de
Windows NT, utiliza una estructura de E/S similar a la propuesta por E/S de un tipo específico de puerto.
Tanembaum.:
Manejadores de minipuerto: Su función es entenderse con el
• El API (Interfaz de Programación de Aplicaciones) de E/S del dispositivo concreto.
subsistema contiene los servicios del sistema ejecutivo a los que
llaman las aplicaciones de usuario para ejecutar las funciones de E/S
documentadas. Es lo que Tanembaum denomina “Software del nivel
del usuario”.

• El administrador de E/S procesa todas las peticiones de E/S. Se trata


del “Software del sistema operativo independiente del dispositivo”.

• Los controladores (manejadores) de dispositivos en modo kernel


(núcleo) traducen las peticiones genéricas de E/S (provenientes del
administrador) en peticiones específicas para los dispositivos
hardware concretos.

25 26
Organización de controladores de Windows NT 4 En UNIX, derivado de la filosofía de manejar todo como flujo de bytes,
los dispositivos son considerados como archivos que se accesan mediante
descriptores de archivos cuyos nombres se encuentran generalmente en el
Interfaz del sistema de E/S de Windows NT directorio '/dev'. Cada proceso en UNIX mantiene una tabla de archivos
abiertos (donde el archivo puede ser cualquier dispositivo de entrada/salida).
Esa tabla tiene entradas que corresponden a los descriptores, los cuales son
números enteros [Deitel93] obtenidos por medio de la llamada a la llamada del
Sistema de sistema 'open'. En la siguiente tabla se muestran las llamadas más usuales
Sistema de NTFS archivos para realizar entrada/salida.
archivos FAT
CD-ROM
Llamada Función

Manejador open Obtener un descriptor entero.


FTDisk close Terminar las operaciones sobre el archivo
Manejador Manejador (RAID, Manejador lseek Posicionar la entrada/salida.
de clase de clase espejo) de clase read,write Leer o escribir al archivo (dispositivo)
CD-ROM cinta disco ioctl Establecer el modo de trabajo del dispositivo

Llamadas al sistema de entrada/salida

En UNIX es posible ejecutar llamadas al sistema de entrada/salida de


Manejador Manejadores Manejador Manejadores dos formas: síncrona y asíncrona. El modo síncrono es el modo normal de
puerto NT minipuerto puerto NT minipuerto trabajo y consiste en hacer peticiones de lectura o escritura que hacen que el
originador tenga que esperar a que el sistema le responda, es decir, que le de
los datos deseados. A veces se requiere que un mismo proceso sea capaz de
supervisar el estado de varios dispositivos y tomar ciertas decisiones
dependiendo de si existen datos o no. En este caso se requiere una forma de
trabajo asíncrona. Para este tipo de situaciones existen las llamadas a las
rutinas 'select' y 'poll' que permiten saber el estado de un conjunto de
descriptores.

En VMS, se usan nombres 'lógicos' para describir a los dispositivos


existentes en el sistema. Un concepto importante tanto en archivos como en
dispositivos es el 'User Identification Code' (UIC) que permite establecer
protecciones adicionales a los ACL. En los dispositivos se manejan cinco tipos
de permisos: leer, escribir, ejecutar, borrar y controlar. No todos los permisos
se aplican a todos los dispositivos. El permiso de 'control' no se maneja
explícitamente sino que se otorga por omisión al dueño y al sistema. Los
permisos de los discos, unidades de cinta y otros dispositivos son establecidos
por el administrador del sistema.
Los dispositivos reciben nombres 'lógicos', por ejemplo, para una unidad
de cinta el nombre puede ser 'MTA0'.

27 28
El intercambio de datos entre la unidad central de proceso y los Contextualización
periféricos se lleva a cabo a través de los 'buses' normalizados UNIBUS y
MASSBUS. Módulo: “Sistemas informáticos multiusuario y en red” del Ciclo: “Desarrollo de
aplicaciones informáticas”. 1º Curso.

En OS/2 se tuvo un gran problema de diseño en este aspecto, ya que se Módulo: “Sistemas informáticos monousuario y multiusuario” del Ciclo:
deseaba dar compatibilidad a los programas existentes para DOS. En este “Administración de sistemas informáticos”. 1º Curso.
aspecto, existen gran cantidad de programas de DOS que accedían
directamente a algunos periféricos, incluso interceptando los vectores de
interrupciones para realizar un manejo propio en la entrada/salida. Todos esos BIBLIOGRAFÍA
programas no son soportados en forma nativa en OS/2, sino que deben ser
recreados usando una facilidad llamada 'supervisor de dispositivos'. “Sistemas operativos: una visión aplicada”. J. Carretero, F. García, P. de
OS/2 sigue soportando la idea de 'device drivers' en una forma parecida Miguel, F. Pérez.
que en DOS. De hecho, algunos estudiosos de los sistemas operativos afirman
que DOS se puede considerar como un sistema 'microkernel' por esta http://www.itorizaba.edu.mx
característica.
http://exa.unne.edu.ar
Para que un proceso sea candidato a manejar un dispositivo, debe
informarlo a través de una llamada a 'DosMonOpen' y 'DosMonReg'. El http://www.lafacu.com
supervisor de dispositivos usará un modelo de productor-consumidor para
enviar y recibir datos con el proceso candidato. También es factible que para http://www.tau.org.ar
un mismo dispositivo el supervisor envíe los datos a varios procesos
interesados en leer de él. Los dispositivos en OS/2 se clasifican en aquellos
orientados a bloques y aquellos orientados a caracteres. Los dispositivos
orientados a caracteres se manejan de manera síncrona.
Los procesos también pueden indicar los permisos de los archivos y
dispositivos para indicar quiénes pueden acceder a ellos al mismo tiempo. De
este modo se consigue que los datos estén íntegros.
También existe el servicio de reloj, lo cual permite sincronizar algunos
eventos, por medio del reloj del sistema que oscila 32 veces por segundo y otro
que oscila millones de veces. Dependiendo de la precisión deseada se usa el
reloj adecuado. Las llamadas para el reloj de mayor precisión se hacen en un
área llamada 'segmento de información global' por medio de la rutina
'DosGetInfoSeg'.

DIDÁCTICA

29 30

Potrebbero piacerti anche