Вы находитесь на странице: 1из 15

Gestión del sistema de E/S |1

6. GESTIÓN DEL SISTEMA DE E/S


Cada controlador de E/S se conecta al bus del sistema o aun conmutador centralizado y
supervisa a uno o más dispositivos. Dispone de la lógica necesaria para realizar una función de
comunicación entre los periféricos del computador y el bus.

Motivos por los que los periféricos no se conectan directamente al bus:


a) Hay una gran variedad de periféricos con diversos métodos de operación. No es
práctico incorporar dentro de la CPU la lógica que se necesita para controlar un
conjunto tan amplio.
b) La velocidad de transferencia de datos de los periféricos suele ser mucho menor que
la de la memoria con la CPU.
c) Los periféricos a menudo utilizan formatos de datos y longitudes de palabras distintas
a las del computador al que están conectados.

Estas razones justifican la existencia de los controladores de E/S, que tienen dos grandes
funciones:
1) Comunicarse con la CPU y la memoria a través del bus del sistema
2) Comunicarse con uno o varios dispositivos periféricos mediante enlaces de datos
adaptados a cada periférico.

Los periféricos se pueden clasificar en cuatro categorías:


1) Adaptados al usuario: Son para comunicar información al usuario.
2) Adaptados a la máquina: Permiten comunicarse con el sistema.
3) De comunicación: Preparados para transmitir información a dispositivos remotos.
4) De interacción con el medio externo: Transmiten información a elementos actuadores y
reciben información de elementos sensores.

Existen grandes diferencias entre dispositivos E/S que pertenecen a la misma categoría:
a) Velocidad de transferencia
b) Aplicaciones
c) Unidad de transferencia:
o Orientados a bloques:
 Los bloques normalmente son de tamaño fijo
 Es posible leer o escribir en un bloque de forma independiente de los
demás.
 Los datos se referencian o direccional dando el número del bloque que se
desea transferir.
o Orientados a caracteres:
 No están sujetos a una estructura de bloques
 No se pueden utilizar direcciones
 No es posible realizar operaciones de búsqueda
d) Complejidad del controlador del dispositivo
e) Condiciones de error

La comunicación con el controlador de E/S se efectúa mediante señales de datos, de control y


de estado del dispositivo. Los datos están constituidos por un conjunto de bits que se envían o
reciben desde el controlador de E/S. Las señales de control determinan la función que realiza
el dispositivo:
a) Enviar el dato al controlador de E/S (Leer)
b) Aceptar el dato del controlador de E/S (Escribir)
c) Realizar alguna función de control particular para ese dispositivo

Las señales de estado indican el estado en el que se encuentra el dispositivo.


La lógica de control asociada con el periférico gobierna su funcionamiento en respuesta a las
órdenes enviadas por el controlador de E/S.
Gestión del sistema de E/S |2

6.1 Controlador de E/S


Es el módulo del computador responsable del control de uno o más dispositivos externos y del
intercambio de datos entre dichos periféricos con la memoria principal.

6.1.1 Funciones del controlador de E/S

- Control y temporización
Coordina el intercambio de información entre los recursos internos y los dispositivos
externos.
- Comunicación con la CPU
Requiere:
a) Decodificación con la orden
b) Datos
c) Información sobre el estado
d) Reconocimiento de la dirección
- Comunicación con el dispositivo externo
La comunicación comprende órdenes, información del estado del dispositivo y datos.
- Almacenamiento temporal de datos
Tarea esencial del controlador de E/S. Sirve para adecuar las diferencias de velocidades
entre la interfaz interna con el computador.
- Detección de errores
Es a menudo responsable de la detección de errores y de informar a la CPU cuando
ocurren.

6.1.2 Estructura del controlador de E/S

Varían considerablemente en complejidad y en el número de dispositivos externos.

