Академический Документы
Профессиональный Документы
Культура Документы
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.
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
- 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.
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.
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
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
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.
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
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
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
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
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.
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.
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ó.
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.
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.
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.
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.
Sin buffer
T = tB + tC
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𝑓𝑓
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.
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.
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.
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.
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.
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.
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.
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.