0

Angenommen, ich habe einen Multi-Core-Laptop.Was passiert in meinem Computer, wenn ich ein Python- und Matlab-Programm auf einmal starte?

Ich schreibe etwas Code in Python, und führen Sie es aus; dann, während mein Python-Code läuft, öffne ich mein Matlab und führe irgendeinen anderen Code aus.

Was ist darunter? Werden diese beiden Prozesse parallel mit Multi-Core automatisiert verarbeitet?

Oder der Computer wartet auf einen zu beenden und dann den anderen zu verarbeiten?

Vielen Dank!

P.S. Die beiden Programme, auf die ich mich beziehe, können als die einfachsten betrachtet werden, z.B. berechnen 1 + 2 + 3 ..... + 10000000

Antwort

0

Die Antwort ist ... es kommt darauf an!

Ihr Betriebssystem wechselt ständig, welche Prozesse gerade ausgeführt werden. Es gibt Unmengen von Prozessen, die immer im Hintergrund laufen - das Aktualisieren des Bildschirms, das Senden von Ton an die Lautsprecher, das Suchen nach Updates, das Abrufen der Maus usw. - und diese Prozesse können nur ausgeführt werden, wenn sie eine gewisse Prozessorzeit haben. Wenn Sie viele Kerne haben, wird das Betriebssystem einige Heuristiken verwenden, um herauszufinden, welche Prozesse etwas Zeit auf den Kernen haben sollten. Sie haben die Illusion, dass alles zur gleichen Zeit läuft, weil (1) in einem gewissen Sinne Dinge sind läuft zur gleichen Zeit, weil Sie mehrere Kerne haben, und (2) die Umschaltung geschieht so schnell, dass Sie nicht bemerken es passiert.

Der Grund dafür ist, dass, wenn Sie sowohl Python und MATLAB zur gleichen Zeit laufen, während sie im Prinzip leicht zur gleichen Zeit laufen können, ist es nicht garantiert, dass dies passiert, weil Sie eine Tonne haben können von anderen Dingen, die weitergehen. Es kann sein, dass sowohl Python als auch MATLAB gleichzeitig laufen, dann beide vorübergehend angehalten werden, damit ein Programm, das gerade Musik spielt, den nächsten Soundclip in den Speicher lädt. Dann wird eine Pause gemacht, während sich die OS-Seiten im Speicher befinden und eine andere übernimmt usw.

Können Sie davon ausgehen, dass sie parallel laufen? Sicher! Die meisten vernünftigen Betriebssysteme werden das herausfinden und es korrigieren. Kannst du davon ausgehen, dass sie ausschließlich parallel laufen und nichts anderes ist? Nicht unbedingt.

+0

großer einblick, danke! Alles in allem, ist es schneller, wenn ich beide Programme gleichzeitig laufe, oder warte, bis einer beendet ist, bevor ich den anderen starte? Außerdem dachte ich, wenn Sie Multi-Core verwenden möchten, dann benötigen Sie spezielle Anordnung in Ihrem Code; Andernfalls wird das Multithreading (Umschalten zwischen mehreren Tasks mit Lighthing-Geschwindigkeit) vom Betriebssystem automatisch durchgeführt. Das scheint nicht richtig zu sein? – wudanao

+0

@wudanao Das Betriebssystem übernimmt automatisch die Logistik, mehrere Programme gleichzeitig auszuführen. Wenn Sie also ein Python-Programm und ein MATLAB-Programm * haben und beide einzeln single-threaded * sind, kann das Betriebssystem sowohl gleichzeitig ausgeführt als auch ausgeführt werden Ich muss nichts tun. Beide gleichzeitig laufen zu lassen ist wahrscheinlich schneller als nacheinander zu laufen. – templatetypedef

+0

großartig, danke! – wudanao

Verwandte Themen