Está en la página 1de 66

Dispositivos de Entrada/Salida

Dispositivos de Entrada/Salida
Hardware de E/S Software de E/S Estratos del software de E/S Discos Relojes Terminales de tipo caracter Interfaces grficas Terminales de red Administracin de energa
ELO321 E/S 2

Dispositivos y Velocidad de Transferencia Caracterstica


Dispositivo Teclado Mouse 56K modem Canal telefnico ISDN Impresora laser Scanner Ethernet (clsico) USB Cmara digital IDE 40x CD-ROM Velocidad de Transferencia 10 100 7 8 16 100 400 1.25 1.5 4 5 6 bytes/seg. bytes/seg. Kb/seg. Kb/seg. Kb/seg. Kb/seg. Kb/seg. Mb/seg. Mb/seg. Mb/seg. Mb/seg. Mb/seg Dispositivo Fast Ethernet Bus ISA EIDE (ATA-2) FireWire (IEEE 1394) Monitor XGA SONET OC-12 SCSI 2 Gigabit Ethernet Cinta Ultrium Bus PCI Sun Gigaplane XB Velocidad de Transferencia 12.5 16.7 16.7 50 60 78 80 125 320 528 20 Mb/seg. Mb/seg. Mb/seg. Mb/seg. Mb/seg. Mb/seg. Mb/seg. Mb/seg. Mb/seg. Mb/seg. Gb/seg.

ELO321 E/S

Controladores de Dispositivos
Dispositivos de E/S tienen componentes:
componentes mecnicos componentes electrnicos

Los componentes electrnicos son el controlador del dispositivo:


pueden manejar mltiples dispositivos

Tareas del controlador:

convertir flujo de datos seriales en bloques de bytes correccin de errores dejar disponible para la memoria principal
4

ELO321 E/S

Operaciones de E/S
Instrucciones especiales de entrada y salida soportadas por el procesador:
Definicin de la atencin de eventos de E/S; seteo del estado de un dispositivo. Operacin de un evento de E/S Trmino de la operacin de E/S, seteo del estado del dispositivo.

Mapeo en memoria (Memory-Mapped): reservar zonas de memoria para dispositivos de E/S

lecturas/escrituras en estas zonas permiten acceder al controlador o a los datos de un dispositivo de E/S
5

ELO321 E/S

E/S Mapeada en Memoria


2 espacios de dir.
0xFF

1 espacio de dir.
0xFF 0xFF Puertos E/S

2 espacios de dir.
Puertos E/S

RAM RAM
Puertos E/S 0 0 0

RAM
Puertos E/S

(a)

(b)

(c)

a)

b) c)

Separacin de E/S y espacio de memoria E/S mapeada en memoria Sistema hbrido


6

ELO321 E/S

E/S, Memoria, y Transferencia de Datos

CPU

RAM

I/O

CPU

RAM

I/O

Arquitectura de Bus simple

Arquitectura de Bus Dual

ELO321 E/S

Objetivos
Independencia del Dispositivo
Programas puede acceder a cualquier dispositivo de E/S sin especificarlo a priori

Nomenclatura uniforme
nombre de un archivo o dispositivo como string o nmero independiente de la mquina

Manejo de errores
manejo tan cercano al hardware como sea posible
ELO321 E/S 8

Otros Aspectos del Software de E/S


Transferencias sincrnicas vs. asincrnicas
transferencias bloqueantes vs. por interrupciones

Buffering
la data proveniente de un dispositivo no puede ser almacenada en su destino final

Dispositivos compartidos vs. dedicados


discos son de tipo compartido cintas son del tipo dedicadas
ELO321 E/S 9

Procedimientos de E/S
a)

CPU rpida

CPU-driven Instruccin de E/S muy lenta o una espera ociosa: la ejecucin tarda tanto como la operacin de E/S

dispositivos de E/S lentos

b)

I/O-driven La CPU intercambia datos con el controlador de E/S e inicia la operacin de E/S. El controlador efecta la operacin de E/S y sealiza cuando termina. Direct Memory Access (DMA) La CPU inicializa un canal de DMA que transfiere un bloque de memoria sealizando al finalizar.

c)

ELO321 E/S

10

E/S Programada (1)


