Ver Mensaje Individual
  #2  
Viejo 24/04/15, 18:13:46
Avatar de alexret
alexret
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
I/O SCHEDULERS (I/O = Imput/Output)

P. “¿Para qué sirve un I/O Scheduler?”
R.Reducir al mínimo la latencia de búsqueda del disco duro.
Dar prioridad a las operaciones de I/O de algunos procesos.
Asignar más espacio en disco para los procesos en ejecución.
Garantizar que ciertas peticiones se ejecutan antes de un tiempo límite.
Para entenderlo de una forma más simple: el kernel controla los accesos al disco usando un I/O Scheduler (Scheduler = planificador).


P. “¿Qué metas persigue cada I/O scheduler para tratar de conseguir un equilibrio?”
R.Equidad (que cada proceso tenga su parte asignada de acceso al disco).
Rendimiento (tratar de atender las solicitudes que se encuentren en primer lugar, haciendo la búsqueda más rádida).
Tiempo real (garantizar que las solicitudes son atendidas en un tiempo dado).

I/O SCHEDULERS
  1. ROW
  2. FIOPS
  3. SIO
  4. NOOP
  5. ANTICIPATORY
  6. ADAPTIVE ANTICIPATORY
  7. CFQ
  8. DEADLINE
  9. V(R)
  10. SIMPLE
  11. BFQ
  12. ZEN
  13. SIOPLUS
  14. FIFO
  15. TRIPNDROID

(Click para mostrar/ocultar)
1)ROW

RoW significa “LECTURA sobre ESCRITURA” ya que la principal política en este algoritmo es la de despachar las peticiones. El Scheduler ROW está diseñado pensando en lo que un telefono movil necesita. En los dispositivos móviles, se aprecia por encima de todo una buena experiencia de usuario por encima de todo, ya que siempre queremos tener lo más rápido posible las peticiones que realizamos. En los móviles no tenemos muchas similitudes a las de los DeskTops. Por lo general, se trata de un solo hilo o como máximo 2 hilos de trabajo simultáneos para leer y escribir. Favoreciendo las peticiones de Lectura a las de escritura se consigue que apenas haya retardo en las peticiones de lectura.
La idea principal de la política del ROW es: Si hay peticiones de Lectura en proceso, las despacha, pero sin dejar de lado demasiado la escritura.
Encontrarás pequeñas similitudes a otros schedulers existentes.Los tests que se han hecho de lectura/escritura dicen que son muy parejos.

Ventajas
- Muy rápida Navegación UI y una mejor experiencia en general del telefono.
- Reinicios y aperturas de apk mas rapidos.mas rapidos
- Posiblemente mas duracion de bateria
- A veces se usa por defecto en Custom kernels y roms.

Inconvenientes
- Escritura mas lenta
- Algunas aplicaciones que pidan mucho rendimiento, como juegos, pueden hacer ralentizarse al telefono.

2)FIOPS

Este nuevo Scheduler se ha diseñado en torno a los siguientes supuestos sobre los dispositivos de almacenamiento Flash:
No hay tiempo de búsqueda I/O, el coste de la lectura y la escritura I/O sueler diferente a hacer correr archivos media, el tiempo para responder a una petición depende del tamaño de la petición, y el alto rendimiento de procesamiento y mayores IOPS con baja latencia.

Ventajas
- Alcanza velocidades altas de lectura y escritura en BenchMarks
- Carga mas rapida de APPs, y una experiencia global muy buena.
- Buena duracion de bateria

Inconvenientes
- No suele estar añadidos en todos los Kernel
- No es el scheduler mas sensible
- No es bueno Para multitarea muy pesada

3) SIO

Es un scheduler I/O simple cuyo objetivo es mantener unos consumos mínimos y lograr un escaso restardo al atender solicitudes. Sio es una mezcla entre Noop y Deadline. No existe un reordenamiento de las peticiones.

Ventajas
-Simple, muy seguro.
-Minimiza la necesidad de atención de las solicitudes.

Inconvenientes
-Velocidades lentas de lectura en memorias flash, en comparación con los otros schedulers.
-La velocidad de las lecturas secuenciales en memorias flash tampoco es buena.

4) NOOP

Gestiona todas las peticiones siguiendo el método FIFO (First In First Out), o dicho de otra forma, las primeras en llegar son las primeras en salir/ser atentidas. Lo mejor es utilizarlo con dispositivos de almacenamiento que no dependen de movimiento mecánico para acceder a los datos (si, como nuestras tarjetas flash). La ventaja aquí es que las unidades flash no requieren un reordenamiento de las múltiples peticiones I/O, a diferencia de los discos duros normales.

