Red de conocimiento informático - Material del sitio web - ¿Cómo se asignan las tareas a las CPU multinúcleo?

¿Cómo se asignan las tareas a las CPU multinúcleo?

La ventaja del dual-core no es la frecuencia, sino la capacidad de manejar múltiples cosas al mismo tiempo. En teoría, un núcleo solo puede hacer una cosa a la vez. Por ejemplo, está descargando BT en segundo plano, viendo películas, copiando archivos y conectándose a QQ en la recepción al mismo tiempo. la CPU responda al mismo tiempo. ¿Qué debo hacer? ¡Depende del sistema operativo! La ventana en sí es un sistema operativo de subprocesos múltiples (DOS es un sistema de un solo subproceso. No hay diferencia entre 2 y 4 núcleos en DOS y un solo núcleo. Al procesar una tarea, debe detenerse y esperar a que completar el procesamiento antes de hacer lo siguiente). Puede procesar cada tarea dividida en varios "compartidos" y varias tareas de procesamiento se ponen en cola en orden, de modo que una CPU de un solo núcleo puede procesar un "compartido" a la vez y procesar. las "comparticiones" de cada programa por turno, para que pueda sentir cuántas tareas está realizando la CPU al mismo tiempo. Algo sucedió. Pero si la CPU no es lo suficientemente potente y hay demasiadas cosas en cola para procesarlas al mismo tiempo, sentirás que el sistema está esperando, con síntomas como retrasos y respuesta lenta. O si un determinado programa tiene un error y falla, es probable que otras tareas en cola detrás de él estén esperando allí, lo que hace que el sistema deje de responder, incluso al presionar el botón de inicio en caliente. En teoría, si hay una CPU de un solo núcleo con una frecuencia de 6G, el rendimiento de procesamiento debería ser similar al de una CPU de doble núcleo 3G, o incluso superior, porque el doble núcleo actual es menos de 2 veces más rápido que un de un solo núcleo. Originalmente, las computadoras siempre han utilizado la frecuencia de funcionamiento de un solo núcleo como medida de rendimiento. La razón para abandonar el núcleo único es que el nivel técnico actual ha hecho que la mejora continua del rendimiento de un solo núcleo encuentre un cuello de botella. P4 ha convertido la forma de mejorar el rendimiento en función de la frecuencia en un callejón sin salida. Como último recurso, tenemos que tomar la ruta de múltiples núcleos y utilizar la cantidad de núcleos para compensar la falta de potencia de procesamiento. Pero poco a poco, las frecuencias de estos multinúcleos están empezando a acelerarse nuevamente hacia 3G. Con la aparición de los 45 nm, el 4G en núcleos duales debería ser concebible. Por un lado, el rendimiento de cada núcleo aún está en desarrollo, y por otro. Por otro lado, la integración de múltiples núcleos es un enfoque doble, de modo que el rendimiento de la CPU se puede mejorar rápidamente y seguir manteniendo la ley de Moore. Las CPU de múltiples núcleos son múltiples CPU de un solo núcleo integradas en el sustrato. En los primeros días, el PD de doble núcleo requería que Northbridge controlara la asignación de tareas. Más tarde, el Core integró el sistema de asignación de tareas y, combinado con el sistema operativo, realmente puede comenzar a trabajar al mismo tiempo. Los dos núcleos manejan dos "comparticiones" de tareas al mismo tiempo, lo cual es muy rápido. El núcleo falla, al menos la otra U puede continuar manejando tareas como apagar y cerrar el software. Los sistemas operativos más antiguos, como XP, requieren parches de doble núcleo o multinúcleo para proporcionar un mejor rendimiento o estabilidad, pero Vistia no los requiere. En la actualidad, casi todos los programas están escritos para una CPU de un solo núcleo (la optimización de programas de múltiples núcleos es una pesadilla para los programadores y parece que no existe un software de programación adecuado que permita a los programadores escribir fácilmente programas para múltiples núcleos), por lo que La utilización La tasa de multinúcleo no es muy alta. Al asignar tareas, un núcleo suele estar completamente cargado y el otro está inactivo (está bien dejar algunos inactivos para hacer frente a otros comandos que pueden ocurrir en cualquier momento). Generalmente, el rendimiento de 2 núcleos es 60~70 o incluso menor que el de un solo núcleo. Para decirlo sin rodeos, 4 núcleos u 8 núcleos en el futuro seguirán siendo núcleos múltiples que manejan sus propias "acciones" de forma independiente. Sin embargo, con más personas, la potencia es mayor, la velocidad es rápida y el tiempo de respuesta es corto. No es fácil estrellarse. Por supuesto, el consumo de energía y la coordinación serán una prueba. Suplemento: originalmente había una declaración (yo mismo he mantenido esta opinión por un tiempo): "Todo el software actual está escrito para un solo núcleo y no hay ninguna ventaja en el procesamiento de CPU de múltiples núcleos, después del análisis, podemos saberlo". que los protagonistas involucrados en la asignación de tareas uno es el programa en sí y el otro es el sistema operativo. Incluso un SuperPI de una sola tarea funcionará mucho más rápido con un doble núcleo que uno de un solo núcleo con la misma frecuencia. Esto lo demuestran los hechos. . Análisis teórico: los programas de un solo subproceso son estúpidos. No saben que hay dos CPU esperando al frente, por lo que la solicitud enviada también debe ser para un solo núcleo. Sin embargo, el sistema operativo asigna automáticamente la solicitud de llamada a las dos CPU. Y una vez completado el procesamiento, los resultados se fusionan, por lo que los programas de un solo núcleo también pueden disfrutar del "cuidado" de los de múltiples núcleos. Aunque la asignación por parte del sistema operativo puede no ser perfecta, sigue siendo más rápida que una sola CPU. Si el programa en sí optimiza (reescribe) el procesamiento de subprocesos múltiples, será aún más perfecto y podrá alcanzar el doble de nivel. Los amigos del quinto piso ya pueden dar ejemplos específicos de esto.

Muchas gracias. Especulemos nuevamente Según el análisis anterior, 2G de doble núcleo debería ser casi 2 veces más rápido que 2G de un solo núcleo, por lo que 2G de 4 núcleos debería ser casi 2 veces más rápido que 2G de doble núcleo. Si hay un 4G de doble núcleo, el rendimiento debería ser similar al del 2G de 4 núcleos.