I/O Systems gestionan la comunicación entre el CPU y los dispositivos de entrada/salida (teclado, disco, red). Es uno de los componentes más lentos del sistema, por lo que el OS usa técnicas avanzadas para minimizar el overhead.
Técnicas de I/O
Polling (Programmed I/O)
CPU consulta repetidamente el estado del dispositivo hasta que esté listo.
- Ventaja: simple.
- Desventaja: desperdicia CPU.
Interrupt-driven I/O
Dispositivo genera una interrupción cuando está listo.
- Ventaja: CPU puede hacer otro trabajo mientras espera.
- Desventaja: overhead de context switch por interrupción.
DMA (Direct Memory Access)
Controlador de dispositivo transfiere datos directamente a memoria sin intervención del CPU.
- Ventaja: transferencias grandes sin cargar CPU.
- Desventaja: overhead de setup inicial.
Discos
Geometría del Disco
- Track: círculo concéntrico en una superficie.
- Sector: división de un track (típicamente 512 bytes o 4KB).
- Cylinder: mismo radio en todas las superficies (head jump innecesario).
Tiempos
- Seek time: mover el brazo al track correcto (más lento).
- Rotational latency: esperar a que el sector llegue al cabezal.
- Transfer time: leer/escribir los datos.
Disk Scheduling
| Algoritmo | Estrategia | Ventaja |
|---|---|---|
| FCFS | Orden de llegada | Simple, fair |
| SSTF | Sector más cercano | Reduce seek |
| SCAN (Elevator) | Va en una dirección, revierte | Reduce seek, starvation-free |
| C-SCAN | Va en una dirección, wrap alrededor | Más uniforme |
| LOOK | SCAN pero solo hasta la última solicitud | Más eficiente que SCAN |
| C-LOOK | C-SCAN pero solo hasta la última solicitud | Más eficiente que C-SCAN |
I/O Software Layers
- User-space I/O libraries:
printf,fread. - Device-independent OS: buffering, caching, scheduling.
- Device drivers: traducen comandos abstractos a device-specific.
- Interrupt handlers: atienden interrupciones.
- Hardware: controladores, buses.
Aplicaciones
- SSD optimization — TRIM, wear leveling
- RAID — striping, mirroring, parity
- Network I/O — zero-copy, sendfile
- Enseñanza — introduce DMA y device drivers
Trayectoria de Práctica
- Investiga SSTF vs SCAN: ¿por qué SSTF no es fair?
- Traza C-SCAN para una secuencia de requests.
- Investiga SSD vs HDD: ¿por qué SSD no necesita scheduling?
- Investiga zero-copy: ¿cómo reduce memcpy en I/O de red?
- Investiga NVMe: ¿cómo elimina el bottleneck del bus SATA?