Errores de Android 4.4.2: ¿realidad o ficción?

Desde hace una década, nuestras computadoras han tenido procesadores multinúcleo, y ahora esta es la norma. Inicialmente había dos núcleos, luego cuatro, y hoy en día empresas como Intel y AMD ofrecen procesadores de sobremesa de gama alta con 6 u 8 núcleos. La misma historia con los procesadores en los teléfonos inteligentes. Los procesadores de bajo consumo de energía de doble núcleo de ARM aparecieron hace unos 5 años, seguidos de los procesadores de 4, 6 y 8 núcleos basados ​​en la arquitectura ARM. Mientras tanto, existe una diferencia entre los procesadores de escritorio de 6 y 8 núcleos de Intel y AMD y los procesadores de 6 y 8 núcleos basados ​​en la arquitectura ARM. La mayoría de los procesadores de la segunda categoría con más de 4 núcleos utilizan al menos dos diseños de núcleo diferentes.

c

Con algunas excepciones, en general, un procesador ARM de ocho núcleos utiliza un sistema conocido como Procesamiento múltiple heterogéneo (HMP), en el que “heterogeneidad” se refiere a núcleos desiguales. En un procesador moderno de 64 bits, esto significa que se utiliza un grupo de núcleos Cortex-A57 o Cortex-A72 junto con un grupo de núcleos Cortex-A53. A72 es un núcleo de alto rendimiento, mientras que A53 es más eficiente energéticamente. Esta combinación se conoce como big.LITTLE, porque aquí los núcleos “grandes” (Cortex-A72) se combinan con el “pequeño” Cortex-A53. Esto es muy diferente de los procesadores de PC de 6 y 8 núcleos de Intel y AMD, ya que el tema del consumo de energía no es tan relevante aquí como lo es en un dispositivo móvil.

Cuando los procesadores de múltiples núcleos llegaron por primera vez a la PC, hubo muchas preguntas sobre las ventajas de un procesador de doble núcleo sobre uno de un solo núcleo. ¿Es un procesador de doble núcleo de 1.6 GHz “mejor” que un procesador de un solo núcleo de 3.2 GHz o no? ¿Qué hay de Windows? ¿Puede maximizar el potencial de un procesador de doble núcleo? ¿Qué pasa con los juegos? ¿De verdad van mejor con un procesador de doble núcleo? ¿Y necesita hacerlo de una manera especial al escribir aplicaciones para que puedan usar núcleos adicionales? Y así.

Acerca del multiprocesamiento

Estas preguntas son bastante naturales y, por supuesto, surgen las mismas preguntas sobre los procesadores multinúcleo en los teléfonos inteligentes. Antes de analizar la “relación” de los procesadores multinúcleo en los teléfonos inteligentes y las aplicaciones de Android, echemos un vistazo a la tecnología multinúcleo en general.

Las computadoras son excelentes para resolver un problema. ¿Necesitas saber los primeros cien millones de números primos? No hay problema, la computadora los calculará durante todo el día, una y otra vez. Pero luego, cuando desea que haga dos cosas, como detectar los mismos primos con la GUI ejecutándose al mismo tiempo para que pueda navegar por la web al mismo tiempo, se vuelve un poco más complicado.

Sin entrar en demasiados detalles, existe una tecnología conocida como multitarea preventiva, que le permite compartir el tiempo de CPU disponible entre varias tareas. Se asigna una “pieza” de tiempo de procesador a una tarea, una “pieza” a otra, y así sucesivamente. En el núcleo de los sistemas operativos como Linux, Windows, OS X y Android, existe una pieza de tecnología conocida como programador que determina qué proceso obtiene el siguiente bit de tiempo de CPU.

d

Los programadores se pueden escribir de manera diferente, en el servidor, el programador se puede adaptar para dar prioridad a las tareas de E/S, como escribir en el disco o leer desde la red, mientras que en el escritorio se centrará más en la capacidad de respuesta de la GUI.

