Está en la página 1de 109

Sistemas Operativos

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

Ø tiempo de acceso lento ~1000 veces menor que un disco


Ø Requiere de sistema Spool

Ø una vez que cabezal está en la pista, la tasa de transferencia es


comparable a un disco

Ø espacio típico de 20 a 200 Gbytes


Ø tecnologías comunes son: 4mm, 8mm, 19mm, LTO-2 and SDLT

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

Ø Ventajas principales sobre Memoria Principal


Ø mayor capacidad de almacenamiento
Ø precio por bit es menor
Ø memoria no-volátil

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

Ø Tamaño Disco = C*T*S

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

Ø Tasa de Transferencia es la tasa del flujo de bits entre el disco y el


computador

Ø Tiempo de acceso = seek + rotational + transfer


marcelo.maraboli@gmail.com
6
Disks

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

Ø tiempo R/W depende de:


Ø seek time
Ø (mover brazo hasta el cilindro)
Ø rotational delay
Ø (cabezal llegue al sector)
Ø transfer time
Ø (lectura del sector)

Ø tiempo más significativo es el seek time

Ø Si hay muchas peticiones, acceder sin planificación no es


óptimo...
marcelo.maraboli@gmail.com
11
Disk Arm Scheduling - FIFO

Ø Atiende peticiones en orden FIFO


Ø atiende en mismo orden de llegada
Ø atención “equitativa”

Ø Ej: si un disco está leyendo un sector en el cilindro 11 y


llegan peticiones para los cilindros 1, 36, 16, 34, 9 y 12

Ø y se atiende en orden de llegada, entonces se deben


recorrer 10, 35, 20, 18, 25 y 3 cilindros respectivamente

Ø TOTAL= 111 cilindros.

marcelo.maraboli@gmail.com
12
Disk Arm Scheduling - FIFO

Ø Ej2: movimiento total de 640 cylinders

marcelo.maraboli@gmail.com
13
Disk Arm Scheduling - Shortest Seek First (SSF)

Ø selecciona la petición que incurra en el menor seek time desde la actual


posición.
Ø SSF es una forma de SJF; puede causar inanición
Ø se recorren 1, 3, 9, 15, 33 y 2 cilindros, TOTAL= 61 cilindros

Ø Problema: El cabezal tiende a estar en el medio. Cilindros de los extremos


tienen servicio pobre.
Initial Pending
position requests

marcelo.maraboli@gmail.com
14
Disk Arm Scheduling - Shortest Seek First (SSF)

Ø Ej2: movimiento total de 236 cylinders

marcelo.maraboli@gmail.com
15
Disk Arm Scheduling – Algoritmo del Ascensor

Ø también conocido como Algoritmo SCAN


