Betriebssysteme KE1 und KE2 Flashcards

1
Q

Was war der ENIAC?

A

Der ENIAC wurde durch physische Veränderung der Hardware programmiert. Er war ein Elektronenrechner der mit 18.000 Röhren bestückt war und 30 Tonnen wog,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was zeichnet die klassische Architektur eines von-Neumann-Rechners aus?

A

Das auszuführende Programm ist nicht mehr ein fester Bestandteil des Rechners. Es wird vor dem Programmlauf in den Speicher des Rechners geladen und hinterher wieder entfernt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind die wesentlichen Bestandteile eines von Neumann Rechners?

A
  • Der Prozessor (CPU = Central Processing Unit)
  • Der Hauptspeicher (Main Memory)
  • die Ein- /Ausgabegeräte (I/O devices)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie wird der Processor noch bezeichnet?

A

ALU (arithmetische Logic Unit)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie ist der Hauptspeicher organisiert?

A

Der Prozessor greift auf die Programme und die Daten zu, die sich zur Laufzeit im Hauptspeicher befinden. Dieser ist als eine lange Folge von gleich großen Speicherzellen organisiert, die einzeln adressiert werden können. (Wahlfreier Zugriff)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist ein „Word“?

A

Der Inhalt einer Speicherzelle. Es besteht aus einem oder mehreren Bytes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wieviele Bit enthält ein Byte?

A

8 Bit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist ein Bit

A

Ein Bit hat den Wert null oder eins.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Rechne 1 MB um:
KB
Byte

A

1 MB
= 1024 KB
= 1024^2 Byte

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie rechnet man die Binärdarstellung einer Dezimalzahl um?

A
Teile durch 2 und stelle den Restwert nach links 
Bspl:
160=
160/2 =80 =0
80/2 =40 = 0
40/2 = 20 = 0
20/2 = 10 = 0
10/2 = 5 = 0
5/2 = 2 = 1
2/2 = 1 = 0
1/2 = 0 = 1

= 10100000

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist ein GHz?

A

Ein GHz (Gigahertz) ist eine Taktfrequenz, also die Anzahl der Takte pro Sekunde.

Ein Gigahertz bedeutet einen Takt von einer Nanosekunde (eine Milliarde Takte pro Sekunde)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was versteht man unter Zugriffszeit?

A

Die Zeit zwischen dem Aufbringen einer Adresse auf den Adressbus und der Ankunft des zugehörigen Speicherzelleninhalts über den Datenbus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist der Cache?

A

Der Cache ist im vergleich zum Hauptspeicher ein kleinerer aber schnellerer Zwischenspeicher. Häufig benutzte Daten werden vorübergehend vom Hauptspeicher in den Cache kopiert. Wenn Daten benötigt werden, schaut man zuerst im Cache.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche Aufgaben hat das Betriebssystem bzgl. Cache?

A
  1. Cache Management:
    Wenn kein Platz mehr im Cache ist, wird entschieden welche Daten überschrieben werden können
  2. Cache-Konsistenz
    Angenommen, der Wert einer Variablen soll verändert werden. Wenn diese Änderung nur an der Kopie im Cache vollzogen wird, so besteht anschließend ein Unterschied zwischen dem Original im Hauptspeicher und der Kopie im Cache. Das Betriebssystem muss dafür sorgen, dass sich hieraus keine Fehler ergeben. Dieses Problem ist besonders gravierend bei Multiprozessor Systemen, bei denen jeder Prozessor über einen eigenen Cache verfügt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist der Primärspeicher?

A

Hauptspeicher

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist die Magnetplatte?

A

Die Magnetplatte ist ein Sekundärspeicher. Sie ist auf beiden Seiten mit einer magnetisierbaren Oberfläche beschichtet und dreht sich mit rund einhundert Umdrehungen pro Sekunde.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie kann man bei der Magnetplatte die Suchzeit verringern?

A
  • zusammengehörende Informationen sollte möglichst in benachbarten Sektoren und Zylindern gespeichert werden.
  • wenn bei einem Plattenlaufwerk mehrere Schreib-Leseaufträge gleichzeitig vorliegen, sollte eine günstige Bearbeitungsreihenfolge gewählt werden. (Disk scheduling)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was sind Abarbeitungsstrategien für eine Magnetplatte?

A
  1. FCFS (First-Come, first-served)
  2. SSTF (shortest-seek-time-First)
  3. SCAN
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Was ist FCFS?

A

First-come, first-served:

Bearbeitet die Aufträge in der Reihenfolge ihres Eingangs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was ist SSTF?

A

(Shortest-seek-time-first)
Bearbeitet jeweils denjenigen Auftrag als nächsten, dessen Spur der momentanen Position des Schreib-/Lesekopfs am nächsten liegt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was ist SCAN?

A

SCAN bewegt den Kopf abwechselnd von außen nach innen und von innen nach außen über die gesamte Platte und führt dabei die Aufträge aus, deren Spuren gerade überquert werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Was dauert länger?

Der Zugriff auf die Magnetplatte oder auf den Hauptspeicher?

A

Der Zugriff auf die Magnetplatte dauert sehr viel länger als auf den Haupspeicher

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Was sind die Vorteile der Magnetplatte?

A

Die Magnetplatte liefert ein viel größeres Datenvolumen als der Hauptspeicher. Ein Sektor enthält zwischen 0, und 4 KByte Nutzinformation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wie wird die Nutzinformation eines Sektors in einer Magnetplatte bezeichnet?

A

Block

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Was ist eine RAM-Disk?

A

Unter einer RAM-Disk versteht man eine fest reservierten Teil des Hauptspeichers, der von Anwenderprogrammen und Anwendern wie eine Magnetplatte benutzt werden kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Warum ist die Magnetplatte nicht für Langzeitarchivierung geeignet?

A
  1. Magnetplatten sind für wahlfreien Zugriff konzipiert und deshalb pro Mbyte Kapazität zu teuer, und darauf Informationen abzulegen, auf die nur selten zugegriffen wird.
  2. Sie sind oft im selben Gehäuse untergebracht wie Prozessor und Hauptspeicher und erlauben es uns deshalb nicht, Informationen an getrennten Ort zu verwahren oder auf andere Rechner zu transferieren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Was sind Teritärspeicher?

A

Teritärspeicher sind Datenträger, die preiswert sind und sich leicht vom Rechner entfernen lassen.

Z.b. Disketten, CD´s…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Wodurch zeichnen sich Magnetbänder aus?

A

Ihre Kapazität ist sehr viel größer als die einer Magnetplatte. Sie bieten aber nur sequentiellen Zugriff. Dies führt zu einer extrem langen Zugriffszeit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Was versteht man unter einer Jukebox?

A

In einer juke-box werden einige hundert Kasetten von Magnetbändern zusammen gefasst.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Wie funktionieren CD´s DVDS

A

Die Daten werden optisch gespeichert und von einem Laser abgetastet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Was ist ein Flash-basierter Speicher?

A

Ein Flash-Basierter Speicher ist preisgünstiger als die externe Festplatte. Hier handelt es sich um Speicherchips, die Daten permanent, also auch ohne Stromversorgung speichern. Sie können auch schnell überschrieben werden. Z.B. USB-Sticks/Speicherkarten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Wie werden Sekundär- und Teritärspeicher noch genannt?

A

Externspeicher

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Zähle die Speicherarten nach Zugriffszeit aufsteigend auf (kosten absteigend)

A
  1. CPU-Register
  2. Cache
  3. Hauptspeicher
  4. Sekundärspeicher
  5. Teritärspeicher
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Was ist ein Bus

A

Ein Bündel von Leitungen zusammen mit einem Protokoll, das genau festlegt, welche Nachrichten über den Bus geschickt werden können und wie diese Nachrichten durch Signale auf den Leitungen dargestellt werden.

Ein Bus verbindet viele Geräte, die alle über den Bus miteinander kommunizieren können.
Zu jedem Zeitpunkt kann aber nur eine Nachricht über den Bus verschickt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Warum werden Geräte nicht direkt an den Bus angeschlossen?

A

Geräte werden über einen Controller an den Bus angeschlossen, da wenn die CPU alle Geräte selbst steuern müsste, wäre sie damit so belastet, dass für die eigentliche Programmausführung zu wenig Zeit bliebe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Für welche Gerätetypen gibt es einen Cotroller der die Steuerung des Geräts übernimmt?

A

Zu jedem Gerätetypen gibt es einen Controller, der die Steuerung des „nackten“ Geräts übernimmt.

Oft können mehrere Geräte gleichen Typs an einen Controller angeschlossen werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Was ist ein Controller?

A

Ein Controller ist ein Stück elektronische Hardware.

Für komplexere Geräte wie z.b. Eine Magnetplatte wird meist hierfür ein vollwertiger Prozessor verwendet, der auf einer Platine im Gehäuse des Plattenlaufwerks untergebracht ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Was ist ein Gerätetreiber?

A

Über einen Gerätetreiber (Software) kommuniziert das Betriebssystem mit den Controllern, die die Geräte steuern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Welche Register besitzt ein Controller?

A
  • Datenausgaberegister (Data-out)
    Hierhin schreibt der Treiber Daten, die für den Controller bestimmt sind.
  • Dateneingangsregister(data-in),
    in das der Controller Daten schreibt, die für den Gerätetreiber bestimmt sind.
  • Statusregister (Status):
    hier kann der Treiber den Zustand des Geräts abfragen, ob es zum Beispiel noch beschäftigt ist, oder ob Daten aus dem Dateneingangsregister abgeholt werden können

Kontrollregister (Control):
hier hinterlegt der Treiber Befehle an den Controller, zum Beispiel einen Lesebefehl.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Was sind die Vorteile/Nachteile bei der Implementierung von Funktionen in Hardware?

A

Vorteil:
Effizienter
Dient der Abstraktion, weil die Details in der Hardware verschwinden

Nachteil:
Eine Implementierung in Software macht weniger Arbeit und lässt sich leichter ändern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Was wird als virtuelles Gerät bezeichnet?

A

Die konzeptionelle Einheit von
Gerätetreiber
Controller
Gerät

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Welche Konzepte stehen im Modell des virtuellen Geräts?

A

Abstraktion
Kapsellung, auch Geheimprizip genannt
Schichtenmodell

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Was bedeutet Abstraktion?

A

Abstraktion bedeutet, von technischen Details abzusehen und sich auf das Wesentliche zu konzentrieren.

Das Konzept der Abstraktion besagt, dass man auf höherer Ebne gewisse Details nicht zu kennen braucht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Was ist das Prinzip der Kapselung?

A

Das Prinzip der Kapselung besagt man darf die Details in unteren Ebenen nicht kennen. Eine Alternative Bezeichnung hierfür ist Geheimnisprinzip

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Was sind die Gründe für Kapselung?

A

Missbrauch verhindern

Änderungen erleichtern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Was ist das Schichtenmodell?

A

Bspl.
Oberste Schicht: in Software implementiert
mittlere Schicht: elektronische Hardware
Unterste Schicht: mechanische Hardware

Die Kommunikation mit der Außenwelt erfolgt nur in der obersten Schicht. In jeder Schicht werden von oben ankommende Aufträge bearbeitet und zur weiteren Bearbeitung an die nächsttiefere Schicht weitergeleitet. Wenn in der untersten Schicht der Auftrag vollst. Erledigt ist, wird dort eine Antwort generiert und durch alle Schichten wieder nach oben geleitet. Die oberste Schicht schickt dann die Antwort an den externen Auftraggeber.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Was sind die Vor und Nachteile vom Schichtenmodell?

A

Ansatz ist nur sinnvoll, wenn jede Schicht einen wesentlichen Beitrag zur Bearbeitung der Aufträge und Antworten leisten kann.

Vorteil:
Einfache Implementierung, weil nur die beiden Schnittstellen zur nächsthöheren und nächsttieferen Schicht realisiert werden müssen u. Weil im Inneren der Schicht nur eine klar umrissenen Teilaufgabe gelöst werden muss
Nachteil: sind die Schichten zu klein entsteht hoher Verwaltungsaufwand

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Was ist poling?

A

Die CPU kann - neben ihrer anderen Arbeit - immer wieder das Statusregister des Controllers abfragen, um festzustellen, ob der Auftrag schon erledigt ist. Diesen Abfragebetrieb nennt man poling.

Liegen die Register im Hauptspeicherbereich, so lässt sich eine solche Abfrage zwar recht schnell erledigen, aber wenn sie immer wieder erfolglos bleibt, wird insgesamt viel CPU-Zeit damit verbracht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Was ist ein Unterbrechungsbetrieb?

A

Der Controller benachrichtigt die CPU, sobald er den Auftrag ausgeführt hat; hierzu unterbricht er die CPU bei ihrer augenblicklichen Arbeit.

Dieser Unterbrechungsbetrieb bildet die Grundlage für die Arbeitsweise moderner Computersysteme

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Wie geht die CPU mit Unterbrechungen um?

A

Die CPU besitzt einen besonderen Eingang für Unterbrechungen.
Entdeckt die CPU ein Unterbrechungssignal, rettet sie den Inhalt des Befehlszählregisters (Adresse des nächsten auszuführenden Befehls) in einen systemeigenen Bereich des Hauptspeichers und lädt stattdessen die Anfangsadresse einer allgemeinen Prozedur zur Unterbrechungshandlung (interrupt Händler)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Wie wird mit Mehreren Unterbrechungen umgegangen?

A

Bei vielen Prozessoren lässt sich der Unterbrechungseingang vorübergehend außer Betrieb setzten, sodass weitere Unterbrechungssignale wirkungslos bleiben.

Zum anderen kann man jedem Unterbrechungswunsch eine Priorität zuordnen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

Was ist ein trap?

A

Wenn Software Unterbrechungen im CPU-Betrieb auslöst

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q

In welchen Fällen kommt es zu Software-Unterbrechungen der CPU

A

Ausnahmen, wie z.b. DIV/0

Verfahren zur Kontrollübergabe:
Systemaufrufe, diese bilden zusammen die Programmierschnittstelle zwischen den Anwenderprogrammen und dem Betriebssystem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

Was ist die unterbrechungsgesteuerte ein/Ausgabe?

A

Der Controller schreibt jeweils ein Wort in sein Dateneingangsregister und löst eine Unterbrechung aus.
Dadurch wird der Gerätetreiber gestartet.
Er veranlasst, dass das Wort von der CPU in Empfang genommen und in den Hauptspeicher geschrieben wird. Wenn ein Block 512 Bytes enthält und ein Wort zwei Bytes umfasst, Weide die CPU bei diesem Verfahren 256-mal unterbrochen, bevor der Datenblock endlich im Hauptspeicher steht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
55
Q

Was ist DMA?

A

Der direkte Speicherzugriff (direct memory Access).
Hierbei wird im Computer ein spezieller DMA-Controller eingesetzt, der selbstständig über den Bus Daten in den Hauptspeicher übertragen kann, ohne die CPU zu bemühen. Auch der Gerätecontroller muss für das DMA-Verfahren ausgelegt sein.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
56
Q

Was wird als handshaking bezeichnet?

A

Eine Kommunikation wie die zwischen DMA- und Gerätecontroller wird im Englischen als handshaking bezeichnet, sie stellt einen einfachen Fall eines Protokolls dar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
57
Q

Was ist der Ur-Lader (bootloader)

A

Der Ur-Lader befindet sich in einem speziellen Teil des Hauptspeichers, der seinen Inhalt auch nach Abschalten des Stroms behält.
Der Ur-Lader lädt zunächst den eigentlichen Lader von der Magnetplatte.
Der Lader wird nun gestartet und lädt das Betriebssystem in den Hauptspeicher. Dieser Vorgang wird als hochfahren (booting) bezeichnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
58
Q

Welche Programme laufen im Benutzermodus?

A

Alle Anwendungsprogramme

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
59
Q

Welche Befehle können nur im Systemmodus ausgeführt werden?

A

Privilegierte Maschinenbefehle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
60
Q

Kann ein Benutzer direkt auf ein gerät zugreifen?

A

Kein Benutzer kann direkt auf ein Gerät zugreifen; man muss zu diesem Zweck das mit höheren Rechten ausgestattete Betriebssystem um Hilfe bitten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
61
Q

Was ist der Adressraum?

A

Bevor ein Programm gestartet wird, weist ihm das Betriebssystem einen bestimmten Bereich im Hauptspeicher zu, seinen Adressraum.