El controlador se conecta con el resto del computador a través del bus del sistema.
El registro de estado a veces funciona como un registro de control que acepta información
proveniente de la CPU. A este conjunto de registros genéricamente se les suele llamar puertos
del controlador.
Cada controlador tiene asociada una única dirección, o un conjunto de ellas si controla más de
un dispositivo externo.

6.1.3 Estructura del sistema E/S

Hay tres maneras de utilizar el bus para interconectar la CPU con la memoria y la unidad de
E/S:
1) Utilizar dos buses independientes (computadores con procesador de E/S, PE/S)
2) Utilizar un bus común, pero con líneas de control independientes
Gestión del sistema de E/S |3

3) Utilizar un bus común con líneas de control comunes

6.2 E/S controlada por programa


La CPU ejecuta un programa que tiene el control directo de la operación de E/S e incluye la
comprobación del estado del dispositivo, el envío de una orden de lectura o escritura y la
transferencia del dato. Cuando la CPU emite una orden al controlador de E/S debe esperar
hasta que finalice la operación. El computador es el que “adapta” su velocidad de trabajo a la
del periférico. Es responsabilidad del procesador comprobar periódicamente el estado del
controlador de E/S hasta que detecta que ha finalizado la operación.

6.2.1 Órdenes de E/S (CPU  Controlador E/S)

Se envía una orden de E/S y una dirección que especifica el controlador y el periférico
particular. Cuatro tipos:
a) Órdenes de control: Activar periférico y decirle qué hacer. Adaptadas a cada tipo
particular.
b) Órdenes de comprobación: Verificar condiciones de estado asociadas con un
controlador de E/S y sus periféricos.
c) Órdenes de lectura: El controlador de E/S obtiene dato de periférico y lo coloca en RD.
La CPU puede entonces conseguir el dato pidiendo al controlador que lo coloque en el
bus de datos.
d) Órdenes de escritura: El controlador de E/S toma un dato del bus de datos y lo
transmite al periférico.
Gestión del sistema de E/S |4

6.2.2 Instrucciones de E/S (ejecuta la CPU)

La forma de instrucción depende de la manera en que se direccionan los dispositivos externos.


Cuando la CPU, la memoria principal y la unidad de E/S comparte un bus común, la forma de
hacer el direccionamiento difiere según que la E/S esté localizada en memoria o esté aislada.

E/S localizada en memoria


Hay un único espacio de direcciones para las posiciones de memoria y los dispositivos de E/S.
La CPU trata los RD y RE de los controladores de E/S como posiciones de memoria y utiliza las
mismas instrucciones máquina para acceder tanto a la memoria como a los periféricos.

Por ejemplo, con 12


líneas de direcciones se
pueden tener 212=4096
posiciones de memoria y
direcciones E/S en
cualquier combinación.
Sólo se necesita un
conjunto de señales de
lectura y escritura (SC).

E/S aislada de memoria


El bus en este caso dispone de líneas de control específicas de E/S para acceder a los
periféricos. El rango completo de direcciones está disponible para ambos.
Gestión del sistema de E/S |5

Ahora con las 12 líneas


de dirección la CPU
puede direccionar 4096
posiciones de memoria
y 4096 direcciones de
E/S.

Inconvenientes del mecanismo de E/S controlada por programa:


1) Pérdida de tiempo en el bucle de espera.
2) Si existen programas que tienen que ejecutarse necesariamente de forma periódica,
esto implica que no se puede permanecer en el bucle de espera por tiempo indefinido.
3) Hay problemas cuando se quiere atender a varios periféricos. Mientras el computador
espera a que un periférico esté preparado para transmitir no puede estar atendiendo a
los otros.
SOLUCIÓN: Limitar el tiempo de espera en el bucle (ejecutándolo un número determinado de
veces).

6.3 E/S por interrupciones