Ventajas
-Sirve las peticiones I/O con un menor número de ciclos de la CPU (¿mejora de la batería?).
-Es el mejor para unidades flash.
-Buen rendimiento en los sistemas db.

Inconvenientes
-La reducción en el número de ciclos de la CPU es proporcional a la pérdida de rendimiento.

5)ANTICIPATORY


Dos cosas importantes en este tema:


- Buscando en la unidad flash es muy lento en el arranque.
- Escribe operaciones mientras son procesadas en cualqueir momento, sin embargo, se prefieren leer, es decir, este planificador devuelve las operaciones de lectura en una prioridad más alta que las operaciones de escritura.

[i]Ventajas[/]
- Las solicitudes de los accesos de lectura no son tratados en segundo lugar, por eso tiene igualmente un buen rendimiento de lectura en unidades flash como noop.

Inconvenientes
- Las solicitudes de operaciones de procesos no siempre están disponibles
- Menor rendimiento de escritura en los discos duros de alto rendimiento
- No es muy común en la mayoría de los Kernel


6)ADAPTIVE ANTICIPATORY

Para el Anticipatory Scheduler, escalamos hasta el tiempo de espera de anticipación (caduca antic) utilizando la latencia factor de escala con el tiempo. Cuando las latencias de disco virtuales son bajos una pequeña escala del tiempo de espera es sucient para evitar el ocio engañosa, mientras que cuando las latencias son altos puede ser necesaria una escala mayor del valor de tiempo de espera para conseguir el mismo. Tenga en cuenta que tal ajuste dinámico del valor de tiempo de espera asegura que alcanzamos un buen comercio-o entre rendimiento (perdido debido a ralentí) y la mitigación de la ociosidad engañosa. El establecimiento de un valor alto para el factor de escala (el aumento del tiempo de ralentí) sólo ocurre cuando el servicio de disco latencias en sí son más altos. Esto no necesariamente puede causar una pérdida signicant en el rendimiento, ya que la presentación de una solicitud de otro proceso en lugar de ralentí no va a mejorar el rendimiento si el propio disco virtual no hay nada más rápido de lo que es en el período actual. Un tiempo de espera de anticipación superior también podría ser capaz de absorber eects programación de procesos dentro de la máquina virtual. Los resultados para el programador anticipatorio adaptativa se muestran en la Figura 2. El tiempo de lectura con nuestra aplicación modied (tercera barra en las combinaciones planificador dierent) muestra que es posible mitigar los eects de ociosidad engañosa mediante la adaptación del tiempo de espera. Una observación relacionada interesante es que el nivel al que la mejora es posible varía para dierent Domain-0 programadores; noop - 39%, anticipatoria - 67% y CFQ - 36%. Aquí se evidencia el hecho de que el planificador de E / S utilizado en Domain-0 es importante para la capacidad de la VM en la aplicación de garantías de programación de E / S. Dierent Domain-0 E / S programadores probablemente tiene una huella de latencia servicio dierent dentro de las máquinas virtuales, lo que contribuye a dierent niveles de mejora.

7) CFQ

Completely Fair Queuing (o dicho de manera cutre “cola completamente equitativa”) mantiene una cola de procesos estable, repartiendo el porcentaje necesitado de la CPU en partes iguales entre todas las peticiones I/O. El intervalo de tiempo asignado a cada cola depende de la prioridad del proceso primario.

Ventajas
-Considerado el mejor ofreciendo un equilibrado rendimiento I/O.
-El más fácil de configurar.
-Excelente en sistemas multiprocesador.
-El mejor rendimiento del sistema en bases de datos, después de Deadline.

Inconvenientes
-Algunos usuarios reportan que el escáner de medios tarda bastante en completarse usando CFQ. Esto podría deberse a que la distribución del uso de la CPU se reparte equitativamente entre todas las operaciones I/O durante el arranque y no se conceden prioridades.
Jitter (el peor caso de retardo) puede llegar a ser alto debido a la cantidad de tareas que necesitan acceso al disco.



8) DEADLINE

El objetivo es minimizar la latencia de I/O o la necesidad de una petición. Esto se logra mediante una política de “todos contra todos”, para ser justos entre múltiples peticiones de I/O. Se utilizan 5 colas de espera para reordenar las solicitudes entrantes.

