Planificación de E/S (entrada/salida) es el término utilizado para describir el método mediante el cual los sistemas operativos deciden el orden por el cual se van a enviar las peticiones de lectura y escritura al subsistema de disco. A veces se le llama también planificación de disco.
Propósito
Existen varias razones por las que puede ser deseable aplicar métodos de planificación de E/S:
- Minimizar el tiempo de búsqueda (seek time) en el disco.
- Dar prioridad a las peticiones de E/S de ciertos procesos.
- Dar una porción del ancho de banda de lectura del disco a cada proceso.
- Garantizar que ciertas peticiones se atenderán antes de un tiempo determinado: la conocida como deadline (línea de la muerte en inglés).
Implementación
Los planificadores de E/S normalmente tienen que trabajar con discos que comparten la propiedad de tardar bastante tiempo en acceder a una posición que esté muy alejada de la posición actual del cabezal (lo que se conoce como un tiempo de búsqueda o seek time elevado). Para minizar el efecto que esto tiene sobre el rendimiento del sistema de E/S, muchos planificadores implementan variantes del algoritmo del ascensor, que lo que hace es reordenar las peticiones aleatorias siguiendo el orden en que el cabezal se irá encontrando las posiciones demandadas.
Políticas de planificación
- Planificación aleatoria (random scheduling, RSS)
- FIFO (First In, First Out, el primero que entra es el primero en salir), también conocido como FCFS (First Come First Served, el primero en venir es el primero en ser servido).
- LIFO (Last In, First Out, el último que entra es el primero en salir).
- Shortest seek time first (SSTF, la búsqueda más corta primero).
- Algoritmo del ascensor, también conocido como SCAN (existen algunas variantes como C-SCAN, LOOK y C-LOOK).
- N-Step-SCAN, SCAN de N registros simultáneos.
- FSCAN, N-Step-SCAN donde N es igual al tamaño de la cola al principio del ciclo de SCAN.
- CFQ, Completely Fair Queuing (cola completamente justa), parecido al Round Robin de la planificación de procesos.
- Planificación anticipada (anticipatory scheduling).
Véase también
Enlaces externos