Werden beide Kerne in einem Dual-Core-Prozessor verwendet, wenn sich die CPU im Single-Tasking-Modus befindet?

370
Isaac D. Cohen

Kann ein Betriebssystem, das im Single-Tasking-Modus (nicht im Multitasking-Modus) ausgeführt wird, beide Kerne in einem Dual-Core-Prozessor nutzen?

BEARBEITEN: Als Antwort auf den ersten Kommentar: Ja, aber wenn der Computer startet, läuft nur eine Aufgabe. der Bootloader. Meine Frage ist: Zu diesem Zeitpunkt führen beide Kerne dieselbe Aufgabe aus oder können beide nur im Multitasking-Modus verwendet werden.

0
Ich denke, Sie müssen Ihre Frage noch etwas erweitern. Ein Betriebssystem ist immer "Multitasking", selbst auf einer Single-Core-CPU. Das ist im Wesentlichen der Punkt eines Betriebssystems, bei dem Aufgaben für die verfügbare CPU-Zeit geplant werden können. Foosh vor 9 Jahren 1
Der [Bootloader] (http://en.wikipedia.org/wiki/Booting) ist nicht wirklich Teil des Betriebssystems. Ƭᴇcʜιᴇ007 vor 9 Jahren 0
Sogar der Kernel könnte im Einzel-Tasking-Modus laufen, wobei dies die einzige Aufgabe ist. Isaac D. Cohen vor 9 Jahren 0
https://stackoverflow.com/questions/14261612/which-core-initializes-first-hen-hensystem-boots - Ich weiß nicht, welchen Code die APs (der Nicht-Bootstrap-Prozessor) ausführen, aber es ist wahrscheinlich nur angehalten oder Spinlocking in einer Leerlaufschleife, während der angegebene BSP die Startzeit-Firmware ausführt. LawrenceC vor 9 Jahren 0

1 Antwort auf die Frage

2
LawrenceC

Wenn Sie von der Standard-PC-Plattform x86 / amd64 sprechen, geschieht dies auf Hardwareebene, wenn das System (von hier aus ) eingeschaltet wird:

In einem Multicore-System ist der Bootstrap-Prozessor der CPU-Kern (oder Thread), der zum Booten der Systemfirmware ausgewählt wird, die normalerweise Single-Threading ist.

Bei RESET rennen alle Prozessoren um ein Semaphor-Flag-Bit im Chipsatz. Der erste erkennt dies und setzt beim Lesen die Markierung. Die anderen Prozessoren finden das Flag gesetzt und geben einen Wartezustand für den SIPI (Start-up Inter-Processor Interrupt) ein.

Der erste Prozessor initialisiert den Hauptspeicher und die Anwendungsprozessoren (APs) und fährt dann mit dem restlichen Startvorgang fort. ( http://www.drdobbs.com/go-parallel/article/print?articleId=232300699 )

Alle Prozessoren außer demjenigen, der das obige Rennen "gewonnen" hat, befinden sich also im Stillstand und warten auf den SIPI. Wenn der "BootStrap Processor" niemals ein SIPI an die anderen CPUs ausgibt (lesen Sie dies ), bleiben sie in diesem Zustand (z. B. wenn Sie DOS starten, der nichts von mehreren Kernen oder dem APIC weiß, oder SIPIs).

Um Ihre Frage zu beantworten, werden die anderen Kerne nicht verwendet.