Eine Frage. Wenn ein Prozess ein System call auslöst, wird dann der Interrupt welcher den Scheduler steuert ausgeschaltet, bis der call beendet ist ? Oder werden generell alle Interrupts ausgeschaltet oder bleiben diese eingeschaltet ? Zum Beisiel Linux ? Hab noch nichts dazu gefunden? danke joschi
Nein, es können problemlos mehrere Programme gleichzeitig einen Syscall ausführen, und mit der "Preemptible Kernel"-Einstellung kann sich der Kernel auch selber unterbrechen. Gemeinsam benutzte Datenstrukturen im Kernel müssen dann natürlich entsprechend geschützt werden, aber das ist ja sowieso nötig, damit es auch mit Mehrprozessormaschinen funktioniert.
Hallo Ernst, Danke für die Antwort, es geht um folgedes ich bin dabei ein kleines OS auf einem ARM zu schreiben mit Kernel Mode und User Mode - es läuft auch schon einiges. Mein derzeitiges Problem wenn ein User Task (es gibt mal vorerst nur Tasks) ein system call macht, dann muss ich einen taskwechsel unterdrücken also ISR die den Scheduler aufruft ausschlten, sonst wird das mit dem kontext sichern sehr komplizert, also meine ich zumindestens :-) Jetzt wollte ich wissen wie das Linux so macht, wie würdest du sowas machen? gruss joschi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.