Ø atiende todas las peticiones en un sentido y luego cambia de sentido
Ø Mejor compromiso equitatividad/eficiencia
Ø No siempre es mejor que SSF.
Ø Propiedad: recorrido total máximo = 2 * (# total cilindros)
Ø se recorren 1, 4, 18, 2, 27 y 8 cilindros, TOTAL= 60 cilindros

marcelo.maraboli@gmail.com
16
Disk Arm Scheduling – Algoritmo del Ascensor

Ø Ej2: movimiento total de 236 cylinders

marcelo.maraboli@gmail.com
17
Disk Arm Scheduling – Algoritmo C-SCAN

Ø parecido a SCAN, pero el brazo sólo se mueve en 1 sentido


Ø atiende peticiones en 1 sentido y luego retorna al principio y
comienza nuevamente.... TOTAL= 382

marcelo.maraboli@gmail.com
18
Disk Arm Scheduling

marcelo.maraboli@gmail.com
19
Disk Arm Scheduling
Ø Algunas consideraciones

Ø peticiones de sectores en el mismo cilindro tienen prioridad más alta


Ø peticiones de sectores en el mismo track (mismo cilindro) no agrega tiempo
seek ni tiempo de rotación, sólo cambio de cabeza lectora
Ø el avance tecnológico de los discos han reducido altamente el seek time,
pero no el rotational delay
Ø Si esto continúa, los algoritmos vistos deberán modificarse !!.

Ø SSF es la elección más natural


Ø SCAN y C-SCAN son mejores en casos de alta carga (uso) de disco
Ø El Rendimiento depende del número y tipo de peticiones
Ø Las peticiones pueden ser influenciadas por el método de almacenamiento
en disco (S.Operativo)
Ø Estos algoritmos debieran estar escritos como módulos de S.Op para hacer
más fácil su cambio

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

Ø Tarea del disk driver atender estos errores...


marcelo.maraboli@gmail.com
21
Disks: Error Handling

Ø 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

Ø RAID – Redundant Array of Independent Disks

Ø múltiples discos proveen de confiabilidad (reliability) a


través de la redundancia

Ø Existen varios niveles de RAID

Ø son vistos como 1 sólo disco por el S.Operativo

Ø La data/paridad está distribuida a través de varios discos

Ø Permite seguir funcionando con 1 disco malo

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

Ø falla de 1 disco, causa falla total

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

Recording structure of a CD or CD-ROM


marcelo.maraboli@gmail.com
37
CD-ROM

Logical data layout on a CD-ROM

marcelo.maraboli@gmail.com
38
CD-ROM

Ø Corte cruzado de una disco CD-R (no está a escala)

Ø CD-ROM gris tiene estructura similar


Ø sin la capa “dye”
Ø con aluminio en vez de oro

marcelo.maraboli@gmail.com
39
DVD

A double sided, dual layer DVD disk

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

Ø El costo por MBytes de un HD es comparable al de una cinta


magnética si se compara 1 HD con 1 cinta

Ø Las unidad de cinta más barata y la unidad de HD más


barata poseen aprox. la misma capacidad en los últimos
años.

marcelo.maraboli@gmail.com
43
Price per Megabyte of DRAM

marcelo.maraboli@gmail.com
44
Price per Megabyte of Magnetic Hard Disk,

From 1981 to 2004

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

Ø Debido a que terminales tipo RS232 trabajan con líneas


seriales (bit a bit) y los computadores de byte a byte, se
debe usar una controladora con una UART.

marcelo.maraboli@gmail.com
48
Terminales

Ø 4 tipos de terminales RS232

Ø Hardcopy: Impresoras Seriales

Ø Glass TTY: Terminales ASCII simple (tty=teletype)

Ø Intelligent: Terminal que además entiende secuencias de


Escape ESC (ej: VT100), posee CPU, mem y EPROM/ROM

Ø Blit: Terminal Gráfico. Posee CPU y mem.

marcelo.maraboli@gmail.com
49
Terminales - Input Software

Characters handled specially in canonical mode

marcelo.maraboli@gmail.com
50
Terminales - Output Software

The ANSI escape sequences


Ø accepted by terminal driver on output
Ø ESC is ASCII character (0x1B)
Ø n,m, and s are optional numeric parameters

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

Ø Memory Mapped Terminals


Ø Orientados a caracter: Ej: IBM PC texto
Ø poseen puntos llamados pixeles
Ø unidad mínima de trabajo es caracter, 14x9 pixels.

marcelo.maraboli@gmail.com
53
Terminales
Ø Memory Mapped Terminals
Ø Orientados al bit (pixel): Video gráfico
Ø Resolución típica: 640x480, 800x600, etc

Ø 640x480x8 bits.....2.457.600 bits....307.200 bytes


Ø para 16 bits..............614.400 bytes
Ø para 24 bits, RGB c/u 8 bits....921.600 bytes.

Ø 800x600, 8 bits........480.000 bytes


Ø en 16 bits...............................960.000 bytes
Ø en 24 bits............................1.440.000 bytes

Ø 1024x768, 8 bits........786.432 bytes


Ø en 16 bits........................1.572.864 bytes
Ø en 24 bits........................2.359.296 bytes

Ø 1 Mb video = 1.048.576, 2 Mb video = 2.097.152.


marcelo.maraboli@gmail.com
54
Network Terminals

X Windows (www.xfree86.org www.x.org)

Clients and servers in the M.I.T. X Window System


marcelo.maraboli@gmail.com
55
Linux I/O
Ø Elevator scheduler
Ø fila única para READ y WRITE
Ø mantiene lista de peticiones ordenadas por número bloque
Ø disco se mueve en 1 sentido para satisfacer cada requerimiento

Ø 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

Ø Anticipatory I/O scheduler


Ø Demorar un pequeño tiempo después de atender petición READ para ver si
hay una petición cercana
marcelo.maraboli@gmail.com
56
Windows I/O

Ø Basic I/O modules


Ø Cache manager
Ø File system drivers
Ø Network drivers
Ø Hardware device drivers

marcelo.maraboli@gmail.com
57
Power Management (1)

Power consumption of various parts of a laptop computer

marcelo.maraboli@gmail.com
58
Power Management (2)

Ø Running at full clock speed


Ø Cutting voltage by two
Ø cuts clock speed by two,
Ø cuts power by four

marcelo.maraboli@gmail.com
59
Power Management (3)

Ø Telling the programs to use less energy


Ø may mean poorer user experience

Ø 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

Ø Funciones importantes del S.O.

Ø controlar los dispositivos de entrada/salida

Ø envía comandos, captura interrupciones y maneja


errores

Ø debe proveer una Interfase simple al sistema

Ø sin I/O, no podríamos comunicarnos con la CPU.

marcelo.maraboli@gmail.com
2
Input/Output

Ø Gran variedad de dispositivos I/O

Ø Conceptos comunes
Ø Port
Ø Bus - daisy chain (cascada) or shared direct access
Ø Controller (host adapter)

Ø Instrucciones I/O para controlar dispositivos

Ø Dispositivos tienen direcciones, usadas por:


Ø Direct I/O
Ø Memory-mapped I/O

marcelo.maraboli@gmail.com
3
Input/Output

marcelo.maraboli@gmail.com
4
Input/Output

marcelo.maraboli@gmail.com
5
Input / Output and Storage Devices

Input Output Storage


Keyboard Monitor Floppy Disk
Mouse Printers (all types) Diskette
Trackballs Audio Card Hard Disk
Touchpads Plotters Disk Cartridge
Pointing Sticks LCD Projection Panels CD-ROM
Joysticks Computer Output Microfilm (COM) Optical Disk
Pen Input Facsimile (FAX) Magnetic Tape
Touch Screen Speaker(s) Cartridge Tape
Light Pen Reel Tape
Digitizer PC Card
Graphics Tablet *RAID
Scanner *Memory Button
Microphone *Smart Card
Electronic Whiteboard *Optical Memory Card
Video Capture Cards
Audio Cards
Credit Card Reader

marcelo.maraboli@gmail.com
6
Input/Output
Ø Funciones por capa

marcelo.maraboli@gmail.com
7
User Level

Ø Librerías de comandos para que programadores


manejen en forma transparente los device.
Ø count = write (fd, buffer, nbytes)
Ø la función “write” hará un system call al S.Op

Ø Manejo del Sistema Spooling para devices dedicados.


Ø Usuarios no pueden hacer “open” del device, sino que existe un
proceso “daemon” que tiene un directorio especial llamado
“spooling directory”...

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.

Ø Transferencia sincrónica (blocking) v/s asincrónica (Interrupciones)


Ø tranferencia programada v/s por interrupción.
Ø Es tarea del S.Op hacer que los device asincrónicos parezcan sincrónicos

marcelo.maraboli@gmail.com
11
Device Independent SW
Ø Acceso secuencial o randómica

Ø Dispositivos RW, RO (read-only), WO (write-only)

Ø Dispositivos compartidos vs dedicados


Ø discos son compartidos
Ø cintas magnéticas deben ser dedicadas
Ø Printers sólo un trabajo a la vez.
Ø S.Op debe manejar ambos tipos de devices

marcelo.maraboli@gmail.com
12
Consideraciones...
Ø Ejemplos...

marcelo.maraboli@gmail.com
13
Device Driver
Ø S.Op utiliza un driver
(software) para comandar al
dispositivo

Ø la comunicación entre el driver


y la controladora es a través de
un bus de datos

Ø aquí va todo el código


específico de cada device.

Ø cada código maneja un tipo


específico de device, pudiendo
manejar varios de ellos

Ø debe aceptar comandos


abstractos de la capa superior y
traducirlas a comandos
específicos que van dirigidos al
controller

Ø posee un cola de requests de


capa superior 14
marcelo.maraboli@gmail.com
Device Controllers

Ø I/O device son “controlados” por una componente


electrónica llamada “Device Controllers” ( o adapter)

Ø Éstos pueden controlar múltiples I/O device

Ø Tarea de convertir serie de bits en bloques

Ø Ej: Tarjeta IDE de PC


Ø controla hasta 4 HD (I/O Device)

Ø Ej: Tarjeta Ultra Wide SCSI (scuzzy)


Ø controla hasta 16 HD.

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

10.7 Peripheral Devices


Device Input/output Human in Data rate (circa PIO DMA
the loop 2008)
Keyboard Input Yes 5-10 bytes/sec X
Mouse Input Yes 80-200 bytes/sec X
Graphics display Output No 200-350 MB/sec X
Disk (hard drive) Input/Output No 100-200 MB/sec X

Network (LAN) Input/Output No 1 Gbit/sec X

Modem Input/Output No 1-8 Mbit/sec X

Inkjet printer Output No 20-40 KB/sec X X


Laser printer Output No 200-400 KB/sec X
Voice Input/Output Yes 10 bytes/sec X
(microphone/speaker)
Audio (music) Output No 4-500 KB/sec X
Flash memory Input/Output No 10-50 MB/sec X

CD-RW Input/Output No 10-20 MB/sec X

DVD-R Input No 10-20 MB/sec X


Input/Output

Ø Estado de cada dispositivo es manejado por el Kernel

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

Ø Nonblocking - I/O retorna respuesta vía buffer


Ø retorna rápidamente la cuenta de bytes leídos o escritos
Ø implementado via multi-threading

Ø Caching – memoria rápida que almacena copia de data


Ø siempre es una copia
Ø es clave para aumentar rendimiento

Ø Spooling – buffer para retener salida hacia dispositivo


Ø usado si dispositivo puede atender 1 requerimiento a la vez
Ø i.e., impresora

Ø Reserva de Dispositivo – acceso exclusivo


Ø System calls para asignación y desasignación
Ø cuidado con el deadlock

marcelo.maraboli@gmail.com
22
Input/Output

Método de acceso a Dispositivos I/O

Ø 1.- Polling (pregunta periódica)


Ø Consulta periódicamente el estado de un dispositivo
Ø listo para comandos
Ø ocupado (busy)
Ø Error

Ø 2.- Programmed I/O


Ø CPU es la encargada de toda la comunicación con el dispositivo
Ø Ciclo Busy-waiting: CPU espera persistentemente por la
respuesta de I/O del dispositivo

marcelo.maraboli@gmail.com
23
Input/Output
Ejemplo de Programmed I/O: Imprimir a la Impresora

marcelo.maraboli@gmail.com
24
Input/Output

Métodos de acceso a Dispositivos I/O

Ø 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

Ø El Interrupt handler atiende la interrupción


Ø Interrupciones enmascarables sirven para ignorar o posponer algunas
interrupciones

Ø Vector de Interrupciones despacha interrupción al handler correspondiente


Ø basado en prioridades
Ø algunas son no-enmascarables

Ø Este mecanismo también es ocupado para las “excepciones”

marcelo.maraboli@gmail.com
25
Input/Output

Interrupciones...

marcelo.maraboli@gmail.com
26
Input/Output

Ciclo I/O con


Interrupciones

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

Ø Cuando la controladora-IRQ recibe una


señal, se encarga de avisar a la CPU.

Ø Si se reciben 2 IRQ, no hay problema


porque están ordenadas por prioridad.

Ø La de mayor prioridad se le asigna el


bus para que transmita el dato.

marcelo.maraboli@gmail.com
30
Direct Memory Access (DMA)

Ø 4.- DMA

Ø Caso normal sin DMA


Ø Controller lee el block (1 o más sectores) en forma serial bit a bit
Ø se almacena todo el block en un buffer interno
Ø se calcula checksum y se realiza corrección si es necesario

Ø Controller causa una interrupción a CPU

Ø CPU lee el bloque desde controller byte a byte y lo escribe en


memoria

Ø !!! CPU malgastada !!!.

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

Ø controller lee el block del HD

Ø al finalizar, escribe en memoria el primer byte


Ø incrementa mem. address y decrementa #bytes
Ø al terminar, causa Interrupción a CPU

Ø CPU atiende Int y el block ya está en Memoria!!.

marcelo.maraboli@gmail.com
32
Direct Memory Access (DMA)

4.- Direct Memory Access (DMA)

Ø Usado para evitar programmed I/O para gran cantidad


de datos

Ø Requiere de una controladora DMA

Ø Se transfiere data directamente entre dispositivo I/O y MP,


sin pasar por la CPU

Ø La CPU es “interrumpida” sólo después que el bloque


completo ha sido transferido a MP.

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)

