|
||
|
![]() |
![]() |
ROMs y desarrollo Samsung Galaxy S II ROMs y desarrollo Samsung Galaxy S II |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Tu Kernel y tú: kernel, gobernadores y planificadores
-------------------------------------------------------------------------------------------------------
Ya hay un hilo sobre este tema gracias a sergy330 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 de droidphile 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 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 ![]() ------------------------------------------------------------------------------------------------------- ¿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. 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 2. Conservative, Lionheart, LionheartX 3. SmartassV2 4. Lulzactive 5. Interactive 6. Pegasusq . . ... 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 ![]() - EXTweaks
__________________
Última edición por YossYGalaxy Día 12/11/12 a las 22:11:26. |
Los siguientes 46 usuarios han agradecido a YossYGalaxy su comentario: | ||
|
#2
|
||||
|
||||
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◄►XDA◄ SET CPU ►Play Store◄►XDA◄ ExTweaks ►Play Store◄►XDA◄ 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◄►XDA◄
__________________
Última edición por YossYGalaxy Día 05/11/12 a las 15:44:08. |
Los siguientes 12 usuarios han agradecido a YossYGalaxy su comentario: | ||
#3
|
||||
|
||||
reservado 2
__________________
|
Los siguientes 3 usuarios han agradecido a YossYGalaxy su comentario: | ||
#4
|
||||
|
||||
Gran hilo, como siempre de YossYGalaxy.
Seguro que será de gran utilidad para mucha gente Slds |
Gracias de parte de: | ||
#5
|
||||
|
||||
![]() Ya que no tengo los conocimientos necesarios para hacer grandes cosas (como es tu caso maestro ![]()
__________________
|
Los siguientes 4 usuarios han agradecido a YossYGalaxy su comentario: | ||
#6
|
||||
|
||||
Gracias por el apoyo que siempre me demuestras pedestre
![]() Ya que no tengo los conocimientos necesarios para hacer grandes cosas (como es tu caso maestro ![]() ![]() ![]() 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 ![]()
__________________
|
Los siguientes 2 usuarios han agradecido a Broquen su comentario: | ||
#7
|
||||
|
||||
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 ![]() ![]() ![]()
__________________
|
Gracias de parte de: | ||
#8
|
||||
|
||||
Pido una CHINCHETAZA para este hilo y que no caiga en el olvido ...
Chinchetaaaaa ![]() |
Gracias de parte de: | ||
#9
|
||||
|
||||
Gran trabajo compañero
Enviado desde mi GT-I9100 usando Tapatalk 2 |
Gracias de parte de: | ||
#10
|
||||
|
||||
Muy buen tuto y muy bien currado, que quiten las chinchetas obsoletas que la mitad ya no valen para nada y CHINCHETAZO para esta!
![]() Enviado desde mi GT-I9100 usando Tapatalk 2 |
Gracias de parte de: | ||
#11
|
||||
|
||||
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?r...eEvent=2812464 * Los mejores video tutoriales para tu Galaxy S2 en el canal de youtube: www.youtube.com/user/dinamicamedia |
Gracias de parte de: | ||
#12
|
||||
|
||||
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. ![]()
__________________
|
#13
|
||||
|
||||
Excelente trabajo, y eso que aún falta por completar
Digno de chineta ![]() Sent from my HTC One X using Xparent Green Tapatalk 2
__________________
![]() |
Gracias de parte de: | ||
#14
|
||||
|
||||
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 Última edición por Axel 11 Día 12/11/12 a las 00:26:35. |
Gracias de parte de: | ||
#15
|
||||
|
||||
Joder, vaya curro de hilo! Muchas gracias por el trabajo. Chincheta!!!
![]() Enviado desde mi GT-I9100 usando Tapatalk 2 |
Gracias de parte de: | ||
#16
|
||||
|
||||
Tremendo tutorial, muchas gracias, seguro que vendrá bien a mas de uno que tiene dudas de algunas cosillas de las que comentas.
__________________
![]() |
Gracias de parte de: | ||
#17
|
||||
|
||||
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!
__________________
|
#19
|
||||
|
||||
Chincheta pero ya.
Que la mitad de las Chinchetas de ahora, no valen para nada |
Gracias de parte de: | ||
|
#20
|
||||
|
||||
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!
|
Gracias de parte de: | ||
![]() |
![]() |
||||||
|