La solución de limitar el tiempo de espera no garantiza la realización de la transmisión de
información entre el periférico y el computador. La idea básica del mecanismo de E/S por
interrupciones es eliminar el bucle de espera. La CPU envía una orden de E/S al periférico y
prosigue con la tarea que estaba ejecutando. Cuando el periférico está preparado para
intercambiar información, fuerza una interrupción en la tarea que realiza la CPU para que
atienda a la operación de E/S.
La CPU no está siempre en disposición de aceptar peticiones de interrupción por parte de los
periféricos (no precisa datos o se está atendiendo una interrupción con más prioridad).

Tratamiento de una petición de interrupción:


1) Activar el sistema de interrupciones en la
CPU.
2) El periférico activa la línea de petición de
interrupción (PI = 1) cuando está preparado
para comunicarse con el computador.
3) La CPU suspende el programa en curso.
Salva el contenido del PC y de los otros
registros accesibles por el programa.
4) La CPU inhibe las interrupciones (bit de
máscara) y comienza a ejecutar el programa
correspondiente de servicio de interrupción.
5) Se informa al periférico de que se ha
reconocido su PI (mediante una línea de
reconocimiento de interrupción, RI = 1). El
dispositivo desactiva PI (PI = 0).
6) Una vez finalizado el programa de servicio de
la interrupción, se activa de nuevo el sistema
de interrupciones que se había inhibido en el
paso 4.
7) La CPU continúa la ejecución del programa
interrumpido en el punto en el que lo dejó.
Gestión del sistema de E/S |6

La E/S por interrupciones requiere un programa más complejo que la controlada por programa
porque la transferencia de información tiene lugar cuando el dato está disponible, no cuando el
programador necesita o espera.

6.3.1 Clasificación de las interrupciones

6.4 Acceso directo a memoria (DMA)


Tanto en la E/S por interrupciones como en la E/S controlada por programa, se requiere de la
intervención activa de la CPU para transferir datos entre la memoria y un periférico. Estas dos
formas de E/S tienen dos desventajas:
1) La transferencia de datos está limitada por la velocidad con que la CPU puede
comprobar y atender a un periférico.
2) La CPU está obligada a gestionar la transferencia de E/S; hay que ejecutar una serie
de instrucciones durante cada operación de E/S.
Cuando se mueven grandes cantidades de datos, se necesita una técnica más eficaz: Acceso
Directo a Memoria (DMA).

6.4.1 Controlador de DMA

Es capaz de hacer las funciones asignadas a la CPU durante la transferencia de datos y asumir
el control del sistema, especialmente de los buses de datos y dirección. Contiene un registro de
dirección y un registro contador de palabras. Permiten al controlador de DMA transferir datos
desde (o hacia) una zona contigua de la memoria. El registro de dirección se utiliza para
almacenar la dirección de la siguiente palabra que se va a transmitir. El registro contador
almacena el número de palabras que quedan por enviar.

Funcionamiento: cuando la CPU desea leer o escribir un bloque de datos emite una orden al
controlador de DMA enviándole:
a) Si la operación es de lectura/escritura.
b) La dirección del periférico.
c) La posición de comienzo en memoria de donde hay que leer o donde hay que escribir.
d) El número de palabras que se tienen que leer/escribir.

A partir de este momento la CPU continúa realizando otra tarea. El controlador de DMA
transfiere directamente, palabra a palabra, el bloque completo de datos entre el periférico y la
memoria, sin pasar por la CPU. Cuando la transferencia finaliza, el controlador de DMA envía
una señal de interrupción a la CPU.
Gestión del sistema de E/S |7

6.4.2 Transferencia de datos mediante DMA

Existen diferentes formas de obtener el control del bus que suponen distintos compromisos
entre velocidad de transferencia y actividad de la CPU.

a) Por ráfagas: El DMA toma el control del bus y no lo libera hasta que no ha transmitido
el bloque de datos pedido. Se tiene a la CPU inactiva durante periodos relativamente
grandes (parada del procesador).

b) Por robo de ciclos: El DMA toma el control del bus y lo retiene durante un sólo ciclo. La
CPU no tiene que ocuparse de de la operación y sigue ejecutando su programa, casi
con la misma velocidad, mientras que de forma simultánea se efectúa la transferencia
de datos.

