PDA

Ver la Versión Completa : [ TUTORIAL ] Tu Kernel y tú: kernel, gobernadores y planificadores


YossYGalaxy
05/11/12, 12:18:30
-------------------------------------------------------------------------------------------------------
Ya hay un hilo (http://www.htcmania.com/showthread.php?t=301918) sobre este tema gracias a sergy330 (http://www.htcmania.com/member.php?u=18070) en este subforo y más aún en otros subforos, pero he decidido abundar sobre el mismo y actualizarlo en la medida de lo posible, así como, en principio hacerlo más participativo. Casi todos los hilos que tratan este tema están basados en el hilo (http://forum.xda-developers.com/showthread.php?t=1369817) de droidphile (http://forum.xda-developers.com/member.php?u=4179740) en xda y este no será una excepción, ya que es lo más completo que se puede encontrar sobre gobernadores.

En los enlaces de cada gobernador se intentará explicar de forma simple pero detallada las características de cada uno de los gobernadores, al menos los más importantes. Iré añadiendo la descripción de cada gobernador con sus parámetros y los tweaks que droidphile (http://forum.xda-developers.com/member.php?u=4179740) recomienda para cada uno y estarán disponibles a medida que los vaya terminando de redactar. De forma que este hilo puede ser un índice para tener siempre a mano el resto de hilos de cada gobernador (hay unos cuantos...) Es bastante curro y espero que lo entendáis. En los hilos de cada gobernador particular se pueden compartir ideas, opiniones, configuraciones, resultados, ... de ese gobernador en concreto.
A parte de los gobernadores, el tema de la configuración de un kernel y los diferentes schedulers también lo añadire cuando me sea posible. Espero poder llevar a cabo todas mis intenciones y no quedarme a medias :ok:
-------------------------------------------------------------------------------------------------------


¿QUÉ ES UN KERNEL?

Para darse cuenta de la importancia que un kernel tiene os dejo unos textos extraídos de la wikipedia, que nos permitirán a los neófitos hacernos una ligera idea:

En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que constituye la parte más importante del sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.

El kernel se asegura de:
- La comunicación entre los programas que solicitan recursos y el hardware.
- Gestión de los distintos programas informáticos (tareas) de una máquina.
- Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.) La mayoría de las interfaces de usuario se construyen en torno al concepto de núcleo. La existencia de un núcleo, es decir, de un único programa responsable de la comunicación entre el hardware y el programa informático, resulta de compromisos complejos referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores. El núcleo tiene grandes poderes sobre la utilización de los recursos materiales (hardware), en particular, de la memoria.

Los núcleos tienen como funciones básicas garantizar la carga y la ejecución de los procesos, las entradas/salidas y proponer una interfaz entre el espacio núcleo y los programas del espacio del usuario.


Mediante programas habilitados a tal efecto, y siempre que el kernel lo permita, podemos modificar ciertos de sus parámetros para adaptarlo a nuestras necesidades. Voy a diferenciar estas modificaciones en varios grupos para facilitar su análisis:

- Undervolting (UV), Overvolting (OC), Underclocking (UV)

- Gobernadores

- Planificadores E/S (I/O Schedulers)

- Otras modificaciones




UNDERVOLTING, OVERCLOCKING, UNDERCLOCKING

Uno de los primeros pasos que podemos dar después de instalar un custom kernel que lo permita es bajar los voltajes de nuestro dispositivo. El Undervolting (UV) nos hará observar rápidamente una serie de cambios y todos ellos para mejor. Si te interesa este tema aquí tienes: Una Pequeña Introducción al Undervolting (http://www.htcmania.com/showthread.php?t=451431). Dejamos para más adelante el Overclocking y el Underclocking.




GOBERNADORES

En Android un gobernador de la CPU controla cómo la CPU sube y baja la frecuencia en respuesta a las necesidades que el usuario requiere en su dispositivo en cada momento. Los gobernadores son muy importantes en los smartphones y tabletas ya que tienen un gran impacto en la aparente fluidez y duración de la batería del dispositivo. Los desarrolladores de kernel normalmente aplican sus propias personalizaciones a los parámetros de cada gobernador. De forma bastante sencilla un usuario medio también puede personalizar a su gusto estos parámetros y umbrales, con cautela y siguiendo una serie de premisas.

1. OnDemand, OndemandX, Intellidemand, Lazy, Lagfree, HYPER (http://www.htcmania.com/showthread.php?t=484698)
2. Conservative, Lionheart, LionheartX (http://www.htcmania.com/showthread.php?t=484699)
3. SmartassV2 (http://www.htcmania.com/showthread.php?t=484714)
4. Lulzactive (http://www.htcmania.com/showthread.php?t=484727)
5. Interactive (http://www.htcmania.com/showthread.php?p=6324347#post6324347)
6. Pegasusq (http://www.htcmania.com/showthread.php?t=484947)
.
.
... próximamente más...




PLANIFICADORES

Acudimos también a la wikipedia para descubrir que el planificador (o scheduler en inglés) es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución.

Todo sistema operativo gestiona los programas mediante el concepto de proceso. En un instante dado, en el ordenador pueden existir diversos procesos listos para ser ejecutados. Sin embargo, solamente uno de ellos puede ser ejecutado (en cada microprocesador). De ahí la necesidad de que una parte del sistema operativo gestione, de una manera equitativa, qué proceso debe ejecutarse en cada momento.

La primera misión de un planificador es expulsar el programa en ejecución cuando decida que es pertinente. A continuación, el planificador decide cuál será el siguiente proceso en ejecutarse. Naturalmente, solamente se escogen procesos que estén listos para hacerlo. Si un proceso sigue esperando por una operación de entrada/salida no será candidato a ejecutarse hasta que finalice tal operación. La selección del proceso sigue alguna política de planificación prestablecida. Una vez seleccionado un proceso, se procede a ejecutarlo. Para ello, el planificador restaura su estado de ejecución (previamente salvado) y abandona el uso del microprocesador cediéndoselo a dicho proceso.

Todo esto apenas dura unos pocos milisegundos. Gracias a que el tiempo del microprocesador se reparte entre todos los procesos a intervalos muy cortos, el ordenador ofrece la sensación de que todos los procesos están ejecutándose a la vez.


El planificador, de esta manera ha de cumplir unos objetivos:
- minimizar el tiempo de busqueda del disco duro
- priorizar las peticiones de I/O (entradas/salidas) de los diferentes procesos
- asignar ancho de bada del disco para los procesos en ejecución
- garantizar que ciertas solicitudes serán respondidas antes de cierto límite


Y cumpliendo una serie de normas:
- Imparcialidad: permitiendo a cada proceso disponer de su cuota de acceso al disco
- Rendimiento: tratando de atender antes las solicitudes cercanas a la posición actual de la cabeza del disco duro, ya que la busqueda será más rápida
- Tiempo-real: garantizando que una solicitud será atendida en un momento dado.


1. Noop

2. Deadline

3.
.
.

...próximamente...




OTROS AJUSTES DEL KERNEL

A través de aplicaciones, muchas veces específicas para cada kernel, podemos ajustar aún más el comportamiento de nuestro dispositivo. En estos momentos los más conocidos son el ExTweaks y el STweaks. Por ahora voy a enlazar a un tutorial de hace tiempo, por lo que está algo desfasado. En breve lo actualizaré con las nuevas opciones que han ido apareciendo, además de añadir otras posibles aplaciones :ok:

- EXTweaks (http://www.htcmania.com/showthread.php?t=370905)

YossYGalaxy
05/11/12, 12:19:00
Algunas aplicaciones que nos pueden facilitar la labor de modificar muchos parámetros de un kernel, dependiendo siempre de que éste sea compatible:

NSTools
►Play Store (https://play.google.com/store/apps/details?id=mobi.cyann.nstools)◄►XDA (http://forum.xda-developers.com/showthread.php?t=1333696)◄


SET CPU
►Play Store (https://play.google.com/store/apps/details?id=com.mhuang.overclocking)◄►XDA (http://forum.xda-developers.com/showthread.php?t=505419)◄


ExTweaks
►Play Store (https://play.google.com/store/apps/details?id=com.darekxan.extweaks.app)◄►XDA (http://forum.xda-developers.com/showthread.php?t=1530147)◄



Para observar en tiempo real cómo afectan a la velocidad a la que trabaja la CPU los cambios que vayáis realizando os aconsejo esta aplicación:

Cool Tool
►Play Store (https://play.google.com/store/apps/details?id=ds.cpuoverlay&hl=es)◄►XDA (http://forum.xda-developers.com/showthread.php?t=1888183)◄

YossYGalaxy
05/11/12, 12:19:30
reservado 2

pedestre
05/11/12, 13:57:16
Gran hilo, como siempre de YossYGalaxy.
Seguro que será de gran utilidad para mucha gente

Slds

YossYGalaxy
05/11/12, 14:13:19
Gran hilo, como siempre de YossYGalaxy.
Seguro que será de gran utilidad para mucha gente

Slds
Gracias por el apoyo que siempre me demuestras pedestre :ok: .
Ya que no tengo los conocimientos necesarios para hacer grandes cosas (como es tu caso maestro :aplausos:) me dedico a poner mi granito de arena, leyendo mucho y recopilando información de aquellos temas que me interesan y, al final, compartiendo con el resto de usuarios. Gracias de nuevo.

Broquen
05/11/12, 14:37:01
Gracias por el apoyo que siempre me demuestras pedestre :ok: .
Ya que no tengo los conocimientos necesarios para hacer grandes cosas (como es tu caso maestro :aplausos:) me dedico a poner mi granito de arena, leyendo mucho y recopilando información de aquellos temas que me interesan y, al final, compartiendo con el resto de usuarios. Gracias de nuevo.

Desde luego es un hilo interesante. Me sumo a Pedestre en su agradecimiento :-)
Yo he llevado Hyper últimamente (cuando llevo el DorimanX en vez del Apolo, que es de vez en cuando) y hoy estoy probando el Intellidemand (que en rendimiento va genial pero aún no he podido probar qué tal va de batería).
Cuando llevo el Apolo me tiro, como la mayoría, a la mezcla de noop+slp

A medida que vayas completando cosillas, iré leyendo y aprendiendo :ok:

YossYGalaxy
05/11/12, 14:43:50
Desde luego es un hilo interesante. Me sumo a Pedestre en su agradecimiento :-)
Yo he llevado Hyper últimamente (cuando llevo el DorimanX en vez del Apolo, que es de vez en cuando) y hoy estoy probando el Intellidemand (que en rendimiento va genial pero aún no he podido probar qué tal va de batería).
Cuando llevo el Apolo me tiro, como la mayoría, a la mezcla de noop+slp

A medida que vayas completando cosillas, iré leyendo y aprendiendo :ok:
Muchas gracias broquen. Iré completando el hilo "sin prisa pero sin pausa" :-)

pedestre
05/11/12, 16:15:34
Pido una CHINCHETAZA para este hilo y que no caiga en el olvido ...

Chinchetaaaaa :palomitas:

unity
06/11/12, 00:49:57
Gran trabajo compañero

Enviado desde mi GT-I9100 usando Tapatalk 2

rovertovilla
06/11/12, 02:01:23
Muy buen tuto y muy bien currado, que quiten las chinchetas obsoletas que la mitad ya no valen para nada y CHINCHETAZO para esta!:D

Enviado desde mi GT-I9100 usando Tapatalk 2

DinamicaMedia
11/11/12, 17:15:20
Chincheta sin duda. Un gran aporte. Estaré atento a tus actualizaciones del hilo. Sinceramente mucha gente prueba roms una tras otra para ver cual se ajusta mejor a consumo y rendimiento y si leyeran hilos como este darían más importancia al kernel.

--------------------------
El mejor almacenamiento en la nube. 5 gb gratis. El unico que te permite sincronizar carpetas enteras en todos tus dispositivos y la nube...
https://www.sugarsync.com/referral?rf=0hv75qd80xcs&utm_source=website&utm_medium=web&utm_campaign=referral&shareEvent=2812464
*

Los mejores video tutoriales para tu Galaxy S2 en el canal de youtube: www.youtube.com/user/dinamicamedia

YossYGalaxy
11/11/12, 17:27:24
Chincheta sin duda. Un gran aporte. Estaré atento a tus actualizaciones del hilo. Sinceramente mucha gente prueba roms una tras otra para ver cual se ajusta mejor a consumo y rendimiento y si leyeran hilos como este darían más importancia al kernel.

Gracias!
Lo que dices es radicalmente cierto: casi todos las roms están muy optimizadas y va a ser el kernel el que marque realmente las diferencias en cuanto a consumos y rendimiento. :ok:

Janni
11/11/12, 18:35:50
Excelente trabajo, y eso que aún falta por completar

Digno de chineta :ok:

Sent from my HTC One X using Xparent Green Tapatalk 2

Axel 11
12/11/12, 00:19:22
Como siempre se agradece mucho tu trabajo compañero.
Saludos:beer::beer:

Chichetazo

Enviado desde mi GT - I9100 usando Tapatalk 2 con UnderWorld_Aokp_vy_Team Pure Mod

bilbi
12/11/12, 11:01:54
Joder, vaya curro de hilo! Muchas gracias por el trabajo. Chincheta!!! :thumbup:

Enviado desde mi GT-I9100 usando Tapatalk 2

raziel-77
12/11/12, 13:52:56
Tremendo tutorial, muchas gracias, seguro que vendrá bien a mas de uno que tiene dudas de algunas cosillas de las que comentas.

YossYGalaxy
12/11/12, 22:10:22
Tremendo tutorial, muchas gracias, seguro que vendrá bien a mas de uno que tiene dudas de algunas cosillas de las que comentas.
Te doy las gracias especialmente por tu apoyo Raziel, ya que eres un tío que admiro mucho, tanto por sus conocimientos, como por el hecho de que siempre estás ahí ayudando a todo el que lo necesita. Gracias a ti por lo tanto!

Aldoc
02/12/12, 21:26:50
estupendo, ha sido muy útil para mi
gracias :D

treszerotres
02/12/12, 23:07:28
Chincheta pero ya.

Que la mitad de las Chinchetas de ahora, no valen para nada

MASSELING00
18/02/13, 15:57:57
me huno!! creo que es un tema mas que relevante como para ponerle una chincheta!! o meter este y el que ya esta en la chincheta sobre los gobernadores y tal y ponerlos juntos para poder elegir cual necesitemos leer!

Manolo4D
20/02/13, 12:46:37
Parece que ahora se recomienda mucho el CPU Adjuster para establecer estos parametros en el kernel. Además es de un desarrollador español y esta en nuestro idioma.

Justo lo estoy usando con Jeboo 2.1 en la rom Chameleon 3.01 y de momento funciona muy bien.

YossYGalaxy
20/02/13, 13:15:49
Parece que ahora se recomienda mucho el CPU Adjuster para establecer estos parametros en el kernel. Además es de un desarrollador español y esta en nuestro idioma.

Justo lo estoy usando con Jeboo 2.1 en la rom Chameleon 3.01 y de momento funciona muy bien.
Gracias, no lo conocía. Esta tarde lo pruebo :thumbup:

Juank Osorio
26/02/13, 22:36:43
Excelente aporte!!!
Muchas gracias!!!!

garrapatero123
27/02/13, 07:20:48
Este tema es muy pero que muy interesante y merecedor de chincheta.

Pero ahora falta que la gente comente los resultados de sus pruebas, no? Ya que hay gente que hace pruebas muy exhautivas y pueden ayudar mucho a los demas.

Mi pequeño aporte es este, mi configuracion del Apolo v1
http://img.tapatalk.com/d/13/02/27/ne6ygyby.jpg
Consiguiendo 6h de pantalla de un uso muy intensivo

pringaguardias
04/03/13, 08:29:52
Este tema es muy pero que muy interesante y merecedor de chincheta.

Pero ahora falta que la gente comente los resultados de sus pruebas, no? Ya que hay gente que hace pruebas muy exhautivas y pueden ayudar mucho a los demas.

Mi pequeño aporte es este, mi configuracion del Apolo v1
http://img.tapatalk.com/d/13/02/27/ne6ygyby.jpg
Consiguiendo 6h de pantalla de un uso muy intensivo

Hasta ahora con noop+slp, pero de vez en cuando se me queda conlgado en reposo (el otro dia hasta se quedó colgado el despertador :risitas: (qué apuro!!). Voy a probar tu configuración. Nunca habia bajado la velocikdad dedl reloj....¿no se nota mucho??:rolleyes:

pringaguardias
04/03/13, 08:31:27
1%, eso es apurar la batería:risitas:

garrapatero123
04/03/13, 09:15:14
Hasta ahora con noop+slp, pero de vez en cuando se me queda conlgado en reposo (el otro dia hasta se quedó colgado el despertador :risitas: (qué apuro!!). Voy a probar tu configuración. Nunca habia bajado la velocikdad dedl reloj....¿no se nota mucho??:rolleyes:

Pues en Jb, Conservative ahorra un monton. Eso si, se nota en el rendimiento, algunas apps tardan en abrir.
Ahora he acabado un ciclo con 20h de bateria y 5h 20m de pantalla. Puedes verlo en el hilo de Apolo.

YossYGalaxy
04/03/13, 10:16:44
Este tema es muy pero que muy interesante y merecedor de chincheta.

Pero ahora falta que la gente comente los resultados de sus pruebas, no? Ya que hay gente que hace pruebas muy exhautivas y pueden ayudar mucho a los demas.

Mi pequeño aporte es este, mi configuracion del Apolo v1
http://img.tapatalk.com/d/13/02/27/ne6ygyby.jpg
Consiguiendo 6h de pantalla de un uso muy intensivo
Pues en Jb, Conservative ahorra un monton. Eso si, se nota en el rendimiento, algunas apps tardan en abrir.
Ahora he acabado un ciclo con 20h de bateria y 5h 20m de pantalla. Puedes verlo en el hilo de Apolo.
Hola amigos!



Os cuento la configuración que llevo ahora...
Yo soy más amigo de gobernadores un poco más agresivos para poder sacar el jugo de nuestras máquinas (ondemand, lulzactive, pegasusq,... ) pero está claro que no llego a 5 y no digamos 6 horas de pantalla desde hace muuuucho tiempo. Enhorabuena.
Últimamente no me complico y llevo un Ondemand con tweaks para que no trague demasiada batería:

http://img.tapatalk.com/d/13/03/04/e6ygypad.jpg

Normalmente no soy partidario del underclocking, pero desde que he conocido el Crosbreeder tengo la frecuencia máxima en 1000 MHz y la experiencia de usuario sigue siendo muy buena y todo va rápido y fluido.
Habitualmente sí hago undervolting (y lo aconsejo), pero en este momento el kernel que llevo no lo permite.

Y aunque no está relacionado con el tema de los kernel, sí lo está con el ahorro de batería, comento que:
- uso el toggle 2G para que se desactive automáticamente el 3G cuando no lo necesito
- uso la app lux, que gestiona muy bien el brillo de la pantalla. Llevándolo para que sólo cambie automáticamente cuando enciendo la pantalla es más cómodo que hacerlo manualmente y el gasto de batería es despreciable (a falta de testearlo en profundidad)

Un saludo!

Wild Life
23/03/13, 21:23:44
Gracias por el aporte!! :thumbup:

dhantheh93
24/03/13, 00:20:35
Hola ya que se hable de esto tengo el siyah v6.0b5 y claro no veo muchas actualizaciones la rom que tengo es la Omega 20.1 y me va muy bien si alguien sabe por cual cambiar que optimize muy bien todo,solo con whatsapp y viendo unas cosas me suele durar sobre 2 dias o asi algun sabria recomendarme que poner y sobre los dualboot me interesa para probar cosas pero claro falta de ingles y un poco inexperto en esos temas.

Lo siento si el tema no es aquí

Gracias y un saludo.

principe005
06/11/13, 16:29:02
tengo una pregunta un poco urgente ... yo tengo samsung glaxy s2 y la ultima version del apolo y con su configurador he puesto el governador luzactive + noop pero cuando quiero configurar el screen_off_min_step ahi me quedo parado porque en teoria tengo una tabla de 1200-1000-800-500-200 pero yo he configurado el apolo para que trabaje con 800 como maxima frequencia .. entonces estuve haciendo caluculos y si el apolo esta a 800MAX entonces 200 es (L2) ... esta bien calculado ? o tengo que ponerle 200 como (L4) siguendo la tabla completa y ignorando el 800 MAX frequencia .... espero que me entiendas esque llevo dos semanas comiendome el coco por estas cosas.

ismaelghr
06/11/13, 16:41:19
tengo una pregunta un poco urgente ... yo tengo samsung glaxy s2 y la ultima version del apolo y con su configurador he puesto el governador luzactive + noop pero cuando quiero configurar el screen_off_min_step ahi me quedo parado porque en teoria tengo una tabla de 1200-1000-800-500-200 pero yo he configurado el apolo para que trabaje con 800 como maxima frequencia .. entonces estuve haciendo caluculos y si el apolo esta a 800MAX entonces 200 es (L2) ... esta bien calculado ? o tengo que ponerle 200 como (L4) siguendo la tabla completa y ignorando el 800 MAX frequencia .... espero que me entiendas esque llevo dos semanas comiendome el coco por estas cosas.

Compi preguntale a Pedestre en el hilo de apolo , depronto reponda mas rapido.

principe005
06/11/13, 16:44:38
es lo que quería pero su hilo esta cerrado , no me deja escribir nada :(

ismaelghr
06/11/13, 16:57:36
es lo que quería pero su hilo esta cerrado , no me deja escribir nada :(

Noo compi esta totalmemte funcional te confundiste con alguno ya cerrado http://www.htcmania.com/showthread.php?t=701546

principe005
06/11/13, 17:00:01
muchas gracias :D