Hoy en día tenemos acceso a varias opciones en materia de sistemas operativos. Cada uno tiene sus puntos a favor y en contra, pero seguir el ritmo del hardware e intentar utilizarlo a pleno es un desafío que todos los programadores y desarrolladores deben enfrentar, especialmente en esta época de múltiples núcleos por cada procesador. Sin embargo, la gente del MIT está desarrollando el llamado proyecto “Angstrom”, un sistema operativo que puede optimizar procesos administrando el hardware de la misma forma que un cuerpo humano requiere más energía o precisión para determinadas tareas.
Desde un simple núcleo hasta los más recientes ejemplares de ocho por chip, los procesadores han avanzado de forma considerable. Con la carrera por la velocidad de reloj muerta y enterrada, los fabricantes continúan aumentando el poder de los procesadores a través de la adición de núcleos. Pero este beneficio tiene sus límites, y el primero de ellos es el software. En términos simples, está tomando mucho trabajo encontrar formas de desarrollar y optimizar código para hacer uso de todos los núcleos disponibles en un sistema. Y cuando el problema no es la falta de optimización para los núcleos, es su “no utilización”. Un sistema operativo actual no utiliza a todos sus núcleos constantemente ni tiene una gran idea sobre cómo administrarlos, y en muchos casos, el hardware incluso desactiva núcleos porque no se encuentran en uso. Algo parecido sucedía en Windows XP con gigabytes de RAM enteros que no estaban siendo ocupados. Windows Vista y Windows 7 aplicaron otra perspectiva, pero el inconveniente de fondo sigue presente: El software no sabe cómo ser más eficiente con el hardware.
Para solucionar esto, la gente del MIT tiene una idea con su “Proyecto Angstrom”. Básicamente, de la misma forma en la que el cuerpo humano da indicaciones de sus necesidades para un correcto funcionamiento (hambre, sed, sudor, sueño, etc.), Angstrom permite a los desarrolladores que creen aplicaciones para el sistema operativo asignar “cuotas de rendimiento”, administradas por un sistema de medición al que han bautizado como “latidos”. Por ejemplo, si un programa multimedia necesita reproducir un vídeo a 30 cuadros por segundo, Angstrom detecta su “cuota de rendimiento” para alcanzar esa cantidad de cuadros, y asigna “latidos” a dicho proceso para garantizar su correcto funcionamiento. Esta administración de recursos se extenderá a los cientos de núcleos que se esperan en los procesadores futuros, pero si bien el software hoy representa al factor limitante, también necesitará de ayuda.
Los procesadores que utilizamos en estos días pueden parecer muy poderosos, pero lo cierto es que la velocidad de comunicación entre los núcleos sigue siendo mucho más lenta que la comunicación “dentro” de un núcleo. A medida que se aumenta la cantidad de núcleos, la velocidad de comunicación entre ellos deberá incrementarse de forma considerable, por lo que el método de trabajo de Angstrom también requerirá de importantes cambios en la forma en que se fabrican los procesadores. Por ahora, la alternativa sigue siendo la misma de siempre: La optimización de código, y los dolores de cabeza asociados para los desarrolladores. Pero hay mucho potencial en Angstrom, y lo más importante, algunos billetes provenientes de DARPA que le dan un gran respaldo.