c) DMA transparente: Solamente se roban ciclos cuando la CPU no está utilizando el bus
del sistema. La CPU no necesita usar el bus en todas las fases de la ejecución de una
instrucción. Esto no es una interrupción; la CPU no guarda su contexto.
Gestión del sistema de E/S |8

Los pasos que se siguen en la transferencia mediante DMA son:


1) La CPU ejecuta tres instrucciones de E/S: registro de dirección de memoria (contiene la
dirección base de la zona de memoria principal), registro de dirección del periférico y
contador de palabras del controlador de DMA.
2) Cuando el controlador de DMA está preparado, activa la línea de “petición de DMA”. La
CPU espera en el siguiente punto de ruptura del DMA, renuncia al control de los buses
de datos y direcciones según el tipo de DMA y activa la línea de “reconocimiento de
DMA”.
3) El controlador de DMA transfiere los datos a o desde la memoria principal por alguno
de los métodos.
4) Si el contenido del registro contador de palabra no es 0, pero el periférico no está
preparado, el controlador de DMA devuelve el control a la CPU liberando el bus del
sistema y desactivando “petición de DMA”. La CPU responde desactivando
“reconocimiento de DMA”.
5) Si el contenido del registro contador de palabra es 0, el controlador de DMA renuncia al
control del bus y envía una señal de interrupción a la CPU.

6.5 Procesador de E/S (PE/S)

6.5.1 Características de los PE/S

El PE/S representa una extensión del concepto DMA. Tiene la capacidad de ejecutar
instrucciones de E/S, no lo hace la CPU. Las instrucciones de E/S se almacenan en memoria
principal para ser ejecutadas por un PE/S. La CPU inicia una transferencia de E/S al dar una
orden al PE/S para que ejecute un programa. El programa especifica:
a) El periférico, o periféricos.
b) La zona de memoria utilizada.
c) Las prioridades.
d) Qué acciones hay que efectuar si se producen ciertas condiciones de error.
El PE/S sigue estas instrucciones y controla la transferencia de datos. Los formatos de los
datos difieren a menudo de los de la memoria y de la CPU. El PE/S debe estructurar datos de
muy diversas fuentes.

La comunicación entre el PE/S y los dispositivos que tiene conectados es similar al método de
transferencia de E/S controlada por programa mientras que la comunicación con la memoria es
análoga a la E/S controlada por DMA. La comunicación entre la CPU y el PE/S depende del
nivel de sofisticación del sistema. Normalmente la CPU es el procesador maestro mientras que
los PE/S’s son los procesadores esclavos. La CPU debe iniciar todas las operaciones, pero las
instrucciones (órdenes para diferenciar) de E/S se ejecutan en un PE/S.
Gestión del sistema de E/S |9

6.5.2 Clasificación de los PE/S

1) Canal selector: Controla múltiples dispositivos de alta velocidad. En cualquier instante


de tiempo está dedicado a la transferencia de datos con uno sólo de estos dispositivos.
Cada dispositivo está manejado por un controlador de E/S. El PE/S sustituye a la CPU
para la supervisión de los controladores de E/S.

2) Canal multiplexor: Controla de forma simultánea operaciones de E/S con múltiples


dispositivos. Para periféricos de baja velocidad, un mux orientado a la “transferencia de
bytes” acepta o transmite caracteres de la forma más rápida posible. Para dispositivos
de alta velocidad, un mux orientado a la “transferencia de bloques” alterna bloques de
datos de algunos dispositivos.

6.6 Gestión del sistema de E/S

6.6.1 Principios generales de diseño del SO

La idea fundamental que subyace en el software de E/S es que los programas de aplicación de
los usuarios puedan efectuar sus operaciones de E/S con total independencia del
dispositivo. El SO debe encargarse de los problemas originados por el hecho de que estos
dispositivos sean distintos y requieran manejadores diferentes.
G e s t i ó n d e l s i s t e m a d e E / S | 10

