Multiprozessorsystem
-
Hallo,
wie schreibt man eigendlich ein Assembler Programm für Multiprozessorsystem?
Also im normalfall verwendet man ja die Register eax, ebx usw. Wie sieht das
denn bei MPS aus: etwa so??:: eax1, eax2, eax[n]Für jede Hilfe bin wäre ich sehr dankbar.
Schon mal an alle ein grosses Dankeschön
PS: Es geht mir ausschliesslich um
x86 MPS.
-
-
Auf nem Multiprozessorsystem schreibst du prinzipiell den Code immernoch genau so wie vorher.
Der Trick am Multiprozessor ist, dass die beiden Prozessoren gleichzeitig verschiedene Threads/Prozesse ausführen können. Das heißt effektiv erstmal, dass du darauf achten musst, dass verscheidene Teile deines Codes gleichzeitig ausgeführt werden können und du bei wichtigen Datenstrukturen auf Synchronisation achten musst.
Das ganze wird sowieso für dich nur wichtig, wenn du ein Betriebssystem schreibst. Wenn du ein normales Programm schreibst, liegt der ganze Trick dadrin, Multithread-Programme zu schreiben, den Rest erledigt das Betriebssystem dann.
-
**Auf nem Multiprozessorsystem schreibst du prinzipiell den Code immernoch genau so wie vorher.
Der Trick am Multiprozessor ist, dass die beiden Prozessoren gleichzeitig verschiedene Threads/Prozesse ausführen können. Das heißt effektiv erstmal, dass du darauf achten musst, dass verscheidene Teile deines Codes gleichzeitig ausgeführt werden können und du bei wichtigen Datenstrukturen auf Synchronisation achten musst.Das ganze wird sowieso für dich nur wichtig, wenn du ein Betriebssystem schreibst. Wenn du ein normales Programm schreibst, liegt der ganze Trick dadrin, Multithread-Programme zu schreiben, den Rest erledigt das Betriebssystem dann.**
DAS IST TOTALER QUATSCH....
ein Multiprocessor System Leuft genau so wie ein normaler Single Processor system der unterschied bestehet darin das jezt nicht nur ein GDT sonder 2 oder 3 wie vielen processor du hast so vielen gdt brauchst
Processor 1 Descriptor
GD1
+---
LD1
+---
LD2 u.s.w.
Processor 2 Descriptor
GDT 2
+ ---
LDT1
+----
LD2nur die selector cd ds es ss sind 16 bin 13 code 4 bit flags
mit disen selector greiffst du auf die GDTR und ldt's des Progcessorcu
-
Original erstellt von <OS-Developer>:
**
DAS IST TOTALER QUATSCH....ein Multiprocessor System Leuft genau so wie ein normaler Single Processor system der unterschied bestehet darin das jezt nicht nur ein GDT sonder 2 oder 3 wie vielen processor du hast so vielen gdt brauchst
**Und was war an meinem Beitrag quatsch? Wenn man ein Anwendungsprogramm für Multiprozessor schriebt ist der ganze Trick Multithreading. Mit GDTs usw. kommst du dabei doch garnicht in Berührung. Und auf Synchronisation in Kernelteilen musst du achten, sonst fällt dein MultiOS-Kernel schenll auseinander, das ist imho wesentlich wichtiger als mehrere GDTs.
Nachtrag:
Warum mehrere GDTs im Speicher ablegen, wenn man den Zugriff darauf synchronisiert kann man auch alle GDTR auf dieselbe GDT zeigen lassen. Verschiedene GDTs für verschiedene Prozessoren klingt für mich nicht nach SMP[ Dieser Beitrag wurde am 01.10.2002 um 14:54 Uhr von TriPhoenix editiert. ]