Das Programm darf nur auf solche Adressen zugreifen, die in seinem eigenen Adressraum liegen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
62
Q

Was sind relokierbare Programme (relocable code)?

A

Zuerst wird bei der Übersetzung eines Programms vom Compiler in Maschinensprache eine relative Adresse gegeben.

Wird das Programm in seinen Adressraum geladen, stimmen die relativen Adressen nicht mit den absoluten Adressen überein.

Wenn das Programm eine Speicherzelle adressieren will, wird die im Programm enthaltene relative Adresse zur niedrigsten Adresse des Adressraums addiert

Somit können die Programme zusammen mit ihren Adressräumen beliebig im Hauptspeicher verschoben werden

Formel
absolute Adresse = (Basisregister) + relative Adresse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
63
Q

Wie heißt ein Programm, dass sich gerade in der Ausführung befindet?

A

Prozess

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
64
Q

Aus was besteht der Prozesskontext und wo wird er verwaltet?

A
  • den Registerinhalten, insbesondere
  • Befehlszähler und
  • Grenzen des Adressraums
  • Seitentabelle
  • Prozessnummer
  • Priorität

Vom Betriebssystem im Prozesskontollblock.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
65
Q

Was ist PCB?

A

Der Prozesskontrollblock
In ihm werden Angaben zum Prozesskontext zusammen gefasst.
Es wird dort auch vermerkt ob der Prozess im System- oder Benutzermodus arbeitet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
66
Q

Wieviele Prozesse können im Zustand „rechnend“ zeitgleich im Einprozessorsystem sein?

A

Nur einer - nur der Prozess, dessen Programm gerade von der CPU ausgeführt wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
67
Q

Welche Prozesszustände gibt es?

A
Erzeugt
Bereit
Blockiert
Rechnend
Beendet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
68
Q

Was bedeutet der Prozesszustand „bereit“

A

Der Prozess bewirbt sich mit den übrigen bereiten Prozessen um die Zuteilung der CPU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
69
Q

Was bedeutet der Prozesszustand „blockiert“

A

Er wartet darauf, dass seine Ein-/Ausgabeanforderung erledigt wird oder das ein anderes Ereignis eintritt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
70
Q

Was ist der CPU-Scheduler?

A

Der CPU-Scheduler entscheidet, welcher der bereiten Prozesse als nächster rechnen darf.

Folgende Strategien kann er anwenden:
FCFS (First-come, First-Server)
-> Nachteil früh eintreffender Prozess mit hohem Rechezeitbedarf oder einer Endlosschleife hält späteren Prozesse auf
SJF (shortest Job First)
-> Vorraussetzung: die benötigte Rechenzeit lässt sich gut vorhersagen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
71
Q

Was ist „Stapel- oder Batch-Betrieb“?

A

Der Rechner erhält einen ganzen Schub von Aufträgen (Jobs), die keine Interaktion mit dem Benutzer erfordern und regelmäßig auszuführen sind, so dass man ihre Laufzeiten in etwa kennt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
72
Q

Was ist Time-Sharing-Betrieb?

A

Mehrere Benutzer können zur selben Zeit an einem Rechner arbeiten, und jeder kann gleichzeitig mehrere Programme laufen lassen

Tatsächlich arbeiten arbeiten die Programme jedoch nicht gleichzeitig bei nur einer CPU, sondern die Prozesse werden sehr schnell gewechselt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
73
Q

Was ist das Verfahren „round Robin“?

A

Die bereiten Prozesse werden reihum bedient. Dazu kann man sie in der Reihenfolge ihres Eintreffens in einer kreisförmigen Warteschlange speichern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
74
Q

Wie nennt man das Umschalten zwischen Prozessen?

A

Kontextwechsel (context switch)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
75
Q

Was macht der Dispatcher?

A

Er führt den Kontextwechsel durch (das Umschalten zwischen Prozessen)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
76
Q

Was passiert wenn ein rechnender Prozess auf ein bestimmtes Ereignis warten will?

A

Ein rechnender Prozess kann durch einen Systemaufruf mitteilen, dass er auf ein bestimmtes Ereignis warten will, er wird dann blockiert und kommt in eine spezielle Warteschlange, in der möglicherweise noch andere blockierte Prozesse stehen, die auf dasselbe Ereignis warten. Wenn dann dieses Ereignis eintritt, kann der Prozess, welcher es auslöst, ein Signal abschicken. Dieses Signal bewirkt, dass alle Prozesse aus der Warteschlange wieder in den Zustand bereit versetzt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
77
Q

Beschreibe was bei der Ausführung des zu read zugehörigen Systemaufrufs in einem Prozess P geschieht.

A
  1. Eine Software-Unterbrechung wird ausgelöst, der Kontext von P wird zunächst gerettet, dann wird der Ein/Ausgabeteil des Betriebssystems aufgerufen.
  2. Dieser prüft zunächst, ob die benötigten Daten nicht schon im Cache im Hauptspeicher stehen, in dem Fall werden sie in den Adressraum von P kopiert, und nach der Rückkehr von der Software-Unterbrechung wird der Prozess P sofort wieder rechnend.
  3. Stehen die Daten nicht im Cache, ist ein Plattenzugriff erforderlich. Der Prozess P wird solange blockiert. Der Leseauftrag wird an die Geräte-Warteschlange des Plattenlaufwerks angehängt. Dann gibt es dem Gerätetreiber Bescheid.
  4. Sobald der Gerätetreiber frei ist, und rechnend wird, entnimmt er den Auftrag der Geräte-Warteschlange. Der Gerätetreiber reserviert im betriebssystemeigenen Bereich Speicherplatz für die zu lesenden Daten und schickt einen Lesebefehl an den Gerätecontroller. Dann führt der Treiber den Systemaufruf Warten aus und blockiert.
  5. Der Gerätecontroller bestimmt erst die physische Adresse, dann führt er den Leseauftrag aus und überträgt zusammen mit dem DMA-Controller die Daten in den reservierten Bereich im systemeigenen Speicher, währenddessen können auf der CPU beliebige andere Prozesse rechnen. Danach wird eine Unterbrechung ausgelöst.
  6. Mittels des Unterbrechungsvektors wird die Unterbrechungsroutine des Plattenlaufwerks gestartet. Sie schickt das Signal, auf das der Gerätetreiber wartet, und kehrt dann von der Unterbrechung zurück. Der Gerätetreiber wird dadurch bereit.
  7. Sobald der Gerätetreiber rechnend wird, sieht er in der Geräte-Warteschlange nach, von welchem Prozess der Leseauftrag stammte, gibt dem Ein-/Ausgabeteil des Betriebssystems Bescheid und geht in denn Zustand bereit
  8. Der Ein-/Ausgabeteil des Betriebssystems kopiert die Daten aus dem systemeigenen Speicher in den Adressraum des Prozesses P und versetzt P aus dem Zustand blockiert in den Zustand bereit.
  9. Sobald der Prozess P wieder rechnen darf, wird der Systemaufruf beendet, und P setzt seine Arbeit hinter dem read fort.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
78
Q

Was enthält der Kern (Kernel)

A

Der Kern (Kernel) des Betriebssystems enthält
Geräteunabhängige Teile für Blockeises Ein- und Ausgabe. Ein weiter Teil des Kerns ist für die Hauptspeicherverwaltung zuständig.
Den CPU Scheduler
In UNIX und Linux auch die Gerätetreiber
Und weitere Teile für die Erledigung anderer Aufgaben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
79
Q

Welche zwei Schnittstellen hat der Kern?

A
Controllerschnittstelle = Verbindung zur Hardware
Programmierschnittstelle = Stellt die Dienste des Betriebssystems für die Programme zur Verfügung.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
80
Q

Welche groben Aufgabenbereiche haben die Systemaufrufe?

A
  • Prozesse
  • Dateien
  • Information
  • Kommunikation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
81
Q

Was muss passieren wenn in einem Prozess ein Fehler auftritt?

A

Wenn ein Fehler auftritt, muss der Prozess abgebrochen werden (Abort)
Dabei sollte es möglich sein, eine Fehlermeldung auszugeben oder den Inhalt von Registern und Adressraum für die Fehlersuche zu speichern (dump)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
82
Q

Was ist eine Datei?

A

Eine Datei ist grob gesagt eine Sammlung zusammengehöriger Information
Dateien befinden sich im Sekundär- und Teritärspeicher.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
83
Q

Was passiert beim öffnen einer Datei?

A

Durch das Öffnen wird die Datei in eine spezielle Liste eingetragen, bei den folgenden Zugriffen braucht dann nicht jedesmal aufs neue die physische Adresse der Datei bestimmt zu werden. Außerdem lässt sich damit verhindern, dass zwei Benutzer sich beim Zugriff auf dieselbe Datei stören.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
84
Q

Wie kann die Kommunikation zwischen Prozessen erfolgen?

A

Die Kommunikation zwischen Prozessen kann auf zwei verschiedene Arten erfolgen:
Versand von Nachrichten (Message Passung)
Über einen gemeinsamen Speicherbereich (Shared Memory)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
85
Q

Wie kann der Versand von Nachrichten zwischen den Prozessen erfolgen?

A
  • verbindungslos (connectionless)
    wie versenden eines Briefs
  • verbindungsorientiert (Connection-orientier)
    Es wird eine Verbindung zwischen Sender und Empfänger aufgebaut, über die dann die Kommunikation erfolgt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
86
Q

Was sind pipes?

A

In UNIX und Linux wird der verbindungsorientierte Datenaustausch durch pipes realisiert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
87
Q

Wozu dient die Benutzerschnittstelle?

A

Sie dient dem Benutzer zusammen mit den Schnittstellen der Anwendungsprogramme zur Kommunikation mit dem Rechner.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
88
Q

Aus was besteht die Benutzerschnittstelle?

A

Aus der Gesamtheit aller Systemprogramme.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
89
Q

Welchen Aufgabenbereichen lassen sich die Systemprogramme zuordnen?

A
  • Programme
  • Dateien und Verzeichnisse
  • Information
  • Kommunikation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
90
Q

Was ist Common Desktop Environment (CDE)?

A

Eine integrierte Oberfläche.
Es vereinigt viele Systemprogramme mit folgenden Funktionen in sich:
- Editor (Zum Schreiben der Programmtexte)
- Compiler/Interpreter (für die verwendete Programmiersprache)
- Binder/linker (fasst einzelne Module zu einem Lademodul zusammen)
- Lader/loader (Bringt das Lademodul in den Hauptspeicher)
- Debugger (für Fehlersuche)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
91
Q

Was machen Systemprogramme?

A
Systemprogramme helfen dem Benutzer
Dateien anzulegen
Dateien zu kopieren
Dateien zu drucken
Dateien umzubenennen
Dateien zu löschen
Zugriffsberechtigungen setzen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
92
Q

Was ist eine Directory?

A

Zusammengehörige Dateien werden in Verzeichnissen (directories) zusammen gefasst

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
93
Q

Was ist der Unterschied im Aufgabenbereich von Systemaufrufen und Systemprogrammen?

A

Systemaufrufe:
Haben besonders mit der Kommunikation zwischen Prozessen zu tun

Systemprogramme:
Sind auf höherer Ebene für die Kommunikation zwischen Benutzern zuständig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
94
Q

Was ist der Kommandointerpreter (command Interpreter)?

A

Der Command Interpreter ist ein wichtiges Systemprogramme, der die Eingaben des Benutzers entgegennimmt und ihre Ausführung veranlasst.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
95
Q

Was ist eine Shell?

A

Einen für jeden Benutzer maßgeschneiderten Kommandointerpreter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
96
Q

Was ist ein Parallelrechner?

A

Multiprozessorsystem

Arbeit wird auf mehrere Prozessoren verteilt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
97
Q

Warum löst ein Multiprozessorsystem mit k Prozessoren ein Problem nicht unbedingt k mal so schnell wie ein Einzelprozessorsystem?

A
  • Kommunikation zwischen den Prozessesoren benötigt zeit

- Einige Probleme sind nicht parallelisierbar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
98
Q

Was sind die Vorteile eines Parallelrechners?

A
  • Effizienzsteigerung
  • Kostenersparnis durch Zusammenfassung mehrerer CPU`s
  • Störungssicherheit (bei Ausfall eines Prozessoren)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
99
Q

Wie ist das Verhältnis bei einem Parallelrechner von Prozessoren und Hauptspeicher?

A

Bei einem Parallelrechner teilen sich die Prozessoren einen gemeinsamen großen Hauptspeicher. Der Zugriff erfolgt entweder über einen Bus, oder der gemeinsame Hauptspeicher wird in kleiner Stücke zerlegt und ein Schaltwerk sorgt dafür, dass jeder Prozessor auf jedem Teil des Speichers zugreifen kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
100
Q

Was sind Verteilte Systeme?

A

Jeder Prozessor hat einen eigenen Speicher

Die Kommunikation zwischen den Prozessoren erfolgt durch den Versand von Nachrichten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
101
Q

Sind bei verteilten Systemen die Prozessoren im selben Rechnergehäuse untergebracht?

A

Nicht zwingend -
Es kann auch aus vielen Einezlprozessorrechnern bestehen, die auf der ganzen Welt verteilt sind wie z.B. Das World Wide Web.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
102
Q

Was ist eine Hypercube-Architektur?

A

Beim d-dimensionalen Hypercube gibt es für jeden der 2^d möglichen Vektoren die man aus d Nullen und Einsen bilden kann, einen Prozessor.

Die Prozessoren sind nur an den Vektoren verbunden, die sich genau an einer stelle vom eigenen Vektor unterscheiden.

Bspl:

(10011000) und (10011010) haben eine Verbindung
(10011000) und (10111010) nicht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
103
Q

Was ist ein Relzeitsystem?

A

Hier ist es Teil der Korrektheitsanforderung, dass das Ergebnis innerhalb einer vorgegebenen Zeit berechnet wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
104
Q

Übungsaufgabe 1.1
Die Binärdarstellung einer natürlichen Zahl n >= 1 ist die Folge ak ak-1 … a1 a0 von Nullen und Einsen ai, für welche

n = ak2^k + ak-12^k-1 + … + a12^1 + a02^0

gilt und ak = 1; führende Nullen lässt man also fort. Welche Zal n wird durch 11011101 dargestellt?

Bestimmen sie die Binärdarstellung von 160

A

2^7 + 2^4 + 2^3 + 2^2 +2^0 = 157

n` := (n-a0)/2 = n div 2

