OS (Fach) / Aufgabe 1 neue (Lektion)
In dieser Lektion befinden sich 16 Karteikarten
Informatik
Diese Lektion wurde von Frankybu erstellt.
- Erklären Sie den Unterschied zwischen einem Programm und einem Prozess. 2 pt Explain the difference between a program and a process. Ein Programm ist eine Spezifikation, die zum Erstellen eines Prozesses (1.0P) verwendet wird. Es enthält den zu ladenden Code und das Adressraum-Layout. Ein Prozess ist die Ausführung eines Programms (1.0P).
- Nennen Sie ein Beispiel für eine Policy und einen dazugehörigen Mechanismus. 1 pt Give an example for a policy and a corresponding mechanism. Beispiele: • Planungsalgorithmus und Dispatcher • Verschieben von Speicher Seiten auf die Festplatte und der Seitenersetzungsalgorithmus (0.5P) für jeweils eine gültige Policy und den entsprechenden Mechanismus.Examples: • Scheduling algorithm and dispatcher • Moving memory pages to disk and the page replacement algorithm (0.5P) each for a valid policy and the corresponding mechanism.
- Erklären Sie die Begriffe Policy und Mechanismus. 2 pt Explain the terms policy and mechanism. Ein Mechanismus ist eine Implementierung, die beschreibt, wie eine Aktivität ausgeführt wird (1.0P). Eine Richtlinie beschreibt, wann ein Mechanismus verwendet wird (und wie dieser verwendet wird) (1.0P).A mechanism is an implementation which describes how an activity is performed (1.0P). A policy describes when a mechanism is used (and how it is used) (1.0P).
- Welchen Vorteil bietet die Unterteilung von Betriebssystemfunktionalität in Policy und Mechanismus? 1 pt Which advantage does dividing OS functionality into policy and mechanism provide? Mögliche Antworten: • Der Mechanismus kann auch dann wiederverwendet werden, wenn eine andere Policy erforderlich ist (z. B. aufgrund sich ändernder Arbeitslasten) (1.0P). • Die Hardware-unabhängige Policy kann wiederverwendet werden, wenn sich die Hardware (und damit der hardwareabhängige Mechanismus) ändert (1.0P).Possible answers: • The mechanism can be reused even if a different policy is required (e.g., because of changing workloads) (1.0P). • The hardware-independent policy can be reused if the hardware (and therefore the hardware-dependent mechanism) changes (1.0P).
- Warum verf¨ugt ein modernes System über verschiedene Arten von Speicher (z.B. Cache, Arbeitsspeicher, SSD, Festplatte)? 1 pt Why does a modern system contain different types of memory (e.g., cache, RAM, SSD, hard disk)? Da ein schnellerer Speicher, wie beispielsweise ein Cache, teuer ist und daher nur in kleinen Mengen verfügbar ist, müssen moderne Systeme in der Lage sein, große Datenmengen zu speichern und eine hohe Speicherleistung bereitzustellen. (1.0P) wenn zwei Aspekte besprochen werden (Preis / Betrag, Volatilität oder Performance). (0.5P) wenn nur ein Aspekt besprochen wird. Because faster memory such as cache is expensive and therefore only available in small quantities, yet modern systems need to be able to store large amounts of data and need to provide high memory performance. (1.0P) if two aspects are discussed (price/amount, volatility or performance). (0.5P) if only one aspect is discussed.
- Welche Einschränkungen hat der User-Modus im Vergleich zum Kernel-Modus? 1 pt Which limitations does user mode have in comparison to kernel mode? Der Benutzermodus-code kann nicht auf einen Speicher zugreifen, der nur für den Kernelmodus (0.5P) als zugänglich gekennzeichnet ist, und kann keine privilegierten Anweisungen (0.5P) ausführen.User mode code cannot access memory marked to be only accessible to kernel mode (0.5P) and cannot execute privileged instructions (0.5P).
- Lässt sich Schutz von Prozessen untereinander auch auf einem System implementieren, das nicht zwischen User- und Kernel-Modus unterscheidet? Begründen Sie. 1 pt Is it possible to implement protection between processes on a system which does not differentiate between user and kernel mode? Justify your answer. Nein, weil das Ändern von Adressräumen privilegiert werden muss (1.0P). Wenn Prozesse willkürliche Änderungen an Adressräumen vornehmen könnten, könnten sie ihren Adressraum ändern, um auf den Speicher anderer Prozesse zuzugreifen. Antworten, die besagen, dass verwaltete Laufzeiten die Speichersicherheit und damit die Isolation erzwingen können, werden ebenfalls akzeptiert.No, because modifying address spaces needs to be privileged (1.0P). If processes could make arbitrary changes to address spaces, they could modify their address space to access other processes’ memory. Answers which argue that managed runtimes are able to enforce memory safety and therefore isolation are also accepted.
- Weshalb verwenden interaktive Systeme üblicherweise präemptives Scheduling? 1 pt Why do interactive systems usually use preemptive scheduling? Interaktive Systeme verwenden preemptive Scheduling, um zu verhindern, dass CPU-intensive Prozesse die CPU monopolisieren und die Antwortzeit anderer Prozesse erhöhen (1.0P). Interactive systems use preemptive scheduling to prevent CPU-intensive processes from monopolizing the CPU and increasing the response time of other processes (1.0P).
- Die int-Instruktion von x86-Prozessoren l¨asst den Prozessor in den Kernel-Modus wechseln und führt unmittelbar die Ausführung im Betriebssystem fort. In welche der drei Kategorien für Kerneleintritte (System Call/Trap-Instruktion, Interrupt, Exception) fällt dieser Vorgang? Gehen Sie von den Definitionen aus der Vorlesung/Übung aus und begründen Sie. 1 pt The int instruction of x86 processors causes the processor to change to kernel mode and to immediately continue execution in the OS. Into which of the three categories for kernel entries (system call/trap instruction, interrupt, exception) does this process fall? Base your answer on the definitions from the lecture/exercise and justify your answer. Die Anweisung bewirkt einen synchronen und freiwilligen Eintritt in den Kernel (0.5P). Es handelt sich also um eine Trap-Anweisung, die für Systemaufrufe (0.5P) verwendet wird. Es ist kein Interrupt, da Interrupts nicht vom Code selbst stammen.The instruction causes a synchronous and voluntary entry into the kernel (0.5P). It is therefore a trap instruction, used for system calls (0.5P). It is not an interrupt, as interrupts do not originate from the code itself.
- Weshalb muss das Betriebssystem bei der Behandlung eines Interrupts vom Stack der Anwendung auf einen separaten Kernel Stack wechseln? 1 pt Why does the OS have to switch from the application’s stack to a separate kernel stack when handling an interrupt? Beispiele für richtige Antworten: •Da der Stack der Anwendung möglicherweise zu klein oder nicht gültig ist, schlagen Zugriffe auf den Stack möglicherweise fehl und das System kann abstürzen (1.0P). • Da andere Threads aus derselben Anwendung auf anderen Kernen eines SMP-Systems ausgeführt werden könnten, werden sensible Daten, die vom Betriebssystem während der Interrupt-Verarbeitung (1.0P) auf dem Stack abgelegt werden, geprüft und geändert. Examples for correct answers: • Because the application’s stack might be too small or not valid at all, so accesses to the stack might fail and might crash the system (1.0P). • Because other threads from the same application could, when running on other cores of an SMP system, examine and change sensitive data which is placed on the stack by the OS during interrupt handling (1.0P).
- Nennen Sie zwei allgemeine Aufgaben von Abstraktionen in einem Betriebssystem. Geben Sie je eine Beispielabstraktion sowie die passende Hardwareressource an. 2 pt Give two general purposes of abstractions in an operating system. For each one, provide an example abstraction and the corresponding hardware resource. • Einfach eine Schnittstelle zur Hardware, indem die Implementierungsdetails ausgeblendet werden (0.5P). Beispiel: Dateien → Plattenspeicher (0.5P). • Multiplex-Hardware für mehrere Prozesse (0.5P). Beispiel: Prozesse / Threads → CPU (0.5P). • Simply interface to the hardware by hiding implementation details (0.5P). Example: Files → Disk Storage (0.5P). • Multiplex hardware to multiple processes (0.5P). Example: Processes/Threads → CPU (0.5P).
- Diskutieren Sie Vor- und Nachteile von Interrupts gegenüber Polling. In welcher Situation ist Polling die bessere Wahl? Begründen Sie Ihre Antwort. 3 pt Discuss pros and cons of interrupts over polling. In which situation is polling the better choice? Justify your answer. Beim Abfragen muss die CPU ständig Geräteregister prüfen, um Ereignisse wie E / A-Abschlüsse (0,5 P) zu erkennen. Solange keine Ereignisse auftreten, verschwendet diese Methode CPU-Zeit (0,5 P). Während die Verringerung der Abrufhäufigkeit (d. H. das verrichten anderer Arbeiten zwischen checks) einige CPU-Zeit einspart, erhöht sie auch die Latenz (0,5 P). Bei Interrupts muss die CPU keine Geräteregister abfragen, sondern empfängt aktiv ein Signal, sobald ihre Aufmerksamkeit erforderlich ist (0.5P). Interrupts sind jedoch rechenintensiv, da sie einen Kontextwechsel (0.5P) implizieren. Sie eignen sich daher nicht besonders gut für Szenarien, in denen die CPU ohnehin überwiegend Ereignisse verarbeitet und Interrupts unnötigen Overhead (0.5P) verursachen. With polling the CPU constantly has to probe device registers for detecting events such as I/O completions (0.5P). As long as no events occur, this method wastes CPU time (0.5P). While reducing the polling frequency (i.e., perform other work in between checks) preserves some CPU time, it also increases latency (0.5P). With interrupts, the CPU does not have to poll device registers, but instead it actively receives a signal as soon as its attention is required (0.5P). However, interrupts are computationally expensive as they imply a context switch (0.5P). They are thus not particularly well suited for scenarios, where the CPU is predominantly processing events anyways and interrupts introduce unnecessary overhead (0.5P).
- Verfügt Kernel in der Regel über einen eigenen vollständigen Adressraum? 0.5 pt The kernel usually possesses a full address space of its own? Nein.No.
- Nennen Sie ein Anwendungsbeispiel für ein Betriebssystem ohne Trennung in Benutzer- und Kernelmodus. Begründen Sie Ihre Antwort. 1.5 pt Give a usage example for an operating system without separation in user and kernel mode. Justify your answer. In kleinen eingebetteten Systemen (0.5P) ist eine Trennung im Benutzer- und Kernelmodus oft nicht erforderlich, da das System nur eine einzige Anwendung ausführt. Diese Anwendung führt wahrscheinlich auch häufige Hardware-Zugriffe durch, und Sie möchten möglicherweise nicht den Overhead von Privileg-Grenzübergängen auf einer weniger leistungsfähigen Hardwareplattform (1.0P) bezahlen. Eine alternative Antwort wären Betriebssysteme für verwaltete Programmiersprachen wie Singularity. In small embedded systems (0.5P) a separation in user and kernel mode is often not necessary, because the system executes only a single application. This application will probably also perform frequent hardware accesses and one might not want to pay the overhead of privilege boundary crossings on a less potent hardware platform (1.0P). An alternative answer could putting forward operating systems for managed programming languages such as Singularity.
- Skizzieren Sie die wichtigsten Schritte einer Anwendung und des Betriebssystems bei einem Systemaufruf. 3 pt Outline the most important steps by an application and the operating system for a system call. 1. Platzieren Sie die Parameter (inkl. Systemrufnummer!) In Register und / oder auf Stack (0.5P). 2. Führen Sie die Trap-Anweisung aus (0.5P). 3. Wechseln Sie zum Kernel-Modus-Stack und kopieren Sie die Parameter vom User-Stack zum Kernel-Stack (0.5P). 4. Suchen Sie nach der ausgewählten Systemdienstroutine (0.5P) und führen Sie sie aus. 5. Platzieren Sie das Ergebnis in einem Register oder auf einem (Benutzer-) Stapel und wechseln Sie wieder zum Benutzer-Stack (0.5P). 6. Kehren Sie in den Benutzermodus zurück (0.5P). 1. Place parameters (incl. system call number!) in registers and/or on stack (0.5P). 2. Execute trap instruction (0.5P). 3. Switch to kernel-mode stack and copy parameters from user stack to kernel stack (0.5P). 4. Look up and execute selected system service routine (0.5P). 5. Place result in register or on (user) stack and switch back to user stack (0.5P). 6. Return to user mode (0.5P).
- Erläutern Sie, warum der Stack den Heap nicht ersetzen kann. 2 pt Explain why the stack cannot replace the heap. Obwohl der Stack ebenso wie der Heap Speicher für Variablen und Datenstrukturen bereitstellen kann, ist die Lebensdauer der Daten auf dem Stack von Haus aus an den Ausführungskontext der CPU (1.0P) gebunden. Wenn die CPU eine Funktion verlässt, welche Daten auf dem Stack gespeichert hat, kann nicht mehr sicher auf die Daten zugegriffen werden und sollte als tot betrachtet werden. Der Heap entkoppelt andererseits die Lebensdauer und den Ausführungskontext (1.0P). Although the stack can provide memory for variables and data structures just like the heap, the lifetime of data on the stack is inherently bound to the CPU’s execution context (1.0P). If the CPU leaves a function, which stored data on the stack, the data can no longer be safely accessed and should be considered dead. The heap, on the other side, decouples lifetime and execution context (1.0P).
-
