Podcast
Questions and Answers
Was regelt das Betriebssystem hinsichtlich der Ressourcen?
Was regelt das Betriebssystem hinsichtlich der Ressourcen?
Welche Art von Ressourcen wird oft klassifiziert?
Welche Art von Ressourcen wird oft klassifiziert?
Was ist ein Beispiel für ein Hardware-Ressourcensubsystem?
Was ist ein Beispiel für ein Hardware-Ressourcensubsystem?
Was wird oft verwendet, um die Zuteilung von Ressourcen im Betriebssystem zu steuern?
Was wird oft verwendet, um die Zuteilung von Ressourcen im Betriebssystem zu steuern?
Signup and view all the answers
Welche Zwei Funktionalitäten sind nicht Teil des Betriebssystems?
Welche Zwei Funktionalitäten sind nicht Teil des Betriebssystems?
Signup and view all the answers
Welches Element wird von einem Betriebssystem jedem Thread zugewiesen?
Welches Element wird von einem Betriebssystem jedem Thread zugewiesen?
Signup and view all the answers
Was ist notwendig, damit ein Programm ausgeführt werden kann?
Was ist notwendig, damit ein Programm ausgeführt werden kann?
Signup and view all the answers
Was zeigt der Befehl gcc –Wall –O2 –o./app app.c
an?
Was zeigt der Befehl gcc –Wall –O2 –o./app app.c
an?
Signup and view all the answers
Was wird als Speicher für einen Prozess reserviert, wenn ein Programm ausgeführt wird?
Was wird als Speicher für einen Prozess reserviert, wenn ein Programm ausgeführt wird?
Signup and view all the answers
Wie abstrahiert das Betriebssystem von der Hardware?
Wie abstrahiert das Betriebssystem von der Hardware?
Signup and view all the answers
Welche der folgenden Ressourcen wird nicht jedem Thread individuell zugewiesen?
Welche der folgenden Ressourcen wird nicht jedem Thread individuell zugewiesen?
Signup and view all the answers
Wozu dient der Befehl strace
in Bezug auf die Ausführung eines Programms?
Wozu dient der Befehl strace
in Bezug auf die Ausführung eines Programms?
Signup and view all the answers
Welche der folgenden Aussagen trifft auf die Struktur eines Prozesses zu?
Welche der folgenden Aussagen trifft auf die Struktur eines Prozesses zu?
Signup and view all the answers
Welche Funktion hat ein Compiler?
Welche Funktion hat ein Compiler?
Signup and view all the answers
Was bewirkt der Befehl 'gcc –Wall –O2 –o app app.c'?
Was bewirkt der Befehl 'gcc –Wall –O2 –o app app.c'?
Signup and view all the answers
Wozu dient der Linker im Übersetzungsprozess?
Wozu dient der Linker im Übersetzungsprozess?
Signup and view all the answers
Was geschieht im ersten Schritt des Kompilierens?
Was geschieht im ersten Schritt des Kompilierens?
Signup and view all the answers
Welche der folgenden Aussagen beschreibt die Funktion von 'mama' in dem Programm?
Welche der folgenden Aussagen beschreibt die Funktion von 'mama' in dem Programm?
Signup and view all the answers
Welches Segment wird in einem C-Programm typischerweise für den Code verwendet?
Welches Segment wird in einem C-Programm typischerweise für den Code verwendet?
Signup and view all the answers
Welcher Aspekt ist bei der Speicherung von Inhalten in eine Datei wichtig?
Welcher Aspekt ist bei der Speicherung von Inhalten in eine Datei wichtig?
Signup and view all the answers
Warum ist der Befehl '#include' wichtig in C-Programmen?
Warum ist der Befehl '#include' wichtig in C-Programmen?
Signup and view all the answers
Was ist ein Hauptzweck eines Betriebssystems?
Was ist ein Hauptzweck eines Betriebssystems?
Signup and view all the answers
Was ist der Unterschied zwischen einem Prozess und einem Thread?
Was ist der Unterschied zwischen einem Prozess und einem Thread?
Signup and view all the answers
Was bedeutet der Begriff 'User-Mode' im Kontext eines Betriebssystems?
Was bedeutet der Begriff 'User-Mode' im Kontext eines Betriebssystems?
Signup and view all the answers
Was sind Systemaufrufe?
Was sind Systemaufrufe?
Signup and view all the answers
Was ist ein Interrupt?
Was ist ein Interrupt?
Signup and view all the answers
Was umfasst ein Shell-Skript?
Was umfasst ein Shell-Skript?
Signup and view all the answers
Welche Funktion haben Shell-Skripte in einem Betriebssystem?
Welche Funktion haben Shell-Skripte in einem Betriebssystem?
Signup and view all the answers
Welcher Aspekt ist kein Ziel des Studiums von Betriebssystemen?
Welcher Aspekt ist kein Ziel des Studiums von Betriebssystemen?
Signup and view all the answers
Was ist der Hauptzweck von Systemcalls?
Was ist der Hauptzweck von Systemcalls?
Signup and view all the answers
Welche der folgenden Optionen ist kein Beispiel für einen Systemcall?
Welche der folgenden Optionen ist kein Beispiel für einen Systemcall?
Signup and view all the answers
Wie können Systemcalls in Linux nachverfolgt werden?
Wie können Systemcalls in Linux nachverfolgt werden?
Signup and view all the answers
Welche der folgenden APIs ist nicht Teil der UNIX-Systemcalls?
Welche der folgenden APIs ist nicht Teil der UNIX-Systemcalls?
Signup and view all the answers
In welchem 'Space' laufen die Instruktionen eines Systemcalls?
In welchem 'Space' laufen die Instruktionen eines Systemcalls?
Signup and view all the answers
Wozu dient die Funktion 'gettimeofday' in Systemcalls?
Wozu dient die Funktion 'gettimeofday' in Systemcalls?
Signup and view all the answers
Was ermöglicht der Systemcall 'clone'?
Was ermöglicht der Systemcall 'clone'?
Signup and view all the answers
Woher stammen die Beispiele für Systemcalls in UNIX?
Woher stammen die Beispiele für Systemcalls in UNIX?
Signup and view all the answers
Was bewirkt das Initialisieren des Code-Segment-Registers?
Was bewirkt das Initialisieren des Code-Segment-Registers?
Signup and view all the answers
Was ist die Funktion von getpid() in einem Linux-System?
Was ist die Funktion von getpid() in einem Linux-System?
Signup and view all the answers
Welche Methode zur Messung der Ausführungszeit eines Systemaufrufs ist unkomplizierter?
Welche Methode zur Messung der Ausführungszeit eines Systemaufrufs ist unkomplizierter?
Signup and view all the answers
Welches dieser Systeme wird verwendet, um den Software-Interrupt int 0x80 auszuführen?
Welches dieser Systeme wird verwendet, um den Software-Interrupt int 0x80 auszuführen?
Signup and view all the answers
Welche Funktion hat der Preprocessor-Direktiv #include in einem C-Programm?
Welche Funktion hat der Preprocessor-Direktiv #include in einem C-Programm?
Signup and view all the answers
Was wird in einem C-Programm typischerweise zur Messung der Ausführungszeit eines Systemaufrufs verwendet?
Was wird in einem C-Programm typischerweise zur Messung der Ausführungszeit eines Systemaufrufs verwendet?
Signup and view all the answers
Was ist ein typisches Merkmal von Systemaufrufen in einem Betriebssystem?
Was ist ein typisches Merkmal von Systemaufrufen in einem Betriebssystem?
Signup and view all the answers
Welches der folgenden Konzepte hat nichts mit Systemaufrufen zu tun?
Welches der folgenden Konzepte hat nichts mit Systemaufrufen zu tun?
Signup and view all the answers
Study Notes
Betriebssysteme (BS) - Prozesse & Threads, Systemaufrufe & Interrupts
-
Agenda:
- Was ist ein Prozess und was ist ein Thread?
- Wie werden Systemaufrufe realisiert?
- Was ist der User-/Kernel-Mode?
- Was ist ein Interrupt?
-
Ziele:
- Konzepte von Prozessen und Threads verstehen
- Konzepte der Systemaufrufe verstehen
- Unterschiede User-/Kernel-Mode verstehen
- Konzepte von Software- und Hardwareinterrupts verstehen und unterscheiden
- Anhand kleinerer Beispiele kennenlernen
-
Definition "Betriebssystem":
- Eine Software, die die Komplexität eines Computers vor dem Benutzer und dem Programmierer verbirgt (abstrahiert).
- Stellt gemeinsame, sichere Zugriffe auf Rechen-, Speicher- und Kommunikationsmittel zur Verfügung.
-
Was sind Unix Shell Skripte?
- Textdatei, die eine Reihe von Kommandos zu einem ausführbaren Programmablauf zusammenfasst.
- Alles, was in der Befehlszeile ausgeführt werden kann, kann auch in einem Skript zusammengefasst werden.
- Ergebnis beider Methoden ist identisch.
-
Beispiel Shell Skript:
- Skript zur Identifizierung aller laufender Prozesse mit offenen Ports.
- Muss als Superuser/Root ausgeführt werden.
- Minimiert die Anzahl offener Netzwerkports.
-
Was sind Dateisystemrechte (File Permissions)?
-
ls -al
: Listet alle Dateien im langen Format. - Zeigt Berechtigungen (Leserecht, Schreibrecht, Ausführungsrecht) für Benutzer, Gruppen und andere.
- Typen (Ordner, Dateien, Verknüpfungen).
-
-
Beispiel: Datei-Management Skript:
- Programm zum Erstellen, Löschen und Anzeigen von Dateien.
- Eingehende Befehle mittels eines Shell-Menüs.
- Speichern von Inhalten in Dateien.
-
Quiz zur Wiederholung:
- QR-Code für Online-Quiz-Lösungen bereitgestellt.
-
Wiederholung C-Programme übersetzen:
- Thema: C-Programmübersetzung.
-
Wie arbeitet ein Compiler?
- Übersetzt Computerprogramme von einer lesbaren Programmiersprache in die Binärrepräsentation der Zielarchitektur.
- Schritte: C-Präprozessor, Übersetzung in Maschinencode, Assembler, Linker.
- Einbeziehung von Bibliotheken und optimieren dem Quellcode (-Wall -02).
-
Wiederholung - Prozesse:
- Ein Programm wird vom Betriebssystem als Prozess ausgeführt.
- Speicherverwaltung für Text- und Datensegmente, Heap und Stack.
-
Wie funktioniert die Abstraktion der Hardware (1/3)?
- Abstraktion durch Betriebssystem.
- Virtualisierung der Hardware.
- Jede Anwendung ein Prozess mit mindestens einem Thread.
- Jeder Thread wird für die CPU und Speicherbereich zugeteilt.
-
Wie funktioniert die Abstraktion der Hardware (2/3)?
- Klassifizierung von Ressourcen (entziehbar/nicht entziehbar, exklusiv/gemeinsam nutzbar).
- Beispiele: CPU, Hauptspeicher, Drucker.
- Betriebssystem verwaltet konfliktfreien Zugriff auf Ressourcen.
-
Wie funktioniert die Abstraktion der Hardware (3/3)?
- Jede Anwendung ein Prozess im User-Space.
- Betriebssystem im Kernel-Space.
- Trennung sorgt für Schutz der Prozesse und Betriebssystem.
- Priviligierte Instruktionen durch CPU-Unterstützung.
-
Was ist ein Systemcall?
- Werkzeug für Prozesse, um Betriebssystemfunktionen aufzurufen.
- Beispiele:
open
,read
,clone
oder getgettimeofday
. - Systemcalls laufen im Kernel-Space.
- Systemcalls werden mit dem Tool
strace
verfolgt.
-
Systemcall-Quiz:
- Schüler schätzen die Anzahl der Systemfunktionen für Linux (64 Bit) und Windows (Win64).
-
Wie wird ein Systemcall aufgerufen (alter Linux Weg)?
- Verwendung von Assembler-Instruktionen (z. B.
movl 0x27, %eax
,int $0x80
). - Setzen des EAX-Registers auf die Systemcall-Nummer.
- Ausführen des Systemcalls.
- Softwareinterrupts um den Prozesswechsel in den Kernel-Space zu ermöglichen.
- Verwendung von Assembler-Instruktionen (z. B.
-
Interrupts:
- Ein Signal an das Betriebssystem, das die Durchführung läuftenden Prozesses unterbricht (bei Hardware- oder Softwareereignissen).
- Unterscheidung von asynchronen und synchronen Interrupts.
- Kategorien von Interrupts: Exceptions/Prozessor-Interrupts, Faults, Traps
- Systemrufe
(SW-Interrupts
.
-
Was sind Hardware-Interrupts?
- Hardware teilt dem Betriebssystem mit, dass es Daten zu verarbeiten gilt.
- Hardware meldet sich mit einer Interrupt-Leitung an die CPU.
- Beispiel: Tastatur oder Maus.
- Moderner x86-64 Prozessor kann viele Hardware-Interruptquellen erkennen.
-
Interrupts unter Linux:
-
proc/interrupts
: Liste der ausgeführten Interrupts seit Systemstart. - Identifikation der Hardware-Quelle und der CPU-Core.
-
-
Wie sieht der Ablauf von HW-Interrupts aus?
- Ein Gerät meldet einen Interrupt.
- Der Prozessor wird unterbrochen.
- Eine Interrupt-Service Routine (ISR) liest Daten in einem internen Puffer des Betriebssystems.
- Das Betriebssystem wechselt zurück auf den vorher unterbrochenen Prozess.
- Periodische Kopierarbeit der Daten zwischen den Puffern des Betriebssystems und Anwendung.
-
Besonderheiten von Hardware-Interrupts:
- Interrupt-Service Routinen (ISRs) verarbeiten Unterbrechungen.
- Das Betriebssystem kann weitere Interrupts blockieren.
- Einige Hardware-Interrupts können nicht maskiert werden. (bspw. Memory Error).
- Interrupts können Prioritäten haben.
-
Systemcalls und privlegierter Kernel-Space (Intel Architektur):
- Der
int 0x80
Systemcall ist langsam, daher gibt esSYSCALL
(ab Intel 80586),SYSENTER
(ab Intel 386). - Der privilegierte Kernel-Modus ist der höchste Privileg-Level.
- Operationen mit
SYSCALL
. - Code-Segment Register (CS) und Stack-Segment Register (SS).
- Der
-
Codebeispiel Systemcalls getpid():
- C-Codebeispiel, das die Funktionalität von
getpid()
auf verschiedenen Wegen demonstriert.
- C-Codebeispiel, das die Funktionalität von
-
Messen von Systemcalls:
- C-Funktionen zur Messung der Ausführungszeiten von Systemrufen, wie
getpid()
(libc, syscall, int 0x80). - Leistungsvergleich der unterschiedlichen Methoden.
- C-Funktionen zur Messung der Ausführungszeiten von Systemrufen, wie
-
Systemcalls ausmessen (1/4 - 4/4):
- Detaillierte Beschreibung und Codebeispiele für das Messen der Ausführungszeiten von Systemcalls.
-
Disassembly von getpid():
- Objdump-Beispiel zur Dekodierung und Analyse der Systemcall-Prozedur.
- Die zugrundeliegenden Maschinensprache-Instruktionen.
-
Der Spectre Bug und dessen Folgen:
- Seitenkanalangriff durch spekulative Ausführung,
- Auswirkungen auf CPU-Design und Betriebssysteme.
- Leistungsbeeinträchtigungen und Schutzmaßnahmen.
-
Hands-on Time Systemcalls getpid():
- Praktische Anwendung und Übung zu Systemcalls und deren Messung.
-
Systemcalls auf BS-Server messen:
- Messungen auf einem BS-Server mit bestimmten Hardware-Spezifikationen.
- Ausführungsmessung unter Belastung (viele Prozesse).
-
Zusammenfassung:
- Zusammenfassung der behandelten Konzepte und Themen.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Dieses Quiz behandelt die wichtigen Aspekte der Ressourcenzuteilung und -verwaltung in Betriebssystemen. Sie werden Fragen zur Klassifizierung von Ressourcen, Hardware-Ressourcensubsystemen und Funktionen des Betriebssystems beantworten. Testen Sie Ihr Wissen über die wichtigsten Befehle und deren Bedeutung in der Programmierung.