lunes, 25 de noviembre de 2013

U4: 4.4 Operaciones de Entrada y Salida

Es el conjunto de acciones necesarias para la transferencia de un conjunto de datos, es decir, una transferencia completa de datos.

Funciones que realiza:

Direccionamiento o selección del dispositivo que debe llevar a cabo la operacion de entrada / salida.
Transferencia de los datos entre el procesador y el dispositivo.
Sincronización y coordinación de las operaciones.
Esta ultima función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes). 

Se define una transferencia elemental de información como la transmisión de una sola unidad de información (normalmente un byte) entre el procesador y el periférico o viceversa.

Para efectuar una transferencia elemental de información son precisas las siguientes funciones: 

Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información. 
Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico.

U4: 4.3 Estructura de Datos para manejar desde Dispositivos

¿Qué es una estructura?

Los sistemas operativos actuales son grandes y complejos, estos deben poseer una ingeniería correcta para su fácil actualización y para que puedan cumplir su función correctamente.

La estructura es generalmente modular, cada modulo cumple una función determinada e interactúa con los demás módulos.

Existen dos tipos de estructura:
  1. Estructura simple.
  2. Estructura por capas.
Estructura simple:

El sistema MS-DOS es, sin duda, el mejor sistema operativo para hablar de estructuras simples, otra estructura simple es la utilizada por la versión original de Unix, esta consiste de dos partes separadas, el kernel y los programas de sistemas.

El kernel fue posteriormente separado en manejadores (drivers) de dispositivos y una serie de intercaces.

El kernel provee el sistema de archivos, la programación de CPU, el administrador de memoria y otras funciones del sistema operativo que responden a las llamadas del sistema enunciadas anteriormente.

Estructura por capas:

La modularización de un sistema se puede presentar de varias formas, la mas utilizada es la de por capas, la cual consiste en dividir al sistema operativo en un número de capas.

La capa de menor nivel es el hardware y la de mayor nivel es la interfáz con el usuario.

U4: 4.2 Mecanismos y Funciones de los manejadores de Dispositivos de Drivers

Funciones generalmente realizadas por el software independiente del dispositivo:

  1. Interfaz uniforme para los manejadores de dispositivos.
  2. Nombres para los dispositivos.
  3. Protección del dispositivo.
  4. Proporcionar un tamaño de bloque independiente.
  5. Uso de buffer.
  6. Asignación de espacio en los dispositivos por bloque.
  7. Asignación y liberación de los dispositivos exclusivos.
  8. Informe de errores.
Las funciones básicas del software independiente del dispositivo son:

  • Efectuar las funciones entrada/salida comunes a todos los dispositivos.
  • Proporcionar una interfaz uniforme del software a nivel usuario.



U4: 4.1 Dispositivos y Manejadores de Dispositivos "Device Drivers"

El sistema de entrada y salida es la parte del S.O. encargada de la administración de los dispositivos de E/S.
Comprende tanto la transferencia entre diversos niveles de la memoria como la comunicación con los periféricos.
Dispositivos y manejadores de dispositivos: device drivers.

DISPOSITIVOS DE E/S
Todos los dispositivos de E/S se pueden agrupar en tres grandes grupos:
  • Dispositivos de interfaz de usuario.
  • Dispositivos de almacenamiento.
  • Dispositivos de comunicaciones.


DISPOSITIVOS DE INTERFAZ DE USUARIO
  • Se llama así a los dispositivos que permiten la comunicación entre los usuarios y la computadora. Dentro de este grupo se incluyen todos los dispositivos que sirven para proporcionar interfaz con el usuario, tanto para entrada (ratón, teclado, etc.) como para salida (impresoras, pantalla, etc.).

DISPOSITIVOS DE ALMACENAMIENTO
  • Se usan para proporcionar almacenamiento no volátil de datos y memoria. Su función primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la CPU. 
DISPOSITIVOS DE COMUNICACIONES
  • Permiten conectar a la computadora con otras computadoras a través de una red. Los dos tipos de dispositivos más importantes de esta clase son los módem, para comunicación vía red telefónica, y las tarjetas de interfaz a la red, para conectar la computadora a una red de área local.






U4. Administración de Entrada y Salida