La idea de independencia del dispositivo implica un principio de generalidad en el diseño del


sistema de E/S. Se trata de utilizar todos los dispositivos con una visión uniforme considerando:
a) La forma en que los procesos ven a los dispositivos de E/S.
b) La forma en que el SO gestiona los dispositivos y las operaciones de E/S.
La estrategia es utilizar un enfoque modular y jerárquico en el diseño de la función de E/S.

Las operaciones de E/S son con frecuencia el cuello de botella de una gran parte de los
sistemas, por ello conviene considerar: la eficiencia, el manejo de errores, la forma de
transferencia, la diferencia entre dispositivos de uso exclusivo y dispositivos que se
pueden compartir.

6.6.2 Estructura lógica de la función de E/S

La naturaleza jerárquica de los SO modernos implica que sus funciones de E/S se separen
teniendo en cuenta:
a) Complejidad
b) Escala de tiempos
c) Nivel de abstracción

Las funciones de E/S se estructuran en un modelo conceptual por niveles. Los niveles se
deben definir de forma que los cambios que se realicen en un determinado nivel no requieran
modificación alguna en los otros.
Las ventajas de esta estructuración por capas son:
1) Permite alcanzar los objetivos de eficiencia, manejo de errores, etc.
2) Cada nivel realiza un subconjunto de las funciones de E/S necesitadas por el SO.
3) Cada nivel descansa sobre el siguiente nivel inferior para efectuar funciones más
básicas.
4) Cada nivel esconde los detalles a los niveles superiores a los que proporciona
servicios.
5) Permite la descomposición del problema original en una serie de subproblemas más
manejables.

Las capas son las siguientes:

1) Manejadores de interrupciones
Está en contacto con el dispositivo físico. Conmuta al estado bloqueado al iniciar la
operación y espera hasta que acabe. En gran parte de los dispositivos de E/S las
operaciones de lectura y escritura comienzan y acaban por medio de interrupciones.
Una forma de manejar las interrupciones es bloquear al proceso que inicia una E/S
hasta que termine ésta y ocurra una nueva interrupción. Se puede bloquear mediante
un semáforo, una variable de condición, un mensaje o un monitor.

2) Manejadores de dispositivos
Aceptan las solicitudes que hace el software del nivel superior y verifican su ejecución.
Tienen todo el código que depende del dispositivo. Debe indicar al controlador las
operaciones necesarias y su secuencia de ejecución. Una vez determinadas las
G e s t i ó n d e l s i s t e m a d e E / S | 11

órdenes el manejador las escribe en los registros del dispositivo del controlador. Dos
situaciones:
a) El manejador debe esperar hasta que el controlador realice algún trabajo
bloqueándose hasta que ocurre una interrupción que lo despierta.
b) La operación se hace sin retraso por lo que el manejador no se tiene que
bloquear.
Se deben verificar los errores después de terminar la operación. Si todo es correcto, el
manejador podrá transmitir los datos al programa que los solicitó.

3) Software independiente del dispositivo


La separación entre este nivel y el inferior depende del sistema, puesto que hay
algunas tareas que, aunque independientes del dispositivo, las realiza el manejador,
principalmente por cuestiones de eficacia. Funciones:
a) Realizar las tareas de E/S comunes a todos los dispositivos,
proporcionando una interfaz uniforme.
b) Asociar los nombres simbólicos de los dispositivos con el nombre
adecuado.
c) Proporcionar esquemas de protección a los dispositivos.
d) Proporcionar un tamaño de bloque uniforme a los niveles superiores de
software.
e) Utilización de buffers, aunque la E/S se haga por bloques, los procesos de
usuario deben poder leer y escribir unidades arbitrarias.
f) Asignación de espacio en los dispositivos por bloques.
g) Asignación y liberación de los dispositivos de uso exclusivo.
h) Informar a los niveles superiores de la jerarquía de los errores y del
tratamiento dado a los mismos.

