miércoles, 29 de octubre de 2014

4.4 Operacion de Entrada/Salida

4.4 Operacion de Entrada/Salida

OTanto en la E/S programada como la basada en interrupciones, la UCP debe encargarse de la transferencia de datos una vez que sabe que hay datos disponibles en el controlador.

OUna mejora importante para incrementar la concurrencia entre la UCP y la E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos, liberando de este trabajo a la UCP, e interrumpir a la UCP sólo cuando haya terminado la operación completa de E/S. Esta técnica se denomina acceso directo a memoria (DMA, Direct Memory Access).




Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga directamente de transferir los datos entre el periférico y la memoria principal. Esta técnica funciona de la siguiente manera: cuando el procesador desea que se imprima un bloque de datos, envía una orden al controlador indicándole la siguiente información:
Tipo de operación: lectura o escritura.
 Periférico involucrado en la operación.
La dirección de memoria desde la que se va a leer o a la que va a escribir directamente con el controlador de dispositivo (dirección).
El número de bytes a transferir (contador).




OExisten varias operaciones, las más importantes son las siguientes:
OLectura: el canal transfiere a memoria principal un bloque de palabras de tamaño especificado en el campo nº de palabras, en orden ascendente de direcciones, empezando en la dirección especificada en el campo dirección del dato.
OEscritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se transfieren en el mismo orden que en la operación de lectura.
OControl: se utiliza esta orden para enviar instrucciones específicas al dispositivo de E/S, como rebobinar una cinta magnética, etc.
OBifurcación: cumple en el programa de canal la misma función que una instrucción de salto en un programa normal. El canal ejecuta las CCW en secuencia, salvo cuando aparece una CCW de este tipo, que utiliza el campo dirección del dato como la dirección de la siguiente CCW a ejecutar.


La unidad de Entrada/Salida (E/S) soporta estas funciones, realizando las comunicaciones del computador (memoria) con el mundo exterior (periféricos). Los dispositivos periféricos que se pueden conectar a un computador se suelen clasificar en cuatro  grandes grupos:
O Dispositivos de presentación de datos. Son dispositivos con los que interactúan los usuarios, portando datos entre éstos y la máquina, por ejemplo, ratón, teclado, pantalla, impresora, etc.
ODispositivos de almacenamiento de datos. Son dispositivos que forman parte de la jerarquía de memoria del computador. Interactúan de forma autónoma con la máquina, aunque también sirven para el intercambio de datos con el usuario, por ejemplo, los discos magnéticos.
ODispositivos de comunicación con otros procesadores. Permiten la comunicación con procesadores remotos a través de redes, por ejemplo, las redes de área local o global.
ODispositivos de adquisición de datos. Permiten la comunicación con sensores y actuadores que operan de forma autónoma en el entorno del computador. Se utilizan en sistemas de control automático de procesos.


4.3 Estructura de datos para manejo de dispositivos

4.3 Estructura de datos para manejo de dispositivos

Una Estructura de Datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación.
Un dato elemental es la mínima información que se tiene en un sistema. 

Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operación de E/S, el sistema operativo prepara dicha operación y bloquea al proceso hasta que se recibe una interrupción del controlador del dispositivo indicando que la operación está completa. Las peticiones se procesan de forma estructurada en las siguientes capas:

MANEJADORES DE INTERRUPCIÓN
Después de dar servicio a un dispositivo ejecutando su rutina de servicio de interrupción (RSI) asociada, el procesador reanuda la actividad desde el punto de la interrupción.
Las interrupciones deben ocultarse en lo más profundo de las entrañas del S.O. La forma de esconderlo es que cada proceso que inicie una operación de E/S ser bloquea hasta que termine la E/S y ocurra la interrupción . El proceso se puede bloquear asi mismo mediante un DOWN en un semáforo, un WAIT en una variable de condición o un PECEIVE en un mensaje.





MANEJADORES DE DISPOSITIVOS

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:
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 independiente del dispositivo.
Verificar la ejecución de dichas solicitudes.
Si al recibir una solicitud el manejador esta ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes. 
UN EJEMPLO:
para un disco, se debe traducir de términos abstractos a términos concretos:
El manejador de disco debe:
Estimar el lugar donde se encuentra en realidad el bloque solicitado.
Verificar si el motor de la unidad funciona.

Verificar si el brazo esta colocado en el cilindro adecuado, etc.


OResumiendo: debe decidir cuales son las operaciones necesarias del controlador y su orden.
OEnvía los comandos al controlador al escribir en los registros de dispositivo del mismo.
OFrecuentemente el manejador del dispositivo se bloquea hasta que el controlador realiza cierto trabajo; una interrupción lo libera de este bloqueo.
OAl finalizar la operación debe verificar los errores.
OSi todo esta o.k. transferirá los datos al software independiente del dispositivo.
ORegresa información de estado sobre los errores a quien lo llamo.