Ventajas
- Se acerca bastante a un planificador a tiempo real.
- Excelente en la reducción de latencia de peticiones I/O.
- El mejor planificador para el acceso a bases de datos y consultas.
- El requerimiento de “ancho de banda” de un proceso (el porcentaje de CPU que necesita) se puede calcular fácilmente.
-Al igual que Noop, es un buen planificador para memorias flash.

Inconvenientes
-Cuando el sistema está sobrecargado, la elección de procesos se puede volver impredecible.


9) V(R)

A diferencia de los otros schedulers, las peticiones síncronas y asíncronas no se tratan de forma separada. La siguiente solicitud en ser atendida será la que más cercana esté a la última atendida.

Ventajas
- Quizás es el mejor para benchmarking porque en el mejor de sus comportamientos el rendimiento es mejor.

Inconvenientes
- Los resultados de las variaciones de rendimiento pueden ser que esté por debajo del promedio a veces.
- Menos fiable y más inestable.


10) BFQ

En lugar de asignar intervalo de tiempo como CFQ, BFQ asigna como unos “presupuestos” estimativos. Garantiza el disco para el proceso activo hasta que el presupuesto expira. El presupuesto asignado a un proceso varía con el tiempo como una función de su comportamiento. (la traducción deja mucho que desear, si alguien la puede hacer mejor que me lo comente por PM).

Ventajas
-Se cree que es muy bueno para la tasa de transferencia de datos vía USB.
-Se cree que es el mejor scheduler para la grabación de videos de HD y video streaming (por el menor “jitter” en comparación con CFQ y los otros).
-Es considerado un scheduler I/O muy preciso.
-Alcanza alrededor de un 30% más de rendimiento que CFQ.

Inconvenientes
-No es el mejor scheduler para hacer benchmarking.
-El mayor “presupuesto” asignado a un proceso puede afectar a la experiencia de usuario y aumentar la latencia (retardos).

11.ZEN


Basado en el scheduler V(R). Esta basado en el algoritmo FCFS(First come, first serve).
Based on the VR Scheduler. It's an FCFS (First come, first serve) based algorithm. No es estrictamente FIFO. No hace ninguna clasificación.Utiliza plazos,“deadlines”, para ser equitativo, y trata las solicitudes sincrónicas con prioridad sobre complementos asíncronos.Aparte de eso , más o menos el mismo que el noop .

Ventajas
- Bien matizado y eficiente.
- Más suave que SIO
- Más estable que el V(R), principalmente porque no se comporta como tal

Inconvenientes
- No se encuentra en todos los kernel.

12.Sioplus:

Basado en el SIO original con alguna mejora. Funcionalidad para especificar las peticiones de lectura Asyncronas contra las syncronas. la necesidad de contar de peticiones de escritura solo funciona cuando en realidad solo hay peticiones de escritura en cola. Arregla un fix.

Ventajas
- Mejor Lectura y escritura que el SIO
- Muy buena duracion de bateria

Inconvenientes
- Los mismos que el SIO
- Que no es muy común en los kernel.

13.FIFO (First in First Out):
Un scheduler relativamente sencillo que hace lo que describe. Tambien es conocido como FCFS (First como First Serve) pero no es del todo cierto. Tieneclasificaciónn Básica. Clasifica los procesos acorde al orden apropiado y nada más. En otras palabras , se parece al NOOP.

Ventajas
- Es conveniente para las unidades flash porque no hay errores de búsqueda
- Buen rendimiento de datos en los sistemas de bases de datos.
- Sirve las solicitudes de I/O con menor número de ciclos de la CPU.

Inconvenientes
- La reducción del número de ciclos de CPU se corresponde con una disminución simultánea en el rendimiento
- No es muy buen multigestor

14.Tripndroid
Un nuevo Scheduler basado en Noop, deadline y VR y trata de tener una sobrecarga mínima. Hecho por TripNRaVeR

Ventajas
- Muy buen para buen rendimiento y multitask diario.
- Bien matizado y eficiente.
- Scheduler muy receptivo (Se le compara a FIOPS)
- relativamente amigo del buen uso de batería.

Inconvenientes
- No se encuentra en todos los Kernel
- El rendimiento varía entre diferentes equipos( Algunos rinden muy bien)

Última edición por alexret Día 24/04/15 a las 18:22:35
Responder Con Cita
Los siguientes 4 usuarios han agradecido a su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]