Programmierung von Mehrkernsystemen (PC)?

2 Antworten

Ich würde sagen, lies dich mal in Wikipedia ein.

Es gibt schon lange Betriebssysteme die mehrere CPUs verwalten können. Ob jetzt mehrere Kerne in einem Package oder mehrere Sockel auf Boards.

An sich läuft es üblicherweise so, dass das Betriebssystem Threads verwaltet und diese dann auf die Kerne verteilt. Du kannst in einem Programm dann solche Threads nutzen um deinen Code vom Betriebssystem auf mehrere Kerne verteilen zu lassen. Wichtig ist, dass die sich nicht in die Quere kommen, z.B. von einem Thread aus ein Wert modifiziert wird den ein anderer gerade braucht.

So breit wie die Frage gestellt ist bringt dir tiefere Information dazu aber jetzt auch nichts, du solltest dich halt erst mal selber damit beschäftigen, bevor du dir von anderen erklären lässt was du nicht verstehst.

phlegmatiker127 
Fragesteller
 16.04.2024, 10:46

Ist also ein sehr kompliziertes Gebiet?

0
BeamerBen  16.04.2024, 11:01
@phlegmatiker127

Das kommt auf die Ebene an auf der du das betrachtest.

Als Software Entwickler nimmt einem eine moderne Programmiersprache meist viel ab, man muss sich in der Regel nicht selber damit beschäftigen wie Threads verwaltet werden oder wie genau auf CPU Ebene verhindert wird, dass sich Code nicht in die Quere kommt.

Wenn du jetzt auf OS Ebene verstehen möchtest wie Threads funktionieren oder wie auf einer konkreten CPU sicher gestellt wird, dass ein Programm z.B. nicht irgendeinen Zwischenstand einer Operation ausliest kann das schon komplex werden, gerade wenn du eher ein geringes Verständnis für das Thema allgemein hast.

0
Und seit wann gibt es Betriebssysteme, die mit mehr Kernen umgehen können?

Vor mehreren Kernen gab es schon seit den 1960ern Mehrprozessorensysteme und rein technisch ist der Unterschied marginal.

-----

Ein Programm muß Nebenläufigkeit unterstützen, indem es multiple Prozesse/Threads nutzt. Den Rest macht der Scheduler des OS. (Das ist bewußt vereinfacht).

Wobei sich die Scheduler natürlich auch fortentwickelt haben.