OInicia otra solicitud pendiente o queda en espera.



E/S INDEPENDIENTE DE DISPOSITIVO
La frontera de este nivel con el anterior es difusa.
Ya que tiene diferentes Funciones:
O- Ofrecer una interfaz uniforme a los procesos de usuarios.
O- Asignar nombres a los dispositivos.
O- Proteger a los dispositivos.
O- Ofrecer un tamaño de bloque independiente de los dispositivos.
O- Almacenar los datos temporales en la transferencias de E/S.
O- Gestionar la asignación del espacio en dispositivos de bloques.
O- Reservar y liberar los dispositivos dedicados.
O- Informar de los posibles errores.
O- Un aspecto muy importante en un S.O. es la asignacion de nombres a los
archivos y dispositivos.

4.2 Mecanismos y funciones de los manejadores de dispositivos: device drivers

4.2 Mecanismos y funciones de los manejadores de dispositivos: device drivers


OEl controlador es el componente más importante desde el punto de vista del sistema operativo, ya que constituye la interfaz del dispositivo con el bus de la computadora y es el componente que se ve desde la CPU.
El Sistema Operativo generalmente trabaja con el controlador y no con el dispositivo.





Tecnicas de E/S
E/S programada: El procesador emite una orden de E/S de parte de un proceso a un modulo de E/S; el proceso espera entonces a que termine la operación, antes de seguir.
E/S dirigida por interrupciones: El procesador emite una orden de E/S de parte de un proceso, continua la ejecución de las instrucciones siguientes y el modulo de E/S lo interrumpe cuan do completa su trabajo.

Acceso Directo a la Memoria (DMA): un modulo de DMA controla el intercambio de datos entre la memoria principal y un modulo de E/S. El procesador envía una petición de transferencia de un bloque de datos al modulo DMA y se interrumpe solo cuando se ha transferido el bloque entero.
En la mayoría de los sistemas informáticos, el DMA es la forma dominante de transferencia ofrecida por el sistema operativo.


OHay que recalcar que el controlador al ser una parte crítica del sistema operativo, el fallo de un controlador puede ser más grave que otros errores de software, pudiendo bloquear el ordenador o incluso dañar el hardware.

A medida que han evolucionado los sistemas informáticos, se ha producido tendencia crecientes en la complejidad y sofisticación de cada componente individual. En ninguno de los puntos es mas evidente que en la función deE/S. la etapa de su evolución puede resumirse como lo siguiente:
1.- El procesador controla directamente los dispositivos periféricos.
2.- Se añade un controlador o modulo de E/S. El procesador utiliza E/S programada sin interrupciones.
3.- Se añade un controlador o modulo. Pero empleándose interrupciones.
4.- El modulo de E/S recibe el control directo de la memoria, a través de DMA, Ahora puede mover un bloque de datos a la memoria o desde la misma sin que intervenga el procesador.
5.- se mejora el modulo de E/S hasta llegar a ser un procesador separado con un conjunto de instrucciones especializadas para E/S.
6.- El modulo de E/S posee su propia memoria local y es, de hecho un computador independiente.

OA medida que sigue la evolución, una mayor parte de la funciones de E/S se realiza sin la participación del procesador. El procesador central se libera cada vez más de las tareas relacionadas con la E/S, mejorando así el rendimiento.




4.1 Dispositivos y manejadores de dispositivos: device drives

4.1 Dispositivos y manejadores de dispositivos: device drives

DISPOSITIVOS DE E/S

Se denomina periféricos a los aparatos o dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.

Se consideran periféricos tanto a las unidades o dispositivos a través de los cuales la computadora se comunica con el mundo exterior, como a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.

SE PUEDEN CLASIFICAR EN DOS GRANDES GRUPOS:
   ODispositivos de bloques: dispositivos que almacenan la información en bloques de tamaño fijo (discos)

ODispositivos de caracteres: maneja la información mediante un flujo de caracteres sin estructurarlos en bloques (mouse, teclado, impresora)


Las principales características de los dispositivos de bloque son:

OLa información se almacena en bloques de tamaño fijo.

OCada bloque tiene su propia dirección.

OLos tamaños más comunes de los bloques van desde los 128 bytes hasta los 1.024 bytes.

OSe puede leer o escribir en un bloque de forma independiente de los demás, en cualquier momento.

OUn ejemplo típico de dispositivos de bloque son los discos.


Las principales características de los dispositivos de carácter son:
OLa información se transfiere como un flujo de caracteres, sin sujetarse a una estructura de bloques.

ONo se pueden utilizar direcciones.