Cuando hay más de un núcleo, el programador puede asignar a un proceso una parte del tiempo del procesador 0 mientras que otro proceso obtiene una porción del procesador 1. Por lo tanto, el programador y el procesador de doble núcleo permiten que dos tareas se ejecuten simultáneamente. Cuantos más núcleos, más procesos pueden ejecutarse simultáneamente.

READ
5 cosas que quizás no sabías sobre Android

Ya ha notado que el programador es bueno para dividir los recursos del procesador entre diferentes tareas, como el mismo cálculo de números primos, iniciar el escritorio, usar el navegador. Sin embargo, un solo proceso, como el cálculo de números primos, se puede compartir entre varios núcleos. ¿O no?

Algunas tareas son secuenciales por sí mismas. Para hornear un pastel, debe romper los huevos, agregar harina, amasar la masa, etc. No se puede poner el pastel en el horno hasta que la masa esté lista. Entonces, incluso si tiene dos chefs en la cocina, ahorrar tiempo en una de las tareas no funcionará. Hay un orden inquebrantable y una secuencia de acciones. Es posible realizar múltiples tareas y hacer que un chef cocine un pastel y otro chef corte una ensalada, pero las tareas con un orden predeterminado de operaciones no se beneficiarán de un procesador de doble núcleo o incluso de 12 núcleos.

No todas las tareas son como se describe arriba. Muchas de las operaciones que realiza una computadora se pueden dividir en varias tareas independientes. Para que esto suceda, el proceso principal debe crear otro proceso y darle parte del trabajo. Por ejemplo, si al usar un algoritmo para calcular números primos no usas los resultados anteriores, no usas la Tamiz de Eratóstenes, puedes dividir el trabajo en dos partes. Un proceso calcula los primeros 50 millones de números y el segundo calcula los segundos 50 millones Un procesador de cuatro núcleos le permite dividir el trabajo en 4 partes, y así sucesivamente.

Pero para que todo esto funcione, el programa debe estar escrito de una manera especial. En otras palabras, debe diseñarse para dividir la carga en partes más pequeñas, en lugar de completarla. Existen varias tecnologías de programación para esto, y probablemente haya escuchado palabras como “un solo subproceso” o “multiproceso”. Estas palabras significan programas que se escriben para realizar una sola tarea (un solo subproceso, todos juntos) o programas con tareas individuales (subprocesos) a los que se les puede asignar por separado su propio tiempo de procesador. En resumen, un programa de subproceso único no se beneficia al ejecutarse en un procesador de varios núcleos, pero uno de subprocesos múltiples sí.

e

Entonces, casi llegamos al punto, y antes de pasar a Android, necesitamos una cosa más. Depende de cómo esté escrito el sistema operativo, que algunos programas ejecutables pueden tener subprocesos múltiples nativos. A menudo, las partes separadas del sistema operativo son tareas independientes en sí mismas, y cuando su programa ingresa y genera información o muestra algo en la pantalla, puede ser un proceso separado en el sistema. El uso de lo que se llama llamadas sin bloqueo puede traer subprocesos múltiples a un programa sin crear subprocesos a propósito.

Este es un aspecto importante para Android. Una de las tareas a nivel de sistema en la arquitectura de Android es SurfaceFlinger. Esta es la base del proceso de visualización de información gráfica en la pantalla de Android. Esta es una tarea separada a la que se le debe asignar tiempo de CPU. Lo que significa que ciertas operaciones gráficas a realizar implican iniciar un nuevo proceso.

Android

Gracias a procesos como SurfaceFlinger, Android se beneficia de los procesadores multinúcleo sin necesidad de aplicaciones dedicadas inherentemente de subprocesos múltiples. Y debido a que muchas cosas suceden en segundo plano, como la sincronización y los widgets, Android se beneficia de ser multinúcleo y como un todo. Se espera que este sistema operativo tenga la capacidad de crear aplicaciones de subprocesos múltiples. Para obtener más información, consulte la sección Procesos y subprocesos de la documentación de Android. También hay ejemplos de subprocesos múltiples de Google, y también hay un artículo interesante de Qualcomm sobre la programación de aplicaciones de Android para procesadores de varios núcleos.

