Computer & Network Architecture
Questions
Questions
-
- 1 / 337
-
Cartes-fiches
Gibt es auch Rechner ohne Betriebssystem? Nenne Beispiele
Microcontroller, Taschenrechner, Digitale Uhr, alte Mobiltelefon
Was sind die Nachteile, wenn ein Rechner ohne Betriebssystem benutzt wird?
Jede Programm muss explizit für die Hardware programmiert werden. Die Hardware resp. deren Funktionalität, Möglichkeiten müssen genau bekannt sein. Die Hardware, Speicher muss selber verwaltet werden.
Die Programme sind nicht portierbar. Der Anwender muss verschiedene "Oberflächen"/Betriebssysteme kennen und bedienen können.
Was sind die Vorteile, wenn ein Rechner ohne BS benutzt wird?
- Bessere Performance, ein Programm kann optimal auf die HW programmiert werden.
- Die Hardware kann optimal genutzt werden.
- Keine Abhängigkeiten von BS Lieferanten, weniger Schnittstellen
- Sicherheit, Viren laufen in der Regel erst ab einem OS
Beschreibe die Hauptaufgabe eines BS
- Komfortable Schicht zwischen Anwendungen und der Hardware.
- Ressourcen-Manager
- Verwaltung der Geräte
- Schnittstellen bereitstellen
Was versteht man unter einem verteilten System?
- Ein logisches System wird auf mehrere physikalische Systeme verteilt.
- Für die Anwendung ist es ein kohärentes System
Welche Aufgabe erfüllt eine MMU?
Memory Management Unit
Mapping zwischen virtuellem und physikalischem Memory.
Führt den Relokationsmechanismus (relocation) aus. (Die im Programm enthaltenen Adressen auf die tatsächlichen Adressen im Speicher abbilden)
Worin unterscheiden sich Busy-Waiting und Interrupt?
- Bei Busy-Waiting (polling) ist die CPU blockiert bis die Daten geliefert werden.
- Beim Interrupt kann das OS andere Prozesse ausführen. Das Gerät meldet sich selbst (Interrupt) sobald es ready ist.
Was versteht man unter einem BIOS?
Basic Input Output System
Startet als erstes auf dem PC, überprüft die Hardware Config, ermittelt das Boot-Device und startet davon das OS.
Charakterisiere einen Prozess
- Ein Prozess ist ein in „Ausführung“ befindliches Programm.
- Jeder Prozess hat einen Adressraum (Programm- und Datenbereich, Stack, Registerinhalte)
- Prozesse können andere Prozesse kreieren und beenden
- Prozesse kommunizieren mit anderen Prozessen
Was bedeuten Protection-Codes?
Definieren die Berechtigung in einem Multi-User System.
Unix: RWX
User / Group / World
rwx / r-x / r-- => 111 / 101 / 100 => 754
(111 ist binär für 7)
Was ist eine Pipe?
Eine virtuelle Datei, Pseudofile über das zwei Prozesse miteinander kommunizieren.
FIFO-Speicher: First-In, First-Out
Wozu dienen Systemaufrufe?
Die Schnittstelle zum OS.
Anwendungsprogramme verwenden Betriebssystemfunktionen über Systemaufrufe (System Calls).
Was ist eine Shell?
Kommandointerpreter
(Ein GUI ist grundsätzlich auch eine Shell)
Welche Betriebssysteme kennen Sie?
Windows, Unix, Linux, MAC, DOS
Realtime-OS (z.B. LynxOS)
BS für Mobilgeräte (Android, Symbian, Windows Phone 7)
Was sind die beiden Hauptaufgaben eines Betriebssystems?
- Ressourcen / Benutzer Verwalten
- komfortable Schnittstellen für die Geräte zur Verfügung stellen
Was ist ein Prozess?
- Ein Prozess ist ein in „Ausführung“ befindliches Programm.
- Jeder Prozess hat einen Adressraum (Programm- und Datenbereich, Stack, Registerinhalte)
- Prozesse können andere Prozesse kreieren und beenden
- Prozesse kommunizieren mit anderen Prozessen
Ein Grund für die langsame Einführung grafischer Benutzungsoberflächen war, dass die nötige Hardware anfangs noch sehr teuer war. Wie viel Videospeicher braucht man für die Darstellung von 80 Zeichen auf 25 Zeilen Textmodus in Schwarzweiss? Und wie viel braucht man für die Darstellung von 1024 x 768 Bildpunkten mit 24-Bit Farbtiefe? Was hat der nötige Speicher 1980 gekostet, als ein Kbyte etwa 5 Dollar kostete? Und wie viel kostet er heute?
80 * 25 = 2‘000 Byte (Zeichen)
1kByte = 5Dollar => 10 Dollar
Der Speicher kostete ca. 10 Dollar.
1024x768x24 = 18‘874‘368 Bit => 2‘359‘296Byte => ca. 11‘520 Dollar
Zählen Sie einige Unterschiede zwischen einem Betriebssystem für einen Personalcomputer und dem für einen Mainframe auf.
PC: Einbenutzer-OS
Mainframe: Mehrbenutzer-OS
Es wird eine Benutzer- und Rechteverwaltung benötigt
Nun ein paar Aufgaben, die das Rechnen mit Einheiten zeigen sollen:
a) Wie lange dauert ein Mikrojahr in Sekunden?
b) Mikrometer werden manchmal als Mikron bezeichnet. Wie lange ist ein Gigamikron?
c) Wie viele Bytes enthält ein 1 Tbyte-Speicher?
d) Die Masse der Erde beträgt 6000 Yottagramm. Wie viel ist das in Kilogramm?
a) Mikro 10^(-6) * 365 * 24 * 3600 => 31,536 Sekunden
b) Giga = 10^9 * Mikron (Mü = 10^(-9)) => 1km
c) Tera=10^12 => 2^40 = 1‘099‘511‘627‘776
d) Yotta = 10^24 => 6‘000 * 10^24g => 6 * 10^24kg
Charakterisieren Sie den Begriff Prozess.
Ein Prozess ist ein in „Ausführung“ befindliches Programm.
Prozess = Abstraktion eines laufenden Programms.
Jeder Prozess hat einen Adressraum (Programm- und Datenbereich, Stack, Registerinhalte)
Prozesse können andere Prozesse kreieren und beenden
Prozesse kommunizieren mit anderen Prozessen
Eigene „Recheneinheit“
Worauf muss man bei Mehrprozess-Betriebssystemen besonders achten?
Es wird ein Scheduler benötigt, der die Ressourcen verteilt.
Zugriff auf die kritischen Bereiche müssen geschützt werden.
Was versteht man unter dem Begriff „MUTEX“?
Wechselseitigen/Gegenseitiger Ausschluss (Mutual Exclusion)
Nennen Sie zwei Mittel, um den wechselseitigen Ausschluss zu gewährleisten.
Semaphore
Mutex
Message Passing
Monitor
Welche grundsätzlich verschiedenen Scheduling-Methoden gibt es?
- Nonpreemptive Scheduling
- Preemptive Scheduling
Wie ist es möglich, dass auf einer einzigen CPU mehrere Prozesse parallel ablaufen?
Scheduler von Betriebssystem: Die Prozesse werden quasi parallel ausgeführt.
Wie werden, technisch gesehen, Prozesse erzeugt?
Via Sysemaufruf: Systemcall
Nennen Sie die drei Zustände im Leben eines Prozesses
Rechnend, Blockiert, Rechenbereit
Kann mehr als ein Prozess gleichzeitig rechenbereit sein?
Ja
Kann mehr als ein Prozess gleichzeitig rechnend sein?
Bei einem Single Prozessor: Nein
Multicore CPU: Ja
Beschreiben Sie die Semantik eines Semaphors.
- Down-Operation, P(s)
o falls Semaphor = 0, dann sleep
o erniedrige Semaphor falls > 0
- Up-Operation, V(s)
o erhöhe den Semaphor und wecke einen auf das Semaphor wartenden Prozess wieder auf
Welche Aufgaben erfüllen Prozesse in einem Programmsystem?
Was versteht man unter dem Begriff MUTEX?
Welche Aussagen treffen zu?
Was passiert bei einem V(Semaphor) wenn kein Prozess darauf wartet?
Prozess1 kann nicht als erster starten weil er die Semaphore P(s2) benötigt, welche auf 0 ist.
P2 oder P3 kann als erstes Starten:
P2 -> P3 -> P1 x = 3 -> 9 -> 14 -> 28
P3 -> P1 -> P2 x = 3 -> 8 -> 16 -> 256
P3 -> P2 -> P1 x = 3 -> 8 -> 64 -> 128
Gegeben ist folgender Programmausschnitt, der in einer gemeinsamen Variablen, die Anzahl der BesucherInnen zählt, die durch zwei Drehkreuze (Prozesse) ein Museum betreten:
siehe Bild
Durch jedes der beiden Drehkreuze betreten 20 BesucherInnen das Museum, d.h. zwei Prozesse rufen parallel (gleichzeitig) people.increment();
Was gibt das Resultat? Erklären Sie! Ist das Programm korrekt? Falls das Programm fehlerhaft ist, geben Sie ein präzises Beispiel (ein Szenario) einer fehlerhaften Programmausführung an und korrigieren Sie das Programm!
Bsp: value = 17
Beide Prozesse laufen parallel und speichern in temp den Wert 17, danach warten beide Prozesse auf den Interrupt. Der erste Prozess bekommt den Interrupt und speichert den Wert 18 zurück in value. Danach wird auch der Prozess 2 „freigegeben“, dieser speichert dann ebenfalls 18 in value zurück. Eigentlich müsste es jetzt 19 sein.
Der kritische Bereich ist die gemeinsame Zahl value.
Möglicher Lösungsvorschlag: siehe Bild
Mögliche Probleme: Falls der Interrupt zu lange dauert wird ggf. die Methode nicht abgearbeitet bis zum nächsten Interrupt.