espacio de usuario
string a imprimir ABCD EFGH pgina impresa pgina impresa pgina impresa

ncleo

next ABCD EFGH

next ABCD EFGH

AB

Etapas en la impresin de un string


ELO321 E/S

a)

b)

c)

11

E/S Programada (2)


copy_from_user(buffer, p, count) for (i = 0; i < count; i++) { while (*printer_status_reg != READY); *printer_data_register = p[i]; } return_to_user(); /* p es el buffer del ncleo */ /* lazo para cada carcter */ /* espera por READY */ /* imprime un carcter */

Imprimiendo un string usando E/S programada

ELO321 E/S

12

E/S por Interrupciones (1)


1. dispositivo ha 2. controlador genera
interrupcin CPU Controlador de Interrupciones finalizado

3. CPU atiende
interrupcin

bus

Activacin de Interrupciones
ELO321 E/S 13

E/S por Interrupciones (2)


Proceso: inicializar controlador comenzar con la E/S bloquear RSI: desbloquear proceso Controlador: operacin de E/S generar una interrupcin Aparato: realizar operacin

Continuacin despus de la interrupcin: lectura del estado del controlador. finalizar E/S

sistema / procesador
ELO321 E/S

hardware / perifrico
14

E/S por Interrupciones (3)


copy_from_user(buffer, p, count); enable_interrupts(); while (*printer_status_reg != READY); *printer_data_register = p[0]; scheduler(); if (count == 0) unblock_user(); else { *printer_data_register = p[i]; count--; i++; } acknowledge_interrupt(); return_from_interrupt;

a)

b)

Imprimiendo una cadena de caracteres va interrupciones:


a) cdigo ejecutado al invocar un llamado al sistema print b) rutina de servicio de interrupcin
ELO321 E/S 15

Acceso Directo a Memoria (DMA)

ELO321 E/S

16

E/S Usando DMA


copy_from_user(buffer, p, count); set_up_DMA_controller(); scheduler(); acknowledge_interrupt(); unblock_user(); return_from_interrupt();

a)

b)

Imprimiendo una cadena de caracteres va DMA:


a) cdigo ejecutado al invocar un llamado al sistema de impresin b) rutina de servicio de interrupcin
ELO321 E/S 17

Niveles de Software en E/S


software de E/S a nivel de usuario mdulos de E/S del SO independientes del dispositivo drivers de dispositivos manejadores de interrupcin hardware

ELO321 E/S

18

Manejadores de Interrupcin
Etapas del software al completar una interrupcin:
Respaldar registros no respaldados por el hardware de interrupcin Setear el contexto para la rutina de servicio de interrupcin (RSI) Inicializar el stack de la RSI reconocer interrupcin y re-habilitar interrupciones restaurar registros salvados ejecutar RSI setear el contexto de la MMU para prximo proceso carga nuevo PCB comienza a ejecutar prximo proceso
ELO321 E/S 19

Drivers de Dispositivos
Espacio de Usuario Proceso de Usuario

Resto del SO Espacio de Ncleo Driver de Impresora controlador Driver de Cmara Controlador Driver de DVD Controlador

Hardware Dispositivos
ELO321 E/S

20

E/S Independiente del Dispositivo (1)


Interfaces uniformes para drivers Buffering Reporte de errores Asignando y liberando dispositivos dedicados Asignacin del tamao de bloque

Funciones del software de E/S independiente del dispositivo


ELO321 E/S 21

E/S Independiente del Dispositivo (2)

(a) (b)

Sin un estndar para la interfaz del driver Con un estndar para la interfaz del driver
22

ELO321 E/S

E/S Independiente del Dispositivo (3)

(a) entrada sin buffer (b) utilizando un buffer en espacio de usuario (c) buffer de ncleo seguido de una copia a espacio de usuario (d) doble buffer de ncleo
ELO321 E/S 23

E/S Independiente del Dispositivo (4)

ELO321 E/S

24

E/S en Espacio de Usuario

Niveles del software de E/S y las funciones principales de cada nivel.


ELO321 E/S 25

Discos Duros (1)

ELO321 E/S

26

Discos Duros (2)


sector pista cilindro superficie / cabezal cluster

ELO321 E/S

27

Disco Duro vs. Flexible