READ
Una característica importante de Android L, que no se anunció en la presentación

Sin embargo, la pregunta sigue siendo si la mayoría de las aplicaciones de Android son de un solo subproceso y, por lo tanto, usan solo un núcleo. La pregunta es importante, porque si es así, entonces puedes tener un monstruo multinúcleo del mundo de los teléfonos inteligentes, ¡pero de hecho su procesador funcionará como uno de doble núcleo!

También puede tener una pregunta sobre la diferencia entre un procesador de 4 y 8 núcleos. En PC o servidores, los procesadores de ocho núcleos se construyen de modo que el chip consta de núcleos idénticos. Para la mayoría de los procesadores ARM de XNUMX núcleos, hay disponibles opciones de núcleo de alto rendimiento y bajo consumo de energía. Y el punto es que los núcleos más eficientes energéticamente se usan para realizar más tareas secundarias, y los núcleos de alto rendimiento se usan para trabajar en una categoría de peso pesado. Sin embargo, al igual que la versión de escritorio, estos núcleos se pueden usar al mismo tiempo.

Lo más importante que debe recordar aquí es que el procesador octa-core big.LITTLE tiene ocho núcleos para la eficiencia energética, no para el rendimiento.

pruebas

En Android, es posible obtener información sobre cuántos núcleos ha utilizado el sistema en el procesador. Para los expertos, esto se puede encontrar en /proc/stat. Se ha creado una herramienta que toma información sobre el uso de núcleos en Android mientras se ejecuta la aplicación. Para mejorar su eficiencia y reducir la degradación del rendimiento, la información se recopila solo cuando la aplicación está activa. El análisis de datos se realiza fuera de línea.

Usando esta herramienta aún sin nombre, ejecutamos una serie de diferentes tipos de aplicaciones (juegos, navegación web, etc.) en un teléfono Qualcomm Snapdragon 801 de cuatro núcleos y luego en un teléfono Qualcomm Snapdragon 615 de ocho núcleos para realizar pruebas. datos obtenidos gráficos de uso del procesador. Comencemos con un ejemplo simple. Aquí está el gráfico de los núcleos Snapdragon 801 cuando se usa el navegador Chrome:

f

El gráfico muestra cuántos núcleos usaron Android y el navegador. No muestra cuánto se usó el núcleo, solo si se usó en absoluto. Si Chrome fuera de un solo subproceso, uno esperaría que estuvieran involucrados uno o dos núcleos, tal vez un tercero o cuarto en ocasiones. Pero no lo vemos. Por el contrario, se trata de cuatro núcleos, y solo en ocasiones la cantidad de núcleos utilizados baja a 2. En la prueba de navegación, no se leyeron las páginas cargadas, esto no afectaría el uso del procesador. Las páginas acaban de cargarse y puede pasar a otras nuevas.

Aquí hay un gráfico que muestra cuánto se usó cada núcleo. Este es un gráfico promedio (en la vida real, una gran cantidad de líneas crean confusión). Esto significa que al menos se muestran los picos de uso. Por ejemplo, el pico en este gráfico supera el 90 %, pero los datos originales mostraron que algunos núcleos alcanzaron el 100 % muchas veces. Sin embargo, aquí puedes ver claramente lo que sucedió.

g

¿Y el procesador de ocho núcleos? ¿Muestra el mismo circuito? No, como puede ver en el gráfico a continuación. Se usan siete núcleos constantemente, en los picos llega a 8, a veces baja a 6 y 4.

READ
El CEO de Huawei admite que HarmonyOS no es un competidor de Android

h

Además, la utilización promedio de cada núcleo muestra que el programador se comportó de manera diferente porque Snapdragon 615 es un procesador grande.PEQUEÑO.

i

Puedes ver que dos o tres núcleos funcionan más que otros, pero todos los núcleos están involucrados de una forma u otra. Vemos cómo la arquitectura big.LITTLE puede pasar subprocesos de un núcleo a otro según la carga de trabajo. Y no olvide que el objetivo de los núcleos adicionales es la eficiencia energética, no el rendimiento.

