Title: Entrada/Salida
1Entrada/Salida
5.1 Hardware de E/S 5.2 Software de E/S 5.3
Estratos del software de E/S 5.4 Dicos 5.5
Relojes 5.6 Terminales de tipo caracter 5.7
Interfaces gráficas 5.8 Terminales de red 5.9
Administración de energía
2Hardware de E/S
- Velocidad de Transferencia
- Algunas velocidades típicas de transferencia
3Controladores de Dispositivos
- Dispositivos de E/S tienen componentes
- componentes mecánicos
- componentes electrónicos
- Los componentes electrónicos son el controlador
del dispositivo - pueden manejar múltiples dispositivos
- Tareas del controlador
- convertir flujo de datos seriales en bloques de
bytes - corrección de errores
- dejar disponible para la memoria principal
4Operaciones de E/S
- A Instrucciones especiales de entrada y salida
soportadas por el procesador - Definición de la atención de eventos de E/S
seteo del estado de un dispositivo. - Operación de un evento de E/S
- Término de la operación de E/S, seteo del estado
del dispositivo. - B 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
5E/S Mapeada en Memoria (1)
2 espacios de dir.
1 espacio de dir.
2 espacios de dir.
0xFF
0xFF
0xFF
Puertos E/S
RAM
Puertos E/S
RAM
RAM
Puertos E/S
Puertos E/S
0
0
0
(a)
(b)
(c)
- Separación de E/S y espacio de memoria
- E/S mapeada en memoria
- Sistema híbrido
6E/S, Memoria, y Transferencia de Datos
- (a) Arquitectura de bus simple
- (b) Arquitectura de bus dual
7Fundamentos del Software de E/SObjetivos
- 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
número - independiente de la máquina
- Manejo de errores
- manejo tan cercano al hardware como sea posible
8Otros Aspectos del Software de E/S
- Transferencias sincrónicas vs. asincrónicas
- 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
9Procedimientos de E/S
- CPU rápida ?? dispositivos de E/S lentos
- CPU-drivenInstrucción de E/S muy lenta o una
espera ociosala ejecución tarda tanto como la
operación de E/S - I/O-drivenLa CPU intercambia datos con el
controlador de E/S e inicia la operación de E/S.
El controlador efectúa la operación de E/S y
señaliza cuando termina. - Direct Memory Access (DMA)La CPU inicializa un
canal de DMA que transfiere un bloque de memoria
señalizando al finalizar.
10E/S Programada (1)
string a imprimir
espacio de usuario
página impresa
página impresa
página impresa
A B C D E F G H
A
AB
núcleo
next
next
A B C D E F G H
A B C D E F G H
a)
b)
c)
- Etapas en la impresión de un string
11E/S Programada (2)
- Imprimiendo un string usando E/S programada
12E/S por Interrupciones (1)
1. dispositivo ha finalizado
Controlador de Interrupciones
2. controlador genera interrupción
CPU
3. CPU atiende interrupción
bus
- Activación de Interrupciones
13E/S por Interrupciones (2)
Proceso inicializar controlador comenzar con la
E/S bloquear
Controlador operación de E/S generar una
interrupción
Aparato realizar operación
Continuación después de la interrupción lectura
del estado del controlador. finalizar E/S
RSI desbloquear proceso
hardware / periférico
sistema / procesador
14E/S por Interrupciones (3)
copy_from_user(buffer, p, count)
enable_interrupts() while (printer_status_reg
! READY) printer_data_register p0
scheduler()
if (count 0) unblock_user() else
printer_data_register pi count-- i
acknowledge_interrupt() return_from_interrupt
a)
b)
- Imprimiendo una cadena de caracteres vía
interrupciones - código ejecutado al invocar un llamado al sistema
print - rutina de servicio de interrupción
15Acceso Directo a Memoria (DMA)
- Operaciones de una transferencia DMA
16E/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 vía DMA
- código ejecutado al invocar un llamado al sistema
print - rutina de servicio de interrupción
17Niveles de Software en E/S
software de E/S a nivel de usuario
módulos de E/S del SO independientes del
dispositivo
drivers de dispositivos
manejadores de interrupción
hardware
18Manejadores de Interrupción
- Etapas del software al completar una
interrupción - Respaldar registros no respaldados por el
hardware de interrupción - Setear el contexto para la rutina de servicio de
interrupción (RSI) - Inicializar el stack de la RSI
- reconocer interrupción y re-habilitar
interrupciones - restaurar registros salvados
- ejecutar RSI
- setear el contexto de la MMU para próximo proceso
- carga nuevo PCB
- comienza a ejecutar próximo proceso
19Drivers de Dispositivos
- Localización lógica de un driver de dispositivo
- La comunicación entre el driver y el controlador
de dispositivo es a través del bus
20E/S Independiente del Dispositivo (1)
- Funciones del software de E/S independiente del
dispositivo
21E/S Independiente del Dispositivo (2)
- Sin un estándar para la interfaz del driver
- Con un estándar para la interfaz del driver
22E/S Independiente del Dispositivo (3)
- (a) input sin buffer
- (b) utilizando un buffer en espacio de usuario
- (c) buffer de núcleo seguido de una copia a
espacio de usuario - (d) doble buffer de núcleo
23E/S Independiente del Dispositivo (4)
- Networking puede involucrar muchas copias
24E/S en Espacio de Usuario
- Niveles del software de E/S y las funciones
principales de cada nivel.
25Discos Duros (1)
26Discos Duros (2)
- sector
- pista
- cilindro
- superficie / cabezal
- cluster
27Discos
- Parámetros del IBM PC floppy disk original y un
disco duro Western Digital WD 18300
28Sistema RAID
RAIDRedundant Array of Independent (or
Inexpensive) Disks
- Velocidadalmacenamiento distribuido
- Disponibilidad almacenamiento redundante
Niveles en RAID 0 almacenamiento
distribuido 1 almacenamiento redundante 2
almacenamiento distribuido y tolerante a
fallas 3 almacenamiento distribuido y
mejoramiento de la corrección de errores
29RAID (1)
Strip grupo de sectores
lectura paralela
almacenamiento redundante y lectura paralela
corrección de errores
- Raid levels 0 through 2
- Backup and parity drives are shaded
30RAID (2)
- Raid, niveles 3 al 5
- Backups y paridad aparecen sombreados
31CD Hardware (1)
- Estructura de grabación de un CD o CD-ROM
32CD Hardware (2)
- Formato lógico de los datos en un CD-ROM
33Formateo de Discos (1)
34Formateo de Discos (2)
ilustración de la posición de los cilindros
35Formateo de Discos (3)
- sin intercalamiento
- intercalamiento simple
- doble intercalamiento
36Scheduling del Brazo Lecto-Escritor (1)
- Tiempo requerido para leer o escribir un bloque
está determinado por 3 factores - tiempo de búsqueda
- tiempo de rotación
- tiempo de transferencia
- Domina el tiempo de búsqueda
- Control de errores lo efectúa el controlador
37Scheduling del Brazo Lecto-Escritor (2)
Requerimientos 34, 10, 32, 28, 7, 25, 13,
Posición actual 20
1
1
2
2
3
3
4
0
5
0
5
0
5
0
5
0
cilindro
38Scheduling del Brazo Lecto-Escritor (3)
Requerimientos 34, 10, 32, 28, 7, 25, 13,
Posición actual 20
1
1
2
2
3
3
4
0
5
0
5
0
5
0
5
0
cilindro
- Algoritmo del menor tiempo de bùsqueda
- Shortest Seek Time First (SSTF)
39Scheduling del Brazo Lecto-Escritor (4)
Requerimientos 34, 10, 32, 28, 7, 25, 13,
Posición actual 20
1
1
2
2
3
3
4
0
5
0
5
0
5
0
5
0
- Algoritmo del Elevador (SCAN)
40Manejo de Errores
- Una pista con sector defectuoso
- Cambiando sector defectuoso por uno de reserva
- Desplazando sectores
41Almacenamiento Estable(mediante discos espejados)
- Efectos del colapso de discos bajo escrituras
estables
42Relojes (1)
- Típicamente se tienen 2 usos para los relojes
- Reloj de tiempo real
- seteo
- lectura
- actualización automática de la hora y la fecha
- Temporizadores
- seteo
- operación automática
- interrupción del temporizador
43Relojes (2)
00000
5500
5499
5498
5496
.......
00001
5497
00002
timeout
5500
- Un reloj programable (temporizador)
44Temporizadores por Software (1)
cabecera
próxima señal
tiempo actual
4300
3
3
6
2
1
- Simulando múltiples temporizadores
- calendarización ordenado por tiempo
- seteo del temporizador al requerimiento más
cercano
45Temporizadores por Software (2)
- Disponibilidad de un segundo reloj para
interrupciones generadas por el usuario - Se especifica por la aplicación
- No es problema si la frecuencia de interrupción
es baja - Temporizadores por software evitan
interrupciones - El núcleo comprueba la expiración de
temporizadores por software antes de retornar a
modo usuario - La efectividad depende de la frecuencia de
entradas al núcleo
46Terminales de Tipo Carácter (1) Terminal RS-232
- Un terminal RS-232 se comunica con la CPU bit por
bit - Línea serial bits salen en serie, 1 bit cada
vez - Windows usa los puertos COM1 y COM2
- CPU y terminales son completamente independientes
47Terminales de Tipo Carácter (2) Terminal RS-232
48Terminales de Tipo Carácter (3) Terminal RS-232
- Comunicación serial asincrónica
- 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
próximo frame)
start
start
1
2
3
4
5
6
7
9
stop
49Terminales de Tipo Carácter (4) Terminal RS-232
- Conjunto de buffers centralizados
- Buffer dedicado para cada terminal
50Monitor (1)
Parallel port
- Monitores mapeados en memoria
- driver escriben en forma directa en RAM de video
51Monitor (2)
- (a) Una imagen de la RAM de video
- simple monochrome display
- character mode
- (b) Corresponding screen
- the xs are attribute bytes
52Teclado
- El teclado envía secuencia de números a la CPU
- el driver hace la conversión a caracteres
- usa una tabla ASCII
- Dependiente del lenguaje
- muchos SO disponen de la carga dinámica de
códigos de página o keymaps
53Código ASCII
- ISO 7 Bit Code / US ASCII
54Ambientes Gráficos
- Entradas eventos
- mouse
- teclado
- objetos
- Salidas pantalla
- foreground / background
- crear eliminar ventanas
- elementos dentro de una ventana
- gráfica
- diálogos
- ventanas con funciones especiales
55Ambiente de Ventana (1)
- Ejemplo de una ventana ubicada en (200,100) para
un monitor XGA
56Ambiente de Ventana (2)
- Estructura de un programa Windows (parte 1)
57Ambiente de Ventana (3)
- Estructura de un programa Windows (parte 2)
58Ambiente de Ventana (4)
Grafos de tipo Bitmap
- Despliegue de un rectángulo mediante Rectangle
59Ambiente de Ventana (5)
- copiando bitmaps mediante BitBlt.
- antes
- después
60Ambiente de Ventana (6)
- Escalabilidad
- Bitmap vs Vectores
61Terminales de RedX Windows (1)
- Clients and servers in the M.I.T. X Window System
62XWin-dows(2)
- Estructura de un programa X-Windows
63Administrador de Energía (1)
- Consumo de energía de varios componentes de un
laptop
64Administrador de Energía (2)
- Operando a máxima velocidad
- Reduciendo el voltaje a la mitad
- reduce la frecuencia del reloj a la mitad,
- reduce la potencia a la cuarta parte
65Administrador de Energía (3)
- Comunicándole al programa que use menos energía
- puede derivar a una reducción de la satisfacción
del usuario - Ejemplos
- suprimiendo el color cambiando a modo blanco y
negro - reduciendo la resolución en una imagen