Dispositivo Nmero de cilindros Pistas por cilindro Sectores por pistas Sectores por disco Bytes por sector Capacidad de disco Posicionamiento (cilindros adjasentes) Posicionamiento (promedio) Tiempo de rotacin Tiempo de partida/parada Transferencia de 1 sector Floppy 360 kb 40 2 9 720 512 360 kb 6 ms 77 ms 200 ms 250 ms 22 ms WD 18300 10601 12 281 35742000 512 250GB 0.8 ms 6.9 ms 8.33 ms 20 seg. 17 us

ELO321 E/S

28

Sistema RAID
RAID: Redundant Array of Independent (or Inexpensive) Disks Velocidad: Disponibilidad:
almacenamiento distribuido almacenamiento redundante

Niveles en RAID: 0: almacenamiento distribuido 1: almacenamiento redundante 2: almacenamiento distribuido y tolerante a fallas 3-5: almacenamiento distribuido y mejoramiento de la correccin de errores

ELO321 E/S

29

RAID (1)
lectura paralela Strip: grupo de sectores

almacenamiento redundante y lectura paralela correccin de errores

raid, niveles 0 al 2 backups y paridad aparecen sombreados


ELO321 E/S 30

RAID (2)

raid, niveles 3 al 5 backups y paridad aparecen sombreados


ELO321 E/S 31

CD Hardware (1)

Estructura de grabacin de un CD o CD-ROM


ELO321 E/S 32

CD Hardware (2)

Formato lgico de los datos en un CD-ROM


ELO321 E/S 33

Formateo de Discos (1)


Prembulo Datos ECC

Sector de un disco

ELO321 E/S

34

Formateo de Discos (2)

Ilustracin de la posicin de los cilindros

ELO321 E/S

35

Formateo de Discos (3)

Sin intercalamiento Intercalamiento simple Doble intercalamiento


ELO321 E/S 36

Scheduling del Brazo LectoEscritor (1)


Tiempo requerido para leer o escribir un bloque est determinado por 3 factores:

1. tiempo de bsqueda 2. tiempo de rotacin 3. tiempo de transferencia

Domina el tiempo de bsqueda Control de errores lo efecta el controlador


37

ELO321 E/S

Scheduling del Brazo LectoEscritor (2)


Requerimientos: 34, 10, 32, 28, 7, 25, 13, Posicin actual: 20
0 5 1 0 1 5 2 0 2 5 3 0 3 5 4 0 cilindro

Algoritmo FIFO
ELO321 E/S 38

Scheduling del Brazo LectoEscritor (3)


Requerimientos: 34, 10, 32, 28, 7, 25, 13, Posicin actual: 20
0 5 1 0 1 5 2 0 2 5 3 0 3 5 4 0 cilindro

Algoritmo del menor tiempo de bsqueda Shortest Seek Time First (SSTF)
ELO321 E/S 39

Scheduling del Brazo LectoEscritor (4)


Requerimientos: 34, 10, 32, 28, 7, 25, 13, Posicin actual: 20
0 5 1 0 1 5 2 0 2 5 3 0 3 5 4 0

Algoritmo del Elevador (SCAN)


ELO321 E/S 40

Manejo de Errores

a) b) c)

Una pista con sector defectuoso Cambiando sector defectuoso por uno de reserva Desplazando sectores
41

ELO321 E/S

Almacenamiento Estable

Efectos del colapso de discos bajo escrituras estables


ELO321 E/S 42

Relojes (1)
Tpicamente se tienen 2 usos para los relojes: a) Reloj de tiempo real

ELO321 E/S

seteo lectura actualizacin automtica de la hora y la fecha seteo operacin automtica interrupcin del temporizador
43

b) Temporizadores

Relojes (2)

00000 5499 5500 ....... 5496 00001 5498 00002 5497

timeout
5500

Un reloj programable (temporizador)


ELO321 E/S 44

Temporizadores por Software (1)


cabecera tiempo actual 4300 prxima seal 3

Simulando mltiples temporizadores:

calendarizacin: ordenado por tiempo seteo del temporizador al requerimiento ms cercano


45

ELO321 E/S

Temporizadores por Software (2)