Podemos decir con seguridad que el uso de un solo núcleo por parte de un “android” es un mito. Esto era de esperar dado que Chrome, como Android, fue diseñado para ser multiproceso, al igual que las computadoras de escritorio.

Otras aplicaciones

Entonces, fue desarrollado por Chrome de subprocesos múltiples, pero ¿qué pasa con otras aplicaciones? Esto es lo que sucedió en pocas palabras

Gmail: en un teléfono de 4 núcleos, obtuvimos partes iguales de uso de 2 y 4 núcleos. Sin embargo, el uso promedio del núcleo no superó el 50 %, lo que es de esperar para una aplicación relativamente liviana. El procesador octa-core saltó de 4 a 8 núcleos, pero el uso promedio de núcleos fue inferior al 35 %.

YouTube: solo se usaron 4 núcleos en un procesador de 2 núcleos, con un promedio de menos del 50 % de carga. En el de 8 núcleos, hay básicamente 4 núcleos, a veces creció a 6 y se redujo a 3. La carga promedio en los núcleos fue solo del 30%. Es interesante que el programador prefiriera núcleos grandes y casi no usara núcleos pequeños.

Riptide GP2 – 4 núcleos – El procesador de Qualcomm usó dos núcleos la mayor parte del tiempo, y los otros dos usaron muy poco. Y en la versión de 8 núcleos, se usaron 6-7 núcleos en secuencia, pero solo tres hicieron el trabajo principal.

Templerun 2: este juego es un ejemplo más extremo del problema de un solo subproceso que las otras aplicaciones de la prueba. En la versión de 8 núcleos, se utilizaron 4-5 núcleos en serie con picos de hasta 7. Y solo un núcleo hizo el trabajo duro. En un teléfono con Qualcomm Snapdragon 4 de cuatro núcleos, dos núcleos compartieron la carga aproximadamente por igual, mientras que los otros dos obtuvieron muy poco. En un teléfono con un procesador de 801 núcleos de MediaTek, la carga se distribuyó entre los cuatro núcleos. Esto muestra cómo los diferentes programadores y los diferentes núcleos cambian drásticamente la forma en que se usa el procesador.

Aquí hay una selección de gráficos para mayor claridad. Se ha agregado un gráfico inactivo del sistema de 8 núcleos como punto de partida.

Dispositivo octa-core, pantalla activa, el usuario no realiza ninguna acción:

1

YouTube ejecutándose en una máquina de 4 núcleos:

2

YouTube ejecutándose en una máquina de 8 núcleos:

3

TempleRun2 ejecutándose en una máquina de 4 núcleos:

4

TempleRun2 ejecutándose en una máquina de 4 núcleos con un procesador MediaTek:

5

Gmail ejecutándose en una máquina de 4 núcleos:

6

Gmail ejecutándose en una máquina de 8 núcleos:

7

Riptide GP2 ejecutándose en una máquina de 4 núcleos:

8

Riptide GP2 ejecutándose en una máquina de 8 núcleos:

9

Se obtuvo un resultado interesante en AnTuTu en un procesador de 8 núcleos.

a

Como puede ver, la última parte de la prueba carga completamente todos los núcleos. Está claro que el punto de referencia crea artificialmente una carga alta, y dado que todos los núcleos funcionan a plena capacidad, los conjuntos de chips con una gran cantidad de núcleos ganan. Esto no se observó con las aplicaciones convencionales. Los puntos de referencia inflan artificialmente la ventaja de los dispositivos de ocho núcleos en rendimiento (más que en eficiencia energética).

READ
Google añadirá un nuevo gesto al sistema de control de Android Q

¿Por qué las aplicaciones ligeras usan 8 núcleos?

Si observa aplicaciones como Gmail, notará un fenómeno interesante. En un dispositivo de 4 núcleos, el uso de núcleos se distribuye uniformemente entre dos y cuatro núcleos, y en un dispositivo de 8 núcleos, entre cuatro y ocho. ¿Cómo se puede ejecutar Gmail en 2-4 núcleos en un teléfono de 4 núcleos, pero requiere al menos cuatro núcleos en un teléfono de 8 núcleos? Algunas tonterías.

