jueves, 12 de febrero de 2015

¿Qué es el núcleo de un procesador?







Nucleo - Foto cortesía PriceGrabber
Foto cortesía PriceGrabber

¿Qué es el núcleo de un procesador?



Un procesador es un dispositivo electrónico que incluye varios bloques entre ellos se encuentran unos muy interesantes que se denominan núcleos los cuales se encargan de ejecutar las instrucciones y pueden ser vistos como unos micros en miniatura.
Los procesadores con varios núcleos han ganado popularidad a lo largo de los años tanto que ahora es casi imposible encontrarte con alguno que no tenga más de uno de ellos en su interior. Esto ha sido posible gracias a las mejoras de las tecnologías de fabricación que ha permitido reducir enormemente el tamaño de los micros dando más espacio libre a los ingenieros pudiendo por tanto duplicar o incluso triplicar sus bloques internos. De esta forma pasamos de poder ejecutar una sola tarea a trabajar con varias al mismo tiempo.
La idea no es nueva. Antes de que se pudieran integrar dos o más núcleos en el interior del chip existían equipos multiprocesadores. En estos había más de un micro sobre la misma placa base. Como te puedes imaginar eran muy caros y necesitaban placas especiales para hacerlos funcionar. La idea en esencia es la misma pero mucho más eficiente al estar todo incluido dentro del mismo chip.

¿Un procesador con dos núcleos es el doble de rápido que uno con un núcleo?

No todas las aplicaciones son capaces de usar más de un núcleo de manera simultánea. Para entender mejor esto imagina un programa que va a sumar una serie muy grande de números. Si usas un solo núcleo, este deberá realizar todas las operaciones una a una para poder continuar.
Si al realizar esto se divide la serie de números inicial en varios conjuntos podrás acelerarla con el uso de más de un núcleo. Ahora sólo tendrás que sumar al final el total de cada operación.
Ten en cuenta que sacaras partido a esta ventaja solo y solo si se adapta el programa con lo cual es necesario la intervención de los programadores.
En otras situaciones tener dos o más núcleos lleva a ganancias muy grandes de rendimiento. Sobre todo al evitar bloqueos como los que ocurren casi de manera continúa con programas que están en memoria como pueden ser los antivirus. Una utilidad de este tipo es capaz de consumir el 100% de un núcleo, parando la ejecución de otras aplicaciones hasta que terminan su trabajo. En estos casos disponer de más núcleos mejora la respuesta de todo el sistema de manera radical.
Los procesadores de doble núcleo son más ágiles en dar respuesta a tus órdenes. El sistema operativo está más desahogado. Pero no debes pensar que de forma general acaben su trabajo en la mitad de tiempo.

¿Sirve para algo tener más de dos núcleos?

Debes de estar pensando, si con dos núcleos somos capaces de quitar algunos bloqueos, ¿qué no podremos hacer con tres o más? En principio, si tienes más núcleos, el procesador puede trabajar con más aplicaciones y realizar más tareas al mismo tiempo.
Los fabricantes y diseñadores de micros tienen clara esa ganancia de prestaciones y la tendencia pasa a que en un futuro tengamos más núcleos en cada procesador. Por desgracia, la mayoría de las utilidades y aplicaciones no se pueden beneficiar ni directa, ni indirectamente ya que sus operaciones no se pueden realizar en paralelo.
Sin embargo si es cierto que existen tareas que se benefician de manera más clara del aumento de núcleos:
Retoque fotográfico. Sobre todo en la aplicación de filtros. Un procesador con varios núcleos puede calcular al mismo tiempo diferentes regiones de la misma imagen. En estos casos la velocidad aumenta linealmente con el número de estos elementos.
Trabajos de video. Es parecido a lo que ocurre en el caso anterior, la utilidad puede trabajar con más de un fotograma a la vez acelerando así el proceso.
Juegos de estrategia. Existen muchos juegos en los cuales el próximo movimiento se basa en realizar cálculos sobre las posiciones futuras, el caso más claro es el ajedrez. Si estas posiciones se pueden evaluar de manera independiente, un procesador con un mayor número de núcleos será siempre una ventaja. Por desgracia no acelera de la misma manera otro tipo de juegos.
Rendering. La creación de imágenes 3D también se aprovecha de este aumento. La razón es similar a la del retoque fotográfico ya que los programas pueden calcular distintas regiones de manera independiente. No confundas este tipo de imágenes con las que se utilizan en los juegos de PC que son creadas por la tarjeta gráfica y a los que en principio el tipo de procesador les da casi igual.



Hilo de ejecución

En sistemas operativos, un hilo de ejecuciónhebra o subproceso es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.
La creación de un nuevo hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

Diferencias entre hilos y procesos

Los hilos se distinguen de los tradicionales procesos en que los procesos son –generalmente– independientes, llevan bastante información de estados, e interactúan sólo a través de mecanismos de comunicación dados por el sistema. Por otra parte, muchos hilos generalmente comparten otros recursos de forma directa. En muchos de los sistemas operativos que dan facilidades a los hilos, es más rápido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro. Este fenómeno se debe a que los hilos comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes, no lo hacen




No hay comentarios:

Publicar un comentario