Betriebssysteme 1
Einführung File Systeme Prozesse und Threads Memory Management
Einführung File Systeme Prozesse und Threads Memory Management
-
- 1 / 111
-
Cartes-fiches
Was ist ein Betriebssystem?
Ein Betriebssystem
- Verwaltet Computerresourcen
- Prozessor
- Hauptspeicher
- IF zum Netzwerk
- Massenspeicher
- Benutzerinterface
- erweitert Maschinen
- OS ist eine konfortable und HW-unabhängigs IF zum Computer
- Das OS bietet eine Reihe hilfreicher und nützlicher Services an. (Compiler, Performance Monitoring, Prcess Monitoring, Editor etc.)
Nennen Sie 7 Betriebssysteme mit einem Beispiel wo sie zum Einsatz kommen?
- Microsoft Windows (Business und Residential)
- Apple OS X (Residential)
- Google Android (Mobile)
- Linux Ubuntu (Geeks Residential)
- HP/UX, IBM AIX, Sun Solaris (Datacenter)
- z/OS (MainFrame)
- Embedded Systems (Auto, Wetterstation usw)
Wie heissen die Metriken from 10^-24 to 10^24
- yocto
- zepto
- atto
- femto
- pico
- nano
- micro
- milli
- centi
- dezi
- deca
- hecto
- kilo
- mega
- giga
- tera
- peta
- exa
- zetta
- yotta
Was sind nicht-strukturierte Daten?
Nicht-Strukturierte Daten sind Daten die NICHT in einer Datenbanktabelle stehen und somit klar angesprochen werden können. Bilder, Musik, Videos die wir in Ordnern ablegen.
Diese verdoppelt sich von Jahr zu Jahr.
Welsches sind die vier Grundlegenden Betriebssystemkonzepte?
- Prozess
- Adressraum
- Files
- I/O
Was genau wird durch das Konzept "Prozess" erledigt?
Ein Prozess ist ein Container für ein Programm, dass gerade ausgeführt wird.
Hat eigenen Adressraum (Programm Code, Programm Daten)
Verfügt über Ressourcen
CPU Status (Registeer, program counter)
Offene FIles
Alarme (signals) selbe wie Interrups bei HW
Hat eine Umgebung (allgemeine Umgebungsvariablen) und Sicherheitseigenschaften (user id, group id), die Rechte des Prozesses beschreiben
Für was ist der Adressraum nötig?
- Verwaltung des realen Hauptspeichers
- Verwaltung des virtuellen Speichers (Adressraum eines Prozesses)
- Der virtuelle Speicher kann um ein vielfaches grösse sein als der reale Speicher was für ein Prozess mit sehr hohen Kapazitätsanforderungen nützlich ist.
- Exclusiv zu einem Prozess zugeordnet (integrität, Zugriffsschutz)
Für was wird das Konzept "Files" gebraucht?
- Verwaltung von Massenspeicher
- Geräteunabhängig
- Benötigt Treibersoftware für jedes Gerät
- Verdeckt spezielle Funktionen wie Disk Scheduling
Was für eine library bezüglich Filemanagement sind in den sogennanten system calls enthalten?
- create file
- move file
- delete file
- write file
- read file
- close file
- open file
Was ist die grund Idee von Systemaufrufen?
Systemaufrufe sind services welche vom OS selbst ausgeführt werden.
OS bieten Bibliotheken von Systemaufrufen (system calls) für Standart Aufgaben (services) an
z.B
- Prozess Management
- File Management
- Directory Management
- Geräte Kommunikation
Diese Bibliotheken definieren zusammen das Application Programming Interface (API) eines OS
Nennen Sie die drei bekanntesten System-API's!
Linux/Unix/Mac=POSIX (Portable Operating System Interface)
Windows=WIN-API
JVM=JAVA API
Weshalb hat POSIX nur ca. 100 procedure calls im gegensatz zu tausenden bei Windows?
Windows hat eine höhere Komplexität da es stark GUI lastig aufgebaut ist.
Welches sind die Hauptanforderungen an eine OS Struktur?
- Stabilität
- Performance
- Funktionalität
Mit hilfe welcher Sprache wird ein OS hauptsächlich implementiert und welches sind intressante Eckdaten der OS Entwicklung?
Die Implementierung erfolgt meisten in C ergänzt mit einigen Modulen in Assemblersprache
Facts:
Es werden durchschnittlich 10 bugs pro 1'000 Zeilen Code entdeckt, da ein OS aus ca 5Mio Codezeilen besteht hat es somit ca 50'000 bugs in einem OS.
Bugs sollten theoretisch lediglich lokale Auswirkungen( Benutzerprozesse), aber nicht alles zum Absturz bringen (Blue Screen)
Nennen Sie 6 verschiedene Strukturen mit denen ein Betriebssystem konstruiert werden kann?
- Monolithische Systeme
- Geschichtete Systeme
- Mikrokerne
- Client-Server-Modell
- Virtuall Maschinen
- Exokern
Eigenschaften der Monolithischen Struktur?
- Ist die am meist verwendete Struktur
- Das ganze OS läuft als einziges Programm im Kernmodus
- Das OS ist als eine Menge von Prozeduren realisiert, die alle zu einem grossen binären Code zusammengeführt werden.
- Somit kann jede Prozedure jede andere Prozedure aufrufen um deren Funktionalität zu benutzen.
- Kann sehr schwerfällig und langsam werden. Deshalb hat man Parameter wohldefinierten Stellen platziert z.B Stack. Der Aufruf passiert nun durch einen Trap, welcher den PC von Benutzermodus in den Kernelmode transferiert.
- Hauptprogramm das die angeforderten Dinestprozeduren aufruft
- Diensprozedruen die Systemaufrufe asufrühren
- Hilfsfunktionen die die Dienstprozeduren unterstützen
Eigenschaften der Mikrokernel Architektur?
- Das Prinzip hier ist es möglichst wenig also nur den aller wichtigsten Code im Kernel Mode auszuführen und der Rest läuft im User Mode.
- Dies hat den riesen Vorteil das wenn z.B ein Musikprogramm abstürz dies kein einfluss auf die nötigsten Prozesse hat.
- Häufig wird diese Struktur in Echtzeit, avionischer und militärischen Anwendugen platziert.
- Auserhalb des Kerns ist System in drei Schichten strukturiert
- Alle Prozesse dieser Schichten laufen in User Mode
- Treiber
- DienstProgramme
- Benutzerprogramme
Was genau macht der Reincarnation Server?
Der ReincarnationServer ist ein Dienstprogramm welcher in der Mikrokernstruktur verwendet wirde. Der Service prüft ob andere Dienstprogramme und Treiber korrekt funktionieren. Ist eins defekt repariert der Reinc dies automatisch.
Eingenschaften des Client-Server Modell?
Die Grundidee ist die selbe wie bei Mikrokern mit der abweichung dass die Prozesse in zwei Klassen
- Die Server (jeder stellt einige Dienste zur Verfügung)
- Die Clients(diese Nutzen die Dienste die von den Servern zur Verfügung gestellt sind)
Wichtig hier ist die Kommunikation welche durch Nachrichtenaustausch zwischen Client und Server passiert (message passing) Der Client weiss hier nicht ob seine Nachricht an ein internen Dienst oder Serverdienst gesendet wird und somit ist es auch egal wer in bearbeitet. Internet ist solch ein Modell im Netzwerk
Unterschied Exokern zu VM?
Exokern bildet die Maschine nicht nach wie VM sonder Teilt sie auf. jedem Benutzer wird somit eine fixe Grösse zugeordnet auf der er machen kann was er will. Hauptvorteil daran ist as die Schicht in der das Mapping passiert bei VM wegfällt das ganz klar ist welcher Adressraum zu welchem Benutzer gehört.
Es heisst Exokern da dies ein Programm ist das im Kernmodus läuft und schaut das jede exokern VM nur in ihrem Adressraum agiert und nicht die ressourcen des anderen User benutzt.
Solaris loadable module Architektur, was ist das?
Diese Sturktur basiert auf Modulen und sind objektorientier Programmiert. Die Module haben dynamische Beziehungen zu einander. Die Modulstruktur ist dem schichten Modell sehr ändlich da ebenfalls alle Schnittstellen und Aufgaben klar definiert sind, mit dem grossen Vorteil das die Module frei mit jedem anderen Kommunizieren können und keiner Hirarchie unterworfen sind. Dies eliminiert viele Schichten durch welche die message durch müsste und somit auch das Huhn/Ei problem.
Wo laufen überall OS?
- MainFrame
- Server
- Mutiprozsystem
- PC
- Handheld
- embedded Systems
- Sensorknoten
- RealTime
- SmartCards
Welche drei Arten Prozess gibt es?
- Ein Prozesse ist nichts anderes als eine Instanz eines Programms in Ausführung.
- Systemprozesse
- Beim System Boot werden schon sehr viele notwendige Prozesse gestartet. im Windows passiert dies Teilweise bis Meist über Services
- Benutzerprozesse
- Prozesse die der Benutzer auslöst. z.B beim Login wird im Hintergrund ein Prozsse gestartet der den User hadelt.
- Treiber Prozesse
Was versteht man unter Multiprogramming?
Multiprogramming bezeichnet die wechselseitige Nutzung des Prozessor durch verschiedene Prozesse um die Prozessorauslastung zu optimieren. Heisst das die Prozesse in zeitscheiben (ms) aufgeteilt werden und der Prozessor immer Scheibe um Scheibe gemischt mit ander Prozessscheiben verarbeitet. Somit werden Prozesse auch bearbeitet wenn bei einem 80% mit I/O warten verbracht wird.
Formel: Wartezeit auf I/O p=20%=0.2
Anzahl Prozesse n=1
CPU-Auslastung = 1-p^n
80%=1-0.2^1
Was sind Threads?
Kann man fast alls ein Prozess im Prozess bezeichnen der keinen eigenen Adressraum besitzt.
Was wird durch threading ereicht?
Threads ermöglichen Parallelität innerhalb eines Prozesses.
Threads v.s Prozess?
Threads können viel schneller gestartet werden, benötigen weniger Ressourcen. Man spricht auch von lightweighted processes
Wie nützen Threads Ressourcen optimal aus?
Durch Overlapping
Nennen Sie ein Beispiel von parallele Verarbeitung Threading!
z.B. Stellen wir uns vor das MS Word ein Prozess ist. Diese Prozess muss die Tastenanschläge/Mausbewegungen umsetzen allenfalls noch gleichzeitig speichern und das Dokument umformatieren wie auch die Rechtschreibeprüfung durchführen. Damit dies ohne Warten funktioniert hat der Prozess 4 Threads sonst ginge das sehr lange.
Weshalb wird Scheduling benötigt?
Sobald ein CPU Muliprogrammierbar ist (seit 1980) konkurrieren oft mehrere Prozesse oder Threads zur selben Zeit um die CPU. Die situation trifft immer dan ein wenn n-prozesse oder Threads rechenbereit sind.
Wenn also n-Prozesse CPU Ressourcen anfordern muss das OS was entscheiden?
Welcher Prozess, welche CPU Ressourcen (cores), wie lange nutzen darf.
Diese Aufgabe wird vom OS-Scheduler wahrgenommen
Was versteht man unter Prozessverhalten?
Prozesse benötigen abwechselnd verschiedenen Ressourcen
- CPU
- I/O(Storage, Netzwerk, Optical Drive)
deshalb nennt man die Prozesse die Hauptsächlich rechnen
- CPU bound (Compute bound)
und die jenigen mit viel I/O Zeit
- IO bound
Schedulingstrategien lassen sich bezüglich Timeintrupts in zwei Kategorien einteilen, Wie heissen diese?
- non-preemptive (nicht verdrängend)
- preemtive (verdrängend)
Was bedeutet es für ein OS wenn diese non-preemtive ist?
Ein Prozess kann und wird den CPU solange wervenden bis er blockiert wird (IO wait) oder der prozess seine Arbeit erledigt hat.
Was ist die Voraussetzung für ein preemtiv system?
Es benötigt ein Zeitgeber (clock) und Unterbrüchen (interrupts)
Was versteht man im zusammenhang mit preemtive unter contex switch?
Der wechsel zwischen den Prozessen. Die Prozesse erlangen die CPU bei preemtive immer nur für eine feste Zeitscheibe. Deshalb ist auch eine Clock und Interrupts voraussetzung
- Was sind Kriterien für einen guten Scheduling Algorithmus?
- möglich hohe CPU Auslastung (Utilization)
- Durchsatz (throuput)
- Ausführungszeit (turnaround time)
- Wartezeit (waiting time)
- Antwortzeit(repsonse time)
Welche Kategorien von Schedulingstrategien gibt es?
- Stapelverarbeitung
- Interaktivität
- Echtzeit
Welche Schedulingkriterien ergeben den Scheduling Algorithmus für die Schedulingkategorie "Stapelvearbeitung"?
- Throughput
- Ausführungszeit (turnaround time)
- Utilization (CPU Auslastung)