Disponibilidad de un segundo reloj para interrupciones generadas por el usuario:
Se especifica por la aplicacin No es problema si la frecuencia de interrupcin es baja

Temporizadores por software evitan interrupciones:


El ncleo comprueba la expiracin de temporizadores por software antes de retornar a modo usuario La efectividad depende de la frecuencia de entradas al ncleo

ELO321 E/S

46

Terminal RS232 (1)

Un terminal RS-232 se comunica con la CPU bit por bit Lnea serial bits salen en serie, 1 bit cada vez Windows usa los puertos COM1 y COM2 CPU y terminales son completamente independientes
ELO321 E/S 47

Terminal RS232 (2)

ELO321 E/S

48

Terminal RS232 (3)

Comunicacin serial asincrnica: 1-2 start bits (activar y sincronizar el receptor) 7 bits de datos 1 bit de paridad 1-2 stop bits (garantiza una pausa antes del prximo frame)

start

start

stop

ELO321 E/S

49

Terminal RS232 (4)

a) b)

Conjunto de buffers centralizados Buffer dedicado para cada terminal


50

ELO321 E/S

Monitor (1)

Parallel port

Monitores mapeados en memoria driver escribe en forma directa en RAM de video


ELO321 E/S 51

Monitor (2)

(a) Una imagen de la RAM de video


ELO321 E/S

(b) Imagen correspondiente


las xs son atributos
52

simple monochrome display character mode

Teclado
El teclado enva secuencia de nmeros a la CPU:
el driver hace la conversin a caracteres usa una tabla ASCII

Dependiente del lenguaje:


muchos SO disponen de la carga dinmica de cdigos de pgina o keymaps
ELO321 E/S 53

Cdigo ASCII

ELO321 E/S

54

Ambientes Grficos
Entradas: eventos
mouse teclado objetos

Salidas: pantalla

foreground / background crear eliminar ventanas elementos dentro de una ventana ventanas con funciones especiales
grfica dilogos

ELO321 E/S

55

Ambiente de Ventana (1)


Ejemplo de una ventana ubicada en (200,100) para un monitor XGA

ELO321 E/S

56

Ambiente de Ventana (2)


int WINAPI WinMain(INSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { /* Declaracin: */ HWND hwnd; MSG mensaje; WNDCLASSEX wincl; /* Inicializacin: */ /* Estructura de la ventana */ wincl.hInstance = hInstance; wincl.lpszClassName = "NUESTRA_CLASE"; wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof(WNDCLASSEX); /* Usar icono y puntero por defecto */ wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
ELO321 E/S 57

Ambiente de Ventana (2)


wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH)COLOR_BACKGROUND; /* Registrar la clase de ventana, si falla, salir del programa */ if(!RegisterClassEx(&wincl)) return 0; hwnd = CreateWindowEx(0, "NUESTRA_CLASE", "Ejemplo 001", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, hThisInstance, NULL); ShowWindow(hwnd, SW_SHOWDEFAULT); /* Bucle de mensajes: */ while(TRUE == GetMessage(&mensaje, 0, 0, 0)) { TranslateMessage(&mensaje); DispatchMessage(&mensaje); } return mensaje.wParam;
ELO321 E/S 58

Ambiente de Ventana (4)

Bitmap mediante el mtodo Rectangle


ELO321 E/S 59

Ambiente de Ventana (5)

copiando bitmaps mediante BitBlt.


antes despus

ELO321 E/S

60

Ambiente de Ventana (6)

Escalabilidad:
Bitmap vs Vectores
ELO321 E/S 61

X Windows (1)

ELO321 E/S

62

X Windows (2)

ELO321 E/S

63

Administrador de Energa (1)

Consumo de energa de varios componentes de un laptop


ELO321 E/S 64

Administrador de Energa (2)

Operando a mxima velocidad Reduciendo el voltaje a la mitad


reduce la frecuencia del reloj a la mitad, reduce la potencia a la cuarta parte
ELO321 E/S 65

Administrador de Energa (3)


Comunicndole al programa que use menos energa:
puede derivar a una reduccin de la satisfaccin del usuario

Ejemplos:

suprimiendo el color; cambiando a modo blanco y negro reduciendo la resolucin en una imagen
66

ELO321 E/S

También podría gustarte