4) Software de usuario
Hay una parte del software de E/S que no está dentro del SO, sino que son librerías
accesibles a los programas de los usuarios o programas completos.

Otra categoría importante es el sistema de spooling (sistema de almacenamiento


auxiliar utilizado como buffer temporal para reducir retardos de procesamiento cuando
se transfieren datos entre periféricos). Para evitar dejar un dispositivo de uso exclusivo
inutilizado, se crea un proceso especial, demonio, y un directorio especial, directorio de
spooling. Cuando un proceso quiere utilizar un dispositivo:
a) Genera el archivo que se desea transferir (para impresión, por ejemplo)
b) Coloca el archivo en el directorio de spooling.
El demonio es el único proceso autorizado para usar el dispositivo, el que va
transmitiendo los archivos. Se utiliza principalmente para impresoras y en servicios de
red para la transferencia de archivos.

6.7 Buffers de E/S


Los buffers de E/S son el espacio de la memoria principal que se reserva para el
almacenamiento intermedio de datos procedentes o con destino a los periféricos. Tienen
mucha importancia en el rendimiento de un sistema.

Para evitar posibles bloqueos de los procesos durante una operación de E/S o conflictos en el
intercambio de procesos en memoria principal se efectúan las transferencias de entrada antes
de que se realicen las peticiones y las de salida algún tiempo después de realizada la petición.
Esta técnica se conoce como reserva de zonas o buffers de E/S.

6.7.1 Buffer simple

Para dispositivos orientados a bloque las transferencias de entrada se describen:


1) La transferencia se hace desde el dispositivo al buffer que el SO le reserva en la MP.
G e s t i ó n d e l s i s t e m a d e E / S | 12

2) Cuando finaliza la transferencia el proceso mueve el bloque desde el buffer al espacio


del proceso del usuario.
3) Se solicita otro bloque.
Para transferencias de salida:
1) El bloque se copia desde el espacio del proceso de usuario al buffer que el SO le
reserva en MP.
2) El bloque se escribe desde el buffer en el controlador de E/S.

Esto representa una mejora en velocidad ya que el proceso de usuario puede estar procesando
un bloque de datos mientras se está leyendo otro bloque en el buffer. Esta técnica complica la
lógica del SO y la del intercambio de procesos. El SO debe mantener un registro de las
asignaciones que se hacen entre los buffers del sistema.

Para dispositivos orientados a caracteres:


1) Procesamiento de toda la línea de caracteres. En una operación de entrada el proceso
de usuario se suspende esperando la llegada de la línea completa. Si la operación es
de salida el proceso puede colocar la línea en el buffer y continuar su procesamiento.
2) Procesamiento carácter a carácter. Se emplea en terminales utilizados en modo
formulario donde la pulsación de cada tecla es significativa.

6.7.2 Buffer doble

Se puede conseguir una mejora adicional asignando dos buffers. Un proceso transfiere datos a
(o desde) uno de los buffers mientras el SO vacía (o llena) el otro.

Para dispositivos de entrada orientados a caracteres:


1) Procesamiento de toda la línea de caracteres. El proceso de usuario no necesita
suspenderse para operaciones de entrada/salida a menos que vaya por delante de los
dos buffers.
2) Procesamiento carácter a carácter. No ofrece ninguna ventaja.

6.7.3 Comparación de los tiempos de transferencia

Para medir el rendimiento en velocidad se utilizan tres parámetros:


tB = tiempo requerido para transferir un bloque
tC = tiempo de cálculo que media entre dos peticiones de transferencia
tM = tiempo requerido para transferir el bloque desde el buffer a la memoria del proceso
de usuario
G e s t i ó n d e l s i s t e m a d e E / S | 13

Sin buffer

T = tB + tC

Con buffer simple

T = max (tB, tC) + tM

Con buffer doble


T = max (tB, tC)

Es posible mantener el dispositivo orientado a bloques trabajando a su máxima velocidad si


