- 1. Tema del da: Planificacin de Discos en el Kernel Linux
2. Objetivos
- En esta clase trataremos de:
-
- Ver cmo se superan las limitaciones de los algoritmos de de
planificacin de libro.
-
- Ver cmo un sistema operativo real trata con los problemas de la
planificacin de discos.
-
- Evaluar las ventajas y desventajas de cada algoritmo de
planificacin, as como sus aplicaciones.
3. Repaso... Usuario Archivo Registros Cach de Bloques Cach de
Controladora Control de Acceso Mtodo de Acceso Planif. dedisco.
Adm. de espacio libre. Buffers 4. Repaso...
- Un disco es un conjunto de bloques de datos.
- Los datos slo pueden ser ledos cuando la cabeza est sobre
ellos.
- Mover los cabezales es MUY LENTO!
- Una vez que el cabezal est posicionado el tiempo de la
transferencia es muy pequeo.
5. Repaso... 6. Planificacin de Discos
- En caso de tener muchas solicitudes para el mismo disco, en qu
orden las atendemos?
-
-
- Operaciones/seg., bytes/seg.
-
- Cuestiones de Tiempo Real.
-
-
- Garantizar un determinado tiempo mximo de espera.
7. Planificacin de Discos
- Los sistemas operativos dan prioridades a varios recursos:
- Pocos a los accesos a disco...
8. Planificacin de Discos
- Las controladoras modernas poseen su propio sistema de colas y
planificacin.
- Hay controladoras que pueden encolar hasta 512 solicitudes (una
controladora SATA puede encolar entre 16 y 32 solicitudes).
- Si hay colas en la controladora (TCQ, NCQ, etc.) los objetivos
del planificador del S.O. pueden verse seriamente afectados...
9. Planificacin en Linux
-
- Planificacin??? Para qu???
-
- C-SCAN (con algunas variantes)
-
- Tres planificadores en tres aos...
-
-
- Noop, Anticipatory, Deadline, CFQ.
-
- Es posible cambiarlos por cada dispositivo de bloques, e
inclusive en tiempo de ejecucin...
10. Planificacin en Linux
- Anticipatory (default 2.6.0 - 2.6.18)
- Complete Fair Queuing (default >= 2.6.18)
# cat /sys/block/sda/queue/scheduler noop anticipatory deadline
[cfq] 11. Planificacin en Linux
- Atiende las solicitudes a medida que llegan.
- A pesar de ello, si llega otra solicitud adyacente, la une con
la anterior.
- til para disp. sin tiempo de bsqueda.
12. Planificacin en Linux
- Es un C-SCAN con algunos agregados.
- Cada solicitud tiene un deadline.
- Si se vence el deadline de alguna solicitud la atiende
inmediatamente.
- Trata la lecturas y escrituras por separado (atiende el doble
de lecturas que escrituras)
13. Planificacin en Linux
-
- fifo_batch(nmero de solicitudes en un batch)
-
- read_expire ,write_expire(en ms)
-
- writes_starved(cuntas lecturas por escritura)
-
- front_merges(si funde solicitudes al llegar)
- Buena para aplicaciones de Tiempo Real.
14. Planificacin en Linux
- Anticipatory Scheduling (AS)
- Todas las caractersticas de Deadline, pero agrega
anticipacin.
- Antes de atender una solicitud, la demora unos milisegundos, en
espera de que llegue otra cercana.
- El valor de la demora depende de lo rpido que sea el disco...
Antes que tener el disco desocupado, podemos usar ese tiempo en la
bsqueda... ;)
15. Planificacin en Linux
- Anticipatory Scheduling (AS)
- Tiene otras diferencias con Deadline:
- La solicitudes en un lote se atienden con SCAN y no deben ser
contiguas.
- Se permiten bsquedas hacia atrs (de hasta 1Mbit) pero con el
doble del costo.
- No trata las lecturas y escrituras por separado, pero si las
operaciones sncronas y asncronas.
16. Planificacin en Linux
- Anticipatory Scheduling (AS)
-
- antic_expire(tiempo de espera)
-
- read_expire , (deadline sncrono)
-
- write_expire(deadline asncrono)
- Mejora el tiempo de respuesta medio.
17. Planificacin en Linux
- Completely Fair Queuing (CFQ)
- Trata de ser ecunime. Adems soporta anticipacin
ydeadliness.
- Se da a cada proceso un tiempo (rodaja) en el cual puede hacer
peticiones sncronas.
- Todos los procesos comparten 17 colas para solicitudes de E/S
asncrona (una por cada prioridad). Tambin tienen rodajas de tiempo,
pero adems un mximo de solicitudes.
18. Planificacin en Linux
- Completely Fair Queuing (CFQ)
- Cada cola de solicitudes obtiene una rodaja de tiempo de
acuerdo a su prioridad. Las rodajas se asignan usando una cola
circular.
- Dentro de cada rodaja las solicitudes se pueden fundir y son
planificadas usando SCAN (con una penalizacin por volver).
- Adems demorar las prximas solicitudes en espera de ms E/S de
ese proceso (AS)
19. Planificacin en Linux
-
- Completely Fair Queuing (CFQ)
Disco AS + C-SCAN Round-R + Deadline Planif. Q1 Q2 Q3 Qn T-R 20.
Planificacin en Linux
- Completely Fair Queuing (CFQ)
- Da soporte a tiempo real.
- Ecunime y combate a los abusadores.
-
- Sin contar a los procesos T-R.
-
- Aunque an no est claro como asignarlas...
21. Planificacin en Linux
- Completely Fair Queuing (CFQ)
-
- fifo_expire_(a)syncdeadline (a)sncrono
-
- slice_(a)syncrodaja de tiempo (a)sncrona
-
- slice_async_rqmximo de peticio nes asinc.
-
- quantumcantidad de peticiones por lote
22. Bibliografa
- Esta clase puede ser ampliada viendo:
-
- Linux Block IO: present and future
-
-
- Jens Axboe - July, 2004 Ottawa, Ontario Canada
-
-
- Proceedings of the Linux Symposium
-
-
- http://en.wikipedia.org/wiki/Noop_scheduler
-
-
- http://en.wikipedia.org/wiki/Deadline_scheduler
-
-
- http://en.wikipedia.org/wiki/Anticipatory
-
-
- http://en.wikipedia.org/wiki/CFQ
-
- Jens Axboe presentando CFQ:
http://lca2007.linux.org.au/talk/123.html
23. Gracias ! Ing. Gabriel E. Arellano [email_address]
http://www.gabriel-arellano.com.ar/so/ (2008) Gabriel E. Arellano
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. The GNU Free Documentation License as
applicable to this document can be found
at:http://www.gnu.org/copyleft/fdl.html