Lo que pasa es que los núcleos de los teléfonos con big.LITTLE son desiguales. En realidad, vemos que el planificador utiliza núcleos PEQUEÑOS, y cuando la carga sube, entran en juego sus hermanos grandes. Después de un tiempo de trabajar juntos, los PEQUEÑOS núcleos se van a descansar. Cuando se reduce la carga, todo sucede al revés. Por supuesto, todo esto sucede muy rápidamente, miles de veces por segundo. Mire el gráfico que compara el uso de núcleos grandes y PEQUEÑOS en Epic Citadel.

b

Mire, los núcleos grandes se usan primero y los núcleos PEQUEÑOS están inactivos. Luego, alrededor de la marca de 12 segundos, los núcleos grandes comienzan a usarse menos y los núcleos PEQUEÑOS se despiertan. A los 20 segundos, los núcleos grandes vuelven a aumentar la actividad y los PEQUEÑOS la reducen a casi cero. Esto también se puede ver a los 30, 45 y 52 segundos. En estos puntos, la cantidad de núcleos utilizados fluctúa. Por ejemplo, en los primeros 10 segundos, solo se usan 3 o 4 núcleos (estos son núcleos grandes), y a los 12 segundos este número sube a 6, luego vuelve a caer a 4, y así sucesivamente. Así es como funciona big.LITTLE. Este procesador está construido de manera diferente a un procesador de PC. Los núcleos adicionales permiten al programador elegir los núcleos correctos para diferentes acciones.

Todas las pruebas que se llevaron a cabo mostraron que no había una sola aplicación real que usara los 8 núcleos al cien por cien. Así es como debería haber sido.

En resumen

En primer lugar, destacamos que estas pruebas no reflejan el rendimiento de los teléfonos, sino que solo muestran si las aplicaciones de Android utilizan múltiples núcleos. No revela las ventajas o desventajas de multinúcleo o el chipset big.LITTLE, ni compara el funcionamiento de partes de la aplicación en dos núcleos cuando se usan al 25 % usando un núcleo al 50 %, y así sucesivamente. .

Entonces, aún no se han realizado pruebas para los circuitos Cortex-A53/Cortex-A57 o Cortex-A53/Cortex-A72. Qualcomm Snapdragon 615 tiene un clúster ARM Cortex A4 de cuatro núcleos a 1.7 GHz y un clúster A53 de cuatro núcleos a 1.0 GHz.

El intervalo de escaneo en esta estadística es de aproximadamente un tercio de segundo, es decir, aproximadamente 330 milisegundos. Si un núcleo indica una utilización del 25 % en esos 300 milisegundos y un segundo núcleo indica lo mismo, el gráfico mostrará que ambos núcleos se utilizan al 25 % al mismo tiempo, y un núcleo puede utilizar el 25 % durante 150 milisegundos. milisegundos, lo mismo con el segundo. Esto significa que los núcleos se usaron secuencialmente y no todos a la vez. Actualmente, la prueba no implica un intervalo menor.

Dicho esto, las aplicaciones de Android son claramente capaces de aprovechar los procesadores multinúcleo, y los procesadores big.LITTLE permiten al programador elegir la mejor combinación de núcleos para la tarea actual. Por lo tanto, si todavía escucha de la gente “¡Pero un teléfono inteligente no necesita 8 núcleos!”, Solo puede encogerse de hombros con desesperación. Esta gente no entiende nada.

Revisión del sistema operativo Android 4.4.2 KitKat

El sistema se llama Android 4.4.2 KitKat. Después de comenzar a usarlo, lo comprende: los desarrolladores se comieron el Whalekat atrasado y, por lo tanto, tuvieron diarrea de software, o comieron algo (se rompió para comer, ya saben a lo que me refiero) y resultó con estilo.

READ
El lanzador de Android más avanzado disponible en Google Play

Excelente sistema operativo

