¿Podemos tener más de un kernel ejecutándose simultáneamente en un teléfono Android multi-core?

Estoy de acuerdo con Marc Volovic. Mis dos centavos con respecto al consumo de energía: creo que el consumo de energía en vataje es proporcional al uso de CPU / GPU / IO, pero no directamente al número de núcleos que se ejecutan, ya que los núcleos son solo abstracción de software para la carga de la CPU como lo son los procesos. Múltiples núcleos en ejecución agregan la utilización de hardware solo de forma constante (piense en los núcleos como hilos de ejecución adicionales desde la perspectiva del hardware) Me gustaría ver los núcleos como procesos que programan recursos de hardware. En un diseño de núcleo único, un proceso de núcleo está programando n (idéntico por simplicidad) procesos, la carga total de la CPU es np + k unidades de proceso donde p es la carga de hardware por proceso yk es la carga de hardware por núcleo. Casi quiero decir p ~ k, pero manteniendo el proceso del kernel con una prioridad elevada y toda la responsabilidad de gestión de hardware que tiene, p <= k. Si agrego más (q) núcleos al modelo, estos núcleos comparten n procesos entre ellos y la ecuación de carga cambiará a np + qk 'donde k' es la nueva carga de hardware para cada núcleo (suponiendo que cada núcleo comparta la carga de recursos de hardware igualmente) Ahora, pensando en la relación entre k y k ', es intuitivo que qk' = k + c donde c es una constante necesaria para llevar la contabilidad y administrar los múltiples núcleos. Entonces, la cantidad de carga que agregamos al agregar múltiples núcleos es c, que debería ser independiente de las radios que consumen mucha energía como antena, wifi, bluetooth, NFC, etc.

La respuesta es sí. NO es trivial. Se requeriría el aislamiento de la CPU y otros recursos.

Creo que una mejor solución sería ejecutar una capa delgada de hipervisor en la CPU y luego ejecutar invitados delgados en la parte superior.