Irritiert man das Verfahren ist a1 = n` mod 2

Es ergibt sich 10100000

Einfachere Beschreibung:
Gehe nach folgendem Verfahren vor:
(1) Teile die Zahl mit Rest durch 2.
(2) Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
(3) Falls der (ganzzahlige) Quotient = 0 ist, bist du fertig,
andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl
und wiederhole ab (1).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
105
Q

Übungsaufgabe 1.2
Beim Prozessor 68000 von Motorola beträgt die Wortlänge 2 Byte. Wie breit muss der Adressbus sein- das heißt: aus wie vielen Bits bestehen die Adressen bei einer Hauptspeicherkapazität von 16 MByte?

A

Teilt Mann 16 MByte in Worte der Länge 2 Byte auf, so entstehen:

(162^20)/2 = 82^20 = 2^23

Viele Worte. Der Adressbus muss also die Breite 23 haben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
106
Q

Übungsaufgabe 1.3
Angenommen, ein Schreib- / Lesezugriff auf den Cache ist neun mal so schnell wie ein Zugriff auf den Hauptspeicher. Welchen Zeitvorteil ergibt die Verwendung eines Cache nach dem oben beschriebenen Algorithmus, wenn bei 80% aller Zugriffe die gesuchten Daten im Cache gefunden werden?

A

Sei c die Zeitdauer eines Schreib-/Lesezugriffs auf den Cache, dann fällt also in 80% aller Datenzugriffe ein Zeitaufwand von c Einheiten an. Bei den übrigen 20% der Fälle muss auf den Hauptspeicher zugegriffen werden, das kostet zusätzlich 9c Zeiteinheiten. Danach müssen die Daten noch in den Cache abgelegt werden, das benötigt noch c Zeiteinheiten. Im Mittel entsteht also bei Verwendung des Cache ein Zeitaufwand in Höhe von

(80/100)c + (20/100)(9c+2c) = (80 + 220)/100*c = 3c

Gegenüber 9c beim Betrieb ohne Cache. Bei den hier zugrunde gelegen Werten geht es mit Cache also drei mal so schnell.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
107
Q

Übungsaufgabe 1.4
Wir betrachten ein Plattenlaufwerk mit nur einer einzelnen Platte. Die Spuren sind mit 0 beginnend von außen nach innen durchnummeriert. Wenn dafür nun mehrere Aufträge vorliegen, kann man sie nach folgenden Strategien abarbeiten:

  1. FCFS (First-come, First-served) - bearbeitet die Aufträge in der Reihenfolge ihres Eingangs.
  2. SSTF (shortest-sek-Time-First) - bearbeitet jeweils denjenigen Auftrag als nächsten, dessen Spur der momentanen Position des Schreib-/Lesekopfs am nächsten liegt.
  3. SCAN - bewegt den Kopf abwechselnd von außen nach innen und von innen nach außen über die gesamte Platte und führt dabei die Aufträge aus, deren Spuren gerade überquert werden.

Angenommen, es sind Zugriffsaufträge für Sektoren in den Spuren

32, 185, 80, 126, 19, 107

In dieser Reihenfolge eingegangen. Der Kopf steht anfangs auf der Spur 98 und bewegt sich im Falle der SCAN-Strategie gerade nach außen. Welche Distanz muss der Kopf bei Anwendung der drei Strategien jeweils insgesamt zurücklegen, bis alle Aufträge erledigt sind?

A

Bei der Strategie FCFS ergibt sich als Gesamtdistanz
(98-32) + (185-32) + (185-80) + (126-80) + (126-19) + (107-19) = 565

SSTF:
Es werden nacheinander die Spuren 98, 107, 126, 80, 32, 19, 185 besucht, was eine Gesamtdistanz von 301 ergibt.

SCAN:
Führt von Spur 98 zunächst nach außen bis zur Spur 0 und dann wieder nach innen bis Spur 185 - hier beträgt die Gesamtdistanz 283.

Bei diesem Beispiel schneidet also die Strategie SCAN am besten ab. In der Praxis sind die Verhältnisse komplizierter, weil nicht alle Schreib-/ Leseaufträge im voraus bekannt sind. Vielmehr treffen immer neue Aufträge ein, während die ersten bereits abgearbeitet wurden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
108
Q

Übungsaufgabe 1.5

Sortieren sie alle Ihnen bekannten Speicherformen nach Zugriffszeit.

A

Nach aufsteigender Zugriffszeit geordnet:

Prozessregister,
Cache
Hauptspeicher
RAM-disk 
Magnetplatte
BD
HD DVD
CD/DVD
Diskette
Magnetband
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
109
Q

Übungsaufgabe 1.6
Nach jeder Ausführung eines Befehls überprüft die CPU, ob an ihrem Unterbrechungseingang ein Signal angekommen ist. Schleicht sich hier durch die Hintertür der ineffiziente Abfragebetrieb ein, den wir durch die Einführung des Unterbrechungsbetriebs eigentlich hatten vermeiden wollen?

A

Es stimmt zwar, dass beim regelmäßigen Überprüfen des Unterbrechungseingangs ein Abfragebetrieb vorliegt, diese Abfragen erfolgen aber im Inneren der CPU und benötigen deshalb viel weniger Zeit als das Lesen des Statusregisters des Controllers. Denn selbst bei speicherabgebildeter Ein-/Ausgabe werden hierfür mehrere CPU-Befehle benötigt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
110
Q

Übungsaufgabe 1.7
Das Ziel des DMA-Verfahrens liegt in einer Entlastung der CPU. Wieso kann es trotzdem vorkommen, dass die Arbeit der CPU verzögert wird, während DMA-Vorgänge ablaufen?

A

Auch bei Einsatz des DMA-Verfahrens kann es zu Verzögerungen in der Arbeit der CPU kommen, weil der DMA-Controller während der Übertragung den Bus besetzt hält, die CPU also nichts auf den Hauptspeicher zugreifen kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
111
Q

Übungsaufgabe 1.8

Warum darf der Unterbrechungsvektor nicht im Adressraum eines Anwendungsprogramms liegen?

A

Läge der Unterbrechungsvektor im Adressraum eines Benutzerprogramms, so könnte der Benutzer die Anfangsadresse einer Unterbrechungsroutine so ändern, dass, wenn diese Unterbrechung eintritt, statt der Unterbrechungsroutine ein Teil des Benutzerprogramms gestartet wird. Die CPU währe dann im Systemmodus und der Benutzer hätte damit die vollständige Herrschaft über den Rechner erlangt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
112
Q

Übungsaufgabe 1.9

Muss der Befehl, mit dem der Unterbrechungseingang der CPU außer Betrieb gesetzt wird, privilegiert sein?

A

Der Befehl zum Außerbetriebsetzen der Unterbrechungsleitung muss auf jeden Fall privilegiert sein. Wenn nämlich ein Benutzerprogramms diesen Befehl ausführen könnte und anschließend in eine Endlosschleife geriete, wäre es nur noch durch Abschalten des Rechners zu stoppen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
113
Q

Übungsaufgabe 1.10
Gegeben sei eine feste Menge von endlich vielen Prozessen mit bekannten Rechenzeiten. Beweisen Sie, dass SJF die Gesamtwartezeit minimiert, also die Summe aller Wartezeiten der einzelnen Prozesse. Dabei ist die Wartezeit eines Prozesses diejenige Zeit bist zur Beendigung, in der sich der Prozess im Zustand bereit befindet.

A

Betrachten wir eine Ausführungsreihenfolge, bei der ein langer Prozess L vor einem kurzen Prozess K an die Reihe kommt. Wenn wir die beiden miteinander vertauschen, brauchen alle dazwischen liegenden Prozesse nicht mehr so lange zu warten. Für L verlängert sich bei diesem Tausch zwar die Wartezeit, aber die Verkürzung der Wartezeit von K ist größer! Alle übrigen Prozesse sind nicht betroffen. Also verkürzt solch ein Tausch die Gesamtwartezeit. Jede von SJF verschiedene Ausführungsreihenfolge lässt sich also noch verbessern. Folglich ist SJF optimal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
114
Q

Übungsaufgabe 1.11
Zu welchem Problem kann es bei einem System mit SJF-Scheduling kommen, wenn einige längere Prozesse laufen und immer wieder kurze Prozesse gestartet werden? Wie kann man die SJF-Strategie modifizieren, sodass dieses Problem vermieden wird?

A

Bei SJF werden kürzere Prozesse vor längeren bearbeitet. Je mehr kurze Prozesse generiert werden, desto länger müssen die langen Prozesse warten. Wenn also immer neue kurze Prozesse erzeugt werden, kommen die langen Prozesse nie an die Reihe. Dieses Problem wird starvation genannt. Eine einfache Möglichkeit, starvation zu verhindern ist, beim Scheduling zusätzlich zu den erwarteten Laufzeiten auch Prioritäten zu berücksichtigen. Alle im System eintreffenden Prozesse erhalten zunächst die gleiche Priorität, die dann jedoch erhöht wird, je länger ein Prozess auf Prozessorzuteilung wartet. Der lange Prozess hätte dann irgendwann eine Priorität, und der Scheduler kann erkennen, dass der Prozess schon lange wartet und ihn bearbeiten, obwohl kürzere Prozesse im System sind. Diese Prioritätsanpassung wird auch als aging bezeichnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
115
Q

Muss der Zugriff auf das Register des Zeitgebers privilegiert sein?

A

Der Zugriff auf das Register, das die Anzahl der verbleibenden Zeiteinheiten der aktuellen Zeitscheibe enthält, muss privilegiert sein! Denn Sonst könnte ein Prozess sich selbst zusätzlich Rechenzeit verschaffen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
116
Q

Übungsaufgabe 1.13

Welche Gefahren drohen, wenn beim Verfahren round Robin die Zeitscheiben zu dick oder zu dünn gewählt werden?

A

Prozesse mit großem Ein-/Ausgabebedarf könnten von extrem langen Zeitscheiben nicht profitieren: Meist blockieren sei lange bevor ihre Zeitscheibe abgelaufen ist, etwa um auf die nächste Benutzereingabe zu warten. Sie können aber sehr darunter leiden, wenn sie rechenzeitintensive Prozesse vor sich haben, die ihre dicken Zeitscheiben voll ausnutzen. Darum sind zu dicke Zeitscheiben nicht wünschenswert. Aber zu dünne Zeitscheiben sind auch ineffizient: Die CPU verbringt dann einen zu großen Teil ihrer Zeit mit unproduktiven Kontextwechseln , während es mit den Prozessen nur langsam voran geht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
117
Q

Übungsaufgabe 1.15
Warum werden die gelesenen Daten erst im systemeigenen Speicherbereich abgelegt und nicht gleich im Adressraum des anfordernden Prozesses P?

A

Wollte man die gelesen Daten sofort in den Adressraum des Prozesses P übertragen, der sie angefordert hat, so müsste die Zieladresse vom Betriebssystem über den Treiber an den Controller weitergegeben werden. Außerdem dürfte der Adressraum von Prozess P im Hauptspeicher nicht bewegt werden, bis der Lesevorgang abgeschlossen ist. Beides wäre unzweckmäßig. Dem Controller die Zieladresse mitzuteilen, widerspricht den Prinzipien von Kapselung und Aufgabenteilung (separation of concerns). Blockierte Prozesse nicht bewegen oder auf die Magnetplatte auslagern zu können, würde die effiziente Verwaltung des Hauptspeichers behindern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
118
Q

Übungsaufgabe 1.14

Warum wird nicht schon beim Compilieren die logische Datenbeschreibung durch die physische Beschreibung ersetzt?

A

Zwischen dem Compilieren und dem Ausführen eines Programms kann ein längerer Zeitraum liegen, in dem die Dateien verändert werden. Deshalb kann man logische Adressen erst zur Laufzeit auf physische Adressen abbilden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
119
Q

Übungsaufgabe 1.16
Welcher gravierende Unterschied besteht zwischen einer verbindungsorientierten und einer verbindungslosen Übertragung, wenn eine sehr lange Nachricht vor dem Absenden in mehrere Teile zerlegt werden muss?

A

Wenn man eine lange Nachricht in mehreren Teilen überträgt, ist beim verbindungsorientierten Datenaustausch sichergestellt, dass die Teile in der richtigen Reihenfolge beim Empfänger ankommen. Beim verbindungslosen Austausch kann das nicht garantiert werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
120
Q

Übungsaufgabe 1.17
Über wieviele Zwischenstationen muss man beim de-dimensionalen Hypercube höchstens laufen, um von einem Prozessor zu einem anderen gelangen

A

Zwei beliebige Vektoren der Länge d unterscheiden sich im schlimmsten Fall an allen d Stellen. Wenn man also bei jedem Schritt einen Unterschied verschwinden lässt, indem man den entsprechenden Nachbarn aufsucht, sind insgesamt d Schritte über d-1 Zwischenstationen erforderlich.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
121
Q

Was ist ein Betriebssystem?

A

(Wiki) Ein Betriebssystem, auch OS (von englisch operating system) genannt, ist eine Zusammenstellung von Computerprogrammen, die die Systemressourcen eines Computers wie Arbeitsspeicher, Festplatten, Ein- und Ausgabegeräte verwaltet und diese Anwendungsprogrammen zur Verfügung stellt. Das Betriebssystem bildet dadurch die Schnittstelle zwischen den Hardware-Komponenten und der Anwendungssoftware des Benutzers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
122
Q

Wozu braucht man ein Betriebssystem?

A

Transparenz: Ein Betriebssystem soll die Details über Hardware vor Benutzern und Anwendungen verstecken. Benutzer sollen nur mit Anwendungsprogrammen mit einem Rechner interagieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
123
Q

Welche Aufgabe hat ein Betriebssystem?

A
  1. Bereitstellung von Schnittstellen für Anwendungen und Benutzer
  2. Aufteilung der CPU-Zeit für die einzelnen Prozesse
  3. Zuteilung des Hauptspeichers für die einzelnen Prozesse und Verwaltung des virtuellen Speichers
  4. Steuerung von Ein-/Ausgabegeräten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
124
Q

Welche Strategien und Mechanismen benutzt ein Betriebssystem um die Aufgaben zu lösen?

A
  1. Strategie:
    - Ein Betriebssystem muss die Konrolle über das ganze System behalten
    - Das Betriebssystem muss immer wieder aktiviert werden
  2. Mechanismus:
    - Durch Unterbrechungen wird das Betriebssystem aktiviert
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
125
Q

Welche Schnittstellen werden vom Betriebssystem zur Verfügung gestellt?

A
  • Programmierschnittstelle

- Benutzerschnittstelle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
126
Q

Welche Idee hatte von Neumann? Warum ist seine Idee ein Meilenstein für die Informatik?

A

Trennung der Hardware und Software
Universelle Maschine zur Ausführung von Programmen: Das auszuführende Programm ist nicht mehr fester Bestandteil des Rechners, es wird vor der Ausführung in den Speicher geladen und hinterher wieder entfernt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
127
Q

Welche Hardwarekomponenten hat ein moderner von-Neumann-Rechner?

A
  • Prozessor (CPU = central processing unit)
    • Hauptspeicher (main memory)
    • Ein-/Ausgabegeräte (I/O devices)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
128
Q

Wie sieht eine CPU aus? Welche wichtigen Register hat die CPU?

A
  • Befehlszähler (Program Counter, PC) enthält die Adresse derjenigen Speicherzelle, in der der als nächses auszuführende Befehl steht
    • Befehlsregister (Instruction Register IR) speichert den aktuellen Befehl, der gerade bearbeitet wird
    • PSW (Programmstatuswort) enthält ein besonderes Bit für Benutzer-/Systemmodus
    • Speicheradressregister (Memory Adress Regiser MAR) enthält die Adresse derjenigen Speicherzelle, die als nächstes gelesen oder beschrieben werden soll
      Akkumulator eines von vielen Datenregistern, speichert ein Zwischenergebnis einer berechnung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
129
Q

Welche Aufgabe haben die Register der CPU?

A

Um ein Wort aus einer Speicherzelle zu holen, hat die CPU einige wichtige Register, die als Zwischenspeicher verwendet werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
130
Q

Was ist ein Programm im Hauptspeicher?

A

ein gerade auszuführendes Programm

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
131
Q

Welche Schritte hat ein Befehlszyklus des Prozessors?

A

Die CPU arbeitet Befehle in Zyklen ab. Eine Befehlsausführung kann in zwei Phasen aufgeteilt werden:
1. Holphase (fatch stage):
Das Speicheradressregister übernimmt den Wert vom Befehlszähler und gibt die Adresse an den Adressbus weiter. Der Inhalt der Speicherzelle wird in das Befehlsregister geladen und interpretiert
2. Ausführungsphase (execution stage)
- geholte Befehl wird ausgeführt
- weitere Daten oder Adressen können von Speicherzellen geholt werden.
- Befehlszähler wird hochgezählt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
132
Q

Wie sieht ein Hauptspeicher aus?

A
  • lange Folge von gleich großen Speicherzellen organisiert.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
133
Q

Welche Beziehung hat der Adressbus mit dem Hauptspeicher?

A

Der Hauptspeicher wird über den Adressbus des Prozessors angesprochen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
134
Q

Wie kann man aus der Größe des Hauptspeichers die Länge des Adressbusses berechnen?

A

Wir teilen die Größe des Hauptspeichers durch die Länge der Worte. Die Breite des Adressbusses ist dann der Exponent der 2er Potenz.

Beispiel: Hauptspeicher 16 MByte Worte haben die Länge 2 Byte, so ist
(162^30)/2=82^20=2^23

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
135
Q

Warum hat der Hauptspeicher die Eigenschaft des wahlfreien Zugriffs?

A

(Wiki)
Die Bezeichnung des Speichertyps als „wahlfrei“ bedeutet in diesem Zusammenhang, dass jede Speicherzelle über ihre Speicheradresse direkt angesprochen werden kann. Der Speicher muss also nicht sequenziell oder in Blöcken ausgelesen werden. Bei großen Speicherbausteinen erfolgt die Adressierung jedoch nicht über die einzelnen Zellen, sondern über ein Wort, dessen Breite von der Speicherarchitektur abhängt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
136
Q

Wie ist eigentlich wahlfreier Zugriff des Hauptspeichers definiert?

A

Speicherzellen können einzeln adressiert werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
137
Q

Was ist ein Cache?

A

ein schneller Zwischenspeicher, in den häufig benutzte Daten kopiert werden, um die Zugriffszeit zu verringern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
138
Q

Wozu ist ein Cache gut?

A

Zugriffszeit auf Daten und Programme zu verringern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
139
Q

Welche Probleme entstehe, wenn ein Cache eingesetzt wird? Wie läuft der Cache-Algorithmus?

A

Konsistenz-Probleme
Cache-Algorithmus:
- Häufig benutzte Daten werden in den Cache kopiert
- Erst Suche im Cache - da schneller
- Wenn Suche erfolglos -> Hauptspeicher und Kopie in den Cache

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
140
Q

Was ist ein Sekundärspeicher?

A
  • Aufgabe der dauerhaften Speicherung

- Häufig Magnetplatte (Festplatte) und Flashspeicher

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
141
Q

Wie ist eine Festplatte aufgebaut?

A
  • Magnetplatte auf beiden Seiten mit einer magnetisierbaren Oberfläche beschichtet
    • Magnetplatte dreht sich mit 100 Umdrehungen/Sekunde
    • Jede Oberfläche einer Platte ist in einige tausend kreisförmige Spuren gleicher Breite unterteilt, die wiederum aus einigen hundert Sektoren bestehen
    • übereinanderliegende Spuren bilden einen Zylinder
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
142
Q

Welche Befehle kann die Festplatte ausführen?

A

? Lesen & schreiben?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
143
Q

Warum unterstützt eine Festplatte auch den wahlfreien Zugriff?

A

Jeder Sektor wird mit einer Adresse angesprochen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
144
Q

Was ist die Positionierungszeit, Latenzzeit, Übertragungszeit und Zugriffszeit bei einer Festplatte?

A

Positionierungszeit : Zeit für die Positionierung des Schreib-/Lesekopfes
Latenzzeit: Warten, dass der gesuchte Sektor am Kopf vorbeiläuft
Übertragungszeit: Lesen des Sektorinhalts und das Speichern in einen Puffer

Zugriffszeit: Positionierungszeit + Latenzzeit + Übertragungszeit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
145
Q

Welche Strategien gibt es, um die Aufträge für Plattenlaufwerke abzuarbeiten?

A
  • FCFS (first-come, first served)
    • SSTF (shortest-seek-time-first)
    • SCAN - bewegt Kopf abwechselnd von außen nach innen und von innen nach außen über die gesamte Platte und fürh die Aufträge aus, deren Spuren überquert werden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
146
Q

Welche Probleme kann es bei der Strategie SSTF geben?

A

Das Problem der Starvation betrifft die Strategie SSTF (shortest seek time first), da hier Aufträge, die weit von der aktuellen Position des
Schreib-/Lesekopfs entfernt sind, durch neue Aufträge, die nicht so weit entfernt sind, nach hinten geschoben und nicht bearbeitet werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
147
Q

Kann es passieren, dass ein Auftrag mit SSTF nicht bearbeitet wird?

A

Ja, da hier Aufträge, die weit von der aktuellen Position des
Schreib-/Lesekopfs entfernt sind, durch neue Aufträge, die nicht so weit entfernt sind, nach hinten geschoben und nicht bearbeitet werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
148
Q

Was ist der Unterschied zwischen einem Sektor und einem Block?

A

Ein Block ist die Nutzinformation eines Sektors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
149
Q

Was ist ein parity bit?

A

Sie werden für die Fehlerkorrektur genutzt. Der Wert der partity bits ist die Summe der Werte bestimmter Datenbits. Beim Schreiben bzw. Lesen eines Sektors werden diese Summen berechnet und in die Prüfbits eigetragen bzw. mit den dort gespeicherten Werten verglichen. Ergeben sich Abweichungen, so ist ein Fehler aufgetreten.
Bei Verwendung geeigneter Codes knan man feststellen, welches Bit einen falschen Wert hat und den Fehler automatisch korrigieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
150
Q

Was ist ein Tertiärspeicher?

A

Das wesentliche Merkmal von Teritärspeichern ist, dass sich der Datenträger preiswert herstellen und leich vom Rechner entfernen lässt.
Sie eignen sich gut für den Transfer von Daten zwischen nicht vernetzten Rechnern.
Beispiele: Diskette, CD, DVD, USB-Sticks

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
151
Q

Was ist der Unterschied zwischen einem wahlfreien Zugriff und einem sequentiellen Zugriff?

A

sequentieller Zugriff:
Man kann nur auf die Blöcke direkt zugreifen, die sich gerade vor oder hinter dem Schreib-/Lesekopf befinden (vor/zurückspulen für Zugriff)

wahlfreier Zugriff:
Unter wahlfreiem Zugriff (englisch random access, auch „direkter Zugriff“, „Direktzugriff“) wird in der Informatik die Möglichkeit verstanden, in konstanter (oder unter-linearer) Zeit einen lesenden und/oder schreibenden Speicherzugriff auf ein beliebiges Element eines Datenspeichers oder einer Datenstruktur durchführen zu können.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
152
Q

Wie sieht die Speicherhierarchie aus?

A

CPU-Register
Cache
Primärspeicher (Haupspeicher, flüchtiger Speicher)
Sekundärspeicher (z.B. Magnetplatte, langfristige Speicherung)
Teritärspeicher (Medien wie CD, DVD, USB)

153
Q

Welche Eigenschaft hat die Speicherhirachie?

A

zwei Beziehungen:
1. Was im Primärspeicher keinen Platz findet, kommt in den Sekundärspeicher, was dort nicht hineinpasst steht im Teritärspeicher.

  1. Jede Speicherschicht fungiert als Cache für die Schicht unter ihr
154
Q

Wenn man über ein Ein-/Ausgabegerät spricht, meint man eigentlich ein virtuelles Gerät, warum?

A

Trennung von Hardware und Software

155
Q

Welche Teile hat ein virtuelles Gerät?

A

Gerätetreiber (Software, Teil des Betriebssystems)
Controller (elektronisch)
Gerät (mechanisch)

156
Q

Welche Aufgaben haben die einzelnen Teile eines virtuellen Geräts?

A

Gerätetreiber:
Die Anwendungsprogramme und andere Teile des Betriebssystems können nur über den Gerätetreiber auf das Gerät zugreifen.

Controller:
Der Gerätetreiber kommuniziert zur mit dem Controller, nicht mit dem Gerät. Zu diesem Zweck besitzt der Controller mehrere Register

157
Q

Was sind die Vorteile eines virtuellen Gerätes? Was ist der Vorteil des Schichtenmodells?

A

Abstraktion
Kapselung (Geheimnisprinzip)

Die Implementierung einer einzelnen Schicht ist verhältnismäßig einfach, weil nur die beiden Schnittstellen zur nächsthöheren und zur nächsttieferen Schicht realisiert werden müssen und im Innern der Schicht nur klar umrissene Teilaufgaben gelöst werden müssen.

158
Q

Wie kommuniziert die CPU mit einem Gerät?

A

Über den Controller, zwei Möglichkeiten:

  1. Für die Kommunikation mit dem Controller hat jedes seiner Register eine Portnummer als Adresse, mit der die CPU das Register ansprechen kann.
  2. speicherabgebildete Ein-/Ausgabe (memory-mapped I/O). Ein Teil des Hauptspeichers wird für die Speicherung von Inhalten der Register von Controller reserviert.
159
Q

Wie kommuniziert der Treiber mit dem Controller?

A

über die Register des Controllers:

  • Datenausgangsregister: Treiber schreibt Daten rein, die für Controller sind
  • Dateneingangsregister: Controller schreibt Daten rein, für Treiber
  • Statusregister: Treiber kann Zustand des Geräts abfragen
  • Kontrollregister: Treiber hinterlegt Befehle für den Controller
160
Q

Welche Register hat der Controller?

A

unter anderem

  • Datenausgangsregister Treiber schreibt - Controller liest
  • Dateneingangsregister: Controller schreibt - Treiber liest
  • Statusregister: Treiber kann Zustand gerät erfragen
  • Kontrollregister: Treiber hinterlegt Befehle an den Controller
161
Q

Was ist memory-mapped I/O?

A

Technik für die Kommunikation zwischen CPU und Controller, die speicherabgebildete Ein-/Ausgabe.

En Teil des Hauptspeichers wird für die Speicherung von Inhalten der Register vom Controller reserviert.

162
Q

Welche Möglichkeit hat die CPU, zu erfahren, ob ein z.B. Leseauftrag schon fertig ist?

A

Sie liest das Statusregister des Controllers aus

163
Q

Wie kann die CPU wissen, welcher z.B. Leseauftrag fertig ist?

A

Durch einen Lesebefehl im Statusregister des Controllers

164
Q

Was ist polling?

A

Abfragebetrieb, zyklische Abfrage

165
Q

Was ist der Nachteil der Polling-Technik?

A

busy waiting - viel CPU Zeit

166
Q

Was ist eine Hardware-Unterbrechung?

A

Unterbrechung, die druch ein externes Gerät verursacht wird (Auftrag ausgeführt, oder Fehler)
nicht reproduzierbar

167
Q

Wie funktioniert eine Unterbrechung?

A
  • CPU hat Eingang für Unterbrechungen
  • Jede Hardwarekomponente kann über Bus ein binäres Signal an diesen Eingang hiterlegen.
  • CPU entdeckt Unterbrechungssignal, und rettet den Inhalt ihres Befehlzählregisters (Adresse des nächsten auszuführenden Befehls) in Haupspeicher
  • CPU lädt Anfangsadresse der Prozedur zur Unterbechungsbehandlung (interrupt handler)
  • Interrupt handler stellt fest, welches Gerät Unterbrechung anfordert
  • Die Nummer des Geräts wird nun als Index für den Unterbrechungsvektor verwendet (array der Adressen)
  • hier wird die Startadresse der Unterbrechungroutine für das individuelle Gerät gefunden.
  • Adresse wird ins Befehlszählregister geladen und die Unterbrechungsroutine wird gestartet.

-> aktiviert immer das Betriebssystem bei Unterbrechung da Unterbrechungsvektor und Unterbrechungsroutinen teile des Betriebssystem sind

168
Q

Welche Funktionen hat der Unterbrechungsvektor?

A

ist ein array der Adressen. Mithilfe des Geräteindexes kann man die Startadresse der Unterbrechungsroutine des Geräts im Unterbrechungsvektor finden.

Da Unterbrechungsvektor Teil des Betriebssystems -> Aktivierung des Betriebssystems bei Unterbrechung

169
Q

Was macht eine Unterbrechungsroutine?

A

Die Unterbrechungsroutine hat die Aufgabe, den Unterbrechungswunsch des Geräts zu bearbeiten.

170
Q

Wie kann die CPU die entsprechende Unterbrechungsroutine finden?

A

Der Index des Geräts wird im Unterbrechungsvektor gefunden

171
Q

Welche Aufgabe hat das Betriebssystem bei einer Unterbrechung?

A

Die Unterbrechungsroutine und der Unerbrechungsvektor gehören zum Betriebssystem.

Dies stellt sicher, dass das Betriebssystem aktiviert wird, und somit die Kontrolle der CPU behält

172
Q

Warum muss der laufenden Prozess gerettet werden, bevor eine Unterbrechung bearbeitet werden soll?

A

Da die Unterbrechungsroutine in den das Befehlszählregister geladen wird, somit würde der laufende Prozess gelöscht werden und nach der Unterbrechung nicht mehr ausgeführt werden.

173
Q

Wie kann man mit mehreren Unterbrechungen umgehen?

A

hier gibt es zwei Möglichkeiten

  • der Unterbrechungseingang wird vorübergehend außer betrieb gesetzt, so dass weitere Unterbrechungssignale wirkungslos bleiben
  • Priorisierung der Unterbrechungen
174
Q

Polling ist ein aktives Warten und es ist ineffizient. Aber die CPU muss nach jeder Ausführung eines Befehls überprüfen, ob ein Unterbrechungssignal vorliegt. Ist das auch ein aktives Warten?
Was ist aber der Unterschied zu polling?

A

Es stimmt zwar, dass beim regelmäßigen Überprüfen des Unterbrechungseingangs ein Abfragebetrieb vorliegt; diese Abfragen erfolgen aber im Innern der CPU und benötigen deshalb viel weniger Zeit als das Lesen des Statusregisters eines Controllers. Denn selbst bei speicherabgebildeter Ein-/Ausgabe werden hierfür mehrere CPU-Befehle benötigt.

175
Q

Warum ist die Unterbrechung für ein Betriebssystem so wichtig?

A

Damit es die Kontrolle über die CPU behält

176
Q

Warum brauchen wir den Unterbrechungsmechanismus?

A

Damit das Betriebssystem aktiviert wird und damit die Kontrolle über die CPU übernimmt

177
Q

Welche Unterbrechungen gibt es?

A

Hardwareunterbrechung - nicht reproduzierbar

Softwareunterbrechung (Trap) reproduzierbar

178
Q

Was ist der Unterschied zwischen

Hardware-Unterbrechung und Software-Unterbrechung?

A

Hardware-Unterbrechung:
wird durch externes Gerät verursacht - nicht reproduzierbar

Software-Unterbrechung:
wird von einem gerade ausgeführten Programm verursacht - reproduzierbar

179
Q

Wie funktioniert ein Systemaufruf?

A
  • Systemaufruf führt trap aus - diese löst Unterbrechung aus
  • Befehlszähler und Regiserinhale werden gerettet
  • Routine des Betreibssystems wird für den übergebenen Parameter gestartet
  • Bei systemaufrufen werden meistens Daten an das aufrufende Programm zurückgegeben
180
Q

Welche Aufgaben der Betriebssysteme werden

durch den Unterbrechungmechnismus bewältigt?

A
  • Faires Scheduling (Jedem Prozess wird in endlicher Zeit Rechenzeit der CPU zugeteilt)
  • Ausnahmebehandlung
  • Speicherschutz
  • Systemaufruf
181
Q

Welche Zwecke hat die Unterbrechung?

A
  • Speicherschutz
  • Ausnahmebehandlung
  • Wechsel in Benutzer- Systemmodus
  • Kommunikation mi IO-Geräten
  • Scheduling
182
Q

Was ist der Unterschied zwischen der programmierten Ein-/Ausgabe und
DMA? Wie arbeiten die zwei Techniken?

A

unterbrechungsgesteuerte Ein-/Ausgabe:
Controller schreibt jeweils ein Wort in Dateingangsregister und löst Unterbrechung aus.
Gerätetreiber wird gestartet und veranlasst, das Wort von der CPU in den Hauptspeicher geschrieben wird
-> CPU wird bei jedem Wort unterbrochen

DMA, direkter Speicherzugriff:
spezieller DMA-Controller, der selbstständig über den Bus Daten in den Hauptspeicher übertragen kann, ohne die CPU zu bemühen.

183
Q

Warum kann DMA die CPU stören?

A

. Auch bei Einsatz des DMA-Verfahrens kann es zu Verzögerungen in der Arbeit der CPU kommen, weil der DMA-Controller während der Übertragung den Bus besetzt hält, die CPU also nicht auf den Hauptspeicher zugreifen kann.

184
Q

Wie viele Register muss der DMA haben, damit er seine Aufgabe
machen kann?

A
  • Speicheradressregister
  • Bytezählregister
  • ein oder mehrere Kontrollregister
185
Q

Wie funktioniert ein Booting-Vorgang?

A

Der Ur-Lader (spezieller Teil des Hauptspeicher) lädt zunächst den eigentlichen Lader von der Magnetplatte.
Der Lader wird nun gestartet und lädt die wesentlichen eile des Betriebssystems in den Hauptspeicher

186
Q

Was ist der Unterschied zwischen System- und Benutzermodus?

A

Alle Anwendungsprogramme laufen im Benutzermodus.

privilegierte Maschinenbefehle können nur im Systemmodus ausgeführt werden

187
Q

Wozu ist es gut, dass es System- und Benutzermodus gibt?

A

Schutz von Speicher und Geräten

188
Q

Wann findet die Umschaltung der Modi statt?

A

Wenn eine Unterbrechung bei einem Zugriff auf Haupt- oder Sekundärspeicher ausgelöst wird.
die privilegierte Prodzedur zur Unterbrechungsbehandlung schaltet den Prozessor in den Systemmodus

189
Q

Welche Beziehung hat eine Unterbrechung mit einem Moduswechsel?

A

Wenn eine Unterbrechung auftritt, schaltet die priviligierte Prozedur zur Unterbrechungsbehandlung den Przessor in den Systemmodus und startet dann die entsprechende Unterbrechungsroutine

190
Q

Wie wird der Schutz eines Adressraums eines Prozesses realisiert?

A

Bevor ein Programm gestartet wird, weist ihm das Betriebssystem einen Adressraum zu.
Programm hat nur auf seinen eigenen Adressraum Zugriff.
Wann immer das Programm zur Laufzeit versucht, auf eine Speicherzelle zuzugreifen, wird zunächst überprüft, ob die angegebene Adresse im erlaubten Bereich liegt. - nur dann Speicherzugriff, sonst Softwareunterbrechung

191
Q

Was ist eine relative Adresse?

A

Wenn ein Programm vom Compiler in Maschinensprache übersetzt wird, steht noch nicht fest, wo im Hauptspeicher der Adressraum des Programms später liegen wird.
Der Compiler kann deshalb an die Befehle und die Daten zunächst eine relative Adresse vergeben

192
Q

Welche Vorteile haben relative Adressen?

A

Wenn ein Programm vom Compiler in Maschinensprache übersetzt wird, steht noch nicht fest, wo im Hauptspeicher der Adressraum des Programms später liegen wird. Der Compiler kann deshalb an die Befehle und die Daten zunächst nur relative Adressen vergeben

193
Q

Was ist eine absolute Adresse?

A

Die absolute Adresse berechnet sich nach der Formel

absolute Adresse = (Basisregister)+relative Adresse und wird erst zur Laufzeit vergeben

194
Q

Welche Adresse kennen Prozesse?

A

die logische Adresse, da das Betriebssystem die physische Adresse erst zur Laufzeit berechnet, uns sich die physische Adresse auch ändern kann

195
Q

Was ist ein Prozess?

A

Ein Prozess ist ein Programm in Ausführung

196
Q

Was ist der Unterschied zwischen Programm und Prozess?

A

Ein Programm ist eine den Regeln einer bestimmten Programmiersprache genügende Folge von Anweisungen.
Ein Prozess ist ein Programm in Ausführung

197
Q

Was gehört zu einem Prozess?

A
  • Programmstück
  • Programmkontext bestehend aus
    • Registerinhalten
    • Befehlszähler
    • Grenzen des Adressraums
    • Prozessnummer
    • Priorität
198
Q

Welche Informationen sind wichtig für einen Prozess?

A
  • Adressraum
  • Registerinhalt
  • Priorität
  • Zustand
  • Zugriffsrechte
  • Prozess-ID
  • Befehlszähler
199
Q

Wo werden die Informationen gespeichert, die für einen Prozess wichtig sind?

A

Prozesskontrollblock

200
Q

Welche Zustände hat ein Prozess?

A
  • erzeugt
  • bereit
  • blockiert
  • rechnend
  • beendet
201
Q

Zeichnen Sie das Prozesszustandübergangsdiagramm!

Erklären Sie die Zustände und die Übergänge!

A

Nach der Erzeugung eines Prozesses, erhält er vom Betriebssystem die benötigten Ressourcen, wie z.B. einen Speicherbereich, den Prozesskontext und den PCB zugeteilt. Nun ist der Prozess bereit für die Bearbeitung und er geht in den Zustand bereit. Bei Einprozessorsystemen ist genau ein Prozess rechnend. Jeder andere existierende Prozes ist entweder bereit und bewirbt sich mit den übrigen bereiten Prozessen um die Zuteiltung der CPU oder er ist blockiert (wartet auf E/A oder ein bestimmtes Ereignis).

202
Q

Was ist die Ursache, dass ein Prozess den Zustand wechselt?

A

erzeugt->bereit: wenn er die benötigten Resourcen vom Betriebssystem erhält
bereit -> rechnend: das Programm des Prozessors wird gerade von der CPU ausgeführt
bereit -> blockiert: wartet auf Ein-/Ausgabeanforderung oder auf ein bestimmtes Ereignis
rechnend -> beendet: wenn fertig
rechnend -> bereit: Prozess gibt CPU ab/CPU wird entzogen

203
Q

Bei einem Einprozessorsystem läuft zu jedem Zeitpunkt genau ein Prozess.
Warum laufen die Prozesse trotzdem scheinbar parallel?

A

Der Eindruck von Gleichzeitigkeit entsteht dadurch, dass der Scheduler in schnellem Wechsel jedem bereiten Prozess ein gewisses Quantum an Rechenzeit zukommen lässt

204
Q

Was macht der Scheduler?

A

.Der Scheduler legt die Strategie für die Rechenzeitvergabe fest

205
Q

Wer entscheidet, welcher Prozess vom

Zustand bereit in den Zustand rechnend geht?

A

Welcher der bereiten Prozesse als nächster rechnen darf, entscheidet der CPU-Scheduler

206
Q

Warum geht ein Prozess vom Zustand rechnend in den Zustand bereit?

A

Er muss irgendwann die CPU wieder abgeben

207
Q

Welche zwei Möglichkeiten gibt es, dass ein Prozess vom Zustand rechnend in den Zustand bereit geht?

A
  • Prozess gibt CPU freiwillig ab -> kooperativ

- CPU wird dem Prozess entzogen -> präemptiv

208
Q

Warum geht ein Prozess nicht vom Zustand blockiert in den Zustand rechnend?
Was kann die Konsequenz sein, wenn das so wäre?

A

der Prozess muss sich wieder um die CPU bewerben.

Wenn der Prozess direkt in den Zustand rechnend gehen würde, hätte der Scheduler nicht mehr die Kontrolle

209
Q

Welche Scheduling-Algorithmen gibt es?

A

nicht präemptiv:

  • FCFS (first-come, first-served)
  • SJF (Shortest job firs)

präemtiv

  • Round Robin: Jeder Prozess im Zustand bereit bekommt vom Scheduler Zeitscheibe derselben Dicke, Prozesse werden reihum bedient
  • Verbesserung Round Robin: Zeitscheibe hängt von Priorität ab
  • Round Robin + dynamische Vergabe der Priorität
210
Q

Wie funktioniert die SJF-Strategie?

A

die Prozesse im Zustand bereit werden in der Reihenfolge aufsteigenden Rechenzeitbedarfs bearbeit

211
Q

Welche theoretische Eigenschaft hat die SJF-Strategie?

A

sehr effizient, wenn die benötigte Rechenzeit voraussagbar ist

212
Q

Für welchen Betrieb ist die SJF-Strategie geeignet?

Warum?

A

Stapel- oder Batch-Betrieb.

keine Interaktion mit dem Benutzer und sind regelmäßig auszuführen, so dass man ihre Laufzeiten in etwa kennt

213
Q

Welche Strategie benutzt man für einen Time-Sharing-Betrieb?

A

Round Robin

214
Q

Wer macht der Prozesswechsel?

A

Der Dispatcher

215
Q

Wie wird ein Prozess gestoppt, wann darf er weiter rechnen?

A
  • Der Zeitgeber (Timer) wacht darüber, dass der Prozess sein Quantum nicht überschreitet
  • Die Dicke der zugewiesenen Zeitscheibe wird in einem Register des Zeitgebers gespeichert
  • Nach jeder verstrichenen Zeiteinheit wird der Inhalt dieses Registers um eins verringert
  • Ist der Wert bei null angekommen, so ist die zugewiesene Zeitscheibe abgelaufen, und der Zeitgeber löst eine Unterbrechung der CPU aus.
  • Der Prozess wird unterbrochen und wird wieder in die Menge der bereiten Prozesse eingereiht
216
Q

Welche Hardware wird für den Prozesswechsel eingesetzt?

A

Timer=Zeitgeber

217
Q

Warum braucht das Betriebssystem einen Timer?

A

Der Timer erlaubt dem Betriebssystem, Aufgaben regelmäßig zu erledigen. Dazu werden laufende Programme unterbrochen.

218
Q

Welche Aufgaben hat der Dispatcher?

A

Der Dispatcher führt den eigentlichen Kontextwechsel (Umschalten zwischen Prozessen) durch

219
Q

Was macht genau der Dispatcher?

A

Im Rahmen der Prozessverwaltung eines Betriebssystems dient der Dispatcher dazu, bei einem Kontextwechsel dem derzeit aktiven Prozess die CPU zu entziehen und anschließend dem nächsten Prozess die CPU zuzuteilen

220
Q

Beschreiben Sie den Vorgang eines Prozesswechsels

A

Timer: Die Dicke der zugewiesenen Zeitscheibe (Quantum) wird in einem Register des Zeitgebers gespeichert, nach jeder verstrichenen Zeiteinheit wird der Inhalt des Registers um eins verringert
Unterbrechung: Ist der Wert bei 0 angekommen, löst Timer eine Unterbrechung aus. (Kontext des Prozesses wird gerettet)
Unterbrechungsvektor: Mithilfe des Unterbrechungsvektors wird die Unterbrechungsroutine des Prozesses gestartet.
Unterbrechungsroutine: arbeitet den Auftrag (bis zur nächsten Unterbrechung) ab.
Scheduler: legt die Strategie für die Rechenzeitvergabe fest
Dispatcher: führt den eigentlichen Kontextwechsel durch

221
Q

Wie groß sollte man eine Zeitscheibe wählen?

A

zu dick: Prozesse mit großem Ein-/Ausgabebedarf können von lagen Zeitscheiben nicht profitieren
zu dünn: CPU verbringt zuviel Zeit für unproduktive Kontextwechsel

222
Q

Was ist das Problem mit zu großer oder zu kleiner Zeitscheibe?

A

zu dick: Prozesse mit großem Ein-/Ausgabebedarf können von lagen Zeitscheiben nicht profitieren
zu dünn: CPU verbringt zuviel Zeit für unproduktive Kontextwechsel

223
Q

Wie wird der Zugriff auf ein Gerät im Time-Sharing-Betrieb vom Betriebssystem organisiert?

A

Im Time-Sharing-Betrieb kann es vorkommen, dass viele Prozesse kurz nacheinander auf ein Gerät zugreifen wollen. Deshalb wird zu jedem Speichergerät eine eigene Geräte-Warteschlange eingerichtet, an die der E-/A-Teil des Betriebssystems Aufträge anhängen kann, jeder Auftrag wird mit der Nummer des Prozesses versehen. Der Gerätetreiber holt die Aufträge einzeln aus der Warteschlange ab und führt sie dem Controller zu.

224
Q

Wie funktioniert es mit dem Drucken?

A

Bei Druckern werden die Ausgaben zunächst nach Prozessen getrennt in einer Spooler-Datei gesammelt, die erst dann gedruckt wird, wenn der Prozess seine Druckausgabe abgeschlossen hat.

225
Q

Was macht ein Programm, wenn es einen Block auf der Festplatte lesen möchte?
Wie wird eine read-Operation ausgeführt?

A

https://www.dropbox.com/s/ae03uwza5jub4w8/MM_Systemaufruf_read.jpg?dl=0

226
Q

Wir nehmen an, dass ein Programm einen read(f,b)-Befehl bei dem Datensatz b von der Datei f ausführt.
Wie kann dieser Lese-Befehl beim Gerätetreiber und Controller aussehen?

A

Der Gerätetreiber kennt nur die logische Blocknummer,

der Controller kennt nur die Zylinder-, Platten- und Sektornummer

227
Q

Wie sieht die Struktur des Betriebssystems UNIX aus?

A

Schichtenmodel:
Benutzerschnittstelle: Benutzer kann mithilfe der Benutzerschnittstelle Dienstprogramme (Shell, Editor, Compiler) auf das Betriebssystem zugreifen
oder
Programmierschnittstelle: Anwendungsprogramme greifen auf das Betriebssystem mithilfe der Programmierschnittstelle zu

Die Schnittstelle zum Betriebssystem ist definiert durch Systemaufrufe (open, close, read, write, fork)

Betriebssystem kommuniziert dann mit der Hardware (CPU, IO-Geräte, Hauptspeicher,…)

228
Q

Was bieten die Programmierschnittstelle und Benutzerschnittstelle an?

A

Programmierschnittstelle:
Stellt die Dienste des Betriebssystems für die Programme zur Verfügung (Systemaufrufe)
Benutzerschnittstelle:
Gesamtheit aller Systemprogramme oft mit GUI realisiert

229
Q

Welche Hardware-Komponente unterstützt das Betriebssystem beim Speicherschutz?

A

Die MMU Memory Management Unit, enthalten in der CPU, ist für die Umrechnung der logischen in die physischen Adressen zuständig

230
Q

Welche Adresse enthält das Basisregister?

A

Das Basisregister enthält die kleinste erlaubte physische AdresseDas Basisregister enthält die kleinste erlaubte physische Adresse

231
Q

Warum müssen die logischen Adressen kleiner sein als der Inhalt des Grenzregisters?

A

Der Speicherschutz wird so gewährleistet und es wird gleichzeitig erreicht, dass die Abbildung auf die physischen Adressen flexibel ist, das heißt, dass Programme relokierbar bleiben

232
Q

Wie ist das Vorgehen, wenn der Hauptspeicher zu klein wird, um alle Adressräume aufzunehmen?

A

In diesem Fall werden einige bereite oder blockierte Prozesse mit einem Abzug ihres Adressraums in den Externspeicher ausgelagert.

233
Q

Was entscheidet über die Auslagerung eines Prozesses in den Externspeicher?

A

Der Langzeit-Scheduler

234
Q

Kann einen ausgelagerten Prozess wieder rechnen lassen?

A

Nein- Bevor ein ausgelagerter Prozess weiterreichten kann, muss er erst wieder eingelagert werden

235
Q

Was ist swapping?

A

Der Vorgang des Aus- und Einlagerns von Prozessen

236
Q

Muss ein Prozess beim Einlagern wieder exakt an die selbe Stelle im Hauptspeicher, an der er vorher gestanden hat, geschrieben werden?

A

Nein- Beim Einlagern ist es dank der Relokierbarkeit nicht notwendig, den Prozess an exakt dieselbe Stelle im Hauptspeicher zu schreiben, an der er vorher gestanden hat

237
Q

Was ist externe Fragmentierung?

A

Durch das ein und Auslagern der Prozesse ändert sich ständig die Menge der existierenden Prozesse. So entstehen zwischen den Adressräumen der Prozesse im Hauptspeicher zwangsläufig Lücken. Dieses Phänomen nennt man externe Fragmentierung.

238
Q

Welche Strategien gibt es, um die externe Fragmentierung auszugleichen?

A
  1. Kompaktifizierung:
    Die im Hauptspeicher eingelagerten Prozesse werden hin und wieder zusammen geschrieben - mit hohem Aufwand verbunden
  2. Segmentation:
    Jedem Prozess werden mehrere zusammenhängende Segmente im Hauptspeicher zugewiesen, die unterschiedlich lang sein dürfen.
  3. Paging:
    Der Hauptspeicher wird in viele kleine Stücke gleicher Größe aufgeteilt und jedem Prozess werden die erforderliche Anzahl solcher Stücke zugewiesen. Diese Stücke brauchen dabei im Hauptspeicher nicht hintereinander zu liegen.
239
Q

Was versteht man unter paging?

A

Eine Lösung für die externe Fragmentierung:
Man teilt den logischen Speicher in gleichgroße Stücke auf, die Seiten (Pages) genannt werden. Der physische Speicher wird in Seitenrahmen (frames) aufgeteilt. Eine Seite passt genau in einen Seitenrahmen. Die Seitentabelle (page table) legt fest, welche Seite in welchem Seitenrahmen steht und liefert damit eine Abbildung vom logischen auf den physischen Speicher.

240
Q

Wo befindet sich die Seitentabelle (paging)?

A

Die Seitentabelle ist Teil des Prozesskontextes.

241
Q

Was ist die interne Fragmentierung?

A

Im Falle von paging, kann es vorkommen, dass ein Prozess eine Seite nur zum Teil beschreibt, dann bleibt dieser „Seitenrest“ ungenutzt.

242
Q

Welche Auswirklungen hat es, wenn man die Seiten sehr groß oder sehr klein auslegt (paging)?

A

Wenn die Seiten des Hauptspeichers sehr groß sind, werden zwar die Seitentabellen der Prozesse kürzer, aber die interne Fragmentierung steigt. Sind die Seiten dagegen sehr klein, so werden die Seitentabellen lang, und dadurch sinkt die Effizienz der Speicherzugriffe.

243
Q

Da die Seitentabellen oft recht groß werden, schnelle Hardwareregister jedoch teuer sind, hält man oft die gesamte Seitentabelle im Hauptspeicher und sieht im Prozessor einen Registersatz als Cache-Speicher für einige Einträge der Seitentabelle vor. Angenommen, die Zugriffszeiten für einen solchen Cache und den Hauptspeicher betragen 20 ns und 100 ns. Um wieviel Prozent steigt die durchschnittliche Zeit für einen Zugriff gegenüber einem System ohne Paging, wenn die Trefferrate für den Cache 80% (98%) beträgt?

A

Ein Speicherzugriff dauert 120 ns, wenn sich die Seitenrahmennummer im Cache befindet:
20 ns für den Cachezugriff plus 100 ns für den Zugriff auf das Datum im Hauptspeicher. Liegt die Seitenrahmennummer nich Tim Cache, so muss diese erst aus dm Hauptspeicher gelesen werden, was die Zugriffzeit um 100 ns auf 220 ns erhöht. Natürlich muss die Seitenrahmennummer noch in den Cache geschrieben werden. Also beträgt die Zugriffszeit insgesamt 240 ns.
Bei einer Trefferrate von 80% kann die Seitenrahmennummer mit einer Wahrscheinlichkeit von 0.8 aus dem Cache gelesen werden, mit einer Wahrscheinlichekit von 0.2 muss aus dem Hauptspeicher gelesen werden. Insgesamt ergibt sich für die durchschnittliche Zugriffszeit

0.8120ns+0.2240ns =122.4 ns

Hier also eine Zunahme von 22,4%

244
Q

Ist es möglich, dass mehrere Prozesse auf einen gemeinsamen Speicherbereich zugreifen können?

A

Ja, man kann auch „öffentliche“ Bereiche einrichten, die von mehreren Prozessen gemeinsam benutzt werden können. Es genügt hierfür, bei jedem Segment oder jeder Seite zu vermerken, welche Prozesse Schreib- oder Leserecht daran haben.

Bspl:
Das Code-Segemnt eines Pascal-Compilers kann von mehreren Anwendern gleichzeitig benutzt werden, ohne dass jeder Prozess eine eigene Kopie des Compilerprogramms benötigt. Natürlich benötigt jeder Prozess sein eigenes Datensegment und Stacksegment. Außerdem kann man gemeinsame Speicherbereiche für die Kommunikation zwischen Prozessen benutzen.

245
Q

Was ist ein virtueller Speicher (Virtual Memory)

A

Der virtueller Speicher kombiniert zwei Ansätze:

  1. Die Einteilung des physischen Speichers in Seiten
  2. die Idee, nur die Informationen im Hauptspeicher zu halten, die gerade benötigt werden.
246
Q

Was sind die Vorteile bei einem virtuellen Speichers?

A
  • Es können beliebig große logische Adressräume verwendet werden, ohne auf physische Grenzen achten zu müssen
  • Ein breiter Prozess wird rechnend gemacht, auch wenn nicht alle seine Seiten in Seitenrahmen des Hauptspeichers stehen. Die fehlenden Seiten stehen im Sekundärspeicher und sind in der Seitentabelle entsprechend markiert.
247
Q

Wie wird ein Zugriff auf eine Seite, die nicht im Hauptspeicher steht genannt, was passiert dann?

A

Seitenfehler
In diesem Fall wird eine Software-Unterbrechung (trap) ausgelöst. Die fehlende Seite wird von der Festplatte gelesen, danach kann der Prozess weiterreichten.

Diese Technik wird als demand paging bezeichnet

248
Q

Wenn für einen Prozess nur eine bestimmte Anzahl von Seitenrahmen reserviert sind, kann es beim Einlesen einer Seite vorkommen, dass kein Rahmen mehr frei ist.

Wie kann dieses Problem gelöst werden?

A

Es muss eine andere Seite in den Sekundärspeicher ausgelagert werden. Für die Wahl der auszulagernden Seite gibt es verschiedene Strategien.

249
Q

Was versteht man unter „Buddy Strategie“

A

Der Hauptspeicher besteht aus zusammenhängenden Stücken, die jeweils eine Zweierpotenz viele Seiten enthalten. Ein Stück ist entweder belegt oder frei. Wenn der Allokierer einen zusammenhängenden Bereich einer bestimmten Länge benötigt, nimmt er das kleinste freie Stück, das mindestens die erforderliche Länge aufweist.
Wenn es mehr als doppelt so lang ist wie der benötigte Bereich, so wird es halbiert, das eine halbe Stück wird benutzt, das andere - sein Buddy - bleibt frei. Wann immer ein Prozess terminiert und dadurch zwei bündiges frei werden, so Werden Sie wieder verschmolzen.

250
Q

Was versteht man unter „kritischer Abschnitt“?

A

In der Informatik dient ein kritischer Abschnitt (engl. ‚critical section’) zur Kennzeichnung einer Ansammlung von Programmanweisungen zum Zwecke der Ablaufsteuerung. In ihm darf sich zu einer Zeit nur ein einziger Prozess/Thread aufhalten

251
Q

Wie vermeidet man, dass zwei Prozesse zu selben Zeit in ihren kritischen Abschnitt eintreten?

A

Die Prozesse müssen synchronisiert werden.

252
Q

Welche Möglichkeiten gibt es um Prozesse zu syncronisieren?

A
(Wiki)
Lösungskonzepte für das Problem des Kritischen Abschnitts:
Semaphor
Mutex
Lock
Monitor
253
Q

Wie funktioniert das Konzept des Semaphors?

A

Ein Semaphor S kann als abstrakter Datentyp spezifiziert werden. Der Zustand von S besteht aus der Anzahl freier Betriebsmittel, gespeichert in einer Zählervariablen count und eine Prozessmenge W. Falls count ≠ 0, so ist W leer, ansonsten enthält W alle Prozesse, die sich bisher vergeblich um ein Betriebsmittel bemüht haben und darauf warten, dass wieder eines frei wird.

Auf S sind zwei Operationen definiert, down und up.
Down: wird aufgerufen wenn ein Prozess ein Betriebsmittel benutzen will count-1
Up: wird aufgerufen wenn ein Prozess sein Betriebsmittel wieder freigibt.
Count+1

254
Q

Mit welchem Befehl kann man sich in Unix eine Liste aller existierenden Prozesse und ihren Ressourcen Verbrauch ausgeben lassen?

A

Mit dem Befehl top

255
Q

Was sind leichtgewichtige Prozesse (Threads)?

A

Wiki:
Ein (Kernel-)Thread ist ein sequentieller Abarbeitungslauf innerhalb eines Prozesses und teilt sich mit den anderen vorhandenen Threads (multithreading) des zugehörigen Prozesses eine Reihe von Betriebsmitteln:
Mehrere leichtgewichtige Prozesse (LWPs) teilen sich ein Programm, einen Adressraum und dieselben Dateien. Jeder LWP hat aber seine eingeben Registerinhalte - insbesondere seinen eigenen Befehlszähler und Stapel.

256
Q

Wie bezeichnen wir eine Gruppe von leichtgewichtigen Prozessen?

A

Task (Aufgabe)

257
Q

Schlage eine Anwendung vor, die von der Benutzung von Threads profitiert und eine, bei der dies nicht der Fall ist

A

Anwendungen für Threads sind z.B.
- einfache Parallelisierung von Programmen auf Mehrprozessorrechnern. Verschiedene Threads können jeweils einem eigenen Prozessor zugewiesen werden.

  • Gerätetreiber für langsame Geräte. Der Prozessor im Controller kann schon die nächste Anfrage (Thread) bearbeiten, falls der Lese/Schreibkopf für die vorherige Anfrage positioniert wird, d.h. Die vorherige Anfrage (Thread) im Zustand blockiert ist

_ verteilte (Client/Server) Systeme. Ein Server bietet seine Dienste verschiedenen Clients an und nutzt dabei für jeden Client einen Thread.

Threads sind immer dann ungeeignet, wenn Daten lokal manipuliert werden müssen. Eine andere Art von Gegenbeispielen sind selbstmodifizierende Programme, die bei der Ausführung ihr eigenes Codesegement verändern. Solche Programme kann man z.B in Lisp oder Smalltak schreiben.

258
Q

Wieviele Möglichkeiten gibt es, leichtgewichtige Prozesse zu implementieren?

A

2 Möglichkeiten:
1. Kernel-Threads werden im Betriebssystemkern realisiert.

  1. Benutzer-Threads hingegen im privaten Speicherbereich eines Prozesses.

Es gibt ebenso Mischformen aus beiden Implementierungen.

259
Q

Was ist der Unterschied zwischen Kernel-Thrads und Benutzer-Treads?

A

Bei einer Implementierung als Kernel-Threads im Betriebssystemkern werden die leichtgewichtigen Prozesse genau wie die schwergewichtigen behandelt. Insbesondere wird jeder Prozesswechsel und das Scheduling vom Kern ausgeführt. Diese Situation liegt zum Beispiel in Linux vor. Bei der Generierung eines leichtgewichtigen Prozesses verwendet man nicht den Befehl fork, sondern Clown. Hierdurch wird ein Kindprozess erzeugt, der nicht nur sein Programm sondern auch seinen Speicherbereich vom Erzeugerprozess erbt.

Benutzer-Trhreds hingegen werden mit Hilfe von Bibliotheksprozeduren auf Benutzerebene implementiert. Wann immer ein LWP einen Systemaufruf ausführen möchte - zum Beispiel eine Semaphoroperation- so ruft er statt dessen eine Bibliothesprozedur auf. Sie entscheidet, ob der Leichtgewichtige Prozess suspendiert werden muss. Wenn das der Fall ist, vertauscht die Bibiliotheksprozedur die aktuellen Registerinhalte mit denen eines anderen bereiten LWPs, ohne dass der Betriebssystemkern involviert wird. Das Betriebssystem weiß also gar nichts von der Existenz der leichtgewichtigen Prozesse und behandelt den gesamten Task wie einen einzigen schwergewichtigen Prozess. So ergeben sich sehr kurze Umschaltzeiten beim Wechsel zwischen den leichtgewichtigen Prozessen. Außerdem lässt sich das Scheduling der LWPs bei diesem Ansatz von Benutzer steuern.

260
Q

Welchen Nachteil haben Benutzer-Threads gegenüber Kernel-Threads?

A

Wenn ein leichtgewichtiger Prozess einende Tasks eine blockierenden Systemaufruf durchführt, wird der gesamte Task blockiert. Bei einer Implementierung leichtgewichtiger Prozesse im Betriebssystemkern könnte dagegen jetzt ein anderer LWP desselben Tasks rechnend gemacht werden.

261
Q

Welche Art der Implementierung leichtgewichtiger Prozesse ist beim Dateiserver vorzuziehen?

A

Beim Dateiserver macht die Verwendung leichtgewichtiger Prozesse nur Sinn, wenn sie im Betriebssystemkern implementiert werden. Denn nahezu jeder Systemaufruf dient der Ein-/Ausgabe und ist somit blockierend. Bei einer Implementierung der LWPs mit Bibliotheksprozeduren auf Benutzerebene wäre dann immer der gesamte Server blockiert.

262
Q

Angenommen Task T1 erhält nur einen leichtgewichtigen Prozess, und Task T100 enthält 100 LWPs. Wieviel CPU-Zeit entfällt bei den beiden Implementierungsarten auf diese Tasks, wenn wir round-Robin-Scheduling voraussetzen.

A

Bei Implementierung leichtgewichtiger Prozesse im Kern werden alle LWPs gleich behandelt, hier enthält also Task T100 einhundertmal so viel Rechenzeit wie Task T1. Wenn aber die leichtgewichtigen Prozesse auf Benutzerebene implementier sind, werden die beiden Tasks als schwergewichtige Prozesse angesehen und gleich behandelt. Hier bekommen beide gleich viel CPU-Zeit. Wie die zugewiesene Rechenzeit innerhalb von T100 an die 100 LWPs verteilt wird, hängt vom Scheduling auf Benutzerebene ab.

263
Q

Beschreibe was eine Datei ist.

A

Eine Datei ist eine Folge von Datensätzen, die zusammengehörige Information enthalten.

264
Q

Mit welchem Befehl kann man sich in Unix den nNamen einer Datei ausgeben, in dem man sich befindet?

A

PWD (print working directory)

265
Q

Mit welchem Befehl kann man sich in Unix die Objekte ausgeben lassen, die im aktuellen Verzeichnis enthalten sind?

A

Mit dem Befehl ls.

266
Q

Welche Ausgabe erzeugt der Befehl ls-ls?

A

Eine Liste des aktuellen Verzeichnisses mit folgenden Attributen:

  • Größe in Blöcken
  • Eine Kombination:
    erste Buchstabe „d“= Directory „-„ = Datei;
    Folgende 9 Buchstaben: beschreiben die Zugriffsberechtigungen für die verschiedenen Benutzerklassen in der Reihenfolge:
    rwxrwxrwx
    u g o
  • Anzahl der Verweise auf das Objekt
  • Größe des jeweiligen Objekts
  • letzter schreibender Zugriff
  • Objektname
267
Q

Übungsaufgabe 2.10.
Können Sie bei diesem Beispiel die Blockgröße in Byte bestimmen? Wie erklären sie sich die Abweichungen?

Block Größe in Bytes
8 4038
60 29718
4 1730

A

Teilt man die für die ersten drei Dateien jeweils die Größe in Byte durch die Größe in Blöcken, so ergeben sich die Quotienten 504,75, 495,17 und 432,5. Geht man davon aus, dass die Blockgröße in Byte eine Zweierpotenz ist, so kommt nur 512 in Frage. Die Abweichungen der Quotienten sind dann durch interne Fragmentierung erklärbar. Der letzte Block ist nicht vollständig belegt. Betrüge aber die Blockgröße 1024 Byte, so wären zum Beispiel bei der 3. Datei 4x1024-173 = 2366 Bytes ungenutzt, also mehr als zwei Blöcke. Das ist bei einem sparsam wirtschaftenden Dateisystem unmöglich.

268
Q

Wie werden in Unix die Zugriffsrechte auf eine Datei oder ein Verzeichnis festgelegt?

A

Es werden die Systembenutzer in drei Klassen unterteilt:
User -> Eigentümer des Objekts
Group -> Arbeitsgruppe, der der User angehört
Other -> alle anderen

Außerdem wird zwischen den Rechten unterschieden:
Read: Lesen
Write: Schreiben und damit auch löschen
Execute: Ausführen

Die Rechte können im aktuellen Arbeitsverzeichnis verwendet werden.

269
Q

Übungsaufgabe 2.11
Kann Benutzer Müller die Datei flip editieren, wenn Müller und Fischer Mitglieder der Gruppe bteam sind?

..-rw-r- - - - - ..Fischer.. bteam..flip

A

User Fischer darf lesen und schreiben, aber nicht ausführen
Gruppe bteam darf nur lesen

Da Müller der Gruppe bteam angehört, darf er nur lesend auf die Datei zugreifen, jedoch nicht schreibend oder ausführend.

270
Q

Was ermöglicht der Befehl Chmod g+w myprogram?

A

Ein Nutzer kann so allen Mitgliedern der Arbeitsgruppe am Programm myprogram mitzuschreiben.

Chmod= Change Mode g = Gruppe +w Schreibwichte hinzufügen
-w Schreibrechte entfernen

Die Rechte kann nur der Eigentümer des Objekts oder ein Superuser ändern.

271
Q

Übungsaufgabe 2.12.

Was bewirkt der Befehl chmod go+rw entwurf.tex?

A

Allen Nutzern (Gruppe und Others) wird auf Entwurf.tex ein lese und Schreibrecht zugeteilt

272
Q

Wie ist eine Datei aus physischer Sicht aufgebaut?

A

Während eine Datei sich aus logischer Sicht als eine Folge von Datensätzen darstellt, ist sie aus physischer Sicht eine Folge von gleich großen Blöcken. Auf der Magnetplatte wird jeder Block mit Zusatzinformation versehen und in einem Sektor gespeichert.

273
Q

Weswegen ist es wünschenswert, die Blöcke einer Datei möglichst hintereinander auf der Platte zu speichern?

A
  • Bei sequentiellem Zugriff auf mehrere aufeinander folgende Blöcke wird dadurch die Zeit für die Bewegung der Schreib-/leseköpfe minimiert.
  • Bei wahlfreiem Zugriff auf einzelne Blöcke kann man leicht die Blocknummern berechnen: Wenn der i-te Block der Datei gelesen werden soll, und die Datei den Block b beginnt, so muss der Gerätetreiber einen Leseauftrag für den Block mit der Nummer b+1 erhalten.
274
Q

Werden heutzutage Dateien zusammenhängend gespeichert

A

Nein - dies führt zum Problem der externen Fragmentierung. Eine Kompaktivizierung ist ineffizient.
Die Blöcke werden einzeln gespeichert, wo gerade Platz frei ist.

275
Q

Was ist FAT?

A

FAT: file-allocation table:

Eine Liste die, die physischen Blockadressen von Datei-Blöcken verkettet.

276
Q

Übungsaufgabe 2.14
Wieviel Platz belegt die file-allocation table einer Partition von 32 MByte bei einer Blockgröße von 512 Byte? Können Sie eine allgemeine Formel aufstellen die den Platzbedarfs der FAT in Blöcken angibt?

A

Eine Partition der Größe 32 MByte = 2^25 Byte besteht aus 2^16 Blöcken zu 512 = 2^9 Byte, eine Blockadresse ist also 16 Bit lang. Die FAT hat somit 2^16 Einträge der Länge 2^4 Bit und belegt dann 2^20 Bit = 128 KByte, entsprechend 256 Blöcken. Allgemein gilt: Hat die Partition b Blöcke, so ist eine Blockadresse log2b Bits lang, ein Block mit B Bits kann also
B/log2b
Viele Adressen enthalten. Demnach entfallen b x (log2b/B) Blöcke auf die file-allocation table. In unserem Beispiel ist log2b = 16 und B =2^12, also
B/log2b=2^8

277
Q

Wie werden in Unix Dateien verwaltet?

A

Unix verwendet eine Variante des Indexprinzips.

Für jede Datei und für jedes Verzeichnis gibt es eine Struktur die als inode (Index-Knoten) bezeichnet wird.

Am Anfang eines inode stehen die Attribute des Objekts (Zugriffsrechte, Eigentümer, Gruppe, Zeitstempel Größe, Anzahl der Verweise,…) Es folgen die physischen Adressen der ersten 12 Blöcke der Datei.
Dann kommt die Adresse eines Blocks, der die Adressen der nächsten logischen Dateiblöcke enthält - ein einfach-indirekter Index. Daran schließen die Adressen eines zweifach-indirekten und schließlich eines dreifach-indirekten Indexblocks an, dieser enthält die Adressen von zweifach-indirekten Indexblöcken, von denen jeder die Adressen einfa-indirekter Indexblöcke enthält.

278
Q

Übungsaufgabe 2.15
Angenommen, wir haben eine Partition von 32 MByte bei einer Blockgröße von 512 Byte. Wie lang darf eine Datei sein, damit sie sich durch einen inode beschreiben lässt?

A

Wir stellen gleich eine allgemeine Formel auf.
Die Partionion besteht aus b Blöcken zu je B Bits, dann kann ein Block B/log2b viele Blockadressen enthalten. Ein inode kann also insgesamt

12+ b/log2b+ (b/log2b)^2 + (B/log2b)^3 viele Blöcke adressieren. Durch Einsetzen ergibt sich
12+2^8+2^16+2^24;
Selbst wenn eine Datei alle 2^16 Blöcke der Partition belegen würde, kämen wir bei diesen Parametern ohne die dreifach-indirekte Indizierung im inode aus!

279
Q

Unterstützt inodes wahlfreien Zugriff?

A

Ja, durch inodes wird wahlfreier Zugriff recht gut unterstützt.

Das Schema bietet mehrere Vorteile. Zum einen sind alle wesentlichen Informationen über eine Datei oder ein Verzeichnis im inode auf beschränktem Raum zusammengefasst, im Unterschied zu FAT wird aber nur für die wirklich vorhandenen Objekte Speicherplatz belegt.
Auf kurze Dateien - oder allgemeiner: auf die ersten 12 Blöcke jeder Datei - kann man sehr effizient zugreifen. Allgemein genügen maximal 5 Externzugriffe, um einen beliebigen Block einer langen Datei zu lesen.

280
Q

Wie können bei dem inodekonzept eine Übersicht gestalten, welche Blöcke noch frei sind?

A

Man kann zu diesem Zweck zusätzlich einen langen Bitvektor verwenden, der für jeden Block ein Bit enthält, welches angibt, ob der Block frei oder belegt ist.

281
Q

Ein Prozess braucht Speicherplatz im Hauptspeicher.

Welche Zuweisungsverfahren gibt es?

A

ein zusammenhängendes Stück,

mehrere zusammenhängende Segmente, Buddy, Paging

282
Q

Welche Verfahren verursachen interne und (oder) externe Fragmentierung?

A

zusammenhängender Hauptspeicherbereich: interne + externe Fragmentierung
Paging: interne Fragmentierung
Buddy-Strategie: interne Fragmentierung

283
Q

Was bedeutet die interne und die externe Fragmentierung?

A

zusammenhängender Hauptspeicherbereich
Wir teilen jedem Prozess den genau den Speicher zu, den er benötigt. Wenn nun der Speicherbereich von einem Prozess nicht mehr benötigt wird, so entsteht hier eine Lücke, mitten im zusammenhängenden Speicherbereich, dies nennt man externe Fragmentierung.
Paging:
Wir teilen den Haupstpeicher in gleich große Pages auf. Dabei werden wir nicht das Glück haben, dass jeder Prozess genau diese Page-Größe benötigt. Diese ungenutzte Lücke innerhalb der Page nennen wir interne Fragmentierung

284
Q

Wie könnte man mit dem Problem der internen und externen Fragmentierung umgehen?

A

Vermeidung externe Fragmentierung:

  • Kompaktifizieren
  • Paging
  • Virtueller Speicher (mit Paging)

Vermeidung interne Fragmentierung:
- Segmentation (Hauptspeicher wird in Segmente geteilt, die so groß sind, wie für den Prozess benötigt)

285
Q

Ein Prozess braucht nur logische Adressen statt physische Adressen zu kennen, d.h. ein Prozess arbeitet nur mit logischen Adressen.
Die physischen Adressen werden erst zu dem Zugriffszeitpunkt auf den Hauptspeicher umgerechnet,
warum ist das vorteilhaft?

A

Unabhängigkeit zwischen Programmen und Rechnern, Relokierbarkeit

286
Q

Wie wird eine logische Adresse auf die physische Adresse

abgebildet? Welche Hardware wird bei der Umrechnung gebraucht?

A

Basis- und Grenzregister bei der zusammenhängenden Zuweisung, Seitentabelle bei Paging, Mit Hilfe von Hardware

287
Q

Was ist Paging? Wie funktioniert es?

A

Seiten: Logischer Speicher wird in Seiten aufgeteilt
Rahmen: Hauptspeicher wird in gleich große Rahmen aufgeteilt.
Rahmen sind auf dem Hauptspeicher irgendwo verteilt.

Seite passt genau in den Rahmen.

Seitentabelle:
Zuordnung der Logischen Seitennummern auf die Rahmennummern

288
Q

Was sind die Vorteile von Paging?

A

Seiten gemeinsam benutzen: shared memory, ohne externe Fragmentierung, einfache Verwaltung des Hauptspeichers, Realisierung vom virtuellen Hauptspeicher

289
Q

Wie viele Zugriffe auf den Hauptspeicher werden bei Paging mindestens benötigt, wenn ein Wort gebraucht wird?

A
  1. Seitentabelle befindet sich im Hauptspeicher (PCB)
  2. Berechnung der physischen Adresse mithilfe des Basisregisters
  3. Grenzregister
  4. Zugriff auf die physische Adresse
290
Q

Welche Probleme können entstehen, wenn man eine Seite zu groß oder zu
klein wählt?

A

größere interne Fragmentierung bei der größeren Seite, lange Seitentabelle bei der kleineren Seite

291
Q

Was ist der Ansatz vom virtuellen Speicher?

A

Unabhängigkeit der Programmen und Rechner, Programme zu schreiben, ohne Wissen von der Größe des Hauptspeichers, nur die Seiten im Hauptspeicher zu halten, die gerade gebraucht werden, der Rest bleibt im Sekundärspeicher

292
Q

Welche Vorteile und Nachteile hat der virtuelle Speicher?

A

Vorteile:

  • Programmierer kann beliebig große Programme schreiben (unabhängig von physischer Größe)
  • keine externe Fragmentierung
  • bereiter Prozess kann rechnend gemacht werden, auch wenn nicht alle Daten im Haupspeicher stehen

Nachteil:

  • Softwareunterbrechung bei Seitenfehler (lange Zugriffszeit auf die Festplatte)
  • Höherer Verwaltungsaufwand für Scheduling
293
Q

Für die Realisierung des virtuellen Hauptspeichers muss man die folgenden Probleme lösen:

a) . wann eine Seite in den Hauptspeicher geholt werden soll. Demand paging ist eine Möglichkeit. Was ist demand paging?
b) . welche Seite ausgelagert werden soll, wenn der Hauptspeicher voll ist. Nach welchen Kriterien könnte man die auszulagernde Seite auswählen?

A

demand-paging Seite wird erst im Hauptspeicher eingelagert, wenn sie benötigt wird
Strategien für die Wahl der auszulagernden Seiten:
• Optimale Strategie lagert die Seite aus, die am weitesten in der Zukunft wieder benötigt wird -> Information nicht bekannt, nicht möglich
• LRU (least recently used) letzte Benutzung liegt am weitesten zurück
• dirty-bit Seite wurde seit der letzten Einlagerung nicht mehr verändert.
dirty-Bit wird bei jeder Schreiboperation gesetzt. = nicht vorhanden = kein Schreibzugriff.
Vorteil: Seite muss nicht mehr auf den Sekundärspeicher zurückgeschrieben werden.

294
Q

Was passiert, wenn eine Seite nicht im Hauptspeicher vorhanden ist?

A

Seitenfehler: die MMU liest den Eintrag in der Seitentabelle für die Seite und merkt, dass das present-Bit nicht gesetzt ist, sie löst eine Unterbrechung aus.
Es gibt für den Seitenfehler eine Unterbrechungsnummer, diese Nummer wird als Index verwendet, um im Unterbrechungsvektor nach der Startadresse der Unterbrechungsroutine zu suchen.

295
Q

Was ist ein Seitenfehler?

A

Bei einem Seitenfehler wird auf eine Seite (Page) zugegriffen, die sich nich in dem Hauptspeicher befindet.

296
Q

Wie wird ein Seitenfehler behandelt?

A

Die MMU liest den Eintrag in der Seitentabelle für die Seite und merkt, dass das present-Bit nicht gesetzt ist, sie löst eine Unterbrechung aus.
Es gibt für den Seitenfehler eine Unterbrechungsnummer, diese Nummer wird als Index verwendet, um im Unterbrechungsvektor nach der Startadresse der Unterbrechungsroutine zu suchen.

297
Q

Welche Aktionen gibt es, um die fehlende Seite in den Hauptspeicher zu holen?

A

Seitenfehler: die MMU liest den Eintrag in der Seitentabelle für die Seite und merkt, dass das present-Bit nicht gesetzt ist, sie löst eine Unterbrechung aus.
Es gibt für den Seitenfehler eine Unterbrechungsnummer, diese Nummer wird als Index verwendet, um im Unterbrechungsvektor nach der Startadresse der Unterbrechungsroutine zu suchen.

298
Q

Wie merkt das Betriebssystem, dass eine Seite nicht im Hauptspeicher liegt?

A

fehlende Seiten stehen im Sekundärspeicher und sind in der Seitentabelle entsprechend markiert (Present-Bit).

299
Q

Bei Linux wird die Hauptspeicherzuweisungsstrategie Buddy eingesetzt, wie funktioniert sie?

A
  • Hauptspeicher besteht aus zusammenhängenden Stücken mit jeweils einer Zweierpotenz vielen Seiten
  • Stück ist belegt oder frei
  • wenn Allokierer zusammenhängenden Bereich einer bestimmten Länge benötigt, nimmt er das kleinste freie Stück, das mindestens die erforderliche Länge hat
  • Wenn es mehr als doppelt so lang ist wie der benötigte Bereich -> halbieren
  • Ein Stück wird verwendet, anderes = Buddy bleibt frei
  • Wenn ein Stück frei ist und Buddy ist frei -> Verschmelzung
300
Q

Welche Fragmentierung hat die Buddy Strategie?

A

Interne Fragmentierung

301
Q

Warum herrschen Wettkampfbedingungen (Race Conditions) zwischen Prozessen, wenn sie auf die gleiche Variable zugreifen?

A

Parallelität von Prozessen, Scheduling, Scheduler

302
Q

Was bedeutet race conditions?

A

Eine Race condition entsteht, wenn
Zwei oder mehr Threads/Prozesse einen gemeinsamen Speicherbereich lesen und schreiben und
Das Ergebnis von der zeitlichen Reihenfolge der Ausführung der Prozesse abhängt.

303
Q

Was ist ein kritischer Abschnitt?

A

Ein kritischer Abschnitt ist ein Abschnitt im Programm, in dem
- Gemeinsame Resourcen wie z.B. Variablen und Datenstrukturen benutzt werden
- Auf die mehrere Prozesse lesend und schreibend zugreifen, sodass
Eine Rache condition entstehen kann.

304
Q

Warum ist die Prozesssynchronisation wichtig?

A

Ein Programm muss deterministisch sein, d.h.
das Ergebnis darf nicht von der Ausführungsreihenfolge der
Prozesse abhängen

305
Q

Welche Probleme können entstehen, wenn z.B. die Prozesse Beobachter und Berichterstatter nicht synchronisiert werden?

A

Dass eine Race-Condition entsteht und Inkonsistenz entsteht

306
Q

Welche Probleme gibt es, wenn man die Prozesse Beobachter und
Berichterstatter mit einer Synchronisationsvariable switch synchronisiert?

A

busy waiting, abwechselnd in ihrer kritischen Abschnitte

307
Q

Was passiert, wenn die Synchronisationsvariable switch mit 1 initialisiert wird und der Prozess Beobachter eine höhere Priorität beim Scheduling als der Prozess Berichterstatter hat?

A

Beobachter wartet, dass Switch auf 0 steht, da er höher priorisiert ist, kommt Berichterstatter nicht zum Zug - somit entsteht ein dead lock

308
Q

Was ist ein Semaphor?

A

eine globale Variable mit einer Warteschlange

309
Q

Welche Operationen darf man auf einen Semaphor ausführen?

A

nur Initialisierung, down und up

310
Q

Was machen die Operationen down und up bei einem Semaphor?

A

Atomare Operation down(s)
zum Eintritt, entspricht enter_critical_section(), ggf. Warten im blockierten Zustand.
Atomare Operation up(S)
zum Verlassen des kritischen Abschnitts, entspricht leave_critiacal_section().

311
Q

Wie kommt ein Prozess wieder aus der Warteschlange eines Semaphors aus, wenn er bei der Ausführung von down blockiert?

A

Indem ein anderer Prozess mit der up-operation die count-variable wieder hochzählt

312
Q

Was macht der Prozess, der aus der Warteschlange eines Semaphors auskommt?

A

Der Prozess tritt direkt in den kritischen Abschnitt ein, ohne dabei down nochmal aufzurufen.

313
Q

Welche Vorteile hat ein Semaphor?

A

Blockierte Prozesse reihen sich in die Warteschlange ein, und werden wieder erweckt, wenn up aufgerufen wird. Dies vermeidet das busy waiting einer Synchronisationsvariable ohne Semaphor

314
Q

Warum enthalten down und up auch einen kritischen Abschnitt?

A

Wenn die down-Operation unterbrochen wird, direkt nach der Abfrage der count Variable ohne dass count herunter gezählt wird

Wenn die up-Operation unterbrochen wird, wenn sie feststellt, dass die Warteschlange leer ist. und ein anderer Prozess down aufruft, so ist die Warteschlange nicht mehr leer, aber die up-Operation wird beim else-Zweig aufgerufen, und weckt damit den Prozess nicht wieder auf.

315
Q

Wie kann man die unteilbare Operationen bei einem

Einprozessorsysytem realisieren? Was ist die Gefahr?

A

Man müsste den Unterbrechungsbetrieb aussetzen.

Somit kann ein Prozess beliebig viel Rechenzeit beanspruchen.

316
Q

Was macht der Systemaufruf fork?

A

In unixoiden Betriebssystemen ist fork der Name eines Systemaufrufs, anhand dessen der aufrufende Prozess (Elternprozess) eine Kopie von sich selbst erzeugt, einen sog. Kindprozess. Der Kindprozess übernimmt dabei die Daten, den Code, den Befehlszähler und die Dateideskriptoren vom Elternprozess und erhält vom Kernel (wie der Elternprozess und jeder andere Prozess auch) eine eigene Prozessnummer, die PID (engl. „Process IDentifier“). In der Folge verwaltet das Betriebssystem den Kindprozess als eigenständige Instanz des Programms und führt ihn unabhängig vom Elternprozess aus.

317
Q

Was sind Threads?

A

Konzept vom Prozess: ein Prozess hat einen Adresseraum und einen Ausführungspfad, der durch Befehlszähler beschrieben wird.
Konzept von Threads: erlaubt einen gleichen Adressraum, aber mehrere Ausführungspfade

318
Q

Was haben die Threads eines Prozesses gemeinsam und was nicht?

A

Alle Threads benutzen das selbe Datensegment und Programmsegment hat aber einen eigenen Stack, Programmzähler und Registriersatz.

319
Q

Welche Vorteile haben Threads im Vergleich zu Prozessen?

A

Kommunikation durch das gemeinsamen Datensegment

320
Q

Wo kann man Threads einsetzen?

A

Wenn man einen Prozess in mehrere Ausführungspfade unterteilen kann.

321
Q

Was ist der Unterschied zwischen Benutzer-Threads und Kernel-Threads?

A

Benutzer-Threads: sie sind dem Betriebssystem nicht bekannt. Der Prozess muss sich um das Scheduling seiner Threads kümmern. Wenn ein Thread blockiert, dann blockiert der ganze Prozess. Von einem Prozess kann immer nur ein Thread gerade rechnend sein.

Kernel-Threads: Jeder ist dem Betriebssystem bekannt. Wenn ein Thread blockiert, kann ein anderer Thread desselben Prozesses trotzdem rechnend sein. Das Betriebssystem kümmet sich um das Scheduling. Threads von einem Prozess können auf unterschiedlichen Prozessen laufen, sogar gleichzeitig.

322
Q

Was ist ein Dateisystem?

A

Dateisysteme dienen der Verwaltung von Dateien (files) Dateisysteme dienen der Verwaltung von Dateien (files)

323
Q

Wozu ist ein Dateisystem gut?

A

Der Benutzer braucht sich nicht mit der Festplatte auseinanderzusetzen,
ein Dateisystem bietet den Benutzern eine logische Sicht von Dateien an

324
Q

Welche Informationen gibt es in den Attributen einer Datei?

A
  • Zugriffsrechte
  • Eigentümer/Gruppe
  • Zeitstempel
  • Größe
  • Anzahl der Links
325
Q

Was sind die Hardlinks?

A

Ein Hardlink ist einfach ein Name einer Datei. Jede Datei hat einen inode kann aber mehrere Namen haben. Ein Datei kann mit mehreren Namen angesprochen werden, jeder Name ist ein Hardlink

326
Q

Wie sehen die Zugriffsberechtigungen einer Datei bei UNIX aus?

A
  • read leserecht
  • write Schreibzugriff mit überschreiben und löschen
  • execute Benutzer darf dieses Verzeichnis zum akuellen Arbeitsverzeichnis machen oder die Datei ausführen
327
Q

Wie werden die Zugriffsrechte ausgewertet, wenn ein Prozess einen Zugriff startet?

A

Jedem Prozess ist die BenutzerID und die GruppenID bekannt, jede Datei haben die Zugriffs-Bits für Benutzer, Gruppen und Others, somit können diese bei Zugriff verglichen werden

328
Q

Wer vergibt die Zugriffsrechte?

A

Der Ersteller der Datei oder der Superuser kann Zugriffsrechte vergeben

329
Q

Ein Dateisystem muss eine Folge von Datensätzen in Blöcke auf dem Sekundärspeicher abbilden. Wie macht das Dateisystem FAT?

A

für jeden Block auf der Festplatte gibt es einen Eintrag in FAT

330
Q

Wie groß ist die FAT?

A

die Anzahl der Blöcke auf der Festplatte mal die Länge der Blockadresse

331
Q

Wie kann man die Lokalisierung eines Blocks einer Datei auf der Festplatte mit FAT feststellen?

A

sequenzielle Suche in der FAT

332
Q

Was sind die Nachteile von FAT bei großen Dateien?

A

Man benötigt viele Links um ans Ende der Datei, zudem ist die FAT auf 32 Bit Adressierung <4 GB begrenzt.

333
Q

Wie macht das Dateisystem inode bei LINUX/UNIX?

A

Für jede Datei wird ein Index angelegt, Ein Index is eine Tabelle, die zu jeder logischen Blocknumemer die zugehörige physische Blocknummer enthält.
Diese Indextabelle wird selbst auch im Externspeicher abgelgt. Konkret wird dies bei UNIX mit einem Inode realisiert:
Attribute in Inode
dann Block 1-12 direkt adressiert
13 1-Fach indirekt adressiert
14 2-Fach indirekt adressiert
15 3-Fach indirekt adressiert

334
Q

Was steht in einem inode?

A

Attributte und 13 Adressen

335
Q

Wie groß kann ein inode sein?

A

128 Byte in Linux (ext2)

336
Q

Wie kann man die Lokalisierung eines Blocks einer Datei auf der Festplatte mit inode feststellen?

A

Durch die Adressierung (direkt, einfach-indirekt, zweifach-indirekt, dreifach-indirekt)

337
Q

Wie viele Zugriffe auf die Festplatte höchstens benötigt man, um einen Datenblock zu lokalisieren, wenn der inode schon im Hauptspeicher liegt?

A

Vier; drei für die Indexblöcke und einer für den Datenblock

338
Q

Welche Probleme sind bei der Verwaltung von Prozessen zu lösen?

A

Interprozesskommunikation

Speicherschutz

339
Q

Beschreibung der Verwaltung zusammenhängender Hauptspeicherbereiche.

A
  • Der Hauptspeicher wird fest in zusammenhängende Bereiche unterschiedlicher Größe aufgeteilt und jeder Prozess bekommt einen davon (Problem: interne Fragmentierung)
  • Jeder Prozess bekommt einen zusammenhängenden Bereich genau der Größe, die er auch angefordert hat
340
Q

Was sind Parallelrechner und wie funktionieren sie?

A

Sie haben mehrere Prozessoren, die sich einen gemeinsamen großen Hauptspeicher teilen. Der Zugriff erfolgt entweder über einen Bus oder der gemeinsame Hauptspeicher wird in kleinere Stücke zerlegt und ein Schaltwerk sorgt dafür, dass jeder Prozessor auf jeden Teil des Speichers zugreifen kann.
Vorteile:
- Effizenzsteigerung
- Kosteneinsparung
- Fehlertoleranz
Nachteile:
- das Problem muss sich parallelisieren lassen
- höherer Verwaltungsaufwand für Kommunikation

341
Q

Wie funktioniert die Hauptspeicherverwaltung?

A
  • Unterteilung in feste zusammenhängende Bereiche
  • Prozesse bekommen einen zusammenhängen Bereich, genau der Größe die sie brauchen
  • Paging
342
Q

Welche Auslagerungsstrategie gibt es?

A
  • optimale Strategie: diejenige Seite, die am weitesten in der Zukunft wieder benötigt wird
  • LRU (least recently used): die Seite, die am längsten nicht benutzt wurde
  • dirty-bit: Seiten ohne Schreibzugriff werden ausgelagert (müssen nicht zurückgeschrieben werden)
343
Q

Was ist ein Deadlock?

A

Wenn man beim Erzeuger- oder Verbraucherprozess die Reihenfolge der up-Aufrufe vertauscht, hat das keinen Einfluss auf die Korrekthiet. Vertauscht man aber die Reihenfolge der down-Aufrufe, kann eine Verklemmung (deadlock) entstehen. Wenn zum Beistpiel der Erzeuger bei vollem Puffer zunächst down(Zugriff) ausführt, ist der Zugang zum Puffer, dadurch für den Verbraucher gespert, dieser hat also gar nicht die Möglichkeit, ein Objekt aus dem Puffer zu entnehmen. Deshalb wird der Verbraucher beim folgenden Aufruf down(Frei) für alle Zeiten blockiert

344
Q

Wie wird die Seitennummer beim Paging bestimmt?

A

Die logischen Adressen werdenin zwei Abschnitte aufgeteilt:
Seitennummer (vorderen 3 Bit)
Offset (hinteren 7 Bit)

345
Q

Wie funktioniert die Prozesssynchronisation?

A

Um zu verhindern das Prozesse zur gleichen Zeit in kritische Abschnitte eintreten, muss durch Synchronisation der exklusive Zutritt garantiert werden:

  • Synchronisationsvariable (busy waiting, wird ein Prozess innerhalb des kritischen Abschnitts unterbrochen, kann der andere den Abschnitt nie wieder betreten)
  • Semaphor
346
Q

Was ist für die CPU-Verwaltung verantwortlich?

A

Das Betriebssystem

347
Q

Wie nennt man ein laufendes Programm?

A

Prozess

348
Q

Was tut man, wenn alle Seitenrahmen belegt sind?

A

Auslagern bestimmter Prozesse (Abzug des Adressraums) oder Seiten in den Externspeicher (swapping)

349
Q

Warum braucht man Prozesssynchronisierung?

A

Erzeuger-Verbraucher-Problem,

Inkrementieren einer Variable durch zwei Prozesse

350
Q

Wer teilt den Prozessen die CPU zu?

A

Dispatcher

351
Q

Welches Problem gibt es, wenn mehrere Prozesse gleichzeitig ablaufen?

A

Prozesssynchronisation

Interprozesskommunikation

352
Q

Was passiert, wenn ein Prozess mehr Seiten benötigt, als zur Verfügung stehen?

A

Durch den virtuellen Speicher, können beliebig große logische Adressräume verwendet werden, die Seiten, die im Hauptspeicher keinen Platz finden, stehen im Sekundärspeicher. Die fehlenden Seiten werden bei Bedarf in den Hauptspeicher eingelagert (demand paging)

353
Q

Was versteht man unter LRU?

A
  • LRU (least recently used): die Seite, die am längsten nicht benutzt wurde wird ausgelagert
354
Q

Was unterscheidet Threads von Prozessen?

A

Zum Kontext eines Prozesses, gehören neben den Registerinhalten auch Informationen über seinen Adressraum. Die Verwaltung dieser Informationen kostet beim Prozesswechsel Rechenzeit.
Nun gibt es Problemen, bei deren Lösung man mehrere Prozesse einsetzen möchte, die quasi-parallel ablaufen und alle auf den selben Speicherbereich zugreifen, Threads

355
Q

Was ist der Unterschied zwischen Scheduler und Dispatcher?

A

Scheduler: Legt die Strategie für die Rechenzeitvergabe fest
Dispatcher: Führt den Kontextwechsel durch

356
Q

Welche Daten enthält der Prozesskontrollblock?

A
  • Prozesskontext: Registerinhalte, Befehlszähler, Grenzen des Adressraums, Prozessnummer, Priorität
  • Benutzer- oder Systemmodus
  • Prozesszustand (z.B. bereit)
357
Q

Wie erfolgt der Prozesswechsel durch den Dispatcher?

A

Der Dispatcher führt den Kontextwechsel durch, dazu wird der Prozesskontext gesichert und der Prozesskontext des neuen Prozesses in den Prozessorkern geladen

358
Q

Angenommen, es gäbe keine Interrupts - welche Alternative hätte man?

A

nicht präemptive Systeme, bei der Prozesse die CPU freiwillig abgeben (kooperative Systeme)

  • FCFS (first come, first served)
  • SJF (shortest job first)
359
Q

Welche Komponente überwacht Zeitscheibe bei Ausführung?

A

Hardware Zeitgeber (Timer), eigener Chip im Rechner, der an den Takt der CPU angeschlossen ist

360
Q

Wann wird der Dispatcher aktiv?

A

beim Kontextwechsel

361
Q

Wird bei Round-Robin ein Scheduler benötigt?

A

Ja, zur Überwachung, dass kein Prozess sein Quantum der Zeitscheibe überschreitet

362
Q

Warum gibt es keine „Referentielle Integrität“ bei Betriebssystemen?

A

.

363
Q

Wohin werden die Register beim Prozesswechsel gesichert?

A

In den Proxesskontext im Hauptspeicher, ist dieser voll werden bereite oder blockierte Prozesse in den Externspeicher ausgelagert.

364
Q

Woher wird der PCB beim Prozesswechsel geladen?

A

Aus dem Hauptspeicher

365
Q

Was passiert, wenn die Unterbrechungsroutine vollständig durchlaufen wurde?

A

Es wird ein spezieller Befehl ausgeführt, der die Rückkehr von der Unterbrechung bewirkt, worher werden die alten Registerinhalter und der alter Wert des Befehlszählregisters wiederhergestellt.

366
Q

Sind Unterbrechungen synchron oder asynchron?

A

Hardwareunterbrechungen: asynchron
Softwareunterbrechungen: synchron

367
Q

Wie kommen die Daten aus dem Puffer des Gerätes in den Hauptspeicher?

A
  • Unterbrechungsgesteuerte Ein-/Ausgabe: der Controller schreibt jeweils in Wort in sein Dateneingangsregister und löst eine Unterbrechung aus. Der Gerätetreiber veranlasst, dass das Wort von der CPU in Empfang genommen und in den Hauptspeicher geschrieben wird
  • DMA, direkter Speicherzugriff:
    Der DMA-Controller überträgt über den Bus Daten in den Hauptspeicher
368
Q

Braucht das Betriebssystem pinned pages und forced output und wenn ja/nein, warum?

A

Wie bei virtuellen Speichern tritt bei Datenbanken das Problem auf, welche Seite überschrieben werden darf oder zurückzuschreiben ist, wenn eine neue Seite angeforder wird, im Systempuffer aber kein Platz mehr vorhandne ist. Die Seitenverwaltung in Datenbanksystem muss jedoch zusätzliche Anfoderungen erfüllen:

  • Pinned pages: im Zusammenspiel mit der Recovery dürfen Seiten nicht beliebig in die Datenbank geschrieben werden. Solche Seiten nennen wir pinned
  • Forced output: Ebenfalls im Zusammenahng mit Recovery müssen gelegentlich Seiten auf den Externspeicher zurückgeschrieben werden, obwohl der Platz im Systempuffer gar nicht benötigt wird
369
Q

Dirty Bit

A

Kennzeichnet Seiten, auf die ein Schreibzugriff stattgefunden hat

370
Q

Wofür braucht das BS die Registerinhalte im PCB?

A

Im PCB sind die Adressräume, die Prozessnummer, die Priorität, ob der Prozess im System- oder im Benutzermodus arbeitet und Zugriffsberechtigungen vermerkt

371
Q

Kann ein Prozess auf seinen eigenen Prozesskontext zugreifen?

A

Nein, da sonst ein nicht priviligierter Prozess, sich z.B. eine höhere Priorität zuweisen könnte

372
Q

Wo ist der Prozesskontext untergebracht?

A

Im Prozeskontrollblock
Alle aktuellen Prozesse stehen in einer kerneleigenen Tabelle der Prozesstabelle, bei der Erzeugung eines neuen Prozesses wird darin ein Prozesskontrollblock als neuer Eintrag angelegt.

373
Q

Was limitiert die Größe des Adressraums?

A

Basis- und Grenzregister

374
Q

Was heißt faires Scheduling?

A

Wenn ein rechenbereiter Prozess in endlicher Zeit rechnen darf

375
Q

Bei einem Einprozessorsystem laufen Prozesse nicht parallel. Wie läuft es dann ab?

A

Der Scheduler weist jedem bereiten Prozess im schnellen Wechsel ein gewisses Quantum an Rechenzeit zu.

376
Q

Bräuchte es bei einem Stapelbetrieb ein Befehlszählregister?

A

Nein, da ja der Auftrag nach einander abgearbeitet wird.

377
Q

Wozu braucht man den Stack?

A

hier werden Registerinhalte gespeichert

378
Q

Was steht in der Prozesstabelle?

A

Enthält pro laufenden Prozess einen Eintrag, den Prozesskontollblock.