tC<tB. Si tC>tB el empleo de un buffer doble asegura que el proceso no tendrá que esperar por la
operación de E/S.

6.8 Discos magnéticos


Principal soporte para la memoria secundaria y el sistema de archivos.

6.8.1 Estructura física

Película de óxido magnético que recubre a un disco. Estos platos pueden ser extraíbles o fijos.
Una unidad puede disponer de varios platos.

Los discos giran a una velocidad constante. El número de discos varía entre 1 y 20. Los datos
se leen y escriben mediante cabezas de lectura/escritura montadas de forma que contacten
con la parte del disco que contiene los datos. Cada disco tiene dos superficies, por lo que hay
dos cabezas por disco. Los datos se almacenan en las superficies magnéticas del disco en
forma de círculos concéntricos llamados pistas. El conjunto de pistas de todas las superficies
que están a la misma distancia del eje se conoce como cilindro. Las pistas se dividen en
sectores y cada sector tiene varios centenares de bytes.

El número de sectores por pista y el número de bytes por sector son constantes por las pistas
tienen distinto radio, la densidad de grabación en las pistas internas será mayor que en las
externas.

Dependiendo del número de cabezas, los discos pueden ser de cabeza fija o de cabeza móvil.
Los de cabeza fija tienen generalmente una cabeza de lectura/escritura por cada pista. El
tiempo para acceder al sector se denomina latencia rotacional y en promedio es igual a la mitad
del tiempo de revolución del disco.
Los discos de cabeza móvil tienen una o unas pocas cabezas por superficie. La lectura de un
sector requiere que el montaje de las cabezas sea desplazado hasta el cilindro
correspondiente. El tiempo de acceso (ta) está compuesto por el tiempo de posicionamiento de
la cabeza o tiempo de búsqueda (tB) y el tiempo de latencia rotacional (tr). La velocidad de
transferencia de datos de los discos actuales suele ser de 5Mb/s.
G e s t i ó n d e l s i s t e m a d e E / S | 14

El tiempo que se precisa para que los datos se transfieran desde el disco a la MP se compone
de:
1) Tiempo de búsqueda (tb): Tiempo necesario para que las cabezas se desplacen al
cilindro. Consta de dos componentes: el tiempo de arranque inicial (ti) y el tiempo que
se tarda en recorrer todos los cilindros que hay entre la pista inicial y la final:

tb = m × n + ti

donde
n = número de pistas recorridas
m = constante que depende de la unidad de disco
2) Retardo rotacional (tr): Tiempo medio que tarda el sector en estar debajo de la cabeza
de lectura/escritura.

1
tr =
2𝑓𝑓

3) Tiempo de transferencia (tt): Tiempo que se tarda en transferir los datos. Si b es el


número de bytes que se desean transferir y P el número de bytes que hay en una pista:
𝑏𝑏
tt =
𝑃𝑃 × 𝑓𝑓

6.8.2 Controlador del disco

Un controlador puede manejar varias unidades, se necesitan líneas de control para seleccionar
la unidad (líneas de selección de unidad). Las líneas de selección de cabeza activan la cabeza
de lectura/escritura adecuada. Las líneas de dirección indican como se desplazará la cabeza
desde la situación actual. Las líneas de paso proporcionan la secuencia de impulsos y las
líneas leer y escribir activan la cabeza seleccionada en modo lectura o escritura. Las líneas de
entrada y salida de datos transportan los bits leídos del disco o los que hay que grabar en el
mismo. Después vienen una serie de entradas como reinicializar, indicación de fallo, etc.

El control de errores es necesario para detectar los errores transitorios provocados por ruidos e
interferencias electromagnéticas y para manejar los defectos del medio de almacenamiento.
Cuando se escribe un dato en el disco, el controlador calcula los bits de verificación y los añade
a la información que se transmite. Dependiendo de la causa, un error puede ser transitorio o
permanente. Los primeros de corrigen leyendo varias veces el sector correspondiente. Si
después de unas cuantas lecturas el error persiste, éste se trata como permanente. El bloque
queda marcado como defectuoso, de forma que se impide su utilización. Los bloques
defectuosos pueden detectarse durante la fase de inicialización del disco.

