“input/output” feliut guzman del valle icom 5007 11 de marzo de 2005. capitulo 5

21
“Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Upload: marcelina-ibanez

Post on 28-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“Input/Output”

Feliut Guzman Del ValleICOM 500711 de marzo de 2005.

Capitulo 5

Page 2: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Que es I/O???

Todas las formas de interactuar con la computadora, desde y hacia ella, se conocen como I/O.

Ejemplos: “webcams”, “pen drives”, “keyboards”, “mouse”, “scanner”, “printer”, “networks”, “monitor”, etc….

Page 3: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Principios del I/O en “Hardware” Ingenieros Eléctricos vs. Programadores “I/O Devices”

“Block Devices” “Character Devices”

“Device Controllers” “Memory-Mapped I/O” “Direct Memory Access (DMA)”

Page 4: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Ingenieros Electricos vs. Programadores

Los ingenieros eléctricos, ven el “hardware” en términos de chips, cables, motores, etc. En otras palabras, cosas físicas.

Los programadores lo ven, como una interfase que se le presenta al “software”, los comandos que el acepta, las funciones que lleva a cabo y los errores que se pueden reportar.

Page 5: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“I/O Devices” “Block Devices”: componentes que

guardan la informacion en forma de bloques, cada bloque tiene una dirección. Esto ayuda a que cada bloque se pueda accesar independientemente. Son los mas comunes.

Ejemplos: Hard Drives, CD-R and DVD-R media, Zip Disks, Floppy, etc….

Page 6: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Cont. “I/O Devices” “Character Devices”: No tienen

estructuras de bloques,no es direccional y no tienen operaciones de busqueda (“seek”), son como una secuencia de caracteres, que se graban o se presentan.

Ejemplos: “printers”, “network interfaces”, “mouse” y otros tipos de componentes que no sean de tipo disco.

Page 7: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Valores tipicos de Velocidades en componentes

Componentes Lentos

Componentes Rápidos

Page 8: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“Device Controllers” “Device Controller”: Controlador o

adapter donde se conecta el componente, por medio de un cable. Ejemplo: “IDE Devices” a traves de un “IDE Cable”, hacia el componente especifico.

Page 9: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Como Funcionan? El controlador convierte una cadena de

bits, en bloques de bytes y verifica si hay errores por medio del “Error-Correcting Code” (ECC).

“ECC”: Código donde cada señal de data, debe ser conforme a una construcción, y de esa manera se puede arreglar y detectar automáticamente.

El bloque de bytes se llena en un buffer, dentro del controlador, luego que se verifica que esta libre de errores, se copia a la memoria.

Page 10: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“Memory-Mapped I/O” “Memory-Mapped I/O”: Usa el mismo

“bus” para la memoria y “I/O devices”, y el CPU puede accesar los dos. Partes del “Address Space” del CPU tienen que reservarse para los “I/O devices”.

Estos componentes monitorean su “Address Space” para cuando tengan una asignación, hagan “mapping” de su dirección a sus registros del hardware.

Esto es así porque la mayoría de los “hardware” también tienen su propio “buffer”.

Page 11: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“Direct Memory Access (DMA)” “DMA”: “Hardware” diseñado para accesar la

memoria independiente al CPU. Componentes como Tarjetas de Video, Sonido, Discos duros y CD-ROM’s.

El CPU da la señal para copiar directamente un bloque de memoria de un device a otro. Ese proceso se hace directamente con el “DMA controller”, sin el CPU intervenir.

Sin “devices” con “DMA”, el proceso se haría bit por bit por el CPU, lo que pone bien lento al OS, y lo inabilita hasta que la transferencia termine.

Page 12: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Diferentes modos del “DMA” “Cycle stealing”: El controlador pide el transfer

de un “word” y lo accesa. Se llama “Cycle stealing” porque el controlador entra al “bus” y se roba un ciclo, ocasionalmente. Esto pone al CPU, un poco lento.

“Burst Mode”: En este caso, el controlador accesa el bus, pero se lleva un bloque. En este caso es mas eficiente, porque al accesar el bus y luego liberarlo se puede obtener mas “words”, por el precio de adquirir el bus en cierto momento.

Page 13: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Funcionamiento del “DMA Fly-by” “Fly-by”: Se pasa la data directamente,

de un device a otro o a la memoria.

Page 14: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“Interrupts revisited”

Page 15: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“Principles of I/O Software” “Device Independent”: concepto de

escribir programas que accesen cualquier componente de I/O. El programa no se tiene que cambiar para accesar de un “device” en específico.

“Uniform naming”: el nombre de los “files” o “devices”, deben ser un “string” o entero y no depender de un “device”, ni plataforma en alguna forma.

Page 16: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“Principles of I/O Software”

“Error Handling”: dentro de este contexto, que se puedan manejar los errores lo más cercano al “hardware” posible.

“Synchronous vs. Asynchronous transfers”: el mas comun es “Asynchronous”, donde el CPU empieza el transfer y hace otras cosas, hasta q el “interrupt” llegue.

Page 17: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“Principles of I/O Software” “Buffering”: Usualmente la data que sale

de un device y no se puede guardar directamente en su destino.

“Sharable vs. Dedicated devices”: Algunos componentes pueden ser compartidos por usuarios y otros no. Compartidos: Discos como hard drives,

floppy,etc. Dedicados: Tape Drives, donde no se puede

tener dos usuarios a la vez escribiendo.

Page 18: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“I/O software layers”

“Interrupt Handlers”: Los “interrupts” casi nunca deben ser vistos por el OS. La forma mas facil es bloqueandolos con las operaciones de I/O de los drivers.

Page 19: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“I/O software layers”

“Device Drivers”: En componentes estandares, usualmente hay “drivers” que el OS tiene definidos. Como los “block devices” y los “character devices”.

Algunos “devices” requieren

drivers específicos

como printers y camaras

Page 20: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

“I/O software layers”

“Device-Independent I/O Software”: Los programas son especificos, pero los “devices” no.

“User-Space I/O Software”: Areas donde el usuario o programador puede modificar el formato de los programas. Ejemplo: por medio de “printf”, “scanf”, etc.

Page 21: “Input/Output” Feliut Guzman Del Valle ICOM 5007 11 de marzo de 2005. Capitulo 5

Preguntas?