El sistema de entrada y salida es la parte del S.O. encargada de la administración de los dispositivos de E/S.
Comprende tanto la transferencia entre diversos niveles de la memoria como la comunicación con los periféricos.
Este sistema proporciona un medio para tratar los archivos y dispositivos de manera uniforme, actuando como interfaz entre los usuarios y los dispositivos de e/s que pueden ser manipulados por órdenes de alto nivel.
El SO debe controlar el funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes objetivos:
Facilitar el manejo de los dispositivos periféricos. Para ello debe ofrecer una interfaz entre los dispositivos y el resto del sistema que sea sencilla y fácil de utilizar.
Optimizar la E/S del sistema, proporcionando mecanismos de incremento de prestaciones donde sea necesario.
Proporcionar dispositivos virtuales que permitan conectar cualquier tipo de dispositivos físicos sin que sea necesario remodelar el sistema de E/S del SO
Permitir la conexión de dispositivos nuevos de E/S, solventando de forma automática  su instalación usando mecanismos del tipo plug & play.


U3: 3.4 Administración de Memoria Virtual


La clave del concepto de memoria (almacenamiento) virtual esta en la disociación:
·         De las direcciones a las que hace referencia un programa.
·         De las direcciones disponibles en la memoria real (almacenamiento primario).

Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que estarán disponibles cuando las requiera el proceso.

El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.

Es un método mediante el cual, un sistema operativo simula tener másmemoria principal que la que existe físicamente. Para implementar la memoriavirtual se utiliza un medio de almacenamiento secundario de alta velocidad deacceso, generalmente en disco duro de la maquina. Un sistema de memoriavirtual se implementa utilizando paginación como método de administración dememoria básica y algún mecanismo de intercambio (para descargar paginas dela memoria principal hacia el disco duro y para cargar esas paginas de nuevo ala memoria).La memoria virtual es una técnica para proporcionar la simulación de unespacio de memoria mucho mayor que la memoria física de una maquina. 

Esta “ilusión” permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física. La ilusión de la memoria virtual esta soportada porel mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro.


Así en cualquier momento el espacio de direcciones virtual hace unseguimiento de tal forma que una pequeña parte de el, esta en memoria real yel resto almacenado en el disco, y puede ser referenciado fácilmente.

ESTRATEGIAS DE COLOCACIÓN EN ALMACENAMIENTO

Estrategias del mejor ajuste:

Un trabajo que entre en el sistema se colocaráen el espacio vació del almacenamiento principal en el que quepa mejor y quedeje la menor cantidad posible de espacio sin utilizar.
Estrategias del primer ajuste:

Un trabajo que entre en el sistema se colocaraen el almacenamiento principal en el primer vació disponibles lo bastantegrande para contenerlo.

Estrategias del peor ajuste:

Consiste en colocar un programa en el almacenamiento primario en el espacio vació donde peor se ajusta es decir en el espacio más grande posible.

U3: 3.3 Organización de Memoria Virtual


La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una maquina. Esta ilusión permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física.
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y como en un instante dado, en la memoria solo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria.


La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física. 

Evaluación de las Organizaciones de Almacenamiento

Almacenamiento virtual "significa la capacidad de direccional un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computación”.
Esta tecnología apareció en 1960 en la Universidad de Manchester (Inglaterra), en el sistema “Atlas”.
Los métodos más comunes de implementación son mediante:

    Técnicas de “paginación”.
    Técnicas de “segmentación”.
    Una combinación de ambas técnicas.

Las direcciones generadas por los programas en su ejecución no son, necesariamente, aquellas contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen seleccionarse dentro de un numero mucho mayor de direcciones que las disponibles dentro del almacenamiento primario.
La evolución en las organizaciones de almacenamiento puede resumirse como sigue:

    Real:
Sistemas dedicados a un solo usuario.
Real:
Sistemas de multiprogramación en memoria real:
Multiprogramación en partición fija:
Absoluta.
Relocalizable (reubicadle).
Multiprogramación en partición variable.
    Virtual:
Multiprogramación en almacenamiento virtual:
Paginación pura.
Segmentación pura.
Combinación paginación / segmentación.