Tabletas, teléfonos inteligentes, algunas computadoras, televisores, mp4. Todos estos son inventos del mundo moderno, y sin los cuales el hombre moderno no puede imaginar su existencia. A menudo, las personas que usan Internet se hacen la pregunta: “¿Qué hacía la gente antes, cuando Internet.

mejor sistema operativo móvil

Android es el mejor sistema operativo que he usado. Es mucho más avanzado, más funcional y más rápido que iOS. Hay muchas más aplicaciones gratuitas para Android que cualquier otra. Además, tenga en cuenta lo que es.

Excelente sistema operativo.

Excelente sistema operativo. Según tengo entendido, IOS y Android 5.0 son mejores en algunos lugares. Me gusta el diseño negro. Pero algunos puntos los desarrolladores no querían modificar. No es conveniente cambiar el sonido. Me gusta que sea todo negro.

Sistema conveniente y ágil

Me sorprendió el funcionamiento rápido y estable de este sistema. De momento lo he estado usando lo suficiente como para decir que el sistema es estable y servirá al usuario durante mucho tiempo. Operación rápida de aplicaciones, ahorro de tráfico de datos, administración conveniente y amplia.

Sistema operativo único.

El otro día compré un teléfono con OS 4.4.2 y quedé impresionado. Con este sistema, puede instalar muchos programas, juegos y otras cosas diferentes. Los requisitos de muchos programas tienen OS 4.4.2 o 4.2.2. Es decir, si compras un teléfono.

Buen sistema

Tengo una tableta en este sistema durante 3 meses. Todo funciona muy bien, sin problemas. Diseño bellamente modelado que es un placer mirar. yo aconsejo

Esta versión de Android ha cambiado bastante y es diferente de las versiones anteriores.

He estado usando dispositivos Android durante aproximadamente 6 años, en un momento en que Android lanzó Gingerbread al mercado y esto es 2.3. X, ya era usuario y como decirlo me hice fan de este SO.

¡No lo recomiendo!

Hay muchas aplicaciones que nunca he usado, pero quiero probarlas, ¡y tengo Android 4.4.2 KitKat! Escriben “No es compatible con su dispositivo” Fallas, agota la batería (mi

Muy bien

mucho mejor que IOS, da más opciones al usuario. muchas aplicaciones y varios complementos, las actualizaciones para su dispositivo están disponibles. Vobshem

la mejor versión de la historia

Todavía uso un teléfono con la versión 4.4.2 de Android; en mi opinión, este es el mejor sistema operativo para dispositivos móviles en términos de calidad. Desde 2015 llevo teléfonos solo con esta versión. Todo es simple.

¡ME ENCANTA ESTE SISTEMA!

¡Este sistema es uno de los mejores de su clase! Está bien hecho, no tiene prisa. Pros: ágil (no se ralentiza), conveniente (puede personalizarlo fácilmente), funcional (muchos chips diferentes, etc.), todo lo más instalado.

muy útil en mi opinión

Trabajo estable sin fallas ni frenos, no se bloquea, interfaz fácil de usar, iconos y widgets hermosos y brillantes.

Kit kat 4.4.2 es un sistema operativo bien pensado y bien implementado. En comparación con sus predecesores, yo mismo uso un teléfono inteligente con este sistema operativo y no quiero cambiar a ningún otro

No esta mal

descarga rápida de su dispositivo, un montón de programas innecesarios incorporados, prohibición de escribir archivos directamente en una unidad flash USB

Llevo más de un año usando esta versión del sistema operativo, y la he usado en diferentes dispositivos, por lo que puedo dar una reseña objetiva. . En general, 4.4.2 no trajo muchas novedades a sus usuarios. Un poquito.

Mucha basura

No está mal, pero para mucha gente hay muchas aplicaciones inútiles que ni siquiera son las mejores en su categoría. Tenía este firmware en mi teléfono inteligente bastante débil con una pequeña cantidad de RAM, pero funcionó relativamente bien.

Rating
( No ratings yet )
Like this post? Please share to your friends:
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: