3.2.4.- SEGMENTACIÓN.
El programa se considera divido en segmentos. Hay que tener en cuenta que nos referimos a los segmentos, en este caso, como a grupos lógicos de información (un programa, una subrutina, una pila, una tabla de símbolos, etc.) definible por el programador o asignados por el compilador, de forma que se puede decir que un programa es una colección de segmentos 6. Como en paginación, una dirección lógica segmentada consta de dos partes, en este caso un número de segmento y un desplazamiento. La gestión la realiza el sistema operativo como en el caso de las particiones dinámicas, sólo que cada partición no corresponde a un programa sino a un segmento del mismo y las particiones que ocupa un programa no tienen por qué estar contiguas. Mientras que la paginación es transparente al programador, la segmentación es generalmente visible y se proporciona como una comodidad para la organización de los programas y datos. Normalmente el programador o el compilador asigna los programas y los datos a diferentes segmentos. El principal inconveniente de este servicio es que el programador debe ser consciente de la limitación de tamaño máximo de los segmentos.
El sistema operativo mantiene una tabla-mapa de segmentos similar a la de la paginación además de una lista de bloques libres en memoria principal. Cada entrada de tabla-mapa de segmentos tendría que contener la dirección de comienzo del segmento correspondiente en memoria principal. La entrada deberá proporcionar también la longitud del segmento para asegurar que no se usan direcciones no válidas. Tanto la paginación como la segmentación permiten que ciertos programas o zonas de memoria puedan usarse simultáneamente por varios procesos sin necesidad de estar duplicados en memoria principal. Por tanto existirían en un momento determinado en la memoria interna bloques asignados a trabajos concretos, bloques compartidos y bloques libres. Estas situaciones se recogen en una tabla de bloques de memoria. La diferencia con el sistema de particiones dinámicas estriba en que con la segmentación un programa puede ocupar más de una partición y éstas no tiene por qué estar contiguas.
5.- GESTIÓN DE LA E/S.
La administración de la E/S es uno de los aspectos más confusos en el diseño de los S.0., dada la amplia variedad de dispositivos que impide construir una solución general y consistente. Existen grandes diferencias entre las distintas clases de dispositivos, y aún dentro de cada clase, en cuanto a la velocidad de transmisión de los datos, la aplicación del dispositivo
8, complejidad del control (la interfaz de control de la impresora, por ejemplo, es más simple que la de un disco), unidad de transferencia (caracteres en un terminal, bloques en un disco, etc.), representación de los datos (diferentes sistemas de codificación), condiciones de error. Además, las carácterísticas de los dispositivos de E/S suelen diferir considerablemente de las de la CPU. Así por ejemplo, la velocidad de transmisión de los periféricos es notablemente menor que la velocidad con que opera la CPU, la longitud de las palabras de datos suele variar así como los códigos y niveles eléctricos para representar datos.
8, complejidad del control (la interfaz de control de la impresora, por ejemplo, es más simple que la de un disco), unidad de transferencia (caracteres en un terminal, bloques en un disco, etc.), representación de los datos (diferentes sistemas de codificación), condiciones de error. Además, las carácterísticas de los dispositivos de E/S suelen diferir considerablemente de las de la CPU. Así por ejemplo, la velocidad de transmisión de los periféricos es notablemente menor que la velocidad con que opera la CPU, la longitud de las palabras de datos suele variar así como los códigos y niveles eléctricos para representar datos.
Típicamente, las unidades de E/S constan de un elemento mecánico y un elemento electrónico. Con frecuencia, se pueden separar las dos partes para proporcionar un diseño más modular. Al elemento electrónico se le suele denominar controlador del dispositivo, adaptador o circuito de interfaz (normalmente consiste en una tarjeta de circuito impreso que se inserta en el ordenador). Los controladores de periféricos están constituidos por un conjunto de circuitos de adaptación del formato de señales y carácterísticas de temporización entre la CPU y los dispositivos de E/S. El controlador también se encarga de llevar a cabo transferencias de datos entre la CPU y el periférico recibiendo señales de control y generando señales de control para el periférico y señales de estado (ocupado/listo, error de paridad, etc.) para la CPU.
El elemento mecánico es el dispositivo propiamente dicho. La tarjeta del controlador tiene normalmente un conector en el que se enchufa un cable que también está conectado al dispositivo, otros controladores están ubicados en el dispositivo que controlan (por ejemplo el controlador IDE de disco duro) El sistema operativo casi siempre trata con el controlador, no con el dispositivo. La mayoría de los microcomputadores y minicomputadores utilizan el modelo de ruta de datos (bus) única para comunicar el procesador y los controladores. Los grandes ordenadores utilizan frecuentemente una estructura distinta, con rutas de datos múltiples y ordenadores de E/S especializados, llamados canales de E/S que se estudiarán más adelante.
Para las operaciones de E/S son posibles tres técnicas: • E/S programada • E/S dirigida por interrupciones • DMA
5.1.- E/S PROGRAMADA.
Cuando el microprocesador está ejecutando un programa y se encuentra con una instrucción de E/S envía una orden al módulo de E/S apropiado que es el que lleva a cabo la acción requerida. Este módulo no avisa al microprocesador de nada en particular, es decir, no lo interrumpe. Es el microprocesador el responsable de comprobar periódicamente el estado del módulo de E/S hasta saber que se ha completado la operación en cuestión.
Con esta técnica es también el microprocesador el responsable de extraer los datos de la memoria interna cuando se va a hacer una salida y de cargarlos en ella en el caso de una entrada. El software está diseñado de tal forma que se le otorga al microprocesador el control directo sobre la operación de E/S incluyendo la comprobación del estado del dispositivo, el envío de órdenes de lectura/escritura y la transferencia de los datos. Se trata de un proceso que consume tiempo y mantiene ocupado al procesador de forma innecesaria.
5.2.- E/S DIRIGIDA POR INTERRUPCIONES.
El principal problema de la E/S programada son los tiempos de espera del procesador hasta que el módulo de E/S en cuestión le envía una señal de “ready”. Mientras está esperando el microprocesador debe interrogar repetidas veces el estado del módulo. El resultado de esto es que el rendimiento del sistema se degrada.
Una alternativa es que el microprocesador envíe una orden de E/S al módulo correspondiente y mientras se dedique a hacer otra cosa. El módulo de E/S interrumpirá al microprocesador cuando acabe de realizar la operación para avisarle de esta situación9. No obstante se sigue consumiendo tiempo de microprocesador debido a que cada palabra de datos que va de la memoria al módulo de E/S o viceversa debe pasar por él.
5.3.- DMA (DIRECT MEMORY ACCESS).
La E/S dirigida por interrupciones, aunque más eficiente que la programada, aún requiere de la intervención activa del procesador. Ambas técnicas adolecen de dos desventajas que son:
1.- La velocidad de transferencia de E/S está limitada por la velocidad con la que el procesador puede comprobar y dar servicio a un dispositivo.
2.- El procesador debe ejecutar una serie de instrucciones en cada operación de E/S.
Cuando se tienen que mover grandes cantidades de información se hace necesaria, pues, una técnica diferente. Esta técnica es el DMA. Muchos controladores, especialmente los de dispositivos de bloques, tienen acceso directo a memoria. La función de DMA se puede llevar a cabo por medio de un módulo separado del bus del sistema o integrado en este.
6.- GESTIÓN DEL ALMACENAMIENTO SECUNDARIO.
6.1- CONCEPTOS BÁSICOS
REGISTRO FÍSICO
Conjunto de bytes que se transfieren entre la memoria interna o principal y el dispositivo de almacenamiento, en una sola operación de E/S.
REGISTRO LÓGICO
Conjunto de datos de un mismo objeto que constituye una entidad para un determinado proceso ejecutable por el ordenador. Por ejemplo los datos de un alumno concreto en un fichero de datos de alumnos