viernes, 11 de diciembre de 2009

UNIDAD 5 ADMINISTRACION DE DISPOSITIVOS DE ENTRADA Y SALIDA
5.1 PRINCIPIOS DE HARDWARE DE ENTRADA Y SALIDA

Distintas personas analizan de varias maneras el hardware de Entrada y Salida. Los ingenieros eléctricos lo hacen en términos de chips, cables, fuentes de poder, etc. Los programadores se fijan en la interfaz que se presenta al software (los comandos que aceptan el hardware, las funciones que realiza y los errores que puede informar.

En este trabajo nos interesaremos por la programación de los dispositivos de entrada y salida no por su diseño, construcción o mantenimiento, así nuestro interés estará restringido a la forma de programar el hardware y no su funcionamiento interno. Sin embargo es frecuente que la programación de muchos dispositivos de entrada y salida este íntimamente ligada con su operación interna.

5.1.1 DISPOSITIVOS DE ENTRADA Y SALIDA.

Los dispositivos de entrada y saluda se pueden dividir de manera general en dos categorías: dispositivos de bloque y dispositivos de carácter.
Dispositivo de Bloque: Es aquel que almacena la información en bloques de tamaño fijo, cada uno con su propia dirección. Los tamaños comunes de los bloques van desde 128 bytes hasta 1024 bytes. La propiedad esencial de un dispositivo de bloque es la posibilidad de leer o escribir en un bloque de forma independiente de los demás, es decir, el programa puede leer o escribir en cualquiera de los bloques.

Entre los dispositivos de bloque se pueden encontrar:

•CD - ROM: Acrónimo de Compact Disc-Read Only Memory. Estándar de almacenamiento de archivos informáticos en disco compacto. Se caracteriza por ser de sólo lectura. Otros estándares son el CD-R o WORM (permite grabar la información una sola vez), el CD-DA (permite reproducir sonido), el CD-I (define una plataforma multimedia) y el PhotoCD (permite visualizar imágenes estáticas).

•Disco Duro: Los discos duros proporcionan un acceso más rápido a los datos que los discos flexibles y pueden almacenar mucha más información. Al ser las láminas rígidas, pueden superponerse unas sobre otras, de modo que una unidad de disco duro puede tener acceso a más de una de ellas. La mayoría de los discos duros tienen de dos a ocho láminas. Un disco duro normal gira a una velocidad de 3.600 revoluciones por minuto y las cabezas de lectura y escritura se mueven en la superficie del disco sobre una burbuja de aire de una profundidad de 10 a 25 millonésimas de pulgada. El disco duro va sellado para evitar la interferencia de partículas en la mínima distancia que existe entre las cabezas y el disco.

•Disquete o Disco flexible: Es un elemento plano de mylar recubierto con óxido de hierro que contiene partículas minúsculas capaces de mantener un campo magnético, y encapsulado en una carcasa o funda protectora de plástico. La información se almacena en el disquete mediante la cabeza de lectura y escritura de la unidad de disco, que altera la orientación magnética de las partículas. La orientación en una dirección representa el valor binario 1, y la orientación en otra el valor binario 0

.Dependiendo de su capacidad, un disco de este tipo puede contener desde algunos cientos de miles de bytes de información hasta casi tres millones (2,88 Mb). Un disco de 3y pulgada encerrada en plástico rígido se denomina normalmente disquete pero puede llamarse también disco flexible.

•Dispositivo de Carácter: Es aquel que envía o recibe un flujo de caracteres, sin sujetarse a una estructura de bloques. No se pueden utilizar direcciones ni tienen una operación de búsqueda.
Entre los dispositivos de carácter se pueden mencionar:

•Mouse: Es el segundo dispositivo de entrada más utilizado. El mouse o ratón es arrastrado a lo largo de una superficie para maniobrar un apuntador en la pantalla del monitor. Fue inventado por Douglas Engelbart y su nombre se deriva por su forma la cual se asemeja a la de un ratón.

•Monitores: El monitor ó pantalla de vídeo, es el dispositivo de salida más común. Hay algunos que forman parte del cuerpo de la computadora y otros están separados de la misma. Existen muchas formas de clasificar los monitores, la básica es en término de sus capacidades de color, pueden ser: Monocromáticos, despliegan sólo 2 colores, uno para el fondo y otro para la superficie. Los colores pueden ser blanco y negro, verde y negro ó ámbar y negro. Escala de Grises, un monitor a escala de grises es un tipo especial de monitor monocromático capaz de desplegar diferentes tonos de grises. Color: Los monitores de color pueden desplegar de 4 hasta 1 millón de colores diferentes.

•Impresoras de Línea: de línea: Son rápidas y ruidosas. Tienen la desventaja de estar limitadas a la impresión de caracteres, por lo que no son apropiadas para aplicaciones donde los gráficos son un ingrediente esencial del producto acabado. imprimen una línea de puntos a la vez. Se alinean martillos similares a agujas sobre el ancho del papel.

•Tarjetas Perforadas: Habían, sido inventada en los años de la revolución industrial (finales del siglo XVIII) por el francés Jacquard y perfeccionado por el estadounidense Hermand Hollerith en 1890. Se usaron para acumular y procesar automáticamente gran cantidad de datos. Durante décadas, desde mediados de los cincuentas la tecnología de las tarjetas perforadas se perfeccionó con la implantación de más dispositivos con capacidades más complejas. Dado que cada tarjeta contenía en general un registro (Un nombre, dirección, etc.) el procesamiento de la tarjeta perforada se conoció también como procesamiento de registro unitario.

5.1.2 CONTROLADORES DE DISPOSITIVOS

Las unidades de entrada y salida constan por lo general de un componente mecánico y otro electrónico. El componente electrónico se llama controlador de dispositivo de adaptador.

La tarjeta controladora tiene por lo general un conector, en el que se puede conectar el cable que va al dispositivo en sí. Muchos controladores pueden manejar dos, cuatro y hasta ocho dispositivos idénticos. Si la interfaz entre el controlador y el dispositivo es estándar, ya sea un estándar oficial, de tipo ANSI, IEEE o ISO, o bien un estándar de hecho, entonces las compañías pueden fabricar controladores o dispositivos que se ajusten a esa interfaz.

Mencionamos esa distinción entre controlado y dispositivo por que el sistema operativo casi siempre trabaja con el controlador y no con el dispositivo. Casi todas las micro y mini computadoras utilizan el modelo de un bus para la comunicación entre la CPU y los controladores. Los grandes mainframes utilizan con frecuencia otro modelo, con varios buses y computadoras especializadas en Entrada y Salida llamadas canales de entrada y salida que toman cierta carga de entrada y salida fuera de la CPU principal.

La labor del controlador es convertir el flujo de bits en serie en un bloque de bytes y llevar a cabo cualquier corrección de errores necesaria. Lo común es que el bloque de bytes ensamble, bit a bit, en un buffer dentro del controlador. Después a verificar la suma y declarar al bloque libre de errores, se le puede copiar en la memoria principal.

El controlador de una terminal CRT también funciona como un dispositivo de bits en un nivel igual de bajo. Lee bytes que contienen caracteres a exhibir en la memoria y genera las señales utilizadas para modular la luz CRT para que esta se escriba en la pantalla. El controlador también genera las señales para que la luz CRT vuelva a realizar un trazo horizontal después de terminar una línea de rastreo, así como las señales para que se vuelva a hacer un trazo vertical después de rastrear en toda la pantalla. De no ser por el controlador CRT, el programador del sistema operativo tendría que programar en forma explícita el rastreo análogo del tubo de rayos catódicos. Con el controlador, el sistema operativo inicializa éste con pocos parámetros, tales como el número de caracteres por línea y el número de líneas en la pantalla, para dejar que el controlador se encargue de dirigir en realidad el rayo de luz.

Cada controlador tiene unos cuantos registros que se utiliza para la comunicación con la CPU. En ciertas computadoras, estos registros son parte del espacio normal de direcciones de la memoria.

El sistema operativo realiza la entrada y salida al escribir comandos en los registros de los controladores. Muchos de los comandos tienen parámetros, los cuales también se cargan de los registros del controlador. Al aceptar un comando, la CPU puede dejar al controlador y dedicarse a otro trabajo. Al terminar el comando, el controlador provoca la interrupción para permitir que el sistema operativo obtenga el control de la CPU y verifique los resultados de la operación. La CPU obtiene los resultados y el estado del dispositivo al leer uno o más bytes de información de los registros del controlador.

5.2 PRINCIPIOS DE SOFTWARE DE ENTRADA Y SALIDA

Los principios de software en la entrada - salida se resumen en cuatro puntos: el software debe ofrecer manejadores de interrupciones, manejadores de dispositivos, software que sea independiente de los dispositivos y software para usuarios.
Manejadores de Interrupciones.

El primer objetivo referente a los manejadores de interrupciones consiste en que el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo está ocupado y se debe suspender el proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o usuario, el sistema simplemente se tardó más o menos en responder a su petición.

Manejadores de Dispositivos.

El sistema debe proveer los manejadores de dispositivos necesarios para los periféricos, así como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la información, los medios mecánicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias técnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos.

Software que sea independiente de los dispositivos.

Este es un nivel superior de independencia que el ofrecido por los manejadores de dispositivos. Aquí el sistema operativo debe ser capaz, en lo más posible, de ofrecer un conjunto de utilerías para accesar periféricos o programarlos de una manera consistente. Por ejemplo, que para todos los dispositivos orientados a bloques se tenga una llamada para decidir si se desea usar 'buffers' o no, o para posicionarse en ellos.

Software para Usuarios.

La mayoría de las rutinas de entrada - salida trabajan en modo privilegiado, o son llamadas al sistema que se ligan a los programas del usuario formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al usuario en cuanto a la apariencia de los datos. Existen otras librerías en donde el usuario si tiene poder de decisión (por ejemplo la llamada a "printf" en el lenguaje"C"). Otra facilidad ofrecida son las áreas de trabajos encolados (spooling areas), tales como las de impresión y correo electrónico.

5.2.1 OBJETIVOS DE SOFTWARE DE ENTRADA Y SALIDA

Un concepto clave es la independencia del dispositivo:

•Debe ser posible escribir programas que se puedan utilizar con archivos en distintos dispositivos, sin tener que modificar los programas para cada tipo de dispositivo.
•El problema debe ser resuelto por el S. O.

El objetivo de lograr nombres uniformes está muy relacionado con el de independencia del dispositivo.Todos los archivos y dispositivos adquieren direcciones de la misma forma, es decir mediante el nombre de su ruta de acceso.Otro aspecto importante del software es el manejo de errores de e / s:

•Generalmente los errores deben manejarse lo más cerca posible del hardware.
•Solo si los niveles inferiores no pueden resolver el problema, se informa a los niveles superiores.
•Generalmente la recuperación se puede hacer en un nivel inferior y de forma transparente.

Otro aspecto clave son las transferencias síncronas (por bloques) o asíncronas (controlada por interruptores):

•La mayoría de la e / s es asíncrona: la CPU inicia la transferencia y realiza otras tareas hasta una interrupción.
•La programación es más fácil si la e / s es síncrona (por bloques): el programa se suspende automáticamente hasta que los datos estén disponibles en el buffer.
El S. O. se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario.

También el S. O. debe administrar los dispositivos compartidos (ej.: discos) y los de uso exclusivo (ej.: impresoras).
Generalmente el software de e / s se estructura en capas

•Manejadores de interrupciones.
•Directivas de dispositivos.
•Software de S. O. independiente de los dispositivos.
•Software a nivel usuario.

5.2.2 MANEJADORES DE INTERRUPCIONES.

Las interrupciones deben ocultarse en el S. O.:

•Cada proceso que inicie una operación de e / s se bloquea hasta que termina la e / s y ocurra la interrupción.

•El procedimiento de interrupción realiza lo necesario para desbloquear el proceso que lo inicio.
5.2.3 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 está ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes.

La solicitud de e / s, por ej. Para un disco, se debe traducir de términos abstractos a términos concretos:

•El manejador de disco debe:
oEstimar el lugar donde se encuentra en realidad el bloque solicitado.
oVerificar si el motor de la unidad funciona.
oVerificar si el brazo está colocado en el cilindro adecuado, etc.
oResumiendo: debe decidir cuáles 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 llamó.
oInicia otra solicitud pendiente o queda en espera.

5.2.4 SOFTWARE DE ENTRADA Y SALIDA INDEPENDIENTE DE DISPOSITIVOS

Funciones generalmente realizadas por el software independiente del dispositivo:

•Interfaz uniforme para los manejadores de dispositivos.
•Nombres de los dispositivos.
•Protección del dispositivo.
•Proporcionar un tamaño de bloque independiente del dispositivo.
•Uso de buffers.
•Asignación de espacio en los dispositivos por bloques.
•Asignación y liberación de los dispositivos de uso exclusivo.
•Informe de errores.

Las funciones básicas del software independiente del dispositivo son:

•Efectuar las funciones de e / s comunes a todos los dispositivos.
•Proporcionar una interfaz uniforme del software a nivel usuario.

El software independiente del dispositivo asocia los nombres simbólicos de los dispositivos con el nombre adecuado.

Un nombre de dispositivo determina de manera única el nodo-i de un archivo especial:

•Este nodo-i contiene el número principal del dispositivo, que se utiliza para localizar el manejador apropiado.
•El nodo-i contiene también el número secundario de dispositivo, que se transfiere como parámetro al manejador para determinar la unidad por leer o escribir.

El software independiente del dispositivo debe:

•Ocultar a los niveles superiores los diferentes tamaños de sector de los distintos discos.
•Proporcionar un tamaño uniforme de los bloques, por ej.: considerar varios sectores físicos como un solo bloque lógico.

5.2.5 ESPACIO DEL USUARIO PARA SOFTWARE DE ENTRADA Y SALIDA

La mayoría del software de e / s está dentro del S. O.
Una pequeña parte consta de bibliotecas ligadas entre sí con los programas del usuario.

La biblioteca estándar de e / s contiene varios procedimientos relacionados con e / s y todos se ejecutan como parte de los programas del usuario.
Otra categoría importante de software de e / s a nivel usuario es el sistema de spooling.

El spooling es una forma de trabajar con los dispositivos de e /s de uso exclusivo en un sistema de multiprogramación:

•El ejemplo típico lo constituye la impresora de líneas.
•Los procesos de usuario no abren el archivo correspondiente a la impresora.
•Se crea un proceso especial, llamado demonio en algunos sistemas.
•Se crea un directorio de spooling.

Para imprimir un archivo:

•Un proceso genera todo el archivo por imprimir y lo coloca en el directorio de spooling.
•El proceso especial, único con permiso para utilizar el archivo especial de la impresora, debe imprimir los archivos en el directorio.
•Se evita el posible problema de tener un proceso de usuario que mantenga un recurso tomado largo tiempo.

Un esquema similar también es aplicable para la transferencia de archivos entre equipos conectados:

•Un usuario coloca un archivo en un directorio de spooling de la red.
•Posteriormente, el proceso especial lo toma y transmite. Un ej. son los sistemas de correo electrónico.

5.3 DISCOS RAM

Un disco RAM o unidad RAM es una unidad de disco que usa una zona de memoria RAM del sistema como almacenamiento secundario en lugar de un medio magnético (como los discos duros y las disqueteras) o memoria flash, implementada como un controlador de dispositivo más. El tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales. Sin embargo, la volatilidad de la memoria RAM implica que los datos almacenados en un disco RAM se perderán si falla la alimentación (por ejemplo, cuando el ordenador se apaga). Los discos RAM suelen usarse para almacenar datos temporales o para guardar programas descomprimidos durante cortos periodos.

Los discos RAM fueron populares como unidades de arranque en los años 1980, cuando los discos duros eran caros y las disqueteras demasiado lentas, por lo que unos pocos sistemas, como el Amiga y el Apple IIgs, soportaban arrancar desde un disco RAM. A cambio de dedicar un poco de memoria principal, el sistema podía realizar un reinicio en caliente y volver al sistema operativo en pocos segundos en lugar de minutos. Algunos sistemas contaban con discos RAM alimentados por baterías, de forma que sus contenidos no se perdían cuando el sistema se apagaba.

La adecuada implementación de un caché de disco suele obviar las motivaciones relacionadas con el rendimiento que impulsan a usar un disco RAM, adoptando un papel parecido (acceso rápido a los datos que en realidad residen en un disco) sin sus varias desventajas (pérdida de datos en caso de apagado, particionado estático, etcétera). Los discos RAM son, sin embargo, indispensables en situaciones en las que un disco físico no está disponible o en las que el acceso o cambios a éste no es deseable (como en el caso de un LiveCD. También pueden usarse en dispositivos de tipo quiosco, en los que los cambios hechos al sistema no se guardan en el disco físico y la configuración original del sistema se carga de éste cada vez que el sistema es reiniciado.

Un disco duro (del inglés hard disk (HD)) es un disco magnético en el que puedes almacenar datos de ordenador. El disco duro es la parte de tu ordenador que contiene la información electrónica y donde se almacenan todos los programas (software). Es uno de los componentes del hardware más importantes dentro de tu PC.
El término duro se utiliza para diferenciarlo del disco flexible o disquete (floppy en inglés). Los discos duros pueden almacenar muchos más datos y son más rápidos que los disquetes. Por ejemplo, un disco duro puede llegar a almacenar más de 100 gigabytes, mientras que la mayoría de los disquetes tienen una memoria máxima de 1.4 megabytes.

Componentes de un disco duro:

Normalmente un disco duro consiste en varios discos o platos. Cada disco requiere dos cabezales de lectura/grabación, uno para cada lado. Todos los cabezales de lectura/grabación están unidos a un solo brazo de acceso, de modo que no puedan moverse independientemente. Cada disco tiene el mismo número de pistas, y a la parte de la pista que corta a través de todos los discos se le llama cilindro.

Características de un disco duro:

Las características que se deben tener en cuenta en un disco duro son:

•Tiempo medio de acceso: Tiempo medio que tarda la aguja en situarse en la pista y el sector deseado; es la suma del Tiempo medio de búsqueda (situarse en la pista), tiempo de lectura/escritura y la Latencia media (situarse en el sector).

•Tiempo medio de búsqueda: Tiempo medio que tarda la aguja en situarse en la pista deseada; es la mitad del tiempo empleado por la aguja en ir desde la pista más periférica hasta la más central del disco.

•Tiempo de lectura/escritura: Tiempo medio que tarda el disco en leer o escribir nueva información, el tiempo depende de la cantidad de información que se quiere leer o escribir, el tamaño de bloque, el numero de cabezales, el tiempo por vuelta y la cantidad de sectores por pista.

•Latencia media: Tiempo medio que tarda la aguja en situarse en el sector deseado; es la mitad del tiempo empleado en una rotación completa del disco.

•Velocidad de rotación: Revoluciones por minuto de los platos. A mayor velocidad de rotación, menor latencia media.

•Tasa de transferencia: Velocidad a la que puede transferir la información a la computadora una vez la aguja está situada en la pista y sector correctos. Puede ser velocidad sostenida o de pico.

Otras características son:

•Caché de pista: Es una memoria tipo RAM dentro del disco duro. Los discos duros de estado sólido utilizan cierto tipo de memorias construidas con semiconductores para almacenar la información. El uso de esta clase de discos generalmente se limita a
las supercomputadoras, por su elevado precio.

•Interfaz: Medio de comunicación entre el disco duro y la computadora. Puede ser IDE/ATA, SCSI, SATA, USB, Firewire, SAS

•Landz: Zona sobre las que aterrizan las cabezas una vez apagada la computadora.
Actualmente la nueva generación de discos duros utiliza la tecnología de grabación perpendicular (PMR), la cual permite mayor densidad de almacenamiento. También existen discos llamados "Ecológicos" (GP - Green Power), los cuales hacen un uso más eficiente de la energía. Se está empezando a observar que la Unidad de estado sólido es posible que termine sustituyendo al disco duro a largo plazo. También hay que añadir los nuevos discos duros basados en el tipo de memorias Flash, que algunas empresas, como ASUS, incorporó recientemente en sus modelos. Los mismos arrancan en 4GB a 512 GB.1...

Son muy rápidos ya que no tienen partes móviles y consumen menos energía. Todo esto les hace muy fiables y casi indestructibles. Un nuevo formato de discos duros basados en tarjetas de memorias. Sin embargo su costo por GB es aún muy elevado ya que el coste de un HD de 160 GB es equivalente a un SSD de 8 GB.

Los recursos tecnológicos y el saber hacer requeridos para el desarrollo y la producción de discos modernos implica que desde 2007, más del 98% de los discos duros del mundo son fabricados por un conjunto de grandes empresas: Seagate (que ahora es propietaria de Maxtor), Western Digital, Samsung e Hitachi (que es propietaria de la antigua división de fabricación de discos de IBM). Fujitsu sigue haciendo Discos portátiles y discos de servidores, pero dejó de hacer discos para ordenadores de escritorio en 2001, y el resto lo vendió a Western Digital. Toshiba es uno de los principales fabricantes de discos duros para portátiles de 2,5 pulgadas y 1,8 pulgadas. ExcelStor es un pequeño fabricante de discos duros.
Decenas de ex-fabricantes de discos duros han terminado con sus empresas fusionadas o han cerrado sus divisiones de discos duros, a medida que la capacidad de los dispositivos y la demanda de los productos aumentaron, los beneficios eran menores y el mercado sufrió una significativa consolidación a finales de los 80 y finales de los 90. La primera víctima en el mercado de los PC fue Computer Memories Inc. o CM; después de un incidente con 20 MB defectuoso en discos en 1985, La reputación de CMI nunca se recuperó, y salieron del mercado de los discos duros en 1987. Otro notable fallo fue de MiniScribe, quien quebró en 1990 después se descubrió que tenían en marcha un fraude e inflaban el número de ventas durante varios años. Otras muchas pequeñas compañías (como Kalok, Microscience, LaPine, Areal, Priam y PrairieTek) tampoco sobrevivieron a la expulsión, y habían desaparecido para 1993; Micropolis fue capaz de aguantar hasta 1997, y JTS, un recién llegado a escena, duro solo unos años y desapareció para 1999, después intentó fabricar discos duros en India. Su vuelta a la fama fue con la creación de un nuevo formato de tamaño de 3” para portátiles. Quantum and Integral también investigaron el formato de 3”, pero finalmente se dieron por vencidos. Rodime fue también un importante fabricante durante la década de los 80, pero dejó de hacer discos en la década de los 90 en medio de la reestructuración y ahora se concentra en la tecnología de la concesión de licencias; tienen varias patentes relacionadas con el formato de 3.5“.

•1988: Tandon Corporation vendió su división de fabricación de discos duros a Wstern Digital (WDC), el cual era un renombrado diseñador de controladores.

•1989: Seagate Technology compro el negocio de discos de alta calidad de Control Data, como parte del abandono de CDC en la creación de hardware.

•1990: Maxtor compro Mini Scribe que estaba en bancarrota, haciéndolo el núcleo de su división de discos de gama baja.

•1994: Quantum compro la división de almacenamiento de [Digital Equipment Corporation|DEC]] otorgando al usuario una gama de discos de alta calidad llamada ProDrive , igual que la gama tape drive de DLT

•1995: Conner Peripherals fue fundada por uno de los cofundadores de Seagate Technology's junto con personal de Mini Scribe, anunciaron un fusión con Seagate, la cual se completó a principios de 1996.

•1996: JTS se fusiono con Atari, permitiendo a JTS llevar a producción su gama de discos. Atari fue vendida a Hasbro en 1998, mientras que JTS sufrió una bancarrota en 1999.

•2000: Quantum vendió su división de discos a Maxtor para concentrarse en las unidades de cintas y los equipos de respaldo.

•2003: Siguiendo la controversia en los fallos masivos en su modelo Deskstar 75GXP , pioneer IBM vendió la mayor parte de su división de discos a Hitachi, renombrándose como Hitachi Global Storage Technologies (HGST).

•2003: Western Digital compro Read-Rite Corp, quien producía los cabezales utilizados en los discos duros, por 95.4 millones de $ en metálico.

o21 de diciembre de 2005: Seagate y Maxtor anuncian un acuerdo bajo el que Seagate adquiriría todo el stock de Maxtor por ciento noventa mil millones de $. Esta adquisición fue aprobada por los cuerpos regulatorios, y cerrada el 19 de mayo de 2006.

•2007 Julio: Western Digital (WDC) adquiere Komag U.S.A, un fabricante del material que recubre los platos de los discos duros, por ciento noventa mil millones de $.

5.4.1 HARDWARE DE DISCOS

Los discos están organizados en cilindros, pistas y sectores.
El número típico de sectores por pista varía entre 8 y 32 (o más).
Todos los sectores tienen igual número de bytes.
Los sectores cercanos a la orilla del disco serán mayores físicamente que los cercanos al anillo.

Un controlador puede realizar búsquedas en una o más unidades al mismo tiempo:

•Son las búsquedas traslapadas.
•Mientras el controlador y el software esperan el fin de una búsqueda en una unidad, el controlador puede iniciar una búsqueda en otra.
Muchos controladores pueden:

•Leer o escribir en una unidad.
•Buscar en otra.

Los controladores no pueden leer o escribir en dos unidades al mismo tiempo.

5.4.2 SOFTWARE PARA DISCOS

En la mayoría de los discos, el tiempo de búsqueda supera al de retraso rotacional y al de transferencia, debido a ello, la reducción del tiempo promedio de búsqueda puede mejorar en gran medida el rendimiento del sistema.
Si el manejador del disco utiliza el algoritmo primero en llegar primero en ser atendido (FCFS), poco se puede hacer para mejorar el tiempo de búsqueda.
Es posible que mientras el brazo realiza una búsqueda para una solicitud, otros procesos generen otras solicitudes.

Muchos manejadores tienen una tabla:

•El índice es el número de cilindro.
•Incluye las solicitudes pendientes para cada cilindro enlazadas entre sí en una lista ligada.
•Cuando concluye una búsqueda, el manejador del disco tiene la opción de elegir la

siguiente solicitud a dar paso:

oSe atiende primero la solicitud más cercana, para minimizar el tiempo de búsqueda.
oEste algoritmo se denomina primero la búsqueda más corta (SSF: shor-test seek first).
oReduce a la mitad el número de movimientos del brazo en comparación con FCFS.

Ej. De SSF:

•Consideramos un disco de 40 cilindros.
•Se presenta una solicitud de lectura de un bloque en el cilindro 11.
•Durante la búsqueda, llegan solicitudes para los cilindros 1, 36, 16, 34, 9 y 12, en ese orden.
•La secuencia de búsqueda SSF será: 12, 9, 16, 1, 34, 36.
•Habrá un número de movimientos del brazo para un total de:
o111 cilindros según FCFS.
o61 cilindros según SSF.

El algoritmo SSF tiene el siguiente problema:

•El ingreso de nuevas solicitudes puede demorar la atención de las más antiguas.
•Con un disco muy cargado, el brazo tenderá a permanecer a la mitad del disco la mayoría del tiempo, como consecuencia de ello las solicitudes lejanas a la mitad del disco tendrán un mal servicio.
•Entran en conflicto los objetivos de:
oTiempo mínimo de respuesta.
oJusticia en la atención.
La solución a este problema la brinda el algoritmo del elevador (por su analogía con el ascensor o elevador):
•Se mantiene el movimiento del brazo en la misma dirección, hasta que no tiene más solicitudes pendientes en esa dirección; entonces cambia de dirección.
•El software debe conservar el bit de dirección actual.

Ej. Del algoritmo del elevador para el caso anterior, con el valor inicial arriba del bit de dirección:

•El orden de servicio a los cilindros es: 12, 16, 34, 36, 9 y 1.
•El número de movimientos del brazo corresponde a 60 cilindros.

El algoritmo del elevador:

•Ocasionalmente es mejor que el algoritmo SSF.
•Generalmente es peor que SSF.
•Dada cualquier colección de solicitudes, la cuota máxima del total de movimientos está fija, siendo el doble del número de cilindros.
Una variante consiste en rastrear siempre en la misma dirección:

•Luego de servir al cilindro con el número mayor:

oEl brazo pasa al cilindro de número menor con una solicitud pendiente.
oContinúa su movimiento hacia arriba.
Algunos controladores de disco permiten que el software inspeccione el número del

sector activo debajo del cabezal:

•Si dos o más solicitudes para el mismo cilindro están pendientes:
oEl manejador puede enviar una solicitud para el sector que pasará debajo del cabezal.
oSe pueden hacer solicitudes consecutivas de distintas pistas de un mismo cilindro,
sin generar un movimiento del brazo.

Cuando existen varias unidades, se debe tener una tabla de solicitudes pendientes para cada unidad.

Si una unidad está inactiva, deberá buscarse el cilindro siguiente necesario, si el controlador permite búsquedas traslapadas.
Cuando termina la transferencia actual se verifica si las unidades están en la
posición del cilindro correcto:

•Si una o más unidades lo están, se puede iniciar la siguiente transferencia en una unidad ya posicionada.
•Si ninguno de los brazos está posicionado, el manejador:
oDebe realizar una nueva búsqueda en la unidad que terminó la transferencia.
oDebe esperar hasta la siguiente interrupción para ver cuál brazo se posiciona primero.

Generalmente, las mejoras tecnológicas de los discos:

•Acortan los tiempos de búsqueda (seek).
•No acortan los tiempos de demora rotacional (search).
•En algunos discos, el tiempo promedio de búsqueda ya es menor que el retraso rotacional.
•El factor dominante será el retraso rotacional, por lo tanto, los algoritmos que optimizan los tiempos de búsqueda (como el algoritmo del elevador) perderán importancia frente a los algoritmos que optimicen el retraso rotacional.
Una tecnología importante es la que permite el trabajo conjunto de varios discos.
Una configuración interesante es la de treinta y ocho (38) unidades ejecutándose en paralelo.

Cuando se realiza una operación de lectura:

•Ingresan a la CPU 38 bit a la vez, uno por cada unidad.
•Los 38 bits conforman una palabra de 32 bits junto con 6 bits para verificación.
•Los bits 1, 2, 4, 8, 16 y 32 se utilizan como bits de paridad.
•La palabra de 38 bits se puede codificar mediante el código Hamming, que es un código corrector de errores.

•Si una unidad sale de servicio:
oSe pierde un bit de cada palabra.
oEl sistema puede continuar trabajando; se debe a que los códigos Hamming se pueden recuperar de un bit perdido.

5.5 RELOJES

Los relojes o cronómetros son esenciales para la operación de sistemas de tiempo compartido.

Registran la hora del día.

Evitan que un proceso monopolice la cpu.
5.5.2 SOFTWARE RELOJ

El software para reloj toma generalmente la forma de un manejador de dispositivo, aunque no es un dispositivo de bloque ni de carácter.
Los relojes más sencillos trabajan con la línea de corriente eléctrica de 110 o 220 voltios y provocan una interrupción por cada ciclo de voltaje, a 50 o 60 hz.
Otro tipo de relojes consta de tres componentes:

•Un oscilador de cristal, un contador y un registro.
•Una pieza de cristal de cuarzo se monta en una estructura bajo tensión:
oGenera una señal periódica de muy alta precisión, generalmente entre 5 y 100 mhz.
oLa señal se alimenta en el contador para que cuente en forma descendente hasta cero.
oCuando el contador llega a cero, provoca una interrupción de la CPU.
Los relojes programables tienen varios modos de operación:

•Modo de una instancia:

oCuando el reloj se inicializa, copia el valor del registro en el contador.
oDecrementa el contador en cada pulso del cristal.
oCuando el contador llega a cero provoca una interrupción y se detiene hasta ser nuevamente inicializado por el software.

•Modo de onda cuadrada:
oLuego de llegar a cero y provocar la interrupción, el registro se copia de manera automática en el contador.
oTodo el programa se repite en forma indefinida.
oLas interrupciones periódicas se llaman marcas del reloj.

La ventaja del reloj programable es que su frecuencia de interrupción puede ser controlada por el software.

5.5.3 MANEJADOR DEL RELOJ

Las principales funciones del software manejador del reloj son:

•Mantener la hora del día o tiempo real.
•Evitar que los procesos se ejecuten durante más tiempo del permitido.
•Mantener un registro del uso de la CPU.
•Controlar llamadas al sistema tipo “alarm” por parte de los procesos del usuario.
•Proporcionar cronómetros guardianes de partes del propio sistema.
•Realizar resúmenes, monitoreo y recolección de estadísticas.

El software manejador del reloj puede tener que simular varios relojes virtuales con un único reloj físico.

5.6 TERMINALES

Las terminales tienen gran número de formas distintas:

•El manejador de la terminal debe ocultar estas diferencias.
•La parte independiente del dispositivo en el S. O. y los programas del usuario no se tienen que reescribir para cada tipo de terminal.
Desde el punto de vista del S. O. se las puede clasificar en:
•Interfaz RS-232:
oHardcopy (terminales de impresión).
oTTY “de vidrio” (terminales de video).
oInteligente (computadoras con CPU y memoria).
•Interfaz mapeada a memoria:
oOrientada a caracteres.
oOrientada a bits.

Las terminales RS-232 poseen un teclado y un monitor que se comunican mediante una interfaz serial, un bit a la vez; las conversiones de bits a bytes y viceversa las efectúan los chips uart (transmisores - receptores asíncronos universales).

Las terminales mapeadas a memoria:

•No se comunican mediante una línea serial.
•Poseen una interfaz mediante una memoria especial llamada video RAM:
oForma parte del espacio de direcciones de la computadora.
oLa CPU se dirige a ella como al resto de la memoria.
oEn la tarjeta de video RAM hay un chip llamado controlador de video:
Extrae bytes del video RAM y genera la señal de video utilizada para manejar la pantalla.
El monitor genera un rayo de electrones que recorre la pantalla pintando líneas.
Cada línea está constituida por un cierto número de puntos o pixeles.
La señal del controlador de video modula el rayo de electrones y determina si un pixel debe estar o no iluminado.
Los monitores de color poseen tres rayos (rojo, verde y azul) que se modulan independientemente.

En las pantallas mapeadas a caracteres:

•Cada caracter en la pantalla equivale a dos caracteres de RAM:
oUno aloja al código (ASCII) del caracter por exhibir.
oOtro es el byte de atributo, necesario para determinar el color, el video inverso, el parpadeo, etc.
En las terminales mapeadas a bits:
•Se utiliza el mismo principio.
•Cada bit en el video RAM controla en forma directa un solo pixel de la pantalla.
•Permite una completa flexibilidad en los tipos y tamaños de caracteres, varias ventanas y gráficos arbitrarios.
Con las pantallas mapeadas a memoria, el teclado se desacopla totalmente de la pantalla:
•El teclado dispone de su propio manejador.
•El manejador del teclado puede operar en modo caracter o en modo línea.

Las terminales pueden operar con una estructura central de buffers o con buffers exclusivos para cada terminal.

Frecuentemente los manejadores de terminales soportan operaciones tales como:

•Mover el cursor hacia arriba, abajo, a la izquierda o a la derecha una posición.
•Mover el cursor a x, y.
•Insertar un caracter o una línea en el cursor.
•Eliminar un caracter o una línea en el cursor.
•Recorrer la pantalla hacia arriba o hacia abajo “n” líneas.
•Limpiar la pantalla desde el cursor hacia el final de la línea o hasta el final de la pantalla.
•Trabajar en modo de video inverso, subrayado, parpadeo o normal.
•Crear, construir, mover o controlar las ventanas.

5.6.1 HARDWARE DE TERMINALES

Un terminal IP es un dispositivo que permite realizar una comunicación utilizando una red IP ya sea mediante red de área local o a través de Internet. Generalmente nos referimos a un terminal IP en temas de Telefonía IP ya que son los principales dispositivos utilizados para realizar una comunicación de paquetes de datos en los que se transporta voz o vídeo.

CARACTERISTICAS

•Un terminal IP suele ser un dispositivo hardware con forma de teléfono, aunque con la diferencia de que utiliza una conexión de red de datos, en lugar de una conexión de red telefónica.

•Suelen tener más opciones y ventajas que un teléfono convencional. Al ser un sistema completamente digital y programable, suelen tener teclas especiales perfectamente configurables mediante un sistema de administración que puede ser accedido mediante web o mediante telnet.
•Algunos incluyen cámara de vídeo para poder realizar videoconferencias.
•Disponen de una dirección IP a la que poder acceder y mediante la que se puede configurar como si fuese un ordenador más. Por lo que, al considerarse un sistema más dentro de la red, suelen aplicárseles las características típicas de grandes redes: QoS o VLAN.

Ventajas frente a un sistema tradicional

•La ventaja principal estriba en que los terminales IP están preparados para utilizar una centralita digital de VoIP, lo cual abarata costes y permite una mayor versatilidad en cuando al manejo de las comunicaciones.
•La mayoría disponen de buzón de voz, desvíos de llamadas, configuración individual del dialplan y manejo de multitud de líneas individuales, para poder mantener varias conversaciones simultáneas.
•Suelen incorporar un sistema de música en espera y de transferencia de la llamada a otro terminal.
•Incluyen opciones para configurar las reglas de QoS o VLAN para mejorar la calidad del sonido y evitar cortes en una red con un alto Tráfico.
Hardware o Software
•Un terminal IP suele ser un dispositivo físico (similar al un teléfono normal), aunque también puede ser una aplicación que funciona en un sistema y que interactúa junto con micrófonos y auriculares/altavoz.
•Los terminales IP hardware evitan el choque de realizar una llamada de teléfono a través de otro dispositivo distinto a un teléfono normal.
•Los terminales IP software permiten reducir costes, a la vez que cuenta con la ventaja espacial de no tener un aparato más en la mesa.
ATA
•Los ATA son pequeños dispositivos que permiten conectar un teléfono analógico/RDSI a una red de VoIP.
•Disponen de un sistema de administración y gestión similar a los teléfonos IP por lo que disponen también de dirección IP, y las mismas ventajas que cualquier terminal IP.

Terminales Wireless

•Son similares a los teléfonos móviles (o celulares) y permiten utilizar redes inalámbricas para conectarse al servidor de VoIP o Gateway.
•Estos últimos aun no están muy desarrollados, pero pronto empezaremos a ver una gran expansión de los teléfonos móviles habituales con soporte Wi-Fi que permitirán utilizar la VoIP para realizar llamadas en lugar de las operadoras telefónicas tradicionales.
•Todos los periféricos conectados a la computadora que estamos usando para correr Linux son tratados como archivos especiales (device files) por el sistema operativo. Un periférico o dispositivo es una terminal, un disco duro, una impresora, un manejador de CD-ROM, o un modem. Todo lo que recibe o envía datos hacia el sistema operativo es un dispositivo.
•El concepto de tratar todo en el sistema como un dispositivo es uno de los beneficios de la arquitectura Unix. Cada dispositivo tiene un archivo especial llamado manejador de dispositivo (device file), el cual incluye todas las instrucciones necesarias para que Linux se comunique con el dispositivo. Cuando un nuevo dispositivo es desarrollado, puede ser usado por Linux escribiendo su manejador de dispositivo, el cual es usualmente un conjunto de instrucciones que explican como mandar y recibir datos.

5.6.2 MANEJADORES

Los manejadores de dispositivos permiten al kernel de Linux incluir solo el sistema operativo y el soporte de software. Teniendo las instrucciones para comunicarse hacia los dispositivos dentro de un conjunto de archivos. Estos pueden ser buscados cuando son necesitados (en el caso de que raramente sean usados) o almacenados en memoria todo el tiempo cuando el sistema operativo es reiniciado. Los refinamientos hechos hacia un periférico, pequeños cambios hacia el archivo manejador del dispositivo pueden tener informado al sistema operativo de nuevas características y capacidades.

• Cuando una aplicación envía datos a un dispositivo, el kernel de Linux no tiene que preocuparse por el mecanismo. El kernel solo pasa la petición al manejador del dispositivo y deja que éste maneje las comunicaciones. Similarmente, cuando estamos tecleando, el manejador de dispositivo de la terminal acepta la acción y la pasa al shell, filtrando cualquier código especial que el kernel no conozca, traduciéndolo a un formato que el kernel pueda operar.

•Por omisión y convención Linux guarda los manejadores de dispositivos en el directorio /dev. Pueden guardarse los manejadores de dispositivos en cualquier parte del sistema de archivos, pero guardándolos en /dev hace obvio que son los manejadores de dispositivos.

•Diferencia entre dispositivos modo bloque y modo caracter.

•Cada tipo de dispositivo en el sistema Linux se comunica con la aplicación en una de las formas siguientes: carácter por carácter o como un conjunto de datos en un bloque de tamaño predefinido. Las terminales, impresoras y módems asíncronos son dispositivos modo carácter. Cuando se usa el modo caracter se envía uno a la vez y hace eco en la otra terminal. Los manejadores (device drivers) de disco duro y la mayoría de manejadores, usan el modo bloque, porque este es el camino más rápido para enviar o recibir grandes cantidades de información.

•Los archivos de dispositivo (device files) son llamados dispositivos modo carácter o dispositivos modo bloque, basados en la forma de comunicación.

•Cabe mencionar que los dispositivos que operan a modo carácter son distintos de los de modo bloque, en el aspecto de como el dispositivo maneja su búfer. Los dispositivos modo carácter hacen su propio búfer. Los dispositivos modo bloque, usualmente se comunican en bloques de 512 o 1024 bytes y el kernel se ocupa del búfer.

•Algunos periféricos necesitan usar archivos de dispositivo a modo bloque y carácter al mismo tiempo. Los manejadores de dispositivo manejan el modo carácter y el modo bloque a través de dos diferentes archivos de dispositivo. El archivo de dispositivo que se usa depende de cómo la aplicación quiera escribir o leer datos hacia el periférico.

•El archivo de dispositivo tiene todos los detalles de si el periférico opera a modo carácter o modo bloque. Una manera fácil de saber que tipo de modo utiliza un periférico es obtener un listado largo del archivo de dispositivo. El listado se obtiene con el comando 'ls -l' que muestra los permisos, dueño, grupo, etc... del archivo. Si el primer carácter es una b, indica que el periférico opera en modo bloque y una c indica que el periférico opera en modo carácter.

•Los archivos de dispositivos son usualmente nombrados indicando el tipo de dispositivo que son. La mayoría de terminales, por ejemplo, tienen un archivo de dispositivo con el nombre tty seguido por dos o más letras o números, tal como tty1, tty1A, o tty04. Las letras tty identifican al archivo como una terminal (tty es por teletype), y los números o letras identifican una terminal específica a la que es referida. Cuando se encuentran en el directorio llamado /dev, el nombre completo del archivo de dispositivo se convierte en /dev/tty01. El manejador del mouse conectado a su computadora se accesa a través del manejador /dev/mouse.