05-planificacion discos linux

Download 05-Planificacion Discos Linux

If you can't read please download the document

Upload: aretche

Post on 19-Jun-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Tema del da:

Planificacin de Discos en el Kernel Linux

ObjetivosEn 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.

Repaso...Control de Acceso Archivo Registros Buffers Cach de Bloques Adm. de espacio libre.

Usuario

Mtodo de Acceso

Cach de Controladora Planif. de disco.

Repaso...Cmo trabaja un disco? Un disco es un conjunto de bloques de datos. Un disco tiene cabezas. 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.

Repaso...

Sector 0 Sector 1 head 0

track2 track1 track0

Cylinder 0 platters

head 1

Cylinder 1 head 2

Planificacin de DiscosEn caso de tener muchas solicitudes para el mismo disco, en qu orden las atendemos? Qu objetivos persigue? Maximizar el throughput.

Lograr ecuanimidad. Evitar la inanicin. Cuestiones de Tiempo Real.

Operaciones/seg., bytes/seg.

Garantizar un determinado tiempo mximo de espera.

Planificacin de Discos

Qu Falta?Los sistemas operativos dan prioridades a varios recursos: Procesador. Memoria. Acceso a Red.

Pocos a los accesos a disco...

Planificacin de DiscosA tener en cuenta: 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...

Planificacin en LinuxHistoria Kernels 1.x

Kernels 2.0 2.2 2.4 Kernels 2.6.X

Planificacin??? Para qu??? C-SCAN (con algunas variantes) Tres planificadores en tres aos... Es posible cambiarlos por cada dispositivo de bloques, e inclusive en tiempo de ejecucin... Noop, Anticipatory, Deadline, CFQ.

Planificacin en LinuxEn la actualidad... No-op Deadline 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]

Planificacin en LinuxNo-Op Atiende las solicitudes a medida que llegan. A pesar de ello, si llega otra solicitud adyacente, la une con la anterior. Muy simple. til para disp. sin tiempo de bsqueda.

Planificacin en LinuxDeadline 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)

Planificacin en LinuxDeadline Tiene varios parmetros: 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.

Planificacin en LinuxAnticipatory 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... ;)

Planificacin en LinuxAnticipatory 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.

Planificacin en LinuxAnticipatory Scheduling (AS) Tiene varios parmetros: antic_expire (tiempo de espera) read_expire, (deadline sncrono) write_expire (deadline asncrono) est_time (estadsticas)

Mejora el tiempo de respuesta medio.

Planificacin en LinuxCompletely Fair Queuing (CFQ) Trata de ser ecunime. Adems soporta anticipacin y deadliness. 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.

Planificacin en LinuxCompletely 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)

Planificacin en LinuxT-R

Q1 Q2 Q3

Planif.

Round-R + Deadline

AS + C-SCAN

Disco Qn

Completely Fair Queuing (CFQ)

Planificacin en LinuxCompletely Fair Queuing (CFQ) Complejo! Da soporte a tiempo real. Ecunime y combate a los abusadores. No admite inanicin. Sin contar a los procesos T-R. Aunque an no est claro como asignarlas...

Permite prioridades.

Planificacin en LinuxCompletely Fair Queuing (CFQ) Tiene varios parmetros:

fifo_expire_(a)sync deadline (a)sncrono slice_(a)sync rodaja de tiempo (a)sncrona slice_async_rq mximo de peticiones asinc. quantum cantidad de peticiones por lote

BibliografaEsta clase puede ser ampliada viendo: Linux Block IO: present and future Wikipedia :)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

Gracias!Ing. Gabriel E. [email protected] 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