Академический Документы
Профессиональный Документы
Культура Документы
- Administracin de Dispositivos de E/S wertyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasdfghj klzxcvbnmqwertyuiopasdfghjklzxcvbn mqwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc
ndice: Principios de hardware de I/O -Dispositivos de I/O -Controladores de dispositivos -Conclusiones Principios de software -Objetivos del software de I/O -Manejadores de interrupciones -Manejador de dispositivos -Software de I/O independiente de los dispositivos -Espacio del usuario -Conclusiones Discos RAM Discos -Hardware de discos -Software para discos -Conclusiones Relojes -Hardware de reloj -Software de reloj -Manejador de reloj -Conclusiones Terminales -Hardware de terminales -Manejadores de terminales -Conclusiones
partculas. La orientacin en una direccin representa el valor binario 1, y la orientacin 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 informacin hasta casi tres millones (2,88 Mb). Un disco de 3y pulgadas encerrado en plstico rgido se denomina normalmente disquete pero puede llamarse tambin disco flexible. Entre los dispositivos de carcter se pueden mencionar: Mouse: Es el segundo dispositivo de entrada ms utilizado. El mouse o ratn 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 ratn. Monitores: El monitor pantalla de vdeo, es el dispositivo de salida ms comn. Hay algunos que forman parte del cuerpo de la computadora y otros estn separados de la misma. Existen muchas formas de clasificar los monitores, la bsica es en trmino de sus capacidades de color, pueden ser: Monocromticos, despliegan slo 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 monocromtico capaz de desplegar diferentes tonos de grises. Color: Los monitores de color pueden desplegar de 4 hasta 1 milln de colores diferentes Impresoras de Lnea: de lnea: Son rpidas y ruidosas. Tienen la desventaja de estar limitadas a la impresin de caracteres, por lo que no son apropiadas para aplicaciones donde los grficos son un ingrediente esencial del producto acabado. imprimen una lnea de puntos a la vez. Se alinean martillos similares a agujas sobre el ancho del papel. Tarjetas Perforadas: Haban, sido inventada en los aos de la revolucin industrial (finales del siglo XVIII) por el francs Jacquard y perfeccionado por el estadounidense Hermand Hollerith en 1890. Se usaron para acumular y procesar automticamente gran cantidad de datos. Durante dcadas, desde mediados de los cincuentas la tecnologa de las tarjetas perforadas se perfeccion con la implantacin de ms dispositivos con capacidades ms complejas. Dado que cada tarjeta contena en general un registro (Un nombre, direccin, etc.) el procesamiento de la tarjeta perforada se conoci tambin como procesamiento de registro unitario.
Controlador de dispositivos
Las unidades de entrada y salida constan por lo general de un componente mecnico y otro electrnico. El componente electrnico se llama controlador de dispositivo de adaptador. . La labor del controlador es convertir el flujo de bits en serie en un bloque de bytes y llevar a cabo cualquier correccin de errores necesaria. Lo comn es que el bloque de bytes ensamble, bit a bit, en un buffer dentro del controlador. Despus 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 tambin 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 seales utilizadas para modular la luz CRT para que esta se escriba en la pantalla. El controlador tambin genera las seales para que la luz CRT vuelva a realizar un trazo horizontal despus de terminar una lnea de rastreo, as como las seales para que se vuelva a hacer un trazo vertical despus de rastrear en toda la pantalla. De no ser por el controlador CRT, el programador del sistema operativo tendra que programar en forma explicita el rastreo anlogo del tubo de rayos catdicos. Con el controlador, el
3
sistema operativo inicializa ste con pocos parmetros, tales como el nmero de caracteres por lnea y el nmero de lneas 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 comunicacin 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 parmetros, los cuales tambin 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 interrupcin para permitir que el sistema operativo obtenga el control de la CPU y verifique los resultados de la operacin. La CPU obtiene los resultados y el estado del dispositivo al leer uno o ms bytes de informacin de los registros del controlador. Los controladores de dispositivos generalmente trabajan con voltajes de 5 y 12 volts con el dispositivo propiamente, y con la computadora a travs de interrupciones. Estas interrupciones viajan por el 'bus' de la computadora y son recibidos por el CPU el cual a su vez pondr en ejecucin algn programa que sabr qu hacer con esa seal. A ese programa se le llama 'manejador de disposito' (device driver). Algunas veces el mismo controlador contiene un pequeo programa en una memoria de solo lectura o en memoria de acceso aleatoria no voltil y re-escribible que interacta con el correspondiente manejador en la computadora. Por ejemplo, la terminal (CRT) tiene un 'chip' que se encarga de enviar cadenas de bits por medio de un cable serial que a su vez son recibidos por un controlador de puerto serial en la computadora. Este 'chip' tambin se encarga de leer secuencias de bits que agrupa para su despiegue en la pantalla o para ejecutar algunas funciones de control. Lo importante en todos estos dispositivos es que se debe ejercer un mecanismo para sincronizar el envo y llegada de datos de manera concurrente. Para intercambiar datos o seales entre la computadora y los controladores, muchas veces se usan registros o secciones predefinidas de la memoria de la computadora. A este esquema se le llama 'manejo de entrada - salida mapeado por memoria' (memory mapped I/O). Por ejmplo, para una IBM PC se muestran los vectores de interrupcin y las direcciones para la entrada -salida en la tabla 6.1. Direcciones de Mapeo de Entrada Salida Controlador Direccin(Hex) Reloj Teclado 040 - 043 060 - 063 Vector de Interrupcin 8 9 13 15 -
Disco Duro 320 - 32F Impresora 378 - 37F Monitor Mono Monitor Color 380 - 3BF 3D0 - 3DF
Disco Flexible
3F0 - 3F7
14
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 ms cerca posible del hardware. Solo si los niveles inferiores no pueden resolver el problema, se informa a los niveles superiores. Generalmente la recuperacin se puede hacer en un nivel inferior y de forma transparente. Otro aspecto clave son las transferencias sncronas (por bloques) o asncronas (controlada por interruptores): La mayora de la e / s es asncrona: la CPU inicia la transferencia y realiza otras tareas hasta una interrupcin. La programacin es ms fcil si la e / s es sncrona (por bloques): el programa se suspende automticamente hasta que los datos estn disponibles en el buffer. El S. O. se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario. Tambin 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.
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 ms o menos en responder a su peticin. (interrupt handler). Un manejador de interrupciones, tambin conocido como ISR (interrupt service routine o rutina de servicio de interrupcin), es una subrutina callback en un sistema operativo o en un controlador de dispositivo cuya ejecucin es desencadenada por la recepcin de una interrupcin. Los manejadores de instrucciones tienen una multitud de funciones, que varan basadas en el motivo por el cual la interrupcin fue generada y la velocidad en la cual el manejador de interrupciones completa su tarea. Estos manejadores pueden ser iniciados por interrupciones de hardware o de software, y son usados para servir a los dispositivos de hardware y transiciones entre modos protegidos de operacin como los llamados de sistema.
Manejadores de Dispositivos.
El sistema debe proveer los manejadores de dispositivos necesarios para los perifricos, as como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la informacin, los medios mecnicos, 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 tcnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos. La labor de un manejador de dispositivos es la de: Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo. Verificar la ejecucin de dichas solicitudes.
7
Si al recibir una solicitud el manejador est ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes.
La mayora 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 libreras en donde el usuario si tiene poder de decisin (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 impresin y correo electrnico. El spooling es una forma de trabajar con los dispositivos de e /s de uso exclusivo en un sistema de multiprogramacin: El ejemplo tpico lo constituye la impresora de lneas. 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.
DISCOS RAM
Utilizan una parte de la memoria principal asignada con anterioridad para almacenar los bloques. Tienen la ventaja del acceso instantneo: No hay demora rotacional o debida a las bsquedas. Son adecuados para el almacenamiento de programas o datos con accesos muy frecuentes. Los bloques de almacenamiento tienen el mismo tamao que en los discos reales. Cuando el manejador debe leer de o escribir en un bloque de un disco en RAM, calcula el lugar de la memoria donde se encuentra el bloque solicitado y lee o escribe en el mismo.
DISCOS
Hardware para discos. Los discos estn organizados en cilindros, pistas y sectores. El nmero tpico de sectores por pista vara entre 8 y 32 (o ms). Todos los sectores tienen igual nmero de bytes. Los sectores cercanos a la orilla del disco sern mayores fsicamente que los cercanos al anillo. Un controlador puede realizar bsquedas en una o ms unidades al mismo tiempo: Son las bsquedas traslapadas. Mientras el controlador y el software esperan el fin de una bsqueda en una unidad, el controlador puede iniciar una bsqueda 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. La capacidad de bsquedas traslapadas puede reducir considerablemente el tiempo promedio de acceso. http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO5.htm#ManDis
RELOJES
Los relojes son esenciales para el buen funcionamiento de cualquier sistema porque juegan un papel decisivo en la sincronizacin de procesos, en la calendarizacin de trabajos por lote y para la asignacin de turnos de ejecucin entre otras tareas relevantes. Generalmente se cuenta con dos relojes en el sistema: uno que lleva la hora y fecha del sistema y que oscila entre 50 y 60 veces por segundo y el reloj que oscila entre 5 y 100 millones de veces por segundo y que se encarga de enviar interrupciones al CPU de manera peridica. El reloj de mayor frecuencia sirve para controlar el tiempo de ejecucin de los procesos, para despertar los procesos que estn 'durmiendo' y para lanzar o iniciar procesos que fueron calendarizados. Para mantener la hora y fecha del sistema generalmente se usa un registro alimentado por una pila de alta duracin que almacena estos datos y que se programan de fbrica por primera vez. As,
9
aunque se suspenda la energa la fecha permanece. Para lanzar procesos (chequeo de tiempo ocioso de un dispositivo, terminacin del time slice de un proceso, etc), se almacena un valor en un registro (valor QUANTUM) el cual se decrementa con cada ciclo del reloj, y cuando llega a cero se dispara un proceso que ejecutar las operaciones necesarias (escoger un nuevo proceso en ejecucin, verificar el funcionamiento del motor del disco flexible, hacer eco de un caracter del teclado, etc).
HARDWARE DE RELOJ
Relojes programables, formados por tres componentes: un oscilador de cristal de cuarzo, un contador y un registro. Generan una seal peridica de gran precisin Modos de operacin habituales en un reloj programable: Modo de disparo nico: al poner en marcha el reloj se copia el valor del registro en el contador. En cada pulso el contador disminuye. Cuando el contador llega a 0, se produce una interrupcin, y se detiene hasta que el software lo vuelve a iniciar de forma explcita Modo de onda cuadrada: cuando el contador llega a 0 y se provoca una interrupcin, el registro se copia de forma automtica en el contador, y todo el proceso se repite otra vez Estas interrupciones peridicas se llaman tics de reloj Funciones principales: Registran la hora del da Evitan que un proceso monopolice la CPU
SOFTWARE DE RELOJ
El hardware slo genera interrupciones a intervalos conocidos El proceso se realiza en software mediante el manejador de reloj: Mantiene la hora del da Evita que los procesos tengan la CPU ms de lo debido Contabiliza el uso de la CPU Controla las alarmas para los procesos de usuario que lo solicitan (llamada al sistema alarm) Implementa cronmetros guardianes para el propio sistema (watchdogs) Ayuda a realizar resmenes, monitorizacin, estadsticas, . . . Debe realizar el proceso con rapidez (ya que se ejecutar varias veces por segundo, en cada tic de reloj) Controlar la hora del da Slo requiere incrementar un contador en cada tic de reloj Se deben contar .marcas. desde un punto de referencia (UNIX: 0:00, 1/1/1970). Tres ejemplos: Contador de 64 bits que cuenta marcas: 60Hz ) _9.8*109 aos (o 4.9*109 si hay bit de signo) Contador de 32 bits que cuenta segundos + contador auxiliar
10
de marcas (hasta 1 seg.): _ 136 aos ) _n 2106 Contador + hora inicial del sistema: cuenta tics desde el momento es que se puso en marcha el sistema. Control del tiempo de ejecucin de procesos Al iniciar un proceso, el plani_cador asigna a un contador el valor del quantum de ese proceso en tics de reloj En cada interrupcin del reloj ) el contador del quantum disminuye en 1 Contador con el valor del quantum = 0 ) se llama al plani_cador Contabilizar el uso de CPU Iniciar un segundo reloj cada vez que se inicia un proceso (ms precisa y ms costosa) Al parar el proceso, se determina durante cunto tiempo se ejecut Al producirse interrupciones este reloj se podra parar Asignar marcas al proceso actual (menos precisa por qu?) Una variable global apunta a la entrada de la tabla del proceso en ejecucin En cada tic de reloj se incrementa la variable en 1 Se contabiliza un tic entero sin tener en cuenta si el proceso lleg a consumirlo por completo. Alarmas Los procesos piden al S.O. que los informe en un instante det. Soluciones: Reloj fsico (si hay) por cada peticin Se simulan varios relojes con una tabla y un contador de alarma siguiente. Cronmetros guardianes (watchdogs) Los coloca el propio S.O. Por ejemplo: uso de la disquetera El mecanismo utilizado es el mismo que para las alarmas solicitadas por los usuarios Al agotarse el tiempo, se llama al procedimiento indicado Monitorizacin El S.O. puede monitorizar distintos factores: uso de memoria uso de CPU tiempo de E/S, etc. Muchas estadsticas se basan en el tiempo!
Manejador de reloj
Las principales funciones del software manejador del reloj son: Mantener la hora del da o tiempo real Evitar que los procesos se ejecuten durante mas 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 cronmetros guardianes de partes del propio sistema
11
Realizar resmenes, monitoreo y recoleccin de estadsticas El software manejador del reloj puede tener que simular varios relojes virtuales con un nico reloj fsico. http://ditec.um.es/so/apuntes/teoria/tema6.pdf http://itsco-informatica.blogspot.com/2009/04/sincronizacion-y-relojes.html http://www.monografias.com/trabajos15/sist-operativos/sist-operativos2.shtml#ENTRADA http://www.mitecnologico.com/Main/ManejadorDelReloj
TERMINALES
Hardware de terminales
Los sistemas originales UNIX no tenan consolas. En su lugar la gente se firmaba y corra programas a travs de terminales conectadas a los puertos serie de la computadora. Es bastante similar a usar un modem y un programa de terminal para marcar hacia un sistema remoto para hacer trabajo en modo texto. Las PCs actuales tienen consolas con grficos de alta calidad, pero la habilidad para establecer una sesin en un puerto serie todava existe en casi cualquier sistema operativo UNIX al da de hoy; FreeBSD no es la excepcin. Utilizando una terminal conectada a un puerto serie libre, usted puede accesar y correr cualquier programa de texto que podra correr normalmente en la consola o en una ventana xterm en el sistema X Window. Para el usuario corporativo, se pueden conectar muchas terminales a un sistema FreeBSD y ponerlas en los escritorios de sus empleados. Para un usuario casero, una computadora de reserva, como una IBM PC ms antigua o una Macintosh, puede ser una terminal cableada a una computadora ms poderosa corriendo FreeBSD. Puede convertir lo que de otra manera sera una computadora de un solo usuario en un poderoso sistema de usuarios mltiples. Terminales tontas Terminales tontas son piezas de hardware especializadas que le permiten conectar a computadoras a travs de lneas serie. Son llamadas tontas porque solo tienen poder computacional suficiente para desplegar, enviar y recibir texto. No puede ejecutar ningn programa en ellas. Es la computadora a la cual se conectan la que tiene todo el poder para correr editores de texto, compiladores, correo electrnico, juegos, y dems. Existen cientos de tipos de terminales tontas hechas por muchos fabricantes, incluyendo VT100 de Digital Equipment Corporation y WY-75 de Wyse. Cualquier tipo funcionar con FreeBSD. Algunas terminales superiores pueden incluso desplegar grficos, pero solo ciertos paquetes de software pueden tomar ventaja de estas funciones avanzadas. Las terminales tontas son populares en ambientes de trabajo donde los trabajadores no necesitan acceso a aplicaciones grficas como las que provee el sistema X Window. PCs actuando como terminales Si una terminal tonta tiene apenas la habilidad para desplegar, enviar y recibir texto, entonces ciertamente cualquier computadora personal de reserva puede ser una terminal tonta. Todo lo que necesita es el cable apropiado y algn software de emulacin de terminal para correr en la computadora.
12
Tal configuracin es popular en hogares. Por ejemplo, si su consorte se encuentra ocupado trabajando en la consola de su sistema FreeBSD, usted puede realizar algn trabajo en modo texto al mismo tiempo desde una computadora personal menos poderosa conectada como una terminal al sistema FreeBSD. Terminales X Las terminales X son el tipo ms sofisticado de terminal disponible. En lugar de conectar a un puerto serie, usualmente se conectan a una red como Ethernet. En lugar de ser relegadas a aplicaciones de modo texto pueden desplegar aplicaciones X. Terminales grficos Un terminal grfico puede exhibir imgenes tan bien como texto. Los terminales grficos son divididos en terminales modo de vector, y modo de trama (rasterizado). Una exhibicin de modo vectorial dibuja directamente lneas en la superficie de un tubo de rayos catdicos bajo el control del sistema de computador husped. Las lneas son formadas continuamente, pero puesto que la velocidad de la electrnica es limitada, el nmero de lneas concurrentes que pueden ser exhibidas a un tiempo es limitado. Las exhibiciones del modo vectorial fueron histricamente importantes pero no son usadas ya. Prcticamente todas las representaciones grficas modernas son de modo rasterizado, descendiendo de las tcnicas de exploracin del cuadro usadas para la televisin, en la cual los elementos visuales son un arreglo rectangular de pxels. Puesto que la imagen de trama es solamente perceptible al ojo humano como un todo por un muy breve perodo, la trama debe ser refrescada muchas veces por segundo para dar el aspecto de una exhibicin persistente. Las demandas electrnicas de refrescar la memoria de exhibicin signific que los terminales grficos fuesen desarrollados mucho ms posteriormente que los terminales de texto, e inicialmente costaron mucho ms. Hoy, la mayora de los terminales son grficos, es decir, pueden mostrar imgenes en la pantalla. El trmino moderno para el terminal grfico es "cliente ligero". Tpicamente, un cliente ligero usa un protocolo como el RDP para Microsoft Windows, o el X11 para los terminales Unix. El ancho de banda necesario depende del protocolo usado, de la resolucin, y de la profundidad del color. Los terminales grficos modernos permiten la exhibicin de imgenes en color, y de texto en varios tamaos, colores, y fuentes (tipografas).
Manejador de terminales.
El funcionamiento del manejador de terminales son las rutinas send y receive encargadas de enviar y recibir mensajes Minix. Cuando un proceso llama a una de estas funciones se queda bloqueado esperando contestacin. En el caso de un manejador de dispositivo unitarea, cuando al recibir un mensaje se queda en ejecucin no puede recibir otro mensaje de la rutina de interrupcin (de teclado por ejemplo). Por esto el mensaje que enva esta rutina se realiza por medio de interrupt que chequea unos indicadores para ver el estado de un proceso y retrasar el mensaje. El contenido de este cdigo se encuentra en proc.c. Los procesos (programas de usuario y shell) que se benefician de las funciones del manejador se comunican con ste, principalmente, a travs del File System que a su vez lo hace con el manejador mediante mensajes entre los que acepta (cada uno con una estructura particular): 1 Lectura de caracteres desde la terminal 2 Escritura de caracteres en la terminal 3 Fijacin del modo de la terminal (IOCTL)
13
4 Carcter disponible para E/S (del procedimiento de interrupcin) 5 Cancelacin de la solicitud de lectura anterior (del sistema de archivo cuando ocurra una seal) 6 Abrir dispositivo 7 Cerrar dispositivo Frecuentemente los manejadores de terminales soportan operaciones tales como: Mover el cursor hacia arriba, abajo, a la izquierda o a la derecha una posicin. Mover el cursor a x y. Insertar un carcter o una lnea en el cursor. Eliminar un carcter o una lnea en el cursor. Recorrer la pantalla hacia arriba o hacia abajo n lneas. Limpiar la pantalla desde el cursor hacia el final de la lnea o hasta el final de la pantalla. Trabajar en modo de video inverso, subrayado, parpadeo o normal. Crear, construir, mover o controlar las ventanas. http://es.wikipedia.org/wiki/Terminal_(inform%C3%A1tica) http://www.freebsd.org/doc/es/books/handbook/term.html http://ugalde-sistemasoperativos.blogspot.com/2009/12/562-manejadores.html http://sopa.dis.ulpgc.es/ii-dso/lecminix/manejado/tty/tty.pdf
14