Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Intro2

4,213 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Intro2

  1. 1. Perif´ricos eJavier Gil. D.F.I.S.T.S. Curso 2005-2006
  2. 2. ´Indice general1. Presentaci´n de la asignatura o 6 1.1. Advertencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2. Un poco de historia . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3. Dos perspectivas . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4. Plan del curso . . . . . . . . . . . . . . . . . . . . . . . . . . . 122. Consideraciones generales sobre la entrada/salida 13 2.1. El problema general de la entrada/salida . . . . . . . . . . . . 13 2.1.1. Operaci´n as´ o ıncrona . . . . . . . . . . . . . . . . . . . 13 2.1.2. Diferencia de velocidad . . . . . . . . . . . . . . . . . . 14 2.2. Interfaces de E/S . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3. E/S programada . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4. E/S guiada por interrupciones . . . . . . . . . . . . . . . . . . 19 2.5. Sobre la latencia de las interrupciones . . . . . . . . . . . . . . 21 2.6. Consideraciones sobre el uso de buffers . . . . . . . . . . . . . 23 2.7. Otros modelos de colas . . . . . . . . . . . . . . . . . . . . . . 25 2.8. Gesti´n de interrupciones en el AT . . . . . . . . . o . . . . . . 27 2.8.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . 27 2.8.2. Preparaci´n y control del 8259 . . . . . . . . o . . . . . . 29 2.8.3. Implantaci´n . . . . . . . . . . . . . . . . . o . . . . . . 32 2.8.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . 333. El teclado 35 3.1. Secuencia de sucesos . . . . . . . . . . . . . . . . . . . . . . . 35 3.2. Tipos de teclados . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.3. El teclado perfecto . . . . . . . . . . . . . . . . . . . . . . . . 38 3.4. Acceso al teclado a trav´s de la BIOS e . . . . . . . . . . . . . . 41 3.5. El controlador de teclado . . . . . . . . . . . . . . . . . . . . . 44 3.6. Estructura del buffer de teclado . . . . . . . . . . . . . . . . . 46 3.7. El teclado y el antiguo DOS . . . . . . . . . . . . . . . . . . . 48 1
  3. 3. 4. Terminales 49 4.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 49 4.2. Tipos de terminales . . . . . . . . . . . . . . . . . . . . . . . . 50 4.2.1. Terminales por interfaz de memoria . . . . . . . . . . . 51 4.2.2. Terminales por interfaz serie . . . . . . . . . . . . . . . 51 4.2.3. Terminales ANSI . . . . . . . . . . . . . . . . . . . . . 52 4.3. Modos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.4. La base de datos y librer´ termcap . . . . . . . . . . . . . . . ıa 55 4.4.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . o 55 4.4.2. Preparaci´n . . . . . . . . . . . . . . . . . . . . . . . . o 55 4.4.3. B´ squeda de una descripci´n de terminal . . . . . . . . u o 56 4.4.4. Extrayendo informaci´n del buffer . . . . . . . . . . . . o 57 4.4.5. Preparaci´n . . . . . . . . . . . . . . . . . . . . . . . . o 59 4.4.6. Env´ de relleno . . . . . . . . . . . . . . . . . . . . . ıos 59 4.4.7. Forma de especificar los par´metros . . . . . . . . . . . a 60 4.4.8. El lenguaje de codificaci´n de par´metros . . . . . . . o a 60 4.4.9. Enviar ´rdenes con par´metros . . . . . . . . . . . . . o a 62 4.5. La librer´ curses.h . . . . . . . . . . . . . . . . . . . . . . . . ıa 65 4.5.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . o 65 4.5.2. Funciones b´sicas . . . . . . . . . . . . . . . . . . . . . a 66 4.5.3. Funciones comunes . . . . . . . . . . . . . . . . . . . . 68 4.5.4. Atributos y colores . . . . . . . . . . . . . . . . . . . . 70 4.5.5. Caracteres gr´ficos . . . . . . . . . . . . . . . . . . . . a 73 4.5.6. Conexi´n y puesta en marcha de una terminal bajo Linux o 735. Interfaz serie 75 5.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . o . . . . . . 75 5.2. Unidad simple de datos . . . . . . . . . . . . . . . . . . . . . . 75 5.3. Paridad y baudios . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.4. Serializaci´n . . . . . . . . . . . . . . . . . . . . . . o . . . . . . 77 5.5. La interfaz de programaci´n . . . . . . . . . . . . . o . . . . . . 77 5.5.1. Direcciones base . . . . . . . . . . . . . . . . . . . . . . 77 5.5.2. Los buffers de recepci´n y transmisi´n . . . o o . . . . . . 78 5.5.3. El registro de habilitaci´n de interrupciones o . . . . . . 78 5.5.4. El registro de identificaci´n de interrupci´n . o o . . . . . . 79 5.5.5. Registro de formato de datos . . . . . . . . . . . . . . 81 5.5.6. Registro de control de modem . . . . . . . . . . . . . . 81 5.5.7. Registro de estado de serializaci´n . . . . . . o . . . . . . 82 5.5.8. Registro de estado del modem . . . . . . . . . . . . . . 82 5.5.9. Registro auxiliar . . . . . . . . . . . . . . . . . . . . . 82 5.6. Un programa de ejemplo . . . . . . . . . . . . . . . . . . . . . 83 2
  4. 4. 5.7. La interfaz V.24 . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.7.1. Caracter´ısticas generales . . . . . . . . . . . . . . . . . 84 5.7.2. Tipos de conexi´n . . . . . . . . . . . o . . . . . . . . . . 86 5.7.3. De vuelta a los registros de la UART . . . . . . . . . . 87 5.8. Dispositivos apuntadores . . . . . . . . . . . . . . . . . . . . . 87 5.8.1. Ratones . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.8.2. Otros dispositivos apuntadores . . . . . . . . . . . . . . 906. Impresoras 91 6.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . o . . . . . 91 6.2. Tecnolog´ de impresi´n . . . . . . . . . . . . . . . . ıas o . . . . . 91 6.2.1. Tecnolog´ de impacto . . . . . . . . . . . . . ıa . . . . . 92 6.2.2. Tecnolog´ de inyecci´n de tinta . . . . . . . . ıa o . . . . . 92 6.2.3. Tecnolog´ laser . . . . . . . . . . . . . . . . . ıa . . . . . 93 6.2.4. Tecnolog´ de sublimaci´n de tinta s´lida . . . ıa o o . . . . . 93 6.3. Programaci´n del puerto paralelo . . . . . . . . . . . o . . . . . 93 6.3.1. Estructura de los registros . . . . . . . . . . . . . . . . 93 6.3.2. Estructura de la comunicaci´n . . . . . . . . . o . . . . . 94 6.3.3. Conexionado . . . . . . . . . . . . . . . . . . . . . . . 99 6.4. Funciones BIOS para control del puerto paralelo . . . . . . . . 101 6.5. Problem´tica de la programaci´n de impresoras . . . a o . . . . . 102 6.5.1. Introducci´n . . . . . . . . . . . . . . . . . . . o . . . . . 102 6.5.2. Las impresoras de la familia Proprinter XL24 . . . . . 103 6.6. Instalaci´n y administraci´n de impresoras en UNIX o o . . . . . 105 6.6.1. Introducci´n . . . . . . . . . . . . . . . . . . . o . . . . . 105 6.6.2. Orden lp . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6.6.3. Filtros de impresi´n . . . . . . . . . . . . . . o . . . . . 106 6.6.4. Estado del subsistema lp . . . . . . . . . . . . . . . . . 107 6.6.5. Acciones administrativas . . . . . . . . . . . . . . . . . 107 6.6.6. Otras acciones . . . . . . . . . . . . . . . . . . . . . . . 110 6.7. Particularidades de la impresi´n en Linux . . . . . . o . . . . . 111 6.7.1. Introducci´n . . . . . . . . . . . . . . . . . . . o . . . . . 111 6.7.2. Impresi´n usando lpr . . . . . . . . . . . . . . o . . . . . 111 6.7.3. El programa lpc . . . . . . . . . . . . . . . . . . . . . . 113 6.7.4. Impresi´n de tipos concretos de archivos . . . o . . . . . 113 6.7.5. Los filtros m´gicos y el archivo /etc/printcap . a . . . . . 1157. El lenguaje PostScript 116 7.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 o 7.2. PostScript como lenguaje de programaci´n . . . . . . . . . . . 117 o 7.3. La pila. Aritm´tica . . . . . . . . . . . . . . . . . . . . . . . . 118 e 3
  5. 5. 7.4. Primeros programas en PostScript . . . . . . . . . . . . . . . . 119 7.5. Procedimientos y variables . . . . . . . . . . . . . . . . . . . . 122 7.5.1. Diccionarios . . . . . . . . . . . . . . . . . . . . . . . . 122 7.5.2. Definici´n de variables . . . . o . . . . . . . . . . . . . . 122 7.5.3. Definici´n de procedimientos . o . . . . . . . . . . . . . . 122 7.6. Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.7. Sistemas de coordenadas . . . . . . . . . . . . . . . . . . . . . 124 7.8. Estructuras de control del programa . . . . . . . . . . . . . . . 125 7.8.1. Comparaciones . . . . . . . . . . . . . . . . . . . . . . 125 7.8.2. Condicionales . . . . . . . . . . . . . . . . . . . . . . . 126 7.8.3. Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 7.9. Vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 7.10. Ejercicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1288. Unidades de disco (I) 130 8.1. Notas hist´ricas . . . . . . . . . . . . . . . . o . . . . . . . . . . 130 8.2. La crisis de las memorias masivas . . . . . . . . . . . . . . . . 132 8.3. Fundamentos f´ ısicos . . . . . . . . . . . . . . . . . . . . . . . . 134 8.3.1. Ley de Biot-Savart . . . . . . . . . . . . . . . . . . . . 134 8.3.2. Tipos de materiales . . . . . . . . . . . . . . . . . . . . 135 8.4. Geometr´ y par´metros din´micos del disco ıa a a . . . . . . . . . . 139 8.5. El teorema de Salzberg . . . . . . . . . . . . . . . . . . . . . . 142 8.6. Cambios en la geometr´ y en la interfaz . . ıa . . . . . . . . . . 143 8.7. Fiabilidad y prestaciones . . . . . . . . . . . . . . . . . . . . . 147 8.8. El tama˜ o del sector . . . . . . . . . . . . . n . . . . . . . . . . 1489. Unidades de disco (II) 150 9.1. Jerarqu´ de almacenamiento . . . . . . . . . . . ıas . . . . . . . 150 9.1.1. M´ ltiples niveles . . . . . . . . . . . . . . u . . . . . . . 152 9.1.2. Dos ejemplos . . . . . . . . . . . . . . . . . . . . . . . 153 9.2. Sistemas de discos redundantes . . . . . . . . . . . . . . . . . 154 9.2.1. RAID 0: Sistema no redundante . . . . . . . . . . . . . 155 9.2.2. RAID 1: Discos espejo . . . . . . . . . . . . . . . . . . 156 9.2.3. RAID 2: Estilo memoria ECC . . . . . . . . . . . . . . 156 9.2.4. RAID 3: Paridad en un unico disco . . . . ´ . . . . . . . 156 9.2.5. RAID 4: Paridad por bloques . . . . . . . . . . . . . . 156 9.2.6. RAID 5: Paridad por bloques distribuidos . . . . . . . 157 9.2.7. RAID 6: C´digos robustos . . . . . . . . . o . . . . . . . 157 9.3. Comparaci´n de sistemas RAID . . . . . . . . . . o . . . . . . . 157 9.4. Gesti´n del espacio en disco . . . . . . . . . . . . o . . . . . . . 158 9.5. Memorias intermedias . . . . . . . . . . . . . . . . . . . . . . 162 4
  6. 6. 10.Unidades de disco (III) 164 10.1. Intefaces para acceso a unidades de disco . . . . . . . . . . . . 164 10.1.1. Unidades IDE . . . . . . . . . . . . . . . . . . . . . . . 164 10.1.2. Interfaz SCSI . . . . . . . . . . . . . . . . . . . . . . . 165 10.1.3. Serie versus Paralelo . . . . . . . . . . . . . . . . . . . 166 10.2. Acceso a discos mediante BIOS . . . . . . . . . . . . . . . . . 166 10.2.1. Estado de la unidad . . . . . . . . . . . . . . . . . . . 166 10.2.2. La DDPT . . . . . . . . . . . . . . . . . . . . . . . . . 168 10.2.3. Lectura y escritura de sectores del disco . . . . . . . . 168 10.3. Acceso directo a la controladora IDE . . . . . . . . . . . . . . 16911.Otros medios de almacenamiento 173 11.1. Almacenamiento magneto-´ptico . . . . . o . . . . . . . . . . . . 173 11.2. Almacenamiento ´ptico y hologr´fico . . o a . . . . . . . . . . . . 174 11.3. Almacenamiento con resoluci´n at´mica o o . . . . . . . . . . . . 175 11.4. Dispositivos micro-electromec´nicos . . . a . . . . . . . . . . . . 17612.Dispositivos de visualizaci´n o 178 12.1. Introducci´n . . . . . . . . . . . . . . . . . . . o . . . . . . . . . 178 12.2. Formaci´n de las im´genes en el monitor . . . o a . . . . . . . . . 178 12.3. Factores ergon´micos, visibilidad y colores . . o . . . . . . . . . 180 12.3.1. Agudeza visual . . . . . . . . . . . . . . . . . . . . . . 180 12.3.2. Im´genes fluctuantes . . . . . . . . . . a . . . . . . . . . 181 12.3.3. Colores . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 12.4. Pantallas planas . . . . . . . . . . . . . . . . . . . . . . . . . . 183 12.5. Estructura general de los adaptadores de video . . . . . . . . . 185 12.6. Estructura de la RAM de video . . . . . . . . . . . . . . . . . 189 12.7. El adaptador VGA . . . . . . . . . . . . . . . . . . . . . . . . 191 12.7.1. Caracter´ ısticas generales . . . . . . . . . . . . . . . . . 191 12.7.2. El modo texto de la VGA . . . . . . . . . . . . . . . . 192 12.7.3. Modos gr´ficos . . . . . . . . . . . . . a . . . . . . . . . 195 12.7.4. Los bit-planes . . . . . . . . . . . . . . . . . . . . . . . 198 12.7.5. La especificaci´n VESA . . . . . . . . o . . . . . . . . . 202 12.8. Algoritmos gr´ficos . . . . . . . . . . . . . . . a . . . . . . . . . 208 5
  7. 7. Cap´ ıtulo 1Presentaci´n de la asignatura o1.1. Advertencia La asignatura de Perif´ricos ha evolucionado mucho a lo largo de los ulti- e ´mos a˜ os, tratando siempre de buscar un dif´ compromiso entre teor´ n ıcil ıay pr´ctica, y tratando tambi´n de no adherirse a implementaciones parti- a eculares, sino de proporcionar conocimientos b´sicos generales, aplicables en amultitud de situaciones, as´ como descripciones f´ ı ısicas de las tecnolog´ im- ıasplicadas. Por estos motivos, y en primer lugar, deber´ quedar claro de lo ıaque no va a tratar esta asignatura: no vamos a aprender a montar ordenado-res por piezas, a colocar tarjetas de ampliaci´n o a configurar controladores osoftware.1.2. Un poco de historia Aunque los perif´ricos como tales son un producto de la era inform´tica, e anacidos a partir de unas necesidades concretas, tambi´n es cierto que algunos ede ellos tiene sus ancestros en las tecnolog´ que emergieron a ra´ de la ıas ızrevoluci´n industrial. o Los perif´ricos pueden ser divididos seg´ n su uso en perif´ricos de entra- e u eda/salida y perif´ricos de almacenamiento. De entre los primeros, los m´s e aobvios son los teclados, provenientes directamente de las m´quinas de es- acribir, de las cuales conservan la disposici´n de las teclas, y aunque en las oultimas d´cadas se han a˜ adido algunas mejoras, este perif´rico sigue sien-´ e n edo esencialmente el mismo que defini´ IBM para sus estaciones de trabajo oen los a˜ os sesenta. No obstante, debemos destacar las m´quinas de oficina n adise˜ adas por Honey-Well y la propia IBM, como sumadoras y artefactos n 6
  8. 8. mec´nicos para la cumplimentaci´n de formularios, que pueden verse como a oimplementaciones mec´nicas o electro-mec´nicas de un software a´ n muy a a uprimitivo. Pero, volviendo a los perif´ricos de entrada-salida, hay que decir que en los eprimeros a˜ os de la era inform´tica estos consist´ casi siempre en desarro- n a ıanllos espec´ ıficos para los ordenadores y sistemas operativos fabricados por lascompa˜´ pioneras a partir de los a˜ os cincuenta. Por ejemplo, recu´rdense nıas n elas perforadoras y lectoras de tarjetas. Directamente relacionados con los teclados encontramos desde los primerosa˜ os del desarrollo de los ordenadores los dispositivos de impresi´n, derivados n ode las imprentas existentes desde el siglo XV pero que pueden asimismo versecomo un desarrollo inverso al del teclado, y conceptualmente muy pr´ximo. oAs´ mientras que en este ultimo una acci´n mec´nica provoca una se˜ al ı, ´ o a nel´ctrica, en el primero es la se˜ al el´ctrica la que provoca la acci´n mec´nica. e n e o aPronto llegaron refinamientos para hacerlas m´s veloces y fiables, y para aincrementar la calidad del texto impreso. Las primeras impresoras matricialesaumentaron el n´ mero de elementos de la matriz de impacto, y redujeron el utama˜ o de las partes m´viles, con el fin de disminuir las inercias. Cuando esto n ono fu´ suficiente, se desarrollaron impresoras de l´ e ıneas, que multiplicaban poruno o dos ´rdenes de magnitud la velocidad de impresi´n. El paso de una o oinform´tica profesional a una inform´tica personal, con la correspondien- a ate expansi´n a ambientes que hab´ permanecido ajenos hasta entonces, o ıancomo las f´bricas y oficinas, cre´ dos necesidades fundamentales: silencio a oy velocidad. Estas necesidades fueron cubiertas mediante el desarrollo deimpresoras de inyecci´n de tinta e impresoras laser, que no han cesado de omejorar desde entonces. A finales de los a˜ os sesenta, la inform´tica estaba lo suficientemente ma- n adura como para dar un paso cualitativo importante con un aumento de lainteractividad entre los operadores humanos y el software. Hasta entonces,´sta se hab´ limitado a la emisi´n de mensajes a trav´s de una impresora ene ıa o el´ ınea, pero en la ´poca a la que nos referimos ya era posible usar monitores, econ los que se consigui´ dar una imagen electr´nica del espacio de trabajo o oque el usuario hasta entonces hab´ usado como un modelo conceptual de su ıarelaci´n con la m´quina: ahora por fin era posible ver ese espacio. Durante o aaproximadamente una d´cada, la tecnolog´ no tuvo capacidad m´s que para e ıa amostrar im´genes textuales, con una resoluci´n limitada. Podemos decir que a odel modelo abstracto en la mente del operador se hab´ pasado a un modelo ıa 7
  9. 9. basado en palabras, cuya representaci´n f´ o ısica se manifestaba a trav´s de un emonitor. Pero a finales de los a˜ os setenta, en los laboratorios de Xerox se dise˜ o una n nnueva forma de enfocar las relaciones entre usuarios y m´quinas. El nuevo acamino abierto sustitu´ la representaci´n textual por una representaci´n ıa o osimb´lica basada en iconos. Consecuentemente, hubo que sustituir el disposi- otivo de entrada b´sico, el teclado, por un nuevo perif´rico que se adaptara de a eforma m´s natural a la concepci´n que acababa de nacer. De esta forma se a odise˜ ´ el popular rat´n. Desgraciadamente, esta representaci´n pictogr´fica no o o aes conceptualmente inferior a la representaci´n textual, a la que ha sustituido ocasi completamente, impidiendo de paso el que la primera se desarrolle haciauna mejor usabilidad. El motivo es que la representaci´n textual puede usarse ocomo interfaz universal entre el usuario y los programas y entre programasdistintos, mientras que no existe una interfaz general que permite conectariconos. El dise˜ o original del sistema operativo UNIX tuvo por lo que respecta na esta exposici´n dos aspectos destacables. Por una parte, el dise˜ o con- o ntempl´ desde un primer momento la interconexi´n de ordenadores, formando o oredes. Esto no s´lo implica una notable visi´n de futuro, a˜ o 1969, sino que o o nindica un estado tecnol´gico que permit´ producir puertos de comunicacio- o ıanes y sistemas de modulaci´n-demodulaci´n. El segundo aspecto destacable o oes la concepci´n de los perif´ricos desde un nivel conceptual superior como o earchivos del sistema, donde era posible leer y escribir una corriente de octe-tos. La informaci´n que fluye a y desde estos archivos carece para el sistema ooperativo de todo significado: son los programas de aplicaci´n los que inter- opretan los datos seg´ n sus necesidades. u Sin duda, son los sistemas de almacenamiento masivo los que han tenidouna influencia m´s determinante en el desarrollo de la inform´tica de las a aultimas d´cadas. Los origenes los encontramos en el computador ABC (A-´ ethanasoff-Berry Computer) construido entre los a˜ os 1937-42. Aunque no nfu´ el primer computador digital, fue el primero en donde los elementos de ec´mputo estaban separados de los elementos de memoria. Estos se realizaban omediante condensadores montados en grandes discos de baquelita. A esteantecedente temprano siguieron las memorias de n´ cleo de ferrita, y en ambos ucasos eran precisos circuitos de refresco que evitaran la p´rdida de los datos. e 8
  10. 10. Por eso tiene gran importancia el desarrollo por IBM en los a˜os cincuen- nta de memorias permanentes realizadas sobre un material ferromagn´tico al eque se somete localmente a un campo magn´tico superior al campo coerciti- evo del mismo. Este material ferromagn´tico se deposita sobre una superficie eno magn´tica, como el vidrio o la baquelita. Naci´ de esta forma el disco e oduro, y con ´l se multiplic´ por varios ´rdenes de magnitud la cantidad de e o oinformaci´n que pod´ almacenarse de forma permanente. Durante dos d´ca- o ıa edas, este fu´ un perif´rico costoso con una utilidad limitada a aplicaciones e econcretas. Por este motivo, en el dise˜ o del ordenador personal no estaba nprevisto un disco duro, aunque s´ una o dos unidades de discos flexibles, con ıcapacidades de 160 kilobytes. Esta fu´ una estimaci´n excesivamente con- e oservadora, aunque este juicio es ahora f´cil de hacer. En realidad, no hab´ a ıaraz´n para pensar que discos de ese tama˜ o no pod´ satisfacer las necesi- o n ıandades de almacenamiento normales. Lo que sucedi´ fu´ que la posibilidad de o ealmacenar y compartir informaci´n creo la necesidad de hacerlo, y con ella la onecesidad del software necesario para producirla y gestionarla, que a su vezdeb´ ser almacenado en alg´ n sitio. Pronto se a˜ adi´ un disco duro de 10 ıa u n oMegaoctetos, que creci´ enseguida a 20 Megaoctetos. En los veinte ultimos o ´a˜ os, esta cantidad ha crecido en m´s de dos ´rdenes de magnitud, y no n a oparece que la tendencia remita. Para satisfacerla, se han desarrollado inter-faces adecuadas para acceder a los discos r´ıgidos de forma r´pida, memorias aintermedias para acelerar a´ n m´s el proceso, unidades de disco flexible m´s u a aprecisas, capaces de alcanzar los centenares de Megaoctetos de capacidad,y, en fin, otros m´todos para almacenamiento masivo basados en fen´menos e omagneto-´pticos u ´pticos. Al mismo tiempo, se ha mejorado sustancialmen- o ote la velocidad de operaci´n de los medios de almacenamiento secuenciales otradicionales, y se vislumbran ya capacidades superiores de almacenamiento,y nuevos y prometedores m´todos, como las memorias hologr´ficas. e a Por otro lado, la potencia creciente de computaci´n asociada a cada nueva ogeneraci´n de procesadores ha permitido la exploraci´n pr´ctica del nuevo o o amundo del reconocimiento del habla y la realidad virtual. La primera, puedeconvertir en obsoletos los sistemas de entrada tradicionales. La comunicaci´n omediante el habla permitir´ una interacci´n m´s f´cil y r´pida, pero a este a o a a areto han de hacer frente a´ n las nuevas generaciones de sistemas operativos, uaunque OS/2 di´ el primer paso en esa direcci´n, al incorporar reconoci- o omiento del habla de forma nativa. Otros sistemas, como BeOS, han sido di-se˜ ados espec´ n ıficamente pensando en las ingentes cantidades de informaci´n oque habr´n de ser almacenadas y procesadas. a 9
  11. 11. Esta potencia de c´lculo puede usarse asimismo para explorar una nueva arepresentaci´n del espacio conceptual que usa el ser humano para comuni- ocarse con la m´quina, y representar las operaciones que hace sobre ella en aun espacio tridimensional virtual. Pero para que esto suceda, es preciso eladvenimiento de una nueva generaci´n de perif´ricos, como guantes t´ctiles o e ay cascos de visi´n estereosc´pica con sonido integrado. o o Los perif´ricos juegan de esta forma un papel determinante en el desa- errollo del software, y en concreto de los sistemas operativos. Tambi´n eneel desarrollo de las nuevas generaciones de procesadores. Ya que, por unaparte, estimular´n el desarrollo de los primeros 1 , que a su vez, al acomodar ade forma natural nuevos perif´ricos traer´n consigo mejoras y refinamientos e aen estos ultimos. En cuanto a los procesadores, es obvio que habr´n de dar ´ arespuesta a los nuevos retos, incrementando nuevamente su potencia. Y noolvidemos que, a otro nivel, el de los programas de aplicaci´n, tambi´n se o eproducir´ una revoluci´n en la forma de concebirlos 2 . a o1.3. Dos perspectivas Antes de entrar en materia, conviene tomar cierta distancia, y reflexionarsobre los perif´ricos en general. Una forma de hacerlo es indagando sobre elas relaciones entre tres elementos: La potencia de c´lculo disponible en los asistemas inform´ticos, el dise˜ o de los Sistemas Operativos, y los Perif´ri- a n ecos. Pueden identificarse relaciones estrechas entre cualquier par de ellos.Centr´monos para empezar en la pareja Sistema Operativo - Perif´ricos. El e edise˜ o de los primeros est´ determinado por las caracter´ n a ısticas de los segun-dos. En concreto, con su escasa velocidad en comparaci´n con la velocidad de oc´lculo y en el hecho de que los perif´ricos funcionan de forma asincr´nica con a e oel sistema. Es decir, el Sistema no puede prever que, un milisegundo despu´s, eun perif´rico requerir´ su atenci´n. En los casos extremos, la necesidad de e a oatender a un perif´rico en un tiempo acotado y peque˜ o puede tener un im- e npacto determinante en el dise˜ o de todo el Sistema Operativo. Por ejemplo, nen el Sistema Operativo Solaris el n´ cleo puede ser expropiado, garantizan- udo de esta forma que ciertos perif´ricos ser´n atendidos inmediatamente. En e asentido inverso, la influencia es tambi´n determinante. Los perif´ricos tienen e euna parte f´ısica y sobre esa parte f´ısica se interacciona mediante unos proto-colos convenidos. El Sistema Operativo debe por supuestos adaptarse a estos 1 v´ase por ejemplo el conjunto de instrucciones MMX que introdujo Intel e 2 Siempre que se produzca un cambio igual de radical en la forma y las herramientaspara producir programas 10
  12. 12. protocolos, de forma que los programas de aplicaci´n puedan sacar provecho oen su relaci´n con los perif´ricos. Otras veces, el Sistema Operativo provee o epautas para el dise˜ o de los perif´ricos. Por ejemplo, los perif´ricos Plug and n e ePlay deben ser capaces de ofrecer al Sistema Operativo las informaciones que´ste necesite.e Reflexionemos ahora sobre la pareja Potencia de c´lculo - Perif´ricos. Es a eusual que la potencia de c´lculo disponible no sea suficiente para acomodar ade forma adecuada ciertos perif´ricos. Entonces, se tiende a delegar en el epropio perif´rico parte de la potencia de c´lculo. Existen muchos ejemplos: e adesde la gesti´n del disco que realiza una controladora IDE, pasando por la ocierta inteligencia que se deposita en un subsistema SCSI hasta las tarjetasgr´ficas sofisticadas con potencias de c´lculo totalmente equiparables a la de a ala propia UCP. En sentido inverso, tambi´n pueden encontrase relaciones. ePor ejemplo, el control del ordenador por voz no fu´ posible hasta disponer ede potencia de c´lculo suficiente. a Visto desde el punto de visto cronol´gico, podemos identificar cuatro fases oen el desarrollo de los perif´ricos. En la primera fase, no existe realmente ediferencia entre el perif´rico y el instrumento de c´mputo. Esta es la ´poca de e o elos artefactos mec´nicos y electromec´nicos hasta cierto punto programables. a a En una segunda fase, ya con el modelo de von Neumann implementado, seprodujo la separaci´n entre los perif´ricos y los dispositivos de c´lculo. En o e aesta fase, los perif´ricos son a´ n casi totalmente pasivos. e u En la tercera fase, la potencia de c´lculo comienza a distribuirse entre alos perif´ricos: controladores de disco inteligentes, gestores para los buses, eaceleradoras gr´ficas que gestionan decenas de Megabytes de RAM, por poner aunos ejemplos. Finalmente, se alcanza la cuarta fase cuando, de nuevo, se produce una con-vergencia entre los dispositivos de c´lculo y los perif´ricos. Nos encontramos a eahora en los albores de esta fase, con el dise˜ o y primeras implementacio- nnes de los sistemas operativos distribuidos, el almacenamiento distribuido dela informaci´n, la migraci´n transparente de procesos entre m´quinas y, en o o ageneral, con la compartici´n de recursos a trav´s de las redes y la gesti´n o e odistribuida de esos recursos. 11
  13. 13. 1.4. Plan del curso Teniendo en mente la intenci´n de ofrecer conocimientos generales basados oen modelos o descripciones de la tecnolog´ y evitar en lo posible implemen- ıa,taciones particulares, el curso tendr´ cuatro bloques bien diferenciados. a En el primero de ellos, se estudiar´ el problema general de la entrada/salida, alas estrategias a las que recurren los sistemas operativos para dar respuestaeficiente a las necesidades espec´ ıficas de los perif´ricos ( atenci´n as´ e o ıncrona ylenta velocidad de proceso ) y una visi´n general de los interfaces de conexi´n. o o El segundo bloque se referir´ a la conexi´n con el mundo exterior a trav´s a o ede los puertos de comunicaciones e interfaces de red. Dentro de este bloquetiene cabida una exposici´n de las tecnolog´ de impresi´n, con un cap´ o ıas o ıtulodedicado al lenguaje de descripci´n de p´ginas PostScript, as´ como una o a ıexposici´n de la base de datos termcap y la integraci´n de terminales en o osistemas tipo *NIX. El tercer bloque es el de mayor peso espec´ ıfico, y en ´l se abordar´ el e aproblema del almacenamiento masivo y permanente de la informaci´n. Se odescribir´n los fundamentos f´ a ısicos, dise˜ o y gesti´n general de los disposi- n otivos de almacenamiento magn´tico y se presentar´n otras variantes, como e aalmacenamiento ´ptico, magneto-´ptico, hologr´fico y org´nico. As´ o o a a ımismo seexpondr´n algunos modelos sencillos que ayuden a comprender la gesti´n de a oestos medios por parte de los sistemas operativos. En el cuarto bloque, se considerar´n los dispositivos de visualizaci´n, ha- a ociendo un repaso de las tecnolog´ empleadas y exponiendo algunos proble- ıasmas de gesti´n espec´ o ıficos. 12
  14. 14. Cap´ ıtulo 2Consideraciones generales sobrela entrada/salida2.1. El problema general de la entrada/salida Existe una cantidad considerable de dispositivos asociados a los sistemasinform´ticos, y cada uno tiene sus propias especificaciones f´ a ısicas y l´gicas, oy opera a una velocidad caracter´ıstica. Es por esto que los sistemas operati-vos han de tener un subsistema de E/S encargado de atender a todos estosdispositivos, ocultando a las capas superiores las particularidades de cadauno. Por otra parte, el hardware puede controlar de forma aut´noma muchas ode las operaciones de E/S, y es una tendencia creciente la incorporaci´n a los osistemas inform´ticos de procesadores especializados para determinadas ope- araciones, convirti´ndose en verdaderos sistemas multiprocesador. La mayor´ e ıade los dispositivos de E/S comparten dos caracter´ ısticas: operaci´n as´ o ıncrona diferencia de velocidad con la UCP2.1.1. Operaci´n as´ o ıncrona Cuando un programa se ejecuta, el procesador est´ realizando sucesiva- amente comunicaci´n con la memoria principal y con los dispositivos de E/S. oSin embargo, el acceso a memoria se produce en un tiempo casi constante, es 13
  15. 15. decir, la memoria est´ siempre dispuesta para entregar datos al procesador 1 a. Como este tiempo es peque˜ o, el procesador no hace nada hasta que recibe nlos datos solicitados. Pero la comunicaci´n con el mundo exterior es distinta, pues no tiene orelaci´n alguna con el reloj del procesador: la llegada de datos es imprede- ocible. Esto se llama ‘operaci´n as´ o ıncrona’, y obliga al hardware de E/S aimplementar se˜ ales de control especiales que capacitan al procesador y a los ncontroladores de dispositivos para que se indiquen m´ tuamente sus estados, uintenciones y disponibilidad de datos. Cuando el procesador quiere acceder aun dispositivo de E/S comprueba su estado. Si est´ disponible, se efect´ a la a upetici´n, si no, el S.O. puede esperar o puede dar el control a otro proceso. o2.1.2. Diferencia de velocidad La velocidad del bus entre procesador y memoria es del orden de millonesde octetos por segundo, mientras que la velocidad de los dispositivos de E/Svar´ entre 1 octeto por segundo y varios millones de octetos por segundo. ıanLos primeros son impresoras matriciales y terminales lentos, mientras quelos segundos pueden ser discos de alta velocidad comunicados por enlaces´pticos. Usualmente, estos ultimos tienen procesadores dedicados y sueleno ´operar mediante DMA. V´anse por ejemplo las velocidades de transferencia de los perif´ricos del e esistema Sun Enterprise 6000 (valores aproximados y relativos): 1 Esto era realmente as´ hasta principios de la d´cada de los 90. En alg´ n momento en ı e uesta ´poca se produce el cruce entre la curva que representa la velocidad de la memoria a elo largo del tiempo y la curva que representa la velocidad del procesador. Desde entonces,la velocidad del procesador ha crecido proporcionalmente mucho m´s. a 14
  16. 16. teclado 10−2 raton 5 ∗ 10−2 modem 100 impresora laser 500 ethernet 1000 disco duro 8000 ethernet rapida 10000 bus SCSI 40000 SBUS 100000 bus gigaplano 1000000 Consideremos un terminal a 2000 cps, lo que supone un car´cter cada a5 ∗ 10−4 segundos. Puesto que el procesador puede ejecutar una instrucci´n oen 0,1∗10 segundos, significa que, si estuviese dedicado a E/S, permanecer´ −6 ıainactivo m´s del 99 % del tiempo. a Una manera de mejorar la utilizaci´n del procesador es multiplexando entre ovarios trabajos, lo que requiere asistencia hardware en forma de buffers dedatos, se˜ ales de di´logo y mecanismos de sincronizaci´n. n a o2.2. Interfaces de E/S Los controladores hardware act´ an como intermediarios entre los dispositi- uvos E/S y el sistema. Estos interfaces tienen dos misiones principales: traducirlas se˜ ales gen´ricas del procesador a las se˜ ales espec´ n e n ıficas del dispositivo yarmonizar de alguna forma la diferencia de velocidad. El hardware de E/S esta distribuido sobre una serie de interfaces, conec-tadas a la placa base. A su vez, los conectores est´n conectados al bus del asistema, que sirve como medio de comunicaci´n para intercambios de direc- ociones, datos y se˜ ales de control. n Visto con algo m´s de detalle, la arquitectura PC basada en bus PCI consta afuncionalmente de los siguientes elementos: El procesador: ´ste se comunica directamente con su cach´ interna, y e e con la memoria principal a trav´s de un controlador de memoria que a e su vez est´ conectado al bus PCI. a 15
  17. 17. +-----------------+ +---------------+| PROCESADOR | <---> | MEMORIA |+-----------------+ +---------------+ ^ ^ | | v v+-----------------------------------------+| BUS DEL SISTEMA |+-----------------------------------------+ ^ ^ ^ | | | v v v+---------+ +---------+ +---------+|INTERFAZ | |INTERFAZ | |INTERFAZ || SERIE | |PARALELO | | DMA |+---------+ +---------+ +---------+============================================== TERMINAL IMPRESORA DISCO El controlador de gr´ficos: por una parte, conectado al bus, y por otra a al monitor, a quien env´ la se˜ al que forma la imagen. ıa n Un posible controlador SCSI: est´ conectado con el bus PCI por un a lado y con un bus independiente SCSI, compartido por los distintos dispositivos SCSI. Un controlador de disco IDE: conectado con el bus del sistema y con hasta 4 dispositivos IDE. Un controlador de un bus de expansi´n, compartido por teclado y puer- o tos serie y paralelo. Una tarjeta de interfaz est´ dise˜ ada para gestionar uno o m´s dispositivos a n adel mismo tipo. Los distintos dispositivos pueden conectarse a la tarjetamediante canales dedicados o en cascada. El primer m´todo suele usarse een terminales, y el segundo en unidades de disco. Un controlador de E/Sest´ dividido en tres capas funcionales: a 1. Interfaz del bus 2. Controlador gen´rico de dispositivo e 16
  18. 18. 3. Interfaz del dispositivo BUS ^ | v +------------------------+ | LOGICA DE DIRECCIONES | | Y CONDUCTORES DEL BUS | +------------------------+ | CONJUNTO DE REGISTROS | | DE DATOS, ORDENES Y | | ESTADO | +------------------------+ | ACONDICIONAMIENTO DE | | SE#ALES AL DISPOSITIVO | +------------------------+ ^ | v DISPOSITIVO FISICO En el extremo del bus, cada controlador debe aparecer como un m´dulooestandard capaz de gestionar lecturas, escrituras, arbitrajes de prioridad,interrupciones y ciclos DMA. En el extremo del dispositivo, el controladordebe proporcionar las se˜ ales el´ctricas que necesita el dispositivo. n e Las dos capas extremas son de inter´s para los dise˜ adores hardware. La e nintermedia, para el dise˜ ador software, ya que proporciona a los programa- ndores de sistemas una abstracci´n uniforme de las operaciones de E/S. Nor- omalmente, cada dispositivo aparece como un conjunto de registros dedicados,llamados puertos de E/S. Por ejemplo, tenemos puertos serie, paralelo, con-troladores de discos flexibles y r´ ıgidos, controladores gr´ficos, temporizadores ay controladores de red. En general, los puertos son bidireccionales, y por con-venio se suele adoptar el punto de vista del procesador cuando hablamos de‘entrada’ y ‘salida’. Los puertos tienen registos de datos, registros de ´rdenes oy registros de estado. 17
  19. 19. Aunque a los puertos puede accederse a trav´s de un espacio propio de edirecciones, en otros casos el acceso se realiza a trav´s de posiciones espec´ e ıficasde RAM. Cada m´todo tiene ventajas e inconvenientes. e La siguiente tabla muestra algunas de las direcciones de puerto en la ar-quitectura PC: 000-00F controlador DMA 020-021 controlador de interrupciones 040-043 temporizador 200-20F controlador de juegos 2F8-2FF puerto serie secundario 320-32F controlador de disco duro 378-37F puerto paralelo 3D0-3DF controlador de gr´ficos a 3F0-3F7 controlador de disco flexible 3F8-3FF puerto serie primario2.3. E/S programada Un dispositivo se prepara 2 en el momento del arranque, o bien con pos-terioridad mediante el env´ de instrucciones espec´ ıo ıficas. Una vez superadaesta fase, la E/S controlada por programa se basa en el examen cont´ ınuopor parte del procesador del estado del dispositivo, hasta que est´ preparado apara la siguiente transferencia. Los inconvenientes de este m´todo son la baja utilizaci´n del procesador y e ola dificultad para manejar m´ ltiples dispositivos de E/S. u La E/S programada no tiene mucho inter´s pr´ctico, ya que s´lo puede e a osoportar un dispositivo, y la utilizaci´n del procesador es muy baja, pues ot´ ıpicamente consume el 99 % del tiempo en un bucle de espera. Una t´cnica esencilla para mejorar algo la eficiencia es ampliar el bucle de manera que secomprueben varios dispositivos por turno rotatorio, y bifurcar a la rutina quecorresponda al primer dispositivo que est´ preparado. e 2 Est´ muy extendida la palabra inicializar, lo cual es una traducci´n incorrecta del a oingl´s que deber´ ser rechazada. ¿O acaso decimos finalizalizar? Nosotros emplearemos e ıapreparar o iniciar. 18
  20. 20. comprobar 1 <--+ comprobar 1 comprobar 2 | comprobar 2 <--+ comprobar 3 | comprobar 3 <--|-+ ---- | ---- <--|-|-+ comprobar n | comprobar n | | | | | | | atender 1 -----+ atender 1 -----+ | | atender 2 -----+ atender 2 -------+ | atender 3 -----+ atender 3 ---------+ ---- *prioridades fijas* *prioridades circulares* Los retornos de estas rutinas pueden ajustarse de modo que se reproduzcaun esquema de prioridades determinado. Por ejemplo, si todas vuelven alprincipio de la encuesta, el primer dispositivo tiene mayores probabilidadesde ser atendido. La noci´n de encuesta puede extenderse para proporcionar multitarea en oun sistema de prop´sito general sin recurrir a interrupciones. El rendimiento opuede mejorarse efectuando los test de E/S s´lo de vez en cuando. Pero de- ocidir cuanto es de vez en cuando es un tema dif´ sin una respuesta sencilla, ıcilpues es f´cil caer en alguno de los dos extremos: espera innecesaria o p´rdida a ede datos.2.4. E/S guiada por interrupciones Las interrupciones son un mecanismo asistido por hardware para sincro-nizar el procesador con los sucesos as´ ıncronos. Despu´s de dar servicio a un edispositivo ejecutando una rutina de servicio de interrupci´n (RSI en ade- olante) el procesador reanuda la actividad en el punto en que se produjo lainterrupci´n. Pero una RSI es un programa que modificar´ registros del pro- o acesador y posiciones de memoria. Por tanto, ser´ preciso presevar el contexto adel procesador en el momento de ser interrumpido, y recuperarlo justo des-pu´s de que termine la RSI. Puesto que el programa interrumpido ignora ecuando ser´ interrumpido, es la RSI la encargada de salvar y restaurar el acontexto. 19
  21. 21. Se han empleado distintos enfoques: desde salvar ‘todo’ por hardware hastasalvar s´lo lo necesario por software. o A la llegada de una interrupci´n por una l´ o ınea, el procesador no puedesaber qu´ dispositivo la caus´. Una opci´n es transferir el control siempre a e o ola misma posici´n de memoria, donde se encuentra una rutina de encuesta. oPero entonces las probabilidades de ser atendidos no ser´ equitativas para ıantodos los dispositivos, por lo que se prefiere recurrir a la vectorizaci´n de in- oterrupciones. Esencialmente, la vectorizaci´n consiste en un enlace hardware oentre el dispositivo que causa la interrupci´n y la RSI que lo atiende. o Para conseguir esto, el dispositivo que causa la interrupci´n debe propor- ocionar un identificador propio. La vectorizaci´n, dada su complejidad, requie- ore hardware adicional, y en concreto, suele usarse un controlador programablede interrupciones (CPI en adelante). La tendencia en los Sistemas Operativosmodernos es a tener una tabla de vectores de interrupci´n bastante grande, y ocomo a´ n as´ puede no ser suficiente para identificar un´ u ı ıvocamente la fuentede una interrupci´n, puede combinarse este esquema con el de la encuesta. o Ahora bien, como pueden existir varias, o muchas, fuentes de interrupci´n, opueden existir varias peticiones sin atender en un momento dado. Pero la vec-torizaci´n elimina la encuesta, y por eso debe proporcionarse alg´ n m´todo o u eque permita asignar prioridades. Citando textualmente la bibliograf´ ıa: Un m´todo es asignar un nivel diferente de prioridad a cada fuente e unica que puede ser vectorizada, o a grupos de dispositivos si el ´ n´ mero de niveles distintos est´ m´s limitado. Esta ordenaci´n u a a o es conocida normalmente por ´rbitros de prioridad hardware, que a atienden a las peticiones en el orden de sus prioridades relativas (...) De este modo los perif´ricos pueden recibir servicio ajustado e a sus exigencias y los dispositivos de altas prestaciones pueden operar a las velocidades mejores posibles. Existen en general tres m´todos de control de interrupciones: e 1. Nivel general del sistema: las interrupciones pueden inhibirse/habilitarse de forma general. Esta opci´n es com´ n a todos los sistemas inform´ti- o u a cos ( o casi todos ). 20
  22. 22. 2. Inhibici´n/habilitaci´n de ciertas interrupciones. Se llama ‘enmascara- o o miento’ a esta t´cnica y se logra mediante un registro especial llamado e ‘m´scara’ cuyos bits indican qu´ interrupciones se encuentran habilita- a e das y cuales no. Se proporcionan medios para alterar los bits de esta m´scara. a 3. Nivel individual: manipulando registros espec´ıficos se puede deshabili- tar la capacidad del dispositivo para interrumpir a la UCP.2.5. Sobre la latencia de las interrupciones Cuando se produce una interrupci´n, es preciso guardar el estado del pro- ocesador y posiblemente hacer algunas acciones administrativas adicionalesque dependen de la implementaci´n del sistema operativo. Por ejemplo, la oasignaci´n de valores a los sem´foros que controlan el acceso a zonas de me- o amoria compartidas entre el propio sistema operativo y las rutinas de serviciode interrupci´n. De la misma forma, cuando termina de ejecutarse una inte- orrupci´n son precisas las acciones necesarias para llevar al sistema al estado oprevio a la interrupci´n. Todas estas operaciones consumen tiempo y limitan oel n´ mero de interrupciones por segundo que un sistema operativo puede uatender. En los sistemas operativos de prop´sito general, no est´ acotado o ael n´ mero de instrucciones que han de ejecutarse adicionalmente al propio uservicio de interrupci´n para las tareas administrativas citadas y por tan- oto no est´ garantizado que el sistema responda en un tiempo acotado. Esa aes la diferencia fundamental entre sistemas operativos de uso general, comoWindows o Linux, y sistemas operativo de tiempo real, como QNX. En estosultimos se garantiza que la respuesta a una interrupci´n se producir´ en un´ o aintervalo de tiempo fijo. El hecho es que el tiempo invertido en acciones administrativas previas yposteriores a la ejecuci´n de la rutina que atiende a la interrupci´n ha dis- o ominuido en proporci´n escasa comparada con el aumento de la velocidad de olos procesadores, las memorias y los perif´ricos, y eso justifica la adopci´n e ono s´lo de sistemas operativos espec´ o ıficos para operaciones de tiempo real(frecuentes en procesos industriales o sistemas de control), sino incluso laadopci´n de arquitecturas de procesador espec´ o ıficas para estas tareas. Estasreflexiones son m´s evidentes cuando se aplican a sistemas empotrados. Aqu´ a ı,es importante no s´lo que el tiempo de respuesta ante una interrupci´n sea o opeque˜ o, sino que adem´s ese tiempo est´ acotado. V´ase la importancia de n a e ela arquitectura cuando se comparan algunos valores para procesadores es- 21
  23. 23. pec´ıficos de este tipo de sistemas. Un procesador Philips LPC2106, con unavelocidad de reloj de 60MHz, sin cach´ pero con acelerador de memoria (a˜ o e n2003-2004) emplea 432ns y 27 ciclos de reloj para entrar en una interrupci´n oy 400ns y 25 ciclos de reloj para salir de ella. Pues bien, el procesador conarquitectura de pila RTX2000 de 1988, operando a 10MHz emplea 400ns yconsume 0 instrucciones para entrar en una interrupci´n, y 200ns y una ins- otrucci´n para salir. A pesar de que en los ultimos 15 a˜ os la velocidad de o ´ nreloj de este tipo de procesadores se ha multiplicado por un factor que var´ıaentre 6 y 40 veces, no se ha mejorado el tiempo de latencia para atenderinterrupciones. Pero estos procesadores suelen tener arquitectura RISC. Enprocesadores CISC la situaci´n es a´ n peor, pues pueden consumirse hasta o u400 ciclos en la entrada a una interrupci´n. En otros trabajos 3 se ha com- oprobado la importancia de la arquitectura. Concretamente, al comparar unprocesador RTX 2000 con un Sun 4 y un Sun 3 M68020 se encontr´ que el oprimero requiere para atender una interrupci´n tan s´lo cuatro ciclos y 0.4µs, o ola m´quina Sun 4 con procesador SPARC entre 200 y 400 ciclos y 14µs en el amejor de los casos y la m´quina Sun 3 entre 1150 y 1600 ciclos, con un mejor acaso de 81µs. En cuanto al determinismo, los procesadores actuales emplean largos con-ductos (pipes) y grandes caches para aumentar la velocidad, pero esto nosiempre es bueno porque tiene un impacto negativo sobre el determinismo.Por ejemplo, en sistemas que han de muestrear se˜ ales con una frecuencia de- nterminada es importante que el muestreo se efect´ e con la mayor regularidad uposible. Finalmente, otro factor a considerar es el comportamiento del sistema fren-te a las bifurcaciones en los programas. El an´lisis del c´digo de un micro- a ocontrolador t´ıpico muestra que se produce control de flujo aproximadamenteen una instrucci´n de cada 5, un 20 % del tiempo. Un Pentium IV con con- oductos de 20 etapas, caches y buffers de predicci´n de saltos puede perder 30 ociclos por cada fallo en la predicci´n de un salto. Un microcontrolador ARM opierde cuatro ciclos en el peor de los casos, y de nuevo vuelve a sorprenderpor su comportamiento totalmente determinista el procesador RTX2000 conarquitectura de pila, que pierde dos ciclos en cualquier caso. Aunque las ci-fras dadas para el Pentium IV dependen del chip-set y la memoria, se han 3 Real-time performance of the HARRIS RTX 2000 stack architecture versus the Sun4 SPARC and the Sun 3 M68020 architectures with a proposed real-time performancebenchmark, William F. Keown, Philip Koopman y Aaron Collins. Performance evaluationreview, vol. 19 #3, mayo de 1992 22
  24. 24. notificado retrasos de hasta 385 ciclos 4 .2.6. Consideraciones sobre el uso de buffers Hemos dicho que una de las problem´ticas de la E/S es la notable dife- arencia de velocidad entre la UCP y los dispostivos perif´ricos. Una de las eformas de minimizar esta diferencia es mediante el uso de buffers, o zonasde almacenamiento temporal, donde la UCP coloca los datos en espera deque puedan ser enviados a un perif´rico que en ese momento puede estar eocupado. Evidentemente, la UCP puede llenar el buffer m´s r´pidamente de a alo que el perif´rico puede vaciarlo. Pero normalmente la UCP env´ r´fagas de e ıa adatos, de manera que entre una r´faga y la siguiente el buffer puede haberse avaciado, al menos parcialmente. En general, estamos ante un problema que puede modelizarse bastantebien mediante una cola. La UCP hace que aumente el tama˜ o de la cola, y nel perif´rico hace que disminuya. En un momento dado, el estado de la cola ees su longitud. Consideremos por simplicidad que la UCP env´ bloques de ıacaracteres de tama˜ o fijo, y que representamos el estado de la cola por el nn´ mero de bloques que contiene. u Por simplicidad, supongamos en primera instancia que el buffer puede alo-jar un n´ mero infinito de bloques. Si llamamos l al n´ mero medio de bloques u uque llegan por unidad de tiempo, y m al n´ mero medio de bloques que el uperif´rico puede procesar por unidad de tiempo ( por ejemplo, imprimir ), el en´ mero medio de transiciones entre un estado k y un estado k + 1 es lp(k), udonde p(k) es la probabilidad de que la cola contenga k bloques. De la mismaforma, el n´ mero medio de transiciones entre un estado k + 1 y un estado k ues mp(k). En media, el n´ mero de transiciones en uno y otro sentido ha de ser uigual, pues de lo contrario la cola crecer´ sin l´ ıa ımite, o siempre estar´ vac´ ıa ıa.Entonces: lp(0) = mp(1) (2.1) lp(1) = mp(2) (2.2) lp(2) = mp(3) (2.3) y as´ sucesivamente. Llamando r = l/m, de la primera: ı 4 Datos tomados de Programming Forth, de Stephen Pelc, a˜ o 2005 n 23
  25. 25. lp(0) lp(1) lp(2) lp(3) +-->--+ +-->--+ +-->--+ +-->--+ | | | | | | | | {0} {1} {2} {3} {4} ... | | | | | | | | +--<--+ +--<--+ +--<--+ +--<--+ mp(1) mp(2) mp(3) mp(4) p(1) = rp(0) (2.4) de la segunda: p(2) = rp(1) = r 2 p(0) (2.5) y en general: p(k) = r k p(0) (2.6) Ahora bien, la suma para todo k, desde 0 hasta ∞, ha de ser la unidad,de donde se sigue que: p(0) = 1 − r (2.7) y finalmente p(k) = r k (1 − r) (2.8) Entonces podemos calcular el n´ mero medio de bloques en la cola, N, uque es: ∞ r N= kp(k) = (2.9) k=0 1−r Si el buffer es finito, y s´lo puede contener M bloques, entonces sigue osiendo p(k) = r k p(0), pero ahora p(0) se sigue de la condici´n: o M kp(k) = 1 (2.10) k=0 de donde: 24
  26. 26. 1−r p(0) = (2.11) 1 − r M +1 Podemos usar la f´rmulas anteriores para calcular la probabilidad de que ola cola llegue a una longitud determinada, y por tanto podemos estimar eltama˜ o necesario del buffer para que la probabilidad de perder datos sea ndespreciable. Ejemplo: Una impresora matricial en red d´ servicio a una peque˜ a empre- a nsa, con cinco puestos desde los que se emiten facturas. Una factura tiene untama˜ o de 2 bloques de 512 octetos. En media, durante una ma˜ana laboral n nde 6 horas se emiten 200 facturas, que son 400 bloques, o 400/6 bloques/hora.Por su parte, la impresora puede imprimir un bloque cada 2 segundos, o 1800bloques a la hora, lo que hace:r=0.037p(0)=0.963=96.3 %p(1)=0.036= 3.6 %p(2)=0.001= 0.1 % es decir, con un buffer modesto, de 1 kb, la probabilidad de que se llenees de s´lo el 0.1 %. o2.7. Otros modelos de colas Supongamos el caso en que la UCP est´ enviando paquetes a varios pe- arif´ricos. Cada perif´rico est´ asociado a una l´ e e a ınea de salida. La UCP env´ ıapaquetes a un ritmo de l por segundo, y los perif´ricos se hacen cargo de los emismos a un ritmo de m por segundo. Identificamos el estado del sistema porel n´ mero total de paquetes en espera de tomar una l´ u ınea de salida. En esecaso, la probabilidad del sistema de pasar de un estado k a un estado k + 1viene dada por lpk , pero la probabilidad de pasar de un estado k + 1 a unestado k es ahora (k + 1)mpk+1 . Las ecuaciones del equilibrio son ahora lp0 = mp1 (2.12) lp1 = 2mp2 (2.13) lp2 = 3mp3 (2.14) (2.15) 25
  27. 27. y as´ sucesivamente, de donde se sigue que ı k 1 l pk = p0 (2.16) k! m y de la condici´n de normalizaci´n: o o  −1 k 1 l p0 =   (2.17) k k! m En general, los distintos procesos de espera, de env´ y recepci´n de da- ıo otos, tienen distintas prioridades. Por ejemplo, en una comunicaci´n por red otiene mayor prioridad atender a la tarjeta de red que al teclado o la uni-dad de disco. Estas situaciones tambi´n pueden modelarse. La idea es que emientras que hasta ahora hemos modelado los distintos estados de una colacomo un conjunto de puntos sobre una recta, cuando existen varias colas elproceso se visualiza mediante una malla en varias dimensiones. Por ejemplo,supongamos que existen dos colas con distintas prioridades: +----+----+----+----+----+----+ | | | | | | | | | | | | | | +----+----+----+----+----+----+ | | | | | | | | | | | | | | +--<-+--<-+--<-+--<-+(i,j)----+ | | | | | | | v | | | | | | +----+----+----+----+----+----+ | | | | | | | v | | | | | | +----+----+----+----+----+----+ Cuando el sistema se encuentra en un nodo de coordenadas (i, j) quiere de-cirse que existen i paquetes o clientes en una cola y j en la otra. Supongamosque la cola cuyos estados se corresponden con la coordenada horizontal tienemayor prioridad que la cola cuyos estados se corresponden con la coordenadavertical. En ese caso, mientras i sea distinto de cero no podr´ disminuirse j. aS´lo despu´s de vaciarse la cola de mayor prioridad podr´ comenzar a va- o e aciarse la cola de prioridad menor. Dicho de otra forma, desde el estado (i, j) 26
  28. 28. cs - 1 28 - vcc wr - - a0 rd - - INTA d7 - - ir7 d6 - - ir6 d5 - - ir5 d4 - - ir4 d3 - - ir3 d2 - - ir2 d1 - - ir1 d0 - - ir0 c0 - - INT c1 - - sp/en gnd - 14 15 - c2la cola s´lo puede vaciarse siguiendo la trayectoria que se indica en la figura. oAhora, el sistema de ecuaciones de equilibrio es m´s complejo, pues ha de aconsiderar los casos especiales (0, 0), (i, 0), (0, j) e (i, j), y tener en cuentados probabilidades de entrada l1 y l2 y dos probabilidades de salida m1 y m2 .La discusi´n de estos extremos nos llevar´ demasiado lejos, pues el sistema o ıaresultante es dif´ de resolver sin acudir a t´cnicas matem´ticas especiales. ıcil e a2.8. Gesti´n de interrupciones en el AT o2.8.1. Generalidades El circuito integrado 8259 est´ dise˜ ado para controlar las interrupciones. a nSus principales registros son el llamado IRR (Interrupt Request Register)y el ISR (In Service Register). El IRR almacena todas las peticiones deinterrupci´n pendientes, y el ISR todas las que est´n siendo atendidas en un o amomento dado. El 8259 dispone de una l´gica para gestionar las prioridades orelativas de las interrupciones que se produzcan, y por tanto para determinarqu´ interrupci´n ha de gestionarse primero. e o Arriba se muestra un esquema del encapsulado del 8259. Las lineas ‘irx’ estan directamente unidas a los perif´ricos que provocan las einterrupciones. ‘dx’ constituyen un bus de datos, usado en la comunicaci´n oentre el 8259 y la UCP, en los dos sentidos. ‘INT’ es una l´ ınea directamente 27
  29. 29. unida a la correspondiente patilla en la UCP. ‘INTA’, por su parte, es ne-cesaria para implementar un protocolo de comunicaci´n entre el 8259 y el oprocesador, mediante el cual el primero comunica al segundo la llegada deuna interrupci´n y el segundo acepta o rechaza atender a dicha interrupci´n. o oEl 8259 puede funcionar en cascada, y mediante las lineas ‘cx’ pueden direc-cionarse desde un 8259 primario o maestro hasta 8 chips supeditados. ‘rd’es la patilla de lectura. Cuando se activa, la UCP puede leer de los registrosinternos del chip. Analogamente, ‘wr’ es la patilla de escritura, y cuandoest´ activada la UCP puede escribir en dichos registros. Estos dos ultimos a ´registros funcionan en conjunci´n con la patilla nombrada como ‘cs’. Final- omente, ‘sp/en’ tiene que ver con los distintos modos de funcionamiento del8259, ya que este gestor de interrupciones puede usarse en sistemas con dis-tinta arquitectura al PC. Por supuesto, ‘vcc’ y ‘gnd’ son la fuente de voltaje(+5v) y el potencial de referencia. En cuanto a los registros internos, tres son los fundamentales. Como seha dicho antes, en el IRR se guardan, activando el bit correspondiente, lasinterrupciones que esperan ser atendidas. En el llamado ISR se guarda lainterrupci´n que est´ siendo atendida en un momento dado. Finalmente, o aexiste un registro especial que permite enmascarar interrupciones, de formaque ´stas se atiendan o se ignoren, aunque f´ e ısicamente se hayan producido. En esencia, el 8259 funciona seg´ n la secuencia de acontecimientos siguien- ute: 1. Una o m´s l´ a ıneas IRQ son activadas por los perif´ricos, lo que pone a e 1 el bit correspondiente del IRR 2. El 8259 eval´ a la prioridad de estas interrupciones y solicita la inte- u rrupci´n a la UCP o 3. Cuando la UCP reconoce la interrupci´n, env´ la se˜ al ‘-INTA’ al 8259 o ıa n 4. Al recibir la se˜ al, el 8259 activa el bit correspondiente en el ISR y lo n borra del IRR 5. La UCP manda una segunda ‘-INTA’ y el 8259 deposita en el bus de datos un valor de 8 bits que indica el vector de interrupci´n o 6. En modo AEOI (Automatic End Of Interrupt), el bit del ISR es borrado en cuanto acaba la segunda ‘INTA’. En modo EOI este bit ha de ser borrado expl´ ıcitamente 28
  30. 30. Es interesante el punto 5. El 8259 s´lo precisa 3 bits para indicar cual de olas interrupciones se ha producido. Sin embargo, se env´ un valor de 8 bits. ıaPues bien, los cinco bits m´s significativos indican el desplazamiento en la atabla de vectores de interrupciones que corresponde a la interrupci´n que se oha producido. Este valor es programable. Por ejemplo, durante el proceso dearranque del PC, el valor asignado es 8, lo que significa que la interrupci´no‘ir0’, conectada al reloj, es atendida por la rutina apuntada por el vectorde interrupci´n 8. La interrupci´n de teclado, conectada con el pin ‘ir1’, es o oatendida por la rutina apuntada por la entrada 9 de la tabla de vectores deinterrupci´n, etc. o2.8.2. Preparaci´n y control del 8259 o El 8259 acepta dos tipos de ´rdenes generadas por la UCP: las ICW (Inicia- olization Command Word) para preparaci´n y las OCW (Operation Command oWord) para programaci´n. o escribir ICW1 | v escribir ICW2 | v 8259 en cascada -----no--+ | | v | si | | | escribir ICW3 | |<-----------------+ v hace falta ICW4 -----no--+ | | v | si | | | v | escribir ICW4 | |<-----------------+ v terminar preparacion 29
  31. 31. El formato de los dos primeros ICW es el siguiente:=ICW1=0 0 0 1 L 0 S I -- info adicional en ICW4^ ^ | | | +-- PIC en cascada +------ flanco o nivelbit valor significado=== ===== ===========1 0/1 ICW4 innecesaria/necesaria2 0/1 cascada/simple3 especifico del 8080/854 0/1 operacion por flancos/niveles5 16 especifico del 8080/857 especifico del 8080/858 especifico del 8080/85 El bit 5 a 1 y el 8 a cero le indican al 8259 que se trata de la primera palabrade preparaci´n. Por otra parte, si el bit 1 se encuentra a 0, no ser´ preciso o aenviar ICW3.=ICW2=x y z t u 0 0 0--------- | +--- offset en la tabla de vectores de interrupcionbit valor significado=== ===== ===========0 especifico del 8080/851 especifico del 8080/852 especifico del 8080/853 0/1 4 0/1 |5 0/1 -> cinco bits altos del vector6 0/1 | de interrupcion a invocar7 0/1 / 30
  32. 32. En cuanto a ICW3, es preciso distinguir entre primario y supeditado. Parael PIC primario, cada bit a 0 indica que la l´ınea correspondiente est´ libre ao conectada a un perif´rico que puede generar una interrupci´n. Un bit a e o1 indica que esa l´ ınea est´ conectada con el PIC supeditado. En cuanto al aPIC secundario, ICW3 contiene en los 3 bits de menor orden el n´ mero de uidentificaci´n de dicho PIC. o Finalmente, y para nuestros prop´sitos, de ICW4 s´lo nos interesa el bit o o1. Cuando este bit se encuentra a 1, indica AEOI (Automatic End of Inte-rruption), lo que implica que el registro ISR es limpiado. Cuando este bit seencuentra a 0, indica que el registro ISR ha de limpiarse expl´ ıcitamente. Como ejemplo, consid´rese el siguiente fragmento de c´digo, que se ocupa e ode preparar los PIC primario y secundario en un PC. V´ase que al PIC eprimario se accede a trav´s de los puertos 0x20 y 0x21, mientras que al ePIC secundario se accede a trav´s de los puertos 0xa0 y 0xa1. Adem´s, es e anecesario saber a qu´ puertos se env´ tanto los ICW como los OCW. Este e ıandetalle se recoge en la tabla inserta antes del c´digo: o 0x20 0xa0 ICW1 OCW2 OCW3 0x21 0xa1 ICW2 ICW3 ICW4 OCW1 /* preparacion de los PIC en el PC */ outportb(0x20,0x11); flancos/cascada/ICW4 outportb(0x21,8); offset en Tabla Vectores Interrupcion outportb(0xa1,0x70); offset TVI secundario outportb(0x21,4); esclavo conectado a IRQ2 outportb(0xa1,2); identificacion del secundario como 2 outportb(0x21,1); ICW4, EOI outportb(0xa1,1); En cuanto a los OCW, este es el formato de OCW1 y OCW2: =OCW1= Cada uno de los bits de esta orden indica si la interrupcion asociada esta enmascarada (1) o no enmascarada (0) 31

×