Jens Holzkämper: Userspace->Kernelspace/kernel->Hardware ..

Beitrag lesen

Tach,

Man muß hierbei bedenken, dass ein Prozeß nur dann Syscalls braucht, wenn er etwas tun will, dass er selber nicht darf, möchte er z.B. nur etwas berechnen, braucht er dafür keinen Call.

aber wie wird dann Prozessorzeit angefordert?
Also zum berechnen wird CPU-Leistung gebraucht, ich dachte das wird auch über einen Syscall eingerichtet?

du hast recht, der Prozeß meldet sich bei der Queue an und der Scheduler entscheidet dann, welcher Prozeß, wann, wie lange Zeit bekommt.

Was steht in diesen Registern, befehle -also etwas was ein Programm anfordert wie z.B. write("irgendwas")- die im Arbeitsspeicher liegen und über die Adresse im Speicherbereich aufgerufen werden oder befehle die nur der CPU etwas angehen?

Register sind die Datenspeicher der CPU, ich gehe jetzt mal von einem einfachen Prozessordesign aus, dann steht im Befehlregister der Befehl, den die CPU gerade ausführt (z.B. addiere Register A und B oder lies die Daten, die an der im Adressregister hinterlegten Adresse im RAM stehen ...). Moderne CPUs haben kompliziertere Befehle, die wieder in Teilschritte zerlegt werden können, so dass mehrere Teilschritte gleichzeitig abgearbeitet werden können.

Und wenn für die CPU, welche ?

Das hängt von der CPU ab, erwarten würde ich im allgemeinen einfache Arithmetik (z.B. addieren, multiplizieren, OR, XOR), Entscheidungen (if), Datenoperationen (z.B. Speicher lesen/schreiben); komplexe CPUs machen auch mal Dinge wie wurzelziehen, ganze Blöcke von Daten lesen/schreiben etc.

mfg
Woodfighter