From 5996b8a7af9cb69bfa8f1297448adb467e5e28c7 Mon Sep 17 00:00:00 2001 From: wieerwill Date: Fri, 14 Jan 2022 11:06:05 +0100 Subject: [PATCH] =?UTF-8?q?=C3=9Cbung=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Advanced Operating Systems - Übung.tex | 167 ++++++++++++++++--------- 1 file changed, 109 insertions(+), 58 deletions(-) diff --git a/Advanced Operating Systems - Übung.tex b/Advanced Operating Systems - Übung.tex index b646b7c..49b7f00 100644 --- a/Advanced Operating Systems - Übung.tex +++ b/Advanced Operating Systems - Übung.tex @@ -1,5 +1,5 @@ \documentclass[10pt, a4paper]{exam} -\printanswers % Comment this line to hide the answers +\printanswers % Comment this line to hide the answers \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} @@ -22,11 +22,11 @@ \usepackage{bussproofs} \pdfinfo{ - /Title (Advanced Operating Systems - Übung) - /Creator (TeX) - /Producer (pdfTeX 1.40.0) - /Author (Robert Jeutter) - /Subject () + /Title (Advanced Operating Systems - Übung) + /Creator (TeX) + /Producer (pdfTeX 1.40.0) + /Author (Robert Jeutter) + /Subject () } \title{Advanced Operating Systems - Übung} \author{} @@ -36,50 +36,50 @@ \setcounter{secnumdepth}{0} \newtcolorbox{myboxii}[1][]{ - breakable, - freelance, - title=#1, - colback=white, - colbacktitle=white, - coltitle=black, - fonttitle=\bfseries, - bottomrule=0pt, - boxrule=0pt, - colframe=white, - overlay unbroken and first={ - \draw[red!75!black,line width=3pt] - ([xshift=5pt]frame.north west) -- - (frame.north west) -- - (frame.south west); - \draw[red!75!black,line width=3pt] - ([xshift=-5pt]frame.north east) -- - (frame.north east) -- - (frame.south east); - }, - overlay unbroken app={ - \draw[red!75!black,line width=3pt,line cap=rect] - (frame.south west) -- - ([xshift=5pt]frame.south west); - \draw[red!75!black,line width=3pt,line cap=rect] - (frame.south east) -- - ([xshift=-5pt]frame.south east); - }, - overlay middle and last={ - \draw[red!75!black,line width=3pt] - (frame.north west) -- - (frame.south west); - \draw[red!75!black,line width=3pt] - (frame.north east) -- - (frame.south east); - }, - overlay last app={ - \draw[red!75!black,line width=3pt,line cap=rect] - (frame.south west) -- - ([xshift=5pt]frame.south west); - \draw[red!75!black,line width=3pt,line cap=rect] - (frame.south east) -- - ([xshift=-5pt]frame.south east); - }, + breakable, + freelance, + title=#1, + colback=white, + colbacktitle=white, + coltitle=black, + fonttitle=\bfseries, + bottomrule=0pt, + boxrule=0pt, + colframe=white, + overlay unbroken and first={ + \draw[red!75!black,line width=3pt] + ([xshift=5pt]frame.north west) -- + (frame.north west) -- + (frame.south west); + \draw[red!75!black,line width=3pt] + ([xshift=-5pt]frame.north east) -- + (frame.north east) -- + (frame.south east); + }, + overlay unbroken app={ + \draw[red!75!black,line width=3pt,line cap=rect] + (frame.south west) -- + ([xshift=5pt]frame.south west); + \draw[red!75!black,line width=3pt,line cap=rect] + (frame.south east) -- + ([xshift=-5pt]frame.south east); + }, + overlay middle and last={ + \draw[red!75!black,line width=3pt] + (frame.north west) -- + (frame.south west); + \draw[red!75!black,line width=3pt] + (frame.north east) -- + (frame.south east); + }, + overlay last app={ + \draw[red!75!black,line width=3pt,line cap=rect] + (frame.south west) -- + ([xshift=5pt]frame.south west); + \draw[red!75!black,line width=3pt,line cap=rect] + (frame.south east) -- + ([xshift=-5pt]frame.south east); + }, } \begin{document} @@ -126,7 +126,7 @@ \question Anforderungen an Betriebssysteme \begin{parts} - \part Welche grundlegenden funktionalen Eigenschaften muss jedes Betriebssystem qua definitione besitzen? + \part Welche grundlegenden funktionalen Eigenschaften muss jedes Betriebssystem qua definitione besitzen? \begin{solution} \begin{itemize} \item Harware Multiplexen @@ -149,7 +149,7 @@ \question Sparsamkeitsbegriff \begin{parts} - \part Erläutern Sie die Begriffe „Sparsamkeit“ und „Effizienz“. Nennen und begründen Sie in diesem Zusammenhang mögliche Ziele eines sparsamen Betriebssystems. + \part Erläutern Sie die Begriffe ,,Sparsamkeit'' und ,,Effizienz''. Nennen und begründen Sie in diesem Zusammenhang mögliche Ziele eines sparsamen Betriebssystems. \begin{solution} \end{solution} \part Ist Sparsamkeit grundsätzlich als Laufzeit- oder als Evolutionseigenschaft anzusehen? Begründen Sie anhand Ihrer Antwort auf Frage a). @@ -162,7 +162,7 @@ \end{itemize} eine zentrale nichtfunktionale Eigenschaft eines Betriebssystems ist. \begin{solution} \end{solution} - \part Sparsamkeit ist auch eine mögliche Anforderung an den Betrieb eines IT-Systems. Können Sie sich vorstellen, warum dabei „Sparsamkeit mit Funktionalität“ oder „Sparsamkeit mit Code“ eine Rolle spielen könnte? Bewerten Sie den aktuellen Linux-Mainline Kernel1 nach diesen Kriterien. . . + \part Sparsamkeit ist auch eine mögliche Anforderung an den Betrieb eines IT-Systems. Können Sie sich vorstellen, warum dabei ,,Sparsamkeit mit Funktionalität'' oder ,,Sparsamkeit mit Code'' eine Rolle spielen könnte? Bewerten Sie den aktuellen Linux-Mainline Kernel1 nach diesen Kriterien. . . \begin{solution} \end{solution} \end{parts} @@ -184,24 +184,26 @@ \begin{parts} \part Erläutern Sie den Begriff Fragmentierung bei Realspeicherverwaltung. Warum kann dies auch für virtuelle Speicherverwaltung zum Problem werden? \begin{solution} + Fragmentierung = bei blockorientierten Datenträgern die Verteilung zusammengehöriger Daten auf nicht aufeinander folgende Datenblöcke. Allgemein die Zerstückelung oder Zergliederung von Speicherbereichen + + \end{solution} \part Welchen Einfluss hat die Seitentabelle für virtuelle Speicherverwaltung auf den unmittelbaren Speicherbedarf eines Betriebssystem-Kernels? Welchen haben etwaige Gerätetreiber? Und welche Möglichkeiten hat ein BS-Entwickler, mit beiden Problemen umzugehen? \begin{solution} \end{solution} \end{parts} - \question Betriebssystemarchitekturen für Sparsamkeit und Effizienz + \question Betriebssystemarchitekturen für Sparsamkeit und Effizienz Welche Vor- und Nachteile haben die beiden Architekturkonzepte Makro- und Mikrokernel für Entwurf und Implementierung energie- und speichereffizienter Betriebssysteme? Diskutieren Sie anhand der Betriebssysteme TinyOS und RIOT! \begin{solution} \end{solution} - \question Energieeffiziente Dateizugriffe + \question Energieeffiziente Dateizugriffe Nehmen Sie an, eine Anwendung referenziert eine Folge von Festplattenblöcken: $A,B,C,A,C,D,E,A$. Zur Optimierung von sowohl Performanz als auch Energieverbrauch beim Zugriff auf diese Blöcke soll energieeffizientes Prefetching zum Einsatz kommen. Nehmen Sie weiterhin an, dass ein Blockzugriff (access) jeweils konstant 4 Zeiteinheiten (ZE) dauert, ein fetch oder prefetch je 1 ZE sowie dass der verwendete Festplattencache maximal 3 Blöcke fasst. Die gegebene Referenzfolge können Sie als gesichert annehmen (d. h. es sind keine Abweichungen im tatsächlichen Verhalten der Anwendung zu erwarten). \begin{parts} - \part Entwickeln Sie zwei Zugriffsabläufe für diese Referenzfolge: einen, bei dem traditionelles - Prefetching angewandt wird, sowie einen weiteren mit dem in Vorlesung besprochenen Verfahren zum engergieeffizienten Prefetching. + \part Entwickeln Sie zwei Zugriffsabläufe für diese Referenzfolge: einen, bei dem traditionelles Prefetching angewandt wird, sowie einen weiteren mit dem in Vorlesung besprochenen Verfahren zum engergieeffizienten Prefetching. \begin{solution} \end{solution} \part Begründen Sie anhand des Vergleichs beider Abläufe, welche Vorteile das energieeffizente Verfahren in diesem Beispiel hat. Kann es Referenzfolgen geben, bei denen beide Verfahren (nahezu oder völlig) gleichen Energieverbrauch verursachen? Unter welchen Umständen, bzw. warum nicht? @@ -216,7 +218,7 @@ \part Begründen Sie obige These anhand einer geeignet konstruierten, beispielhaften Prozessmenge. \begin{solution} \end{solution} - \part Das Schedulingziel von RR („maximale Reaktivität“) lässt sich als die möglichst faire Verteilung von Rechenzeit auf Threads beschreibt. Finden Sie eine analoge Beschreibung des Schedulingziels „Energieeffizienz“ im Sinne der Antwort auf Frage a). Definieren Sie hierfür einen formalen Schedulingparameter analog zur Zeitscheibenlänge T bei RR. + \part Das Schedulingziel von RR ( ,,maximale Reaktivität'') lässt sich als die möglichst faire Verteilung von Rechenzeit auf Threads beschreibt. Finden Sie eine analoge Beschreibung des Schedulingziels ,,Energieeffizienz'' im Sinne der Antwort auf Frage a). Definieren Sie hierfür einen formalen Schedulingparameter analog zur Zeitscheibenlänge T bei RR. \begin{solution} \end{solution} \part Implementieren Sie die einfache RR-Strategie (ohne Prioritäten) so, dass beide in Frage b)beschriebenen Schedulingziele verfolgt werden. Beachten Sie insbesondere, dass \begin{itemize} @@ -230,6 +232,55 @@ Stellen Sie Ihren Algorithmus (in knappem Pseudocode) im Seminar vor und zeigen Sie möglichst eine kleine Demonstration. Gehen Sie dabei auf die in der Vorlesung gestellten Implementierungsfragen ein. Tipps: Zur Simulation des Energieverbrauchs eines ablaufenden Prozesses dürfen Sie annehmen, dass dieser linear abhängig von der Prozesslaufzeit ist. Sie müssen daher dieses Prozessmerkmal lediglich als Faktor repräsentieren, der bspw. das verbleibende Energiebudget zum Zeitpunkt des Ablaufs einer Zeitscheibe errechnet oder bestimmt, wann einzum Prozessstart gegebenes Energiebudget aufgebraucht sein wird (als zusätzlichen Schedulingzeitpunkt). + \question Begriffe + \begin{parts} + \part Was verstehen wir unter einem ,,Ausfall''? Erläutern Sie, wie es im abstrakten Fehlermodell nach \cite{Algirdas Avižienis, Jean-Claude Laprie, Brian Randell, and Carl E. Landwehr. Basic Concepts and Taxonomy of Dependable and Secure Computing. IEEE Transactions on Dependable and Secure Computing}{Laprie} zu einem Ausfall kommen kann. Wo können demzufolge Betriebssystemmechanismen zum Erreichen von Robustheit ansetzen? + \begin{solution} + \end{solution} + \part In Politik und Gesellschaft ist oft vom Datenschutz die Rede, wenn es um die Sicherheitseigenschaften von IT-Systemen geht. Analysieren Sie diesen Begriff aus technischer Sicht: Was verstehen Sie (als Informatiker) unter ,,Daten'' und deren ,,Schutz''? Welche Differenzen ergeben sich zum Wortsinn von ,,Datenschutz''? Welche grundlegenden Sicherheitsziele sind aus Ihrer Sicht damit gemeint? + \begin{solution} + \end{solution} + \end{parts} + + \question Isolation: Welche Isolationsmechanismen in Betriebssystemen kennen Sie? Diskutieren Sie für jeden bislang behandelten Isolationsmechanimus, + \begin{parts} + \part welche konkreten Ziele dieser verfolgt, + \begin{solution} + \end{solution} + \part auf welcher Idee bzw. welchem Prinzip er basiert, + \begin{solution} + \end{solution} + \part welche Kosten er mit sich bringt. + \begin{solution} + \end{solution} + \end{parts} + + \question Referenzmonitorprinzipien: In der Vorlesung wurden bereits die Referenzmonitorprinzipien als Kriterien dafür diskutiert, wie weit die Politikimplementierung der Linux-Sicherheitsarchitektur die nicht-funktionale Eigenschaft Security unterstützt. Wiederholen Sie nun diese Diskussion von + \begin{itemize} + \item Unumgehbarkeit, + \item Manipulationssicherheit, + \item Verifizierbarkeit + \end{itemize} + für die SELinux-Sicherheitsarchitektur. + \begin{solution} + \end{solution} + + \question Zugriffssteuerungsmechanismen: Traditionell werden IBAC-Sicherheitspolitiken mittels Zugriffssteuerungsmatrizen (ACMs) modelliert. Zu deren effizienter Implementierung in Betriebssystemen kommen aber verteilte Zugriffssteuerungslisten (ACLs) zum Einsatz. + \begin{parts} + \part Implementieren Sie am Beispiel eines Unix-Dateisystems eine IBAC-Zugriffssteuerungspolitik mittels ACLs. Ihre Lösung soll enthalten: + \begin{itemize} + \item eine rudimentäre I-Node-Liste, welche lediglich I-Node-IDs Ihrer ACL-Datenstruktur zuordnet (Sie sollen selbstverständlich kein Dateisystem implementieren!), + \item eine rudimentäre PCB-Datenstruktur, welche genau die für die Zugriffssteuerung relevanten Metainformationen enthält, + \item eine Implementierung der Zugriffsoperationen read (lesen), write (schreiben) und chmod (Rechte ändern) + \item Denken Sie an die Unix-Besonderheiten hinsichtlich der Nutzer-ID 0 für root! + \end{itemize} + \begin{solution} + \end{solution} + \part Wo liegt der Unterschied zwischen einer zentralen, zweidimensionalen (tabellarischen) Datenstruktur zur direkten Implementierung einer ACM und der dezentralen, listenartigen Datenstruktur zur Implementierung von ACLs? Diskutieren Sie jeweils Vor- und Nachteile anhand Ihrer Implementierung! + \begin{solution} + \end{solution} + \end{parts} + \end{questions} \end{document} \ No newline at end of file