Podcast
Questions and Answers
Was ist die Rolle eines Compilers im Programmprozess?
Was ist die Rolle eines Compilers im Programmprozess?
Welche der folgenden Optionen ist ein Befehl zum Erstellen einer ausführbaren Datei mit GCC?
Welche der folgenden Optionen ist ein Befehl zum Erstellen einer ausführbaren Datei mit GCC?
Was beschreibt die Funktion 'myfunc' in Bezug auf die Variable 'mama'?
Was beschreibt die Funktion 'myfunc' in Bezug auf die Variable 'mama'?
Was ist eine der Voraussetzungen, um Inhalte in einer Datei zu speichern?
Was ist eine der Voraussetzungen, um Inhalte in einer Datei zu speichern?
Signup and view all the answers
Welche der folgenden Aussagen über den GCC-Prozess ist falsch?
Welche der folgenden Aussagen über den GCC-Prozess ist falsch?
Signup and view all the answers
Welche der folgenden Segmente gehört normalerweise nicht zu einem Programm in C?
Welche der folgenden Segmente gehört normalerweise nicht zu einem Programm in C?
Signup and view all the answers
Welcher Befehl präprozessiert den C-Code bevor er übersetzt wird?
Welcher Befehl präprozessiert den C-Code bevor er übersetzt wird?
Signup and view all the answers
Was geschieht als nächstes, nachdem der GCC die Quellcodedatei in einen Maschinenassembler übersetzt hat?
Was geschieht als nächstes, nachdem der GCC die Quellcodedatei in einen Maschinenassembler übersetzt hat?
Signup and view all the answers
Was ist der Hauptunterschied zwischen User-Space und Kernel-Space?
Was ist der Hauptunterschied zwischen User-Space und Kernel-Space?
Signup and view all the answers
Wie wird der Schutz zwischen Prozessen und dem Kernel erreicht?
Wie wird der Schutz zwischen Prozessen und dem Kernel erreicht?
Signup and view all the answers
Was passiert, wenn ein Prozess im User-Space einen Kernzugriff benötigt?
Was passiert, wenn ein Prozess im User-Space einen Kernzugriff benötigt?
Signup and view all the answers
Warum laufen Prozesse unabhängig voneinander?
Warum laufen Prozesse unabhängig voneinander?
Signup and view all the answers
Welche Rolle spielt die CPU im Zusammenhang mit Prozessen?
Welche Rolle spielt die CPU im Zusammenhang mit Prozessen?
Signup and view all the answers
Was versteht man unter einem Systemaufruf?
Was versteht man unter einem Systemaufruf?
Signup and view all the answers
Welche Aussage über den Schutz zwischen Prozessen ist falsch?
Welche Aussage über den Schutz zwischen Prozessen ist falsch?
Signup and view all the answers
Welches Element hat keinen direkten Einfluss auf die Prozessausführung im User-Space?
Welches Element hat keinen direkten Einfluss auf die Prozessausführung im User-Space?
Signup and view all the answers
Welcher Schritt erfolgt unmittelbar nach dem Empfangen eines Interrupts durch ein Gerät?
Welcher Schritt erfolgt unmittelbar nach dem Empfangen eines Interrupts durch ein Gerät?
Signup and view all the answers
Warum werden Interrupts maskiert?
Warum werden Interrupts maskiert?
Signup and view all the answers
Was passiert mit der Anwendung, während eine Interrupt Service Routine (ISR) ausgeführt wird?
Was passiert mit der Anwendung, während eine Interrupt Service Routine (ISR) ausgeführt wird?
Signup and view all the answers
Welches dieser Interrupts ist nicht maskierbar?
Welches dieser Interrupts ist nicht maskierbar?
Signup and view all the answers
Welche Eigenschaft kann Interrupts besitzen?
Welche Eigenschaft kann Interrupts besitzen?
Signup and view all the answers
Was sollte bezüglich der Ausführungszeit von Interrupt Service Routinen beachtet werden?
Was sollte bezüglich der Ausführungszeit von Interrupt Service Routinen beachtet werden?
Signup and view all the answers
Was geschieht periodisch mit dem Betriebssystem-internen Puffer?
Was geschieht periodisch mit dem Betriebssystem-internen Puffer?
Signup and view all the answers
Welche Aussage über einen Hardware-Interrupt ist korrekt?
Welche Aussage über einen Hardware-Interrupt ist korrekt?
Signup and view all the answers
Welches der folgenden Elemente gehört zu den Systemaufrufen in der Intel-Architektur?
Welches der folgenden Elemente gehört zu den Systemaufrufen in der Intel-Architektur?
Signup and view all the answers
Was ist eine der Hauptfunktionen des Software-Interrupts int 0x80?
Was ist eine der Hauptfunktionen des Software-Interrupts int 0x80?
Signup and view all the answers
Welches Problem wird mit der Einführung der Instruktion sysenter adressiert?
Welches Problem wird mit der Einführung der Instruktion sysenter adressiert?
Signup and view all the answers
Welche Aussage zu den Systemaufrufen im 64-Bit-Modus ist korrekt?
Welche Aussage zu den Systemaufrufen im 64-Bit-Modus ist korrekt?
Signup and view all the answers
Was muss der Kernel selbst erledigen, wenn ein Systemaufruf gemacht wird?
Was muss der Kernel selbst erledigen, wenn ein Systemaufruf gemacht wird?
Signup and view all the answers
Welche der folgenden Aussagen über die Intel-Architektur ist falsch?
Welche der folgenden Aussagen über die Intel-Architektur ist falsch?
Signup and view all the answers
Was ist eine wichtige Eigenschaft der Instruktion sysenter?
Was ist eine wichtige Eigenschaft der Instruktion sysenter?
Signup and view all the answers
Wie wird der Abschied vom Kernel-Space im Zusammenhang mit syscall genannt?
Wie wird der Abschied vom Kernel-Space im Zusammenhang mit syscall genannt?
Signup and view all the answers
Was ist das Current Privilege Level (CPL), das beim Initialisieren des Register Sets gesetzt wird?
Was ist das Current Privilege Level (CPL), das beim Initialisieren des Register Sets gesetzt wird?
Signup and view all the answers
Welche Funktion gehört zur Standard-C-Bibliothek, um die Prozess-ID abzurufen?
Welche Funktion gehört zur Standard-C-Bibliothek, um die Prozess-ID abzurufen?
Signup and view all the answers
Welche Methode verwendet den Software-Interrupt int 0x80 zur Durchführung des Systemaufrufs?
Welche Methode verwendet den Software-Interrupt int 0x80 zur Durchführung des Systemaufrufs?
Signup and view all the answers
Worauf sollte man beim Messen der Ausführungszeit eines Systemaufrufs achten?
Worauf sollte man beim Messen der Ausführungszeit eines Systemaufrufs achten?
Signup and view all the answers
Welches Code-Segment wird parallel zu CS beim Initialisieren gesetzt?
Welches Code-Segment wird parallel zu CS beim Initialisieren gesetzt?
Signup and view all the answers
Welche Methode hat erfahrungsgemäß die niedrigste Ausführungszeit beim Abrufen der PID?
Welche Methode hat erfahrungsgemäß die niedrigste Ausführungszeit beim Abrufen der PID?
Signup and view all the answers
Warum ist die direkte Nutzung von syscall(SYS_getpid) vorteilhaft?
Warum ist die direkte Nutzung von syscall(SYS_getpid) vorteilhaft?
Signup and view all the answers
Was ist das Ziel beim Ausmessen der Ausführungszeit von Systemcalls?
Was ist das Ziel beim Ausmessen der Ausführungszeit von Systemcalls?
Signup and view all the answers
Study Notes
Compiler
- Ein Compiler übersetzt ein Programm von einer von Menschen lesbaren Programmiersprache in die Binärrepräsentation der Zielarchitektur.
- Der Compiler benutzt im Prozess C-Präprozessor, Compiler, Assembler und Linker.
- Der Compiler generiert Objektdaten und bindet diese mit Bibliotheken zu einer ausführbaren Datei.
Prozesse
- Prozesse sind unabhängige Programme, die im User-Space laufen.
- Das Betriebssystem läuft im Kernel-Space.
- Diese Trennung erlaubt Schutz zwischen Prozessen und dem Kernel durch "privilegierte Instruktionen".
Systemcalls
- Ein Systemcall ist ein Mechanismus, durch den ein User-Programm auf Kernel-Funktionen zugreifen kann.
- Der Prozess wird durch die CPU-Architektur und das Betriebssystem unterstützt.
Hardware-Interrupts
- Ein Hardware-Interrupt erfolgt, wenn ein Gerät (z.B. Festplatte) durch ein Signal die CPU unterbricht.
- Die CPU führt dann eine Interrupt Service Routine (ISR) aus.
- Die ISR behandelt den Interrupt und liest Daten auf der Festplatte in einen Puffer.
- Das Betriebssystem führt dann die Anwendung weiter aus.
- Der Puffer wird periodisch kopiert und die Anwendung kann auf die Daten zugreifen.
Besonderheiten von Hardware-Interrupts
- ISRs werden von dem Betriebssystem abgearbeitet.
- Es können mehrere Interrupts gleichzeitig vorkommen, daher kann das Betriebssystem mit Interrupts "maskieren", um Prioritäten zu setzen.
- Interrupts haben oft Prioritäten, sodass höherpriorisierte andere ISRs unterbrechen können.
Systemcalls (Intel Architektur)
- Der Intel 80386 bietet eine Instruction für einen Software-Interrupt zum Sprung in den Kernel-Space.
- Der Soft-Interrupt „int 0x80“ ist langsam, daher gibt es die schnellere Instruktion „sysenter“.
- Für den 64-bit Modus gibt es die Instruktionen „syscall“ und „sysret“.
Code-Beispiel: Messung von SystemCalls
- Der Sourcecode ist auf https://gitlab.hs-esslingen.de/dgrewe/betriebssysteme zu finden.
- Es werden verschiedene Methoden zum Abrufen der Prozess-ID (PID) verglichen:
-
getpid()
: Eine Standard-C-Bibliotheksfunktion (libc) -
syscall(SYS_getpid)
: Ein direkter Systemaufruf mit der Syscall-Funktion. -
my_getpid_int0x80()
: Eine benutzerdefinierte Funktion die den Software-Interrupt int 0x80 verwendet.
-
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
In diesem Quiz geht es um die wesentlichen Konzepte von Compilern, Prozessen und Systemaufrufen. Du wirst dein Wissen über die Übersetzung von Programmiersprachen und die Interaktion zwischen Software und Hardware testen. Außerdem werden die Grundlagen von Hardware-Interrupts und deren Bedeutung für die CPU behandelt.