3.3.2 Paginación

¿Qué es la paginación? 
El termino memoria virtual se asocia normalmente con sistemas que emplean paginación, aunque también se puede usar memoria virtual basada en la segmentación. El uso de la paginación en la memoria virtual fue presentado por primera vez en el computador Atlas.

Cada proceso tiene su propia tabla de paginas y cuando carga todas sus paginas en la o memoria principal. Puesto que solo algunas de las páginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la pagina perteneciente esta presente en la memoria principal o no. Si el bit indica que la pagina esta en la memoria, la entrada incluye también el número de marco para esa pagina.

Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación (M), para indicar si el contenido de la página correspondiente se ha alterado desde que la página se cargo en la memoria principal. Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente.

Estructura de la tabla de páginas
El mecanismo básico de lectura de una palabra de la memoria supone la traducción por medio de la tabla de páginas de una dirección virtual o lógica (ver figura 3.3.2.1 y 3.3.2.2), formada por un número de página y un desplazamiento, a una dirección física que esta formada por un número de marco y un desplazamiento.

Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinación de hardware y software a direcciones físicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traducción de direcciones. Actualmente los dos niveles de la jerarquía de memoria controlados por la memoria virtual son las DRAM y los Discos magnéticos.

Puesto que la tabla de páginas es de longitud variable, en función del tamaño del proceso, no es posible suponer que quepa en los registros.

3.3.4 Sistema de paginación / segmentación

La paginación y la segmentación puras son métodos de manejo de memoria bastante efectivos, aunque la mayoría de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginación y la segmentación.

La idea de combinar estos esquemas se debe a que de esta forma se aprovechan los conceptos de la división lógica de los programas (segmentos) con la granularidad de las páginas. De esta forma, un proceso estará repartido en la memoria real en pequeñas unidades (paginas) cuya liga son los segmentos. También es factible así el compartir segmentos a medida que las partes necesitadas de los mismos se van reverenciando (paginas).    

Para comprender este esquema, nuevamente se vera como se traduce una dirección virtual en una localidad de memoria real. Para la paginación y segmentación puras se puede decir que el direccionamiento es `bidimensional' porque se necesitan dos valores para hallar la dirección real.
Para el caso combinado, se puede decir que se tiene un direccionamiento `tridimensional'.      

El sistema debe contar con una tabla de procesos (TP) (Ver figura 3.3.4.1). Por cada renglón de esa tabla se tiene un número de proceso y una dirección a una tabla de segmentos. Es decir, cada proceso tiene una tabla de segmentos. Cuando un proceso hace alguna referencia a memoria, se consulta TP para encontrar la tabla de segmentos de ese proceso. En cada tabla de segmentos de proceso (TSP) se tienen los números de los segmentos que componen a ese proceso.

Por cada segmento se tiene una dirección a una tabla de páginas. Cada tabla de páginas tiene las direcciones de las páginas que componen a un solo segmento. Por ejemplo, el segmento `A' puede estar formado por las paginas reales `a','b','c','p' y `x'. El segmento `B' puede estar compuesto de las paginas `f','g','j','w' y `z'.      Otro aspecto importante es la estrategia para cargar páginas (o segmentos) a la memoria RAM.

Se usan más comúnmente dos estrategias: cargado de páginas por demanda y cargado de páginas anticipada. La estrategia de cargado por demanda consiste en que las páginas solamente son llevadas a RAM si fueron solicitadas, es decir, si se hizo referencia a una dirección que cae dentro de ellas.

La carga anticipada consiste en tratar de adivinar que paginas serán solicitadas en el futuro inmediato y cargarlas de antemano, para que cuando se pidan ya no ocurran fallos de pagina.
Ese `adivinar' puede ser que se aproveche el fenómeno de localidad y que las paginas que se cargan por anticipado sean aquellas que contienen direcciones contiguas a la dirección que se acaba de refenciar. De hecho, el sistema operativo VMS usa un esquema combinado para cargar páginas: cuando se hace referencia a una dirección cuya página no esta en RAM, se provoca un fallo de página y se carga esa página junto con algunas páginas adyacentes. En este caso la página solicitada se cargo por demanda y las adyacentes se cargaron por anticipación.