Otros errores, los errores de búsqueda, pueden deberse a problemas mecánicos en las
cabezas.

También se ha de considerar la necesidad de que el controlador disponga de un buffer interno


para el almacenamiento temporal. Una vez que se ha iniciado una operación de E/S desde el
disco, los datos se transfieren a velocidad constante, independientemente de que el controlador
esté preparado o no para recibirlos. La utilización de un buffer interno hace innecesario el bus
del sistema hasta que comienza el acceso por DMA y tiene consecuencias importantes en la
gestión del sistema de E/S. Cuando el controlador o la propia CPU están transfiriendo los datos
a la memoria, el siguiente sector estará pasando por debajo de las cabezas de lectura de
manera que la información correspondiente estará llegando al controlador.

Este tipo de controladores no es capaz de leer bloques contiguos de información. La lectura de


una pista requiere al menos dos rotaciones. La técnica de saltar bloques, para dar un margen
de tiempo al controlador para que transmita los datos a memoria, se llama entrelazado. Éste
puede ser simple, doble o cuádruple.
G e s t i ó n d e l s i s t e m a d e E / S | 15

Como la transferencia de datos entre el disco y la memoria se hace mediante DMA, la rutina de
disco no devuelve datos explícitos a sus invocadores, excepto la información referente al
resultado de la operación. Cuando se detecta una excepción la rutina del disco indica el
número real de bytes transferidos correctamente antes del error.

6.9 Planificación del disco


Cuando un programa requiere una operación de E/S del disco, envía la correspondiente
llamada al sistema operativo:
a) Tipo de operación
b) Dirección en el disco
c) Dirección en memoria
d) Cantidad de información que se va a transferir
Si está disponible, se atiende de forma inmediata la petición. Si no, se ponen en cola todas las
peticiones pendientes que vayan llegando.

La diferencia de rendimiento de unos discos a otros está en el tiempo de búsqueda, por lo que
hay varias formas de planificar las peticiones a disco.

6.9.1 Planificación FCFS: primero en llegar, primero en ser servido

Forma más sencilla de gestión de búsqueda. Las solicitudes se van almacenando en una
memoria tipo FIFO. Muy probable que no ofrezca en promedio el mejor tiempo de servicio.

6.9.2 Planificación SSTF: primero la de menor tiempo de posicionamiento

Shortest Service Time First. Atiende la petición que requiere el menor movimiento de la cabeza
de lectura/escritura desde su posición actual. No garantiza que el tiempo medio de búsqueda a
lo largo de un número de movimientos sea mínimo. Un problema potencial que se puede
presentar es el bloqueo indefinido de algunas peticiones.

6.9.3 Planificación SCAN

Evita el bloque indefinido. La cabeza va recorriendo todas las pistas en una dirección y
satisfaciendo todas las peticiones que se encuentra en el camino, hasta que alcanza la última
pista. En este punto se invierte el sentido del recorrido y la búsqueda prosigue de la misma
forma.
Si llega una petición a la cola justo delante de la cabeza se atenderá inmediatamente, mientras
que si corresponde a una posición que está por detrás deberá esperar a que la cabeza llegue
al final y dé la vuelta. Este algoritmo no explota la localidad de las posiciones.

6.9.4 Planificación C-SCAN

Restringe el rastreo a una única dirección. Cuando se ha visitado la última pista en una
dirección, la cabeza vuelve al extremo opuesto del disco y comienza otra vez la exploración.

6.9.5 Planificación LOOK y C-LOOK

Variantes de SCAN y C-SCAN. La cabeza se mueve hasta la última petición de cada dirección.
Si no hay peticiones pendientes en la dirección actual, se cambia el sentido del movimiento.

Вам также может понравиться