Planificación de Discos en Linux

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite & 1 Group

    Planificación de Discos en Linux - Presentation Transcript

    1. Tema del día: Planificación de Discos en el Kernel Linux
    2. Objetivos
      • En esta clase trataremos de:
        • Ver cómo se superan las limitaciones de los algoritmos de de planificación de “libro”.
        • Ver cómo un sistema operativo real trata con los problemas de la planificación de discos.
        • Evaluar las ventajas y desventajas de cada algoritmo de planificación, así como sus aplicaciones.
    3. Repaso... Usuario Archivo Registros Caché de Bloques Caché de Controladora Control de Acceso Método de Acceso Planif. de disco. Adm. de espacio libre. Buffers
    4. Repaso...
      • Cómo trabaja un disco?
      • Un disco es un conjunto de bloques de datos.
      • Un disco tiene cabezas.
      • Los datos sólo pueden ser leídos 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 pequeño.
    5. Repaso...
    6. Planificación de Discos
      • En caso de tener muchas solicitudes para el mismo disco, en qué orden las atendemos?
      • Qué objetivos persigue?
        • Maximizar el throughput.
          • Operaciones/seg., bytes/seg.
        • Lograr ecuanimidad.
        • Evitar la inanición.
        • Cuestiones de Tiempo Real.
          • Garantizar un determinado tiempo máximo de espera.
    7. Planificación de Discos
      • Qué Falta?
      • Los sistemas operativos dan prioridades a varios recursos:
        • Procesador.
        • Memoria.
        • Acceso a Red.
      • Pocos a los accesos a disco...
    8. Planificación de Discos
      • A tener en cuenta:
      • Las controladoras modernas poseen su propio sistema de colas y planificación.
      • 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. Planificación en Linux
      • Historia
      • Kernels 1.x
        • Planificación??? Para qué???
      • Kernels 2.0 – 2.2 – 2.4
        • C-SCAN (con algunas variantes)
      • Kernels 2.6.X
        • Tres planificadores en tres años...
          • Noop, Anticipatory, Deadline, CFQ.
        • Es posible cambiarlos por cada dispositivo de bloques, e inclusive en tiempo de ejecución...
    10. Planificación en Linux
      • En 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]
    11. Planificación en Linux
      • No-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 búsqueda.
    12. Planificación en Linux
      • Deadline
      • 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. Planificación en Linux
      • Deadline
      • Tiene varios parámetros:
        • fifo_batch (número de solicitudes en un batch)
        • read_expire , write_expire (en ms)
        • writes_starved (cuántas lecturas por escritura)
        • front_merges (si funde solicitudes al llegar)
      • Buena para aplicaciones de Tiempo Real.
    14. Planificación en Linux
      • Anticipatory Scheduling (AS)
      • Todas las características de Deadline, pero agrega anticipación.
      • Antes de atender una solicitud, la demora unos milisegundos, en espera de que llegue otra cercana.
      • El valor de la demora depende de lo rápido que sea el disco... Antes que tener el disco desocupado, podemos usar ese tiempo en la búsqueda... ;)
    15. Planificación 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 búsquedas hacia atrás (de hasta 1Mbit) pero con el doble del costo.
      • No trata las lecturas y escrituras por separado, pero si las operaciones síncronas y asíncronas.
    16. Planificación en Linux
      • Anticipatory Scheduling (AS)
      • Tiene varios parámetros:
        • antic_expire (tiempo de espera)
        • read_expire , (deadline síncrono)
        • write_expire (deadline asíncrono)
        • est_time (estadísticas)
      • Mejora el tiempo de respuesta medio.
    17. Planificación en Linux
      • Completely Fair Queuing (CFQ)
      • Trata de ser ecuánime. Además soporta anticipación y deadliness.
      • Se da a cada proceso un tiempo (rodaja) en el cual puede hacer peticiones síncronas.
      • Todos los procesos comparten 17 colas para solicitudes de E/S asíncrona (una por cada prioridad). También tienen rodajas de tiempo, pero además un máximo de solicitudes.
    18. Planificación 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 penalización por volver).
      • Además demorará las próximas solicitudes en espera de más E/S de ese proceso (AS)
    19. Planificación en Linux
        • Completely Fair Queuing (CFQ)
      Disco AS + C-SCAN Round-R + Deadline Planif. Q1 Q2 Q3 Qn T-R
    20. Planificación en Linux
      • Completely Fair Queuing (CFQ)
      • Complejo!
      • Da soporte a tiempo real.
      • Ecuánime y combate a los abusadores.
      • No admite inanición.
        • Sin contar a los procesos T-R.
      • Permite prioridades.
        • Aunque aún no está claro como asignarlas...
    21. Planificación en Linux
      • Completely Fair Queuing (CFQ)
      • Tiene varios parámetros:
        • fifo_expire_(a)sync deadline (a)síncrono
        • slice_(a)sync rodaja de tiempo (a)síncrona
        • slice_async_rq máximo de peticio nes asinc.
        • quantum cantidad de peticiones por lote
    22. Bibliografía
      • Esta clase puede ser ampliada viendo:
        • “ Linux Block IO: present and future”
          • Jens Axboe - July, 2004 Ottawa, Ontario Canada
          • Proceedings of the Linux Symposium
        • Wikipedia :)
          • 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

    + Gabriel ArellanoGabriel Arellano, 2 years ago

    custom

    1139 views, 1 favs, 0 embeds more stats

    Presentación sobre Planificación de discos en Lin more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1139
      • 1139 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 20
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?