ONo tienen una operación de búsqueda.

OUnos ejemplos típicos de dispositivos de carácter son las impresoras de línea, terminales, interfaces de una red, ratones, etc.


Todos los dispositivos de E/S se pueden agrupar en tres grandes grupos:

ODispositivos 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.). Existen periféricos menos habituales, pero más sofisticados, tales como un escáner, lectores de huella digital, lectores de cinta magnética, instrumentos musicales digitales (MIDI), etc.
ODispositivos 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 UCP. Según su capacidad y la inmediatez con que se puede acceder a los datos almacenados en estos dispositivos, se pueden dividir en almacenamiento secundario (discos y disquetes) y terciario (cintas).
ODispositivos 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.




Los controladores de dispositivo se suelen agrupar en alguna de las siguientes categorías o clases:
OAdaptadores de audio (tarjetas de sonido).
ODispositivos de comunicación (infrarrojos, módems, etc).
ODispositivos de visualización; pantallas (displays).
OTeclados.
ORatón (“mouse” y otros señaladores gráficos).
ODispositivos multimedia.
ODispositivos de Red.
OImpresoras.
OAlmacenamiento


OAlgunos dispositivos de entrada y salida:
OEntrada:
OTeclado
ORatón
OJoystick
OLápiz óptico
OMicrófono
OWebcam
OEscáner
OEscáner de código de barras
OSalida:
OMonitor
OAltavoz
OAuriculares
OImpresora
OPlotter
OProyector
OEntrada/salida (mixtos):
OUnidades de almacenamiento: CD,DVD,
Blu-ray, Memory cards, Disco Duro Externo,
 Disco duro, Pendrive USB.
OMódem
ORouter
OPantalla táctil
OTarjeta de red


3.4 Administracion de memoria virtual

3.4 Administracion 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.

ESTRATEGIAS DE ADMINISTRACION

Estrategias de Obtención
Determinan cuando se debe de transferir una pagina o un segmento de almacenamiento secundario al primario. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una pagina o un segmento antes de traer la pagina o el segmento de almacenamiento primario. Los esquemas de obtención anticipada intentan determinar por adelantado a cuales paginas o segmentos hará referencia un proceso.
Estrategias de Colocación
 Determinan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante. Una pagina entrante se puede colocar en cualquier marco de pagina disponible.
Estrategias de Reemplazo

Sirven para decidir cual pagina o segmento se debe desplazar para dar espacio a una pagina o segmento entrante cuando esta completamente ocupado el almacenamiento primario.

TECNICAS DE REEMPLAZO DE PAGINAS

Las rutinas de administración de almacenamiento del Sistema operativo deben decidir que pagina del almacenamiento primario se debe desplazar para dejar espacio a una pagina entrante . 
Principio de Optimalidad
Para obtener un rendimiento optimo, la pagina que se debe reemplazar es aquella que tardara mas tiempo en ser utilizada. Esta estrategia optima de reemplazo se denomina OPT o MIN.
Reemplazo de Páginas aleatorio
Es una técnica sencilla. Todas las paginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podría seleccionar cualquier pagina para ser reemplazada, incluyendo la siguiente pagina la que se hará referencia.
Reemplazo de páginas de primeras entradas-primeras salidas (PEPS)
Cada pagina se registra en el instante que entro en el almacenamiento primario. Cuando se necesita reemplazar una pagina, se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo.

Reemplazo de páginas de la menos reciente utilizada
Se selecciona para su reemplazo, a aquella pagina que no se ha sido utilizada durante mayor tiempo. La estrategia se basa en que la heuristica de localidad segun en el cual el pasado reciente es un buen indicador del futuro cercano, de modo que LRU exige que se marque cada pagina con el instante en que se hace referencia a ella.
Reemplazo de paginas de la menos frecuentemente utilizada (LFU)
La pagina por remplazar es aquella que ha sido utilizada menos frecuentemente o a la que se ha hecho referencia con menos frecuencia.
Al parecer estos esquemas de reemplazo de paginas corren cierto riesgo de tomar decisiones equivocadas. Esto sucede por el simple hecho de que no se puede predecir con precisión el futuro.

3.3 Organizacion de memoria virtual

3.3 Organizacion 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 máquina. 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 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.

Los métodos más comunes de implementación son:
•  Técnicas de “paginación”.
•  Técnicas de “segmentación”.
•  Una combinación de ambas técnicas.


Paginación:
Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de página
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.
Cada proceso tiene su propia tabla de páginas y cuando carga todas sus páginas 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 página perteneciente está presente en la memoria principal o no. Si el bit indica que la pagina está en la memoria, la entrada incluye también el número de marco para esa página.

Segmentación:
La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).

Paginación y 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).