Ver Mensaje Individual
  #1  
Viejo 05/11/12, 12:18:30
Array

[xs_avatar]
YossYGalaxy YossYGalaxy no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Localización: Asturias Patria Querida
Mensajes: 2,068
Modelo de smartphone: Samsung Galaxy SII
Tu operador: Yoigo
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.
Responder Con Cita
Los siguientes 46 usuarios han agradecido a YossYGalaxy su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]