mikrocontroller.net

Forum: PC-Programmierung system calls wie implementieren (linux)


Autor: joschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: joschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.