Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Input / Output
Marcelo Maraboli R.
marcelo.maraboli@usm.cl
2021 marcelo.maraboli@gmail.com
1
Cinta Magnética
Ø Características
Ø Principalmente usado para backup, almacenar data no
frecuentemente usada o transferencia entre sistemas
Ø Fue primer medio de almacenamiento secundario
Ø +- permanente y soporta gran cantidad de data
marcelo.maraboli@gmail.com
2
Disks
Ø Características
Ø Proveen la forma de almacenamiento RW más grande
Ø Discos rotan 4200 a 15000 veces por min
Ø Discos pueden ser removibles
Ø Disco son conectados a través de un I/O bus
Ø ej: EIDE, ATA, SATA, USB, Fibre Channel, SCSI
marcelo.maraboli@gmail.com
3
Disks
Ø Track
(pistas)
Ø Cilindro
Ø Sector
Ø Bloque
Ø Brazo
Ø Tamaño
Disco =
C*T*S
marcelo.maraboli@gmail.com
4
Disks
Ø Track (pistas)
Ø Cilindro
Ø Sector
Ø Bloque
Ø Brazo
marcelo.maraboli@gmail.com
5
Disks
Ø Tiempo de Posicionamiento (random-access time)
Ø = seek time + rotational latency
Ø seek time es el tiempo en mover el brazo hasta el cilindro/track deseado
Ø rotational latency/delay es el tiempo de espera hasta que el sector
deseado pase bajo el cabezal
Disk parameters for the original IBM PC floppy disk and a Western
Digital WD 18300 hard disk
marcelo.maraboli@gmail.com
7
Disks
Ø Partición y Volumen
marcelo.maraboli@gmail.com
8
Disks
Ø Montar
particiones
y/o
volumenes
marcelo.maraboli@gmail.com
9
Booting from a Disk in Windows 2000
marcelo.maraboli@gmail.com
10
Disks
Ø Disk Arm Scheduling Algorithms - DASA
marcelo.maraboli@gmail.com
12
Disk Arm Scheduling - FIFO
marcelo.maraboli@gmail.com
13
Disk Arm Scheduling - Shortest Seek First (SSF)
marcelo.maraboli@gmail.com
14
Disk Arm Scheduling - Shortest Seek First (SSF)
marcelo.maraboli@gmail.com
15
Disk Arm Scheduling – Algoritmo del Ascensor
marcelo.maraboli@gmail.com
16
Disk Arm Scheduling – Algoritmo del Ascensor
marcelo.maraboli@gmail.com
17
Disk Arm Scheduling – Algoritmo C-SCAN
marcelo.maraboli@gmail.com
18
Disk Arm Scheduling
marcelo.maraboli@gmail.com
19
Disk Arm Scheduling
Ø Algunas consideraciones
marcelo.maraboli@gmail.com
20
Disks: Error Handling
Ø Errores frecuentes
Ø Error de Programa
Ø sector not found, file not found
Ø Transient checksum error
Ø polvo en el disco
Ø Permanent checksum error
Ø daño físico
Ø Seek Error
Ø brazo enviado a cilindro 6 y llegó al 7
Ø arreglo: RECALIBRATE
Ø Controller Error
Ø controladora no acepta comandos
Ø arreglo: RESET CONTROLLER
Ø Situación inicial
Ø a) Un track con un sector dañado
Ø Solución
Ø b) sustitución del sector malo con uno de reserva
Ø c) correr todos los sectores en 1 saltándose el dañado
marcelo.maraboli@gmail.com
22
SSD
Ø A solid-state drive(SSD) is a data storage device that uses solid state memory to store
persistent data. It is flash based storage device and It uses same I/O interface developed
for hard disk drives.
Ø SSDs do not have any moving mechanical components, which distinguishes them from
traditional magnetic disks such as hard disk drives(HDDs).
Ø SSDs use microchips that retain data in non-volatile memory chips.
Ø SSD uses non volatile NAND Flash Memory , which enables it to retain data when the
power is removed.
Ø SSD Flash Memory are slower than DRAM, but are cheaper than DRAM
marcelo.maraboli@gmail.com
23
SSD vs HD
marcelo.maraboli@gmail.com
24
SSD vs HD
marcelo.maraboli@gmail.com
25
Arreglo de Discos Redundantes
marcelo.maraboli@gmail.com
26
Arreglo de Discos Redundantes
Ø RAID 0
Ø data repartida por diferentes discos (stripping)
Ø no hay redundancia à no hay tolerancia a fallas
Ø aumenta velocidad de transferencia, ya que carga I/O es repartida
Ø no hay paridad de chequeo
marcelo.maraboli@gmail.com
27
Arreglo de Discos Redundantes
Ø RAID 1
Ø data es copiada en disco espejo ( mirroring)
Ø doble rendimiento de lectura, mismo rendimiento escritura
Ø redundancia disco a disco
Ø no hay período de sincronización en caso de falla/recuperación
marcelo.maraboli@gmail.com
28
Arreglo de Discos Redundantes
Ø RAID 2
Ø Cada bit de una palabra es escrita a disco (4 en este ejemplo: 0 to 3).
Ø Cada palabra tiene su Código Corrección Error Hamming ECC escrita
en los discos ECC.
Ø Cuando hay Lectura, el código ECC verifica data correcta o corrige
errores simples
Ø Posee alta tasa de transferencia
Ø no es comercialmente usado...
marcelo.maraboli@gmail.com
29
Arreglo de Discos Redundantes
Ø RAID 3 - bit-interleaved parity
Ø El bloque de data es subdividido ("striped") y escrito en discos
diferentes
Ø La paridad es generada en la Escritura y guardado en el disco de
paridad. Es revisado en la Lectura
Ø RAID Level 3 requiere de un mínimo de 3 discos
Ø Alta tasa lectura/escritura
Ø requiere menos discos ECC que RAID 2
Ø Tolera falla de 1 disco
marcelo.maraboli@gmail.com
30
Arreglo de Discos Redundantes
Ø RAID 4 - block-level parity
Ø El bloque de data es escrito en 1 sólo disco
Ø La paridad es generada en la Escritura y guardado en el disco de
paridad. Es revisado en la Lectura
Ø RAID Level 4 requiere de un mínimo de 3 discos
Ø controladora muy compleja
Ø el peor rendimiento de escritura
Ø difícil algoritmo de recuperación de disco
marcelo.maraboli@gmail.com
31
Arreglo de Discos Redundantes
Ø RAID 5 - block-level distributed parity
Ø Cada bloque completo es escrito en 1 disco
Ø La paridad de bloques del mismo rango son generados en la
Escritura, grabados en distribuidamente y revisado en la Lectura
Ø RAID Level 5 requiere de un mínimo de 3 discos
Ø alta tasa lectura, mediana tasa escritura
Ø controladora compleja
Ø falla de disco se puede reconstruir en disco libre (repuesto)
marcelo.maraboli@gmail.com
32
Arreglo de Discos Redundantes
Ø RAID 6 - block-level distributed parity
Ø 2 algoritmos de chequeo de paridad son implementados
Ø protección de falla de 2 discos
Ø RAID Level 5 requiere de un mínimo de 4 discos (N+2)
Ø controladora compleja
Ø falla de disco se puede reconstruir en disco libre (repuesto)
marcelo.maraboli@gmail.com
33
Arreglo de Discos Redundantes
marcelo.maraboli@gmail.com
34
Arreglo de Discos Redundantes
marcelo.maraboli@gmail.com
35
RAM Disks
Ø idea: Almacenar en una porción de Memoria Principal los
programas de mayor uso, simulando un disco.
marcelo.maraboli@gmail.com
36
Compact Disc - CD
marcelo.maraboli@gmail.com
38
CD-ROM
marcelo.maraboli@gmail.com
39
DVD
marcelo.maraboli@gmail.com
40
Network-Attached Storage
Ø Network-attached storage (NAS) es un almacenamiento que se utiliza a
través de la red en vez de una conexión local o bus
Ø ejemplos: NFS y CIFS
Ø Implementado via remote procedure calls (RPCs) entre cliente y NAS
Ø Protocolo nuevo iSCSI usa red IP para transportar comandos SCSI
marcelo.maraboli@gmail.com
41
Storage Area Network
Ø Red de alta velocidad usada para almacenaje
Ø múltiples hosts conectados a múltiples arreglos
Ø generalmente vía fibra – Fibre channel
marcelo.maraboli@gmail.com
42
Costo
Ø MP es mucho más costosa que disco duros
marcelo.maraboli@gmail.com
43
Price per Megabyte of DRAM
marcelo.maraboli@gmail.com
44
Price per Megabyte of Magnetic Hard Disk,
marcelo.maraboli@gmail.com
45
Price per Megabyte of a Tape Drive,
From 1984-2000
marcelo.maraboli@gmail.com
46
Terminales
Ø Hardware: 2 tipos
marcelo.maraboli@gmail.com
47
Terminales
marcelo.maraboli@gmail.com
48
Terminales
marcelo.maraboli@gmail.com
49
Terminales - Input Software
marcelo.maraboli@gmail.com
50
Terminales - Output Software
marcelo.maraboli@gmail.com
51
Terminales
Ø Memory Mapped Terminals
Ø corresponde a la “consola” del computador
Ø Estos escriben/leen directamente de la RAM de video.
marcelo.maraboli@gmail.com
52
Terminales
marcelo.maraboli@gmail.com
53
Terminales
Ø Memory Mapped Terminals
Ø Orientados al bit (pixel): Video gráfico
Ø Resolución típica: 640x480, 800x600, etc
Ø Deadline scheduler
Ø Uses 3 filas
Ø peticiones entrantes
Ø peticiones READ van al final de
fila FIFO READ
Ø peticiones WRITE van al final de
fila FIFO WRITE
Ø cada petición tiene tiempo
expiración
marcelo.maraboli@gmail.com
57
Power Management (1)
marcelo.maraboli@gmail.com
58
Power Management (2)
marcelo.maraboli@gmail.com
59
Power Management (3)
Ø Examples
Ø change from color output to black and white
Ø speech recognition reduces vocabulary
Ø less resolution or detail in an image
marcelo.maraboli@gmail.com
60
Sistemas Operativos
Input / Output
Marcelo Maraboli R.
marcelo.maraboli@usm.cl
2021 marcelo.maraboli@gmail.com
1
Input/Output
marcelo.maraboli@gmail.com
2
Input/Output
Ø Conceptos comunes
Ø Port
Ø Bus - daisy chain (cascada) or shared direct access
Ø Controller (host adapter)
marcelo.maraboli@gmail.com
3
Input/Output
marcelo.maraboli@gmail.com
4
Input/Output
marcelo.maraboli@gmail.com
5
Input / Output and Storage Devices
marcelo.maraboli@gmail.com
6
Input/Output
Ø Funciones por capa
marcelo.maraboli@gmail.com
7
User Level
marcelo.maraboli@gmail.com
8
Device Independent SW
Ø Eficiencia
Ø Muchos dispositivos I/O son muy lentos comparados con MP
Ø la Multiprogramación/Multitasking permite a varios procesos esperar
por I/O mientras otros se ejecutan
Ø dispositivos I/O no pueden seguir el paso del crecimiento de la
velocidad de las CPU
Ø Hacer Swapping permite traer más procesos al estado READY, pero
implica una operación I/O
Ø Independencia de dispositivos
Ø los programas pueden acceso cualquier dispositivo I/O sin
diferencia (floppy, hard drive, o CD-ROM)
Ø Buffering
Ø data proveniente de un dispositovo no puede ser almacenada
directamente en el destino final inmediatamente.
marcelo.maraboli@gmail.com
9
Device Independent SW
Ø Nombramiento uniforme
Ø nombre de un archivo, dispositivo, string o entero no debe depender del
dispositivo
Ø En UNIX; HD, floppy, CD son todos “montados” en la misma estructura de
archivos, siendo uniforme la forma de nombrarlos
Ø “Transparencia”
Ø Se desea manejar todos los dispositivos de la misma manera
Ø Se debe esconder los detalles I/O de bajo-nivel para que CPU vea al
dispositivo en términos de : read, write, open, close, lock, unlock
marcelo.maraboli@gmail.com
10
Device Independent SW
Ø Administración de errores
Ø manejarlo lo más cercano al hardware posible. Sino se puede corregir, se
pasa a la capa superior
Ø muchos dispositivos sólo entregan un número de error.
marcelo.maraboli@gmail.com
11
Device Independent SW
Ø Acceso secuencial o randómica
marcelo.maraboli@gmail.com
12
Consideraciones...
Ø Ejemplos...
marcelo.maraboli@gmail.com
13
Device Driver
Ø S.Op utiliza un driver
(software) para comandar al
dispositivo
marcelo.maraboli@gmail.com
15
Input/Output
Estructura típica de un BUS de PC
CPU
IDE bus
(daisy chain)
marcelo.maraboli@gmail.com
16
Input/Output
Estructura típica de un BUS de PC
marcelo.maraboli@gmail.com
17
Input/Output
Estructura típica de un BUS de PC
marcelo.maraboli@gmail.com
18
Input/Output
Estructura típica un S.Operativo
marcelo.maraboli@gmail.com
19
Input/Output
marcelo.maraboli@gmail.com
21
Input/Output
Ø Consideraciones del Kernel
Ø Blocking – proceso es supendido hasta que termina operación I/O
Ø fácil de usar y entender
Ø insuficiente para algunas necesidades
marcelo.maraboli@gmail.com
22
Input/Output
marcelo.maraboli@gmail.com
23
Input/Output
Ejemplo de Programmed I/O: Imprimir a la Impresora
marcelo.maraboli@gmail.com
24
Input/Output
Ø 3.- Interrupciones
Ø CPU genera comando I/O
Ø CPU continúa ejecutando otras instrucciones del proceso
Ø dispositivo I/O envía interrupción cuando está listo
marcelo.maraboli@gmail.com
25
Input/Output
Interrupciones...
marcelo.maraboli@gmail.com
26
Input/Output
marcelo.maraboli@gmail.com
27
Input/Output
Intel Pentium Processor Event-Vector Table
marcelo.maraboli@gmail.com
28
Input/Output
Intel Pentium Processor IRQ
Interrupt Requests
marcelo.maraboli@gmail.com
29
Input/Output
Intel Pentium Processor IRQ
Interrupt Requests
Ø IRQ son líneas hardware que un dispositivo I/O utiliza para “interrumpir” a la CPU indicando que
tiene un dato para ser atendido
Ø Teclado usa IRQ1
Ø Habrá conflicto de IRQ si 2 dispositivos se configuran con el mismo IRQ aunque estén conectados en
puertos físicos distintos
Ø Plug-and-Play resuelve estos conflictos
marcelo.maraboli@gmail.com
30
Direct Memory Access (DMA)
Ø 4.- DMA
marcelo.maraboli@gmail.com
31
Direct Memory Access (DMA)
Ø Con DMA
Ø CPU envía 3 parámetros a controller en vez de 1: disk
block, memory address y #bytes a transferir
marcelo.maraboli@gmail.com
32
Direct Memory Access (DMA)
marcelo.maraboli@gmail.com
33
Direct Memory Access (DMA)
Direct Memory Access (DMA)
marcelo.maraboli@gmail.com
34
Direct Memory Access (DMA)
Direct Memory Access (DMA)
marcelo.maraboli@gmail.com
35
Direct Memory Access (DMA)
Ø 2 razones
Ø comprobar checksum
marcelo.maraboli@gmail.com
36
Direct Memory Access (DMA)
Ø Otras razones:
Ø controladora podría estar haciendo DMA y leyendo el próximo
sector.
marcelo.maraboli@gmail.com
37
Ultra DMA uses DDR and CRC
Ø One feature that made Ultra DMA “ultra” was that it transferred data
on both the positive and negative edges of the clock.
Ø Same idea as in DDR (Double Data Rate) memory
Ø As Ultra DMA pushed the limit on transfer rate, it made the occurrence
of errors somewhat more likely. Thus it introduced a CRC (Cyclic
Redundancy Check) as part of the standard.
Ø Recall CRC is error detection. If an error occurs in transmission the data is
retransmitted.
Input/Output
marcelo.maraboli@gmail.com
39
Formas de Direccionamiento de Device
Ø Memory Mapped I/O
Ø Caso (a): Espacio de direccionamiento separado
Ø Caso (b)
Ø registros de comunicación con I/O device son parte del espacio de
direcciones de memoria (Ej: Motorola 680x0)
Ø es decir, cierto espacio de “memoria” significa direccionar los devices
de I/O, por ende, no es necesario el bit I/O en el bus.
Ø Caso (c): híbrido
marcelo.maraboli@gmail.com
40
Input/Output
marcelo.maraboli@gmail.com
41
Formas de Direccionamiento de Device
marcelo.maraboli@gmail.com
42
Formas de Direccionamiento de Device
marcelo.maraboli@gmail.com
43
Input/Output
Ø I/O devices
Ø block devices
Ø dispositivos almacenan info en bloques de tamaño fijo
Ø tamaños comunes varían de 128 a 1024 byte
Ø puede R o W un bloque en forma independiente de otro bloque
Ø comandos son: open(), read(), write(), seek()
Ø Raw I/O, acceso tipo FS o memory-mapped files
Ø Ej: discos duros
Ø Ej comando: “leer block 122”
Ø character device
Ø acepta/recibe una cadena de char sin estructura
Ø no son direccionables y no existe “seek”
Ø comandos son: get(), put()
Ø Ej: terminales, impresoras, NIC, mouse
marcelo.maraboli@gmail.com
44
Dispositivos
Ø Disco Duro
Ø HD contiene info como bloque (preámbulo, 4096 bits/sector, ECC)
Ø preámbulo (depende del formateo) contiene el #cilindro, #sector, tamaño
sector y otros
Ø el Controller convierte esta cadena en bloque de datos y corrige errores (si
los hay)
Ø luego los datos son copiados a Memoria Principal
Ø Controladora de Video
Ø lee los datos de memoria (bytes)
Ø genera las señales analógicas Horizontal y Vertical para el monitor
Ø además controla el refresco, ahorro de energía, parámetros iniciales de
booteo, resolución, etc.
marcelo.maraboli@gmail.com
45
Basic Performance Concepts
Ø Response Time or Latency: Time to perform an operation(s)
marcelo.maraboli@gmail.com
46
Example: Fast Network
marcelo.maraboli@gmail.com
47
Example: At 10ms startup
(More Like a Disk)
Performance)of)gbps)link)with)10)ms)startup)
18,000"" 50""
16,000"" 45""
40""
14,000""
Bandwidth)(mB/s))
35""
12,000""
Latency)(us))
30""
10,000""
25""
8,000""
20""
6,000""
15""
4,000""
10""
2,000"" 5""
0"" 0""
0"" 50,000""100,000""150,000""200,000""250,000""300,000""350,000""400,000""450,000""500,000""
Length)(b))
marcelo.maraboli@gmail.com
48
What determines peak bandwidth
for I/O?
Ø Bus Speed
Ø PCI-X: 1064 MB/s = 133MHz x 64 bit (per lane)
Ø Ultra Wide SCSI = 40 MB/s
Ø USB 3.0 = 5 GB/s
Ø Thunderbolt 3 = 40 Gb/s
Ø Device Transfer Bandwidth
Ø Rotational speed of spinning metal hard drive
Ø Write/Read rate of NAND flash
Ø Signaling rate of network link
marcelo.maraboli@gmail.com
49