Ø Interrogante....¿Por qué el controller no escribe el block


byte a byte directamente a memoria? (en vez de a la
controladora DMA)

Ø 2 razones

Ø comprobar checksum

Ø no está afecto a ocupación del bus (byte a byte), ya que disco


sigue leyendo independientemente si la controladora está lista o
no. (no hay error de overrun).

marcelo.maraboli@gmail.com
36
Direct Memory Access (DMA)
Ø Otras razones:
Ø controladora podría estar haciendo DMA y leyendo el próximo
sector.

Ø Pero.......pocas controladoras pueden leer/escribir al mismo tiempo


(leer del HD y hacer DMA).

Ø Por ello, se hace que los blocks no sean consecutivos en el HD


para hacer DMA mientras tanto....
Ø Interleave !.

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

Relación entre las técnicas de acceso a I/O

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

Direcciones I/O de Dispositivos en un PC


(listado parcial)

marcelo.maraboli@gmail.com
41
Formas de Direccionamiento de Device

Ø Ejemplo Caso (a): PC usa espacio de I/O independiente

marcelo.maraboli@gmail.com
42
Formas de Direccionamiento de Device

Acceso a Memoria Principal

(a) Arquitectura single-bus


(b) Arquitectura dual-bus memory

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)

Ø Bandwidth or Throughput: Rate at which operations are


performed (op/s)
Ø Files: MB/s, Networks: Mb/s, Arithmetic: GFLOP/s

Ø Startup or Overhead: time to initiate an operation

Ø Most I/O operations are roughly linear in n bytes


Ø Latency(n) = Overhead + n/TransferCapacity

marcelo.maraboli@gmail.com
46
Example: Fast Network

Ø Consider a 1 Gb/s link (B = 125 MB/s)


Ø With a startup cost S = 1 ms

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

También podría gustarte