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
Was ist eine RAM-Disk?
Unter einer RAM-Disk versteht man eine fest reservierten Teil des Hauptspeichers, der von Anwenderprogrammen und Anwendern wie eine Magnetplatte benutzt werden kann.
26
Warum ist die Magnetplatte nicht für Langzeitarchivierung geeignet?
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
27
Was sind Teritärspeicher?
Teritärspeicher sind Datenträger, die preiswert sind und sich leicht vom Rechner entfernen lassen. Z.b. Disketten, CD´s...
28
Wodurch zeichnen sich Magnetbänder aus?
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.
29
Was versteht man unter einer Jukebox?
In einer juke-box werden einige hundert Kasetten von Magnetbändern zusammen gefasst.
30
Wie funktionieren CD´s DVDS
Die Daten werden optisch gespeichert und von einem Laser abgetastet
31
Was ist ein Flash-basierter Speicher?
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.
32
Wie werden Sekundär- und Teritärspeicher noch genannt?
Externspeicher
33
Zähle die Speicherarten nach Zugriffszeit aufsteigend auf (kosten absteigend)
1. CPU-Register 2. Cache 3. Hauptspeicher 4. Sekundärspeicher 5. Teritärspeicher
34
Was ist ein Bus
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.
35
Warum werden Geräte nicht direkt an den Bus angeschlossen?
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.
36
Für welche Gerätetypen gibt es einen Cotroller der die Steuerung des Geräts übernimmt?
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.
37
Was ist ein Controller?
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.
38
Was ist ein Gerätetreiber?
Über einen Gerätetreiber (Software) kommuniziert das Betriebssystem mit den Controllern, die die Geräte steuern.
39
Welche Register besitzt ein Controller?
- 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.
40
Was sind die Vorteile/Nachteile bei der Implementierung von Funktionen in Hardware?
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
41
Was wird als virtuelles Gerät bezeichnet?
Die konzeptionelle Einheit von Gerätetreiber Controller Gerät
42
Welche Konzepte stehen im Modell des virtuellen Geräts?
Abstraktion Kapsellung, auch Geheimprizip genannt Schichtenmodell
43
Was bedeutet Abstraktion?
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.
44
Was ist das Prinzip der Kapselung?
Das Prinzip der Kapselung besagt man darf die Details in unteren Ebenen nicht kennen. Eine Alternative Bezeichnung hierfür ist Geheimnisprinzip
45
Was sind die Gründe für Kapselung?
Missbrauch verhindern | Änderungen erleichtern
46
Was ist das Schichtenmodell?
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.
47
Was sind die Vor und Nachteile vom Schichtenmodell?
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
48
Was ist poling?
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
49
Was ist ein Unterbrechungsbetrieb?
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
50
Wie geht die CPU mit Unterbrechungen um?
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)
51
Wie wird mit Mehreren Unterbrechungen umgegangen?
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
52
Was ist ein trap?
Wenn Software Unterbrechungen im CPU-Betrieb auslöst
53
In welchen Fällen kommt es zu Software-Unterbrechungen der CPU
Ausnahmen, wie z.b. DIV/0 Verfahren zur Kontrollübergabe: Systemaufrufe, diese bilden zusammen die Programmierschnittstelle zwischen den Anwenderprogrammen und dem Betriebssystem.
54
Was ist die unterbrechungsgesteuerte ein/Ausgabe?
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
55
Was ist DMA?
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.
56
Was wird als handshaking bezeichnet?
Eine Kommunikation wie die zwischen DMA- und Gerätecontroller wird im Englischen als handshaking bezeichnet, sie stellt einen einfachen Fall eines Protokolls dar.
57
Was ist der Ur-Lader (bootloader)
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.
58
Welche Programme laufen im Benutzermodus?
Alle Anwendungsprogramme
59
Welche Befehle können nur im Systemmodus ausgeführt werden?
Privilegierte Maschinenbefehle
60
Kann ein Benutzer direkt auf ein gerät zugreifen?
Kein Benutzer kann direkt auf ein Gerät zugreifen; man muss zu diesem Zweck das mit höheren Rechten ausgestattete Betriebssystem um Hilfe bitten.
61
Was ist der Adressraum?
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.
62
Was sind relokierbare Programme (relocable code)?
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
63
Wie heißt ein Programm, dass sich gerade in der Ausführung befindet?
Prozess
64
Aus was besteht der Prozesskontext und wo wird er verwaltet?
- den Registerinhalten, insbesondere - Befehlszähler und - Grenzen des Adressraums - Seitentabelle - Prozessnummer - Priorität Vom Betriebssystem im Prozesskontollblock.
65
Was ist PCB?
Der Prozesskontrollblock In ihm werden Angaben zum Prozesskontext zusammen gefasst. Es wird dort auch vermerkt ob der Prozess im System- oder Benutzermodus arbeitet.
66
Wieviele Prozesse können im Zustand „rechnend“ zeitgleich im Einprozessorsystem sein?
Nur einer - nur der Prozess, dessen Programm gerade von der CPU ausgeführt wird.
67
Welche Prozesszustände gibt es?
``` Erzeugt Bereit Blockiert Rechnend Beendet ```
68
Was bedeutet der Prozesszustand „bereit“
Der Prozess bewirbt sich mit den übrigen bereiten Prozessen um die Zuteilung der CPU
69
Was bedeutet der Prozesszustand „blockiert“
Er wartet darauf, dass seine Ein-/Ausgabeanforderung erledigt wird oder das ein anderes Ereignis eintritt
70
Was ist der CPU-Scheduler?
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
71
Was ist „Stapel- oder Batch-Betrieb“?
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.
72
Was ist Time-Sharing-Betrieb?
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.
73
Was ist das Verfahren „round Robin“?
Die bereiten Prozesse werden reihum bedient. Dazu kann man sie in der Reihenfolge ihres Eintreffens in einer kreisförmigen Warteschlange speichern.
74
Wie nennt man das Umschalten zwischen Prozessen?
Kontextwechsel (context switch)
75
Was macht der Dispatcher?
Er führt den Kontextwechsel durch (das Umschalten zwischen Prozessen)
76
Was passiert wenn ein rechnender Prozess auf ein bestimmtes Ereignis warten will?
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.
77
Beschreibe was bei der Ausführung des zu read zugehörigen Systemaufrufs in einem Prozess P geschieht.
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.
78
Was enthält der Kern (Kernel)
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
79
Welche zwei Schnittstellen hat der Kern?
``` Controllerschnittstelle = Verbindung zur Hardware Programmierschnittstelle = Stellt die Dienste des Betriebssystems für die Programme zur Verfügung. ```
80
Welche groben Aufgabenbereiche haben die Systemaufrufe?
- Prozesse - Dateien - Information - Kommunikation
81
Was muss passieren wenn in einem Prozess ein Fehler auftritt?
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)
82
Was ist eine Datei?
Eine Datei ist grob gesagt eine Sammlung zusammengehöriger Information Dateien befinden sich im Sekundär- und Teritärspeicher.
83
Was passiert beim öffnen einer Datei?
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.
84
Wie kann die Kommunikation zwischen Prozessen erfolgen?
Die Kommunikation zwischen Prozessen kann auf zwei verschiedene Arten erfolgen: Versand von Nachrichten (Message Passung) Über einen gemeinsamen Speicherbereich (Shared Memory)
85
Wie kann der Versand von Nachrichten zwischen den Prozessen erfolgen?
- 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
86
Was sind pipes?
In UNIX und Linux wird der verbindungsorientierte Datenaustausch durch pipes realisiert.
87
Wozu dient die Benutzerschnittstelle?
Sie dient dem Benutzer zusammen mit den Schnittstellen der Anwendungsprogramme zur Kommunikation mit dem Rechner.
88
Aus was besteht die Benutzerschnittstelle?
Aus der Gesamtheit aller Systemprogramme.
89
Welchen Aufgabenbereichen lassen sich die Systemprogramme zuordnen?
- Programme - Dateien und Verzeichnisse - Information - Kommunikation
90
Was ist Common Desktop Environment (CDE)?
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)
91
Was machen Systemprogramme?
``` Systemprogramme helfen dem Benutzer Dateien anzulegen Dateien zu kopieren Dateien zu drucken Dateien umzubenennen Dateien zu löschen Zugriffsberechtigungen setzen ```
92
Was ist eine Directory?
Zusammengehörige Dateien werden in Verzeichnissen (directories) zusammen gefasst
93
Was ist der Unterschied im Aufgabenbereich von Systemaufrufen und Systemprogrammen?
Systemaufrufe: Haben besonders mit der Kommunikation zwischen Prozessen zu tun Systemprogramme: Sind auf höherer Ebene für die Kommunikation zwischen Benutzern zuständig
94
Was ist der Kommandointerpreter (command Interpreter)?
Der Command Interpreter ist ein wichtiges Systemprogramme, der die Eingaben des Benutzers entgegennimmt und ihre Ausführung veranlasst.
95
Was ist eine Shell?
Einen für jeden Benutzer maßgeschneiderten Kommandointerpreter
96
Was ist ein Parallelrechner?
Multiprozessorsystem | Arbeit wird auf mehrere Prozessoren verteilt
97
Warum löst ein Multiprozessorsystem mit k Prozessoren ein Problem nicht unbedingt k mal so schnell wie ein Einzelprozessorsystem?
- Kommunikation zwischen den Prozessesoren benötigt zeit | - Einige Probleme sind nicht parallelisierbar
98
Was sind die Vorteile eines Parallelrechners?
- Effizienzsteigerung - Kostenersparnis durch Zusammenfassung mehrerer CPU`s - Störungssicherheit (bei Ausfall eines Prozessoren)
99
Wie ist das Verhältnis bei einem Parallelrechner von Prozessoren und Hauptspeicher?
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.
100
Was sind Verteilte Systeme?
Jeder Prozessor hat einen eigenen Speicher | Die Kommunikation zwischen den Prozessoren erfolgt durch den Versand von Nachrichten.
101
Sind bei verteilten Systemen die Prozessoren im selben Rechnergehäuse untergebracht?
Nicht zwingend - Es kann auch aus vielen Einezlprozessorrechnern bestehen, die auf der ganzen Welt verteilt sind wie z.B. Das World Wide Web.
102
Was ist eine Hypercube-Architektur?
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
103
Was ist ein Relzeitsystem?
Hier ist es Teil der Korrektheitsanforderung, dass das Ergebnis innerhalb einer vorgegebenen Zeit berechnet wird.
104
Ü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 = ak*2^k + ak-1*2^k-1 + ... + a1*2^1 + a0*2^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
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).
105
Ü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?
Teilt Mann 16 MByte in Worte der Länge 2 Byte auf, so entstehen: (16*2^20)/2 = 8*2^20 = 2^23 Viele Worte. Der Adressbus muss also die Breite 23 haben.
106
Ü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?
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.
107
Ü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?
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.
108
Übungsaufgabe 1.5 Sortieren sie alle Ihnen bekannten Speicherformen nach Zugriffszeit.
Nach aufsteigender Zugriffszeit geordnet: ``` Prozessregister, Cache Hauptspeicher RAM-disk Magnetplatte BD HD DVD CD/DVD Diskette Magnetband ```
109
Ü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?
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.
110
Ü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?
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.
111
Übungsaufgabe 1.8 | Warum darf der Unterbrechungsvektor nicht im Adressraum eines Anwendungsprogramms liegen?
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.
112
Übungsaufgabe 1.9 | Muss der Befehl, mit dem der Unterbrechungseingang der CPU außer Betrieb gesetzt wird, privilegiert sein?
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.
113
Ü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.
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.
114
Ü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?
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.
115
Muss der Zugriff auf das Register des Zeitgebers privilegiert sein?
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.
116
Übungsaufgabe 1.13 | Welche Gefahren drohen, wenn beim Verfahren round Robin die Zeitscheiben zu dick oder zu dünn gewählt werden?
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.
117
Übungsaufgabe 1.15 Warum werden die gelesenen Daten erst im systemeigenen Speicherbereich abgelegt und nicht gleich im Adressraum des anfordernden Prozesses P?
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.
118
Übungsaufgabe 1.14 | Warum wird nicht schon beim Compilieren die logische Datenbeschreibung durch die physische Beschreibung ersetzt?
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.
119
Ü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?
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.
120
Übungsaufgabe 1.17 Über wieviele Zwischenstationen muss man beim de-dimensionalen Hypercube höchstens laufen, um von einem Prozessor zu einem anderen gelangen
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.
121
Was ist ein Betriebssystem?
(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
122
Wozu braucht man ein Betriebssystem?
Transparenz: Ein Betriebssystem soll die Details über Hardware vor Benutzern und Anwendungen verstecken. Benutzer sollen nur mit Anwendungsprogrammen mit einem Rechner interagieren.
123
Welche Aufgabe hat ein Betriebssystem?
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
124
Welche Strategien und Mechanismen benutzt ein Betriebssystem um die Aufgaben zu lösen?
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
125
Welche Schnittstellen werden vom Betriebssystem zur Verfügung gestellt?
- Programmierschnittstelle | - Benutzerschnittstelle
126
Welche Idee hatte von Neumann? Warum ist seine Idee ein Meilenstein für die Informatik?
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
127
Welche Hardwarekomponenten hat ein moderner von-Neumann-Rechner?
* Prozessor (CPU = central processing unit) * Hauptspeicher (main memory) * Ein-/Ausgabegeräte (I/O devices)
128
Wie sieht eine CPU aus? Welche wichtigen Register hat die CPU?
- 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
129
Welche Aufgabe haben die Register der CPU?
Um ein Wort aus einer Speicherzelle zu holen, hat die CPU einige wichtige Register, die als Zwischenspeicher verwendet werden
130
Was ist ein Programm im Hauptspeicher?
ein gerade auszuführendes Programm
131
Welche Schritte hat ein Befehlszyklus des Prozessors?
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
132
Wie sieht ein Hauptspeicher aus?
- lange Folge von gleich großen Speicherzellen organisiert.
133
Welche Beziehung hat der Adressbus mit dem Hauptspeicher?
Der Hauptspeicher wird über den Adressbus des Prozessors angesprochen
134
Wie kann man aus der Größe des Hauptspeichers die Länge des Adressbusses berechnen?
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 (16*2^30)/2=8*2^20=2^23
135
Warum hat der Hauptspeicher die Eigenschaft des wahlfreien Zugriffs?
(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
136
Wie ist eigentlich wahlfreier Zugriff des Hauptspeichers definiert?
Speicherzellen können einzeln adressiert werden.
137
Was ist ein Cache?
ein schneller Zwischenspeicher, in den häufig benutzte Daten kopiert werden, um die Zugriffszeit zu verringern.
138
Wozu ist ein Cache gut?
Zugriffszeit auf Daten und Programme zu verringern.
139
Welche Probleme entstehe, wenn ein Cache eingesetzt wird? Wie läuft der Cache-Algorithmus?
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
140
Was ist ein Sekundärspeicher?
- Aufgabe der dauerhaften Speicherung | - Häufig Magnetplatte (Festplatte) und Flashspeicher
141
Wie ist eine Festplatte aufgebaut?
- 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
142
Welche Befehle kann die Festplatte ausführen?
? Lesen & schreiben?
143
Warum unterstützt eine Festplatte auch den wahlfreien Zugriff?
Jeder Sektor wird mit einer Adresse angesprochen
144
Was ist die Positionierungszeit, Latenzzeit, Übertragungszeit und Zugriffszeit bei einer Festplatte?
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
145
Welche Strategien gibt es, um die Aufträge für Plattenlaufwerke abzuarbeiten?
- 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.
146
Welche Probleme kann es bei der Strategie SSTF geben?
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.
147
Kann es passieren, dass ein Auftrag mit SSTF nicht bearbeitet wird?
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.
148
Was ist der Unterschied zwischen einem Sektor und einem Block?
Ein Block ist die Nutzinformation eines Sektors.
149
Was ist ein parity bit?
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
150
Was ist ein Tertiärspeicher?
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
151
Was ist der Unterschied zwischen einem wahlfreien Zugriff und einem sequentiellen Zugriff?
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.
152
Wie sieht die Speicherhierarchie aus?
CPU-Register Cache Primärspeicher (Haupspeicher, flüchtiger Speicher) Sekundärspeicher (z.B. Magnetplatte, langfristige Speicherung) Teritärspeicher (Medien wie CD, DVD, USB)
153
Welche Eigenschaft hat die Speicherhirachie?
zwei Beziehungen: 1. Was im Primärspeicher keinen Platz findet, kommt in den Sekundärspeicher, was dort nicht hineinpasst steht im Teritärspeicher. 2. Jede Speicherschicht fungiert als Cache für die Schicht unter ihr
154
Wenn man über ein Ein-/Ausgabegerät spricht, meint man eigentlich ein virtuelles Gerät, warum?
Trennung von Hardware und Software
155
Welche Teile hat ein virtuelles Gerät?
Gerätetreiber (Software, Teil des Betriebssystems) Controller (elektronisch) Gerät (mechanisch)
156
Welche Aufgaben haben die einzelnen Teile eines virtuellen Geräts?
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
Was sind die Vorteile eines virtuellen Gerätes? Was ist der Vorteil des Schichtenmodells?
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
Wie kommuniziert die CPU mit einem Gerät?
Ü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
Wie kommuniziert der Treiber mit dem Controller?
ü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
Welche Register hat der Controller?
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
Was ist memory-mapped I/O?
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
Welche Möglichkeit hat die CPU, zu erfahren, ob ein z.B. Leseauftrag schon fertig ist?
Sie liest das Statusregister des Controllers aus
163
Wie kann die CPU wissen, welcher z.B. Leseauftrag fertig ist?
Durch einen Lesebefehl im Statusregister des Controllers
164
Was ist polling?
Abfragebetrieb, zyklische Abfrage
165
Was ist der Nachteil der Polling-Technik?
busy waiting - viel CPU Zeit
166
Was ist eine Hardware-Unterbrechung?
Unterbrechung, die druch ein externes Gerät verursacht wird (Auftrag ausgeführt, oder Fehler) nicht reproduzierbar
167
Wie funktioniert eine Unterbrechung?
- 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
Welche Funktionen hat der Unterbrechungsvektor?
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
Was macht eine Unterbrechungsroutine?
Die Unterbrechungsroutine hat die Aufgabe, den Unterbrechungswunsch des Geräts zu bearbeiten.
170
Wie kann die CPU die entsprechende Unterbrechungsroutine finden?
Der Index des Geräts wird im Unterbrechungsvektor gefunden
171
Welche Aufgabe hat das Betriebssystem bei einer Unterbrechung?
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
Warum muss der laufenden Prozess gerettet werden, bevor eine Unterbrechung bearbeitet werden soll?
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
Wie kann man mit mehreren Unterbrechungen umgehen?
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
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?
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
Warum ist die Unterbrechung für ein Betriebssystem so wichtig?
Damit es die Kontrolle über die CPU behält
176
Warum brauchen wir den Unterbrechungsmechanismus?
Damit das Betriebssystem aktiviert wird und damit die Kontrolle über die CPU übernimmt
177
Welche Unterbrechungen gibt es?
Hardwareunterbrechung - nicht reproduzierbar | Softwareunterbrechung (Trap) reproduzierbar
178
Was ist der Unterschied zwischen | Hardware-Unterbrechung und Software-Unterbrechung?
Hardware-Unterbrechung: wird durch externes Gerät verursacht - nicht reproduzierbar Software-Unterbrechung: wird von einem gerade ausgeführten Programm verursacht - reproduzierbar
179
Wie funktioniert ein Systemaufruf?
- 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
Welche Aufgaben der Betriebssysteme werden | durch den Unterbrechungmechnismus bewältigt?
- Faires Scheduling (Jedem Prozess wird in endlicher Zeit Rechenzeit der CPU zugeteilt) - Ausnahmebehandlung - Speicherschutz - Systemaufruf
181
Welche Zwecke hat die Unterbrechung?
- Speicherschutz - Ausnahmebehandlung - Wechsel in Benutzer- Systemmodus - Kommunikation mi IO-Geräten - Scheduling
182
Was ist der Unterschied zwischen der programmierten Ein-/Ausgabe und DMA? Wie arbeiten die zwei Techniken?
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
Warum kann DMA die CPU stören?
. 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
Wie viele Register muss der DMA haben, damit er seine Aufgabe machen kann?
- Speicheradressregister - Bytezählregister - ein oder mehrere Kontrollregister
185
Wie funktioniert ein Booting-Vorgang?
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
Was ist der Unterschied zwischen System- und Benutzermodus?
Alle Anwendungsprogramme laufen im Benutzermodus. | privilegierte Maschinenbefehle können nur im Systemmodus ausgeführt werden
187
Wozu ist es gut, dass es System- und Benutzermodus gibt?
Schutz von Speicher und Geräten
188
Wann findet die Umschaltung der Modi statt?
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
Welche Beziehung hat eine Unterbrechung mit einem Moduswechsel?
Wenn eine Unterbrechung auftritt, schaltet die priviligierte Prozedur zur Unterbrechungsbehandlung den Przessor in den Systemmodus und startet dann die entsprechende Unterbrechungsroutine
190
Wie wird der Schutz eines Adressraums eines Prozesses realisiert?
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
Was ist eine relative Adresse?
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
Welche Vorteile haben relative Adressen?
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
Was ist eine absolute Adresse?
Die absolute Adresse berechnet sich nach der Formel | absolute Adresse = (Basisregister)+relative Adresse und wird erst zur Laufzeit vergeben
194
Welche Adresse kennen Prozesse?
die logische Adresse, da das Betriebssystem die physische Adresse erst zur Laufzeit berechnet, uns sich die physische Adresse auch ändern kann
195
Was ist ein Prozess?
Ein Prozess ist ein Programm in Ausführung
196
Was ist der Unterschied zwischen Programm und Prozess?
Ein Programm ist eine den Regeln einer bestimmten Programmiersprache genügende Folge von Anweisungen. Ein Prozess ist ein Programm in Ausführung
197
Was gehört zu einem Prozess?
- Programmstück - Programmkontext bestehend aus - Registerinhalten - Befehlszähler - Grenzen des Adressraums - Prozessnummer - Priorität
198
Welche Informationen sind wichtig für einen Prozess?
- Adressraum - Registerinhalt - Priorität - Zustand - Zugriffsrechte - Prozess-ID - Befehlszähler
199
Wo werden die Informationen gespeichert, die für einen Prozess wichtig sind?
Prozesskontrollblock
200
Welche Zustände hat ein Prozess?
- erzeugt - bereit - blockiert - rechnend - beendet
201
Zeichnen Sie das Prozesszustandübergangsdiagramm! | Erklären Sie die Zustände und die Übergänge!
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
Was ist die Ursache, dass ein Prozess den Zustand wechselt?
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
Bei einem Einprozessorsystem läuft zu jedem Zeitpunkt genau ein Prozess. Warum laufen die Prozesse trotzdem scheinbar parallel?
Der Eindruck von Gleichzeitigkeit entsteht dadurch, dass der Scheduler in schnellem Wechsel jedem bereiten Prozess ein gewisses Quantum an Rechenzeit zukommen lässt
204
Was macht der Scheduler?
.Der Scheduler legt die Strategie für die Rechenzeitvergabe fest
205
Wer entscheidet, welcher Prozess vom | Zustand bereit in den Zustand rechnend geht?
Welcher der bereiten Prozesse als nächster rechnen darf, entscheidet der CPU-Scheduler
206
Warum geht ein Prozess vom Zustand rechnend in den Zustand bereit?
Er muss irgendwann die CPU wieder abgeben
207
Welche zwei Möglichkeiten gibt es, dass ein Prozess vom Zustand rechnend in den Zustand bereit geht?
- Prozess gibt CPU freiwillig ab -> kooperativ | - CPU wird dem Prozess entzogen -> präemptiv
208
Warum geht ein Prozess nicht vom Zustand blockiert in den Zustand rechnend? Was kann die Konsequenz sein, wenn das so wäre?
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
Welche Scheduling-Algorithmen gibt es?
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
Wie funktioniert die SJF-Strategie?
die Prozesse im Zustand bereit werden in der Reihenfolge aufsteigenden Rechenzeitbedarfs bearbeit
211
Welche theoretische Eigenschaft hat die SJF-Strategie?
sehr effizient, wenn die benötigte Rechenzeit voraussagbar ist
212
Für welchen Betrieb ist die SJF-Strategie geeignet? | Warum?
Stapel- oder Batch-Betrieb. | keine Interaktion mit dem Benutzer und sind regelmäßig auszuführen, so dass man ihre Laufzeiten in etwa kennt
213
Welche Strategie benutzt man für einen Time-Sharing-Betrieb?
Round Robin
214
Wer macht der Prozesswechsel?
Der Dispatcher
215
Wie wird ein Prozess gestoppt, wann darf er weiter rechnen?
- 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
Welche Hardware wird für den Prozesswechsel eingesetzt?
Timer=Zeitgeber
217
Warum braucht das Betriebssystem einen Timer?
Der Timer erlaubt dem Betriebssystem, Aufgaben regelmäßig zu erledigen. Dazu werden laufende Programme unterbrochen.
218
Welche Aufgaben hat der Dispatcher?
Der Dispatcher führt den eigentlichen Kontextwechsel (Umschalten zwischen Prozessen) durch
219
Was macht genau der Dispatcher?
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
Beschreiben Sie den Vorgang eines Prozesswechsels
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
Wie groß sollte man eine Zeitscheibe wählen?
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
Was ist das Problem mit zu großer oder zu kleiner Zeitscheibe?
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
Wie wird der Zugriff auf ein Gerät im Time-Sharing-Betrieb vom Betriebssystem organisiert?
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
Wie funktioniert es mit dem Drucken?
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
Was macht ein Programm, wenn es einen Block auf der Festplatte lesen möchte? Wie wird eine read-Operation ausgeführt?
https://www.dropbox.com/s/ae03uwza5jub4w8/MM_Systemaufruf_read.jpg?dl=0
226
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?
Der Gerätetreiber kennt nur die logische Blocknummer, | der Controller kennt nur die Zylinder-, Platten- und Sektornummer
227
Wie sieht die Struktur des Betriebssystems UNIX aus?
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
Was bieten die Programmierschnittstelle und Benutzerschnittstelle an?
Programmierschnittstelle: Stellt die Dienste des Betriebssystems für die Programme zur Verfügung (Systemaufrufe) Benutzerschnittstelle: Gesamtheit aller Systemprogramme oft mit GUI realisiert
229
Welche Hardware-Komponente unterstützt das Betriebssystem beim Speicherschutz?
Die MMU Memory Management Unit, enthalten in der CPU, ist für die Umrechnung der logischen in die physischen Adressen zuständig
230
Welche Adresse enthält das Basisregister?
Das Basisregister enthält die kleinste erlaubte physische AdresseDas Basisregister enthält die kleinste erlaubte physische Adresse
231
Warum müssen die logischen Adressen kleiner sein als der Inhalt des Grenzregisters?
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
Wie ist das Vorgehen, wenn der Hauptspeicher zu klein wird, um alle Adressräume aufzunehmen?
In diesem Fall werden einige bereite oder blockierte Prozesse mit einem Abzug ihres Adressraums in den Externspeicher ausgelagert.
233
Was entscheidet über die Auslagerung eines Prozesses in den Externspeicher?
Der Langzeit-Scheduler
234
Kann einen ausgelagerten Prozess wieder rechnen lassen?
Nein- Bevor ein ausgelagerter Prozess weiterreichten kann, muss er erst wieder eingelagert werden
235
Was ist swapping?
Der Vorgang des Aus- und Einlagerns von Prozessen
236
Muss ein Prozess beim Einlagern wieder exakt an die selbe Stelle im Hauptspeicher, an der er vorher gestanden hat, geschrieben werden?
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
Was ist externe Fragmentierung?
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
Welche Strategien gibt es, um die externe Fragmentierung auszugleichen?
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
Was versteht man unter paging?
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
Wo befindet sich die Seitentabelle (paging)?
Die Seitentabelle ist Teil des Prozesskontextes.
241
Was ist die interne Fragmentierung?
Im Falle von paging, kann es vorkommen, dass ein Prozess eine Seite nur zum Teil beschreibt, dann bleibt dieser „Seitenrest“ ungenutzt.
242
Welche Auswirklungen hat es, wenn man die Seiten sehr groß oder sehr klein auslegt (paging)?
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
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?
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.8*120ns+0.2*240ns =122.4 ns Hier also eine Zunahme von 22,4%
244
Ist es möglich, dass mehrere Prozesse auf einen gemeinsamen Speicherbereich zugreifen können?
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
Was ist ein virtueller Speicher (Virtual Memory)
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
Was sind die Vorteile bei einem virtuellen Speichers?
- 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
Wie wird ein Zugriff auf eine Seite, die nicht im Hauptspeicher steht genannt, was passiert dann?
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
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?
Es muss eine andere Seite in den Sekundärspeicher ausgelagert werden. Für die Wahl der auszulagernden Seite gibt es verschiedene Strategien.
249
Was versteht man unter „Buddy Strategie“
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
Was versteht man unter „kritischer Abschnitt“?
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
Wie vermeidet man, dass zwei Prozesse zu selben Zeit in ihren kritischen Abschnitt eintreten?
Die Prozesse müssen synchronisiert werden.
252
Welche Möglichkeiten gibt es um Prozesse zu syncronisieren?
``` (Wiki) Lösungskonzepte für das Problem des Kritischen Abschnitts: Semaphor Mutex Lock Monitor ```
253
Wie funktioniert das Konzept des Semaphors?
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
Mit welchem Befehl kann man sich in Unix eine Liste aller existierenden Prozesse und ihren Ressourcen Verbrauch ausgeben lassen?
Mit dem Befehl top
255
Was sind leichtgewichtige Prozesse (Threads)?
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
Wie bezeichnen wir eine Gruppe von leichtgewichtigen Prozessen?
Task (Aufgabe)
257
Schlage eine Anwendung vor, die von der Benutzung von Threads profitiert und eine, bei der dies nicht der Fall ist
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
Wieviele Möglichkeiten gibt es, leichtgewichtige Prozesse zu implementieren?
2 Möglichkeiten: 1. Kernel-Threads werden im Betriebssystemkern realisiert. 2. Benutzer-Threads hingegen im privaten Speicherbereich eines Prozesses. Es gibt ebenso Mischformen aus beiden Implementierungen.
259
Was ist der Unterschied zwischen Kernel-Thrads und Benutzer-Treads?
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
Welchen Nachteil haben Benutzer-Threads gegenüber Kernel-Threads?
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
Welche Art der Implementierung leichtgewichtiger Prozesse ist beim Dateiserver vorzuziehen?
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
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.
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
Beschreibe was eine Datei ist.
Eine Datei ist eine Folge von Datensätzen, die zusammengehörige Information enthalten.
264
Mit welchem Befehl kann man sich in Unix den nNamen einer Datei ausgeben, in dem man sich befindet?
PWD (print working directory)
265
Mit welchem Befehl kann man sich in Unix die Objekte ausgeben lassen, die im aktuellen Verzeichnis enthalten sind?
Mit dem Befehl ls.
266
Welche Ausgabe erzeugt der Befehl ls-ls?
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
Ü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
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
Wie werden in Unix die Zugriffsrechte auf eine Datei oder ein Verzeichnis festgelegt?
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
Ü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
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
Was ermöglicht der Befehl Chmod g+w myprogram?
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
Übungsaufgabe 2.12. | Was bewirkt der Befehl chmod go+rw entwurf.tex?
Allen Nutzern (Gruppe und Others) wird auf Entwurf.tex ein lese und Schreibrecht zugeteilt
272
Wie ist eine Datei aus physischer Sicht aufgebaut?
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
Weswegen ist es wünschenswert, die Blöcke einer Datei möglichst hintereinander auf der Platte zu speichern?
- 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
Werden heutzutage Dateien zusammenhängend gespeichert
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
Was ist FAT?
FAT: file-allocation table: | Eine Liste die, die physischen Blockadressen von Datei-Blöcken verkettet.
276
Ü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?
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
Wie werden in Unix Dateien verwaltet?
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
Ü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?
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
Unterstützt inodes wahlfreien Zugriff?
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
Wie können bei dem inodekonzept eine Übersicht gestalten, welche Blöcke noch frei sind?
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
Ein Prozess braucht Speicherplatz im Hauptspeicher. | Welche Zuweisungsverfahren gibt es?
ein zusammenhängendes Stück, | mehrere zusammenhängende Segmente, Buddy, Paging
282
Welche Verfahren verursachen interne und (oder) externe Fragmentierung?
zusammenhängender Hauptspeicherbereich: interne + externe Fragmentierung Paging: interne Fragmentierung Buddy-Strategie: interne Fragmentierung
283
Was bedeutet die interne und die externe Fragmentierung?
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
Wie könnte man mit dem Problem der internen und externen Fragmentierung umgehen?
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
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?
Unabhängigkeit zwischen Programmen und Rechnern, Relokierbarkeit
286
Wie wird eine logische Adresse auf die physische Adresse | abgebildet? Welche Hardware wird bei der Umrechnung gebraucht?
Basis- und Grenzregister bei der zusammenhängenden Zuweisung, Seitentabelle bei Paging, Mit Hilfe von Hardware
287
Was ist Paging? Wie funktioniert es?
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
Was sind die Vorteile von Paging?
Seiten gemeinsam benutzen: shared memory, ohne externe Fragmentierung, einfache Verwaltung des Hauptspeichers, Realisierung vom virtuellen Hauptspeicher
289
Wie viele Zugriffe auf den Hauptspeicher werden bei Paging mindestens benötigt, wenn ein Wort gebraucht wird?
1. Seitentabelle befindet sich im Hauptspeicher (PCB) 2. Berechnung der physischen Adresse mithilfe des Basisregisters 3. Grenzregister 4. Zugriff auf die physische Adresse
290
Welche Probleme können entstehen, wenn man eine Seite zu groß oder zu klein wählt?
größere interne Fragmentierung bei der größeren Seite, lange Seitentabelle bei der kleineren Seite
291
Was ist der Ansatz vom virtuellen Speicher?
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
Welche Vorteile und Nachteile hat der virtuelle Speicher?
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
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?
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
Was passiert, wenn eine Seite nicht im Hauptspeicher vorhanden ist?
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
Was ist ein Seitenfehler?
Bei einem Seitenfehler wird auf eine Seite (Page) zugegriffen, die sich nich in dem Hauptspeicher befindet.
296
Wie wird ein Seitenfehler behandelt?
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
Welche Aktionen gibt es, um die fehlende Seite in den Hauptspeicher zu holen?
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
Wie merkt das Betriebssystem, dass eine Seite nicht im Hauptspeicher liegt?
fehlende Seiten stehen im Sekundärspeicher und sind in der Seitentabelle entsprechend markiert (Present-Bit).
299
Bei Linux wird die Hauptspeicherzuweisungsstrategie Buddy eingesetzt, wie funktioniert sie?
* 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
Welche Fragmentierung hat die Buddy Strategie?
Interne Fragmentierung
301
Warum herrschen Wettkampfbedingungen (Race Conditions) zwischen Prozessen, wenn sie auf die gleiche Variable zugreifen?
Parallelität von Prozessen, Scheduling, Scheduler
302
Was bedeutet race conditions?
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
Was ist ein kritischer Abschnitt?
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
Warum ist die Prozesssynchronisation wichtig?
Ein Programm muss deterministisch sein, d.h. das Ergebnis darf nicht von der Ausführungsreihenfolge der Prozesse abhängen
305
Welche Probleme können entstehen, wenn z.B. die Prozesse Beobachter und Berichterstatter nicht synchronisiert werden?
Dass eine Race-Condition entsteht und Inkonsistenz entsteht
306
Welche Probleme gibt es, wenn man die Prozesse Beobachter und Berichterstatter mit einer Synchronisationsvariable switch synchronisiert?
busy waiting, abwechselnd in ihrer kritischen Abschnitte
307
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?
Beobachter wartet, dass Switch auf 0 steht, da er höher priorisiert ist, kommt Berichterstatter nicht zum Zug - somit entsteht ein dead lock
308
Was ist ein Semaphor?
eine globale Variable mit einer Warteschlange
309
Welche Operationen darf man auf einen Semaphor ausführen?
nur Initialisierung, down und up
310
Was machen die Operationen down und up bei einem Semaphor?
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
Wie kommt ein Prozess wieder aus der Warteschlange eines Semaphors aus, wenn er bei der Ausführung von down blockiert?
Indem ein anderer Prozess mit der up-operation die count-variable wieder hochzählt
312
Was macht der Prozess, der aus der Warteschlange eines Semaphors auskommt?
Der Prozess tritt direkt in den kritischen Abschnitt ein, ohne dabei down nochmal aufzurufen.
313
Welche Vorteile hat ein Semaphor?
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
Warum enthalten down und up auch einen kritischen Abschnitt?
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
Wie kann man die unteilbare Operationen bei einem | Einprozessorsysytem realisieren? Was ist die Gefahr?
Man müsste den Unterbrechungsbetrieb aussetzen. | Somit kann ein Prozess beliebig viel Rechenzeit beanspruchen.
316
Was macht der Systemaufruf fork?
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
Was sind Threads?
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
Was haben die Threads eines Prozesses gemeinsam und was nicht?
Alle Threads benutzen das selbe Datensegment und Programmsegment hat aber einen eigenen Stack, Programmzähler und Registriersatz.
319
Welche Vorteile haben Threads im Vergleich zu Prozessen?
Kommunikation durch das gemeinsamen Datensegment
320
Wo kann man Threads einsetzen?
Wenn man einen Prozess in mehrere Ausführungspfade unterteilen kann.
321
Was ist der Unterschied zwischen Benutzer-Threads und Kernel-Threads?
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
Was ist ein Dateisystem?
Dateisysteme dienen der Verwaltung von Dateien (files) Dateisysteme dienen der Verwaltung von Dateien (files)
323
Wozu ist ein Dateisystem gut?
Der Benutzer braucht sich nicht mit der Festplatte auseinanderzusetzen, ein Dateisystem bietet den Benutzern eine logische Sicht von Dateien an
324
Welche Informationen gibt es in den Attributen einer Datei?
- Zugriffsrechte - Eigentümer/Gruppe - Zeitstempel - Größe - Anzahl der Links
325
Was sind die Hardlinks?
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
Wie sehen die Zugriffsberechtigungen einer Datei bei UNIX aus?
* read leserecht * write Schreibzugriff mit überschreiben und löschen * execute Benutzer darf dieses Verzeichnis zum akuellen Arbeitsverzeichnis machen oder die Datei ausführen
327
Wie werden die Zugriffsrechte ausgewertet, wenn ein Prozess einen Zugriff startet?
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
Wer vergibt die Zugriffsrechte?
Der Ersteller der Datei oder der Superuser kann Zugriffsrechte vergeben
329
Ein Dateisystem muss eine Folge von Datensätzen in Blöcke auf dem Sekundärspeicher abbilden. Wie macht das Dateisystem FAT?
für jeden Block auf der Festplatte gibt es einen Eintrag in FAT
330
Wie groß ist die FAT?
die Anzahl der Blöcke auf der Festplatte mal die Länge der Blockadresse
331
Wie kann man die Lokalisierung eines Blocks einer Datei auf der Festplatte mit FAT feststellen?
sequenzielle Suche in der FAT
332
Was sind die Nachteile von FAT bei großen Dateien?
Man benötigt viele Links um ans Ende der Datei, zudem ist die FAT auf 32 Bit Adressierung <4 GB begrenzt.
333
Wie macht das Dateisystem inode bei LINUX/UNIX?
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
Was steht in einem inode?
Attributte und 13 Adressen
335
Wie groß kann ein inode sein?
128 Byte in Linux (ext2)
336
Wie kann man die Lokalisierung eines Blocks einer Datei auf der Festplatte mit inode feststellen?
Durch die Adressierung (direkt, einfach-indirekt, zweifach-indirekt, dreifach-indirekt)
337
Wie viele Zugriffe auf die Festplatte höchstens benötigt man, um einen Datenblock zu lokalisieren, wenn der inode schon im Hauptspeicher liegt?
Vier; drei für die Indexblöcke und einer für den Datenblock
338
Welche Probleme sind bei der Verwaltung von Prozessen zu lösen?
Interprozesskommunikation | Speicherschutz
339
Beschreibung der Verwaltung zusammenhängender Hauptspeicherbereiche.
- 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
Was sind Parallelrechner und wie funktionieren sie?
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
Wie funktioniert die Hauptspeicherverwaltung?
- Unterteilung in feste zusammenhängende Bereiche - Prozesse bekommen einen zusammenhängen Bereich, genau der Größe die sie brauchen - Paging
342
Welche Auslagerungsstrategie gibt es?
- 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
Was ist ein Deadlock?
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
Wie wird die Seitennummer beim Paging bestimmt?
Die logischen Adressen werdenin zwei Abschnitte aufgeteilt: Seitennummer (vorderen 3 Bit) Offset (hinteren 7 Bit)
345
Wie funktioniert die Prozesssynchronisation?
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
Was ist für die CPU-Verwaltung verantwortlich?
Das Betriebssystem
347
Wie nennt man ein laufendes Programm?
Prozess
348
Was tut man, wenn alle Seitenrahmen belegt sind?
Auslagern bestimmter Prozesse (Abzug des Adressraums) oder Seiten in den Externspeicher (swapping)
349
Warum braucht man Prozesssynchronisierung?
Erzeuger-Verbraucher-Problem, | Inkrementieren einer Variable durch zwei Prozesse
350
Wer teilt den Prozessen die CPU zu?
Dispatcher
351
Welches Problem gibt es, wenn mehrere Prozesse gleichzeitig ablaufen?
Prozesssynchronisation | Interprozesskommunikation
352
Was passiert, wenn ein Prozess mehr Seiten benötigt, als zur Verfügung stehen?
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
Was versteht man unter LRU?
- LRU (least recently used): die Seite, die am längsten nicht benutzt wurde wird ausgelagert
354
Was unterscheidet Threads von Prozessen?
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
Was ist der Unterschied zwischen Scheduler und Dispatcher?
Scheduler: Legt die Strategie für die Rechenzeitvergabe fest Dispatcher: Führt den Kontextwechsel durch
356
Welche Daten enthält der Prozesskontrollblock?
- Prozesskontext: Registerinhalte, Befehlszähler, Grenzen des Adressraums, Prozessnummer, Priorität - Benutzer- oder Systemmodus - Prozesszustand (z.B. bereit)
357
Wie erfolgt der Prozesswechsel durch den Dispatcher?
Der Dispatcher führt den Kontextwechsel durch, dazu wird der Prozesskontext gesichert und der Prozesskontext des neuen Prozesses in den Prozessorkern geladen
358
Angenommen, es gäbe keine Interrupts - welche Alternative hätte man?
nicht präemptive Systeme, bei der Prozesse die CPU freiwillig abgeben (kooperative Systeme) - FCFS (first come, first served) - SJF (shortest job first)
359
Welche Komponente überwacht Zeitscheibe bei Ausführung?
Hardware Zeitgeber (Timer), eigener Chip im Rechner, der an den Takt der CPU angeschlossen ist
360
Wann wird der Dispatcher aktiv?
beim Kontextwechsel
361
Wird bei Round-Robin ein Scheduler benötigt?
Ja, zur Überwachung, dass kein Prozess sein Quantum der Zeitscheibe überschreitet
362
Warum gibt es keine „Referentielle Integrität“ bei Betriebssystemen?
.
363
Wohin werden die Register beim Prozesswechsel gesichert?
In den Proxesskontext im Hauptspeicher, ist dieser voll werden bereite oder blockierte Prozesse in den Externspeicher ausgelagert.
364
Woher wird der PCB beim Prozesswechsel geladen?
Aus dem Hauptspeicher
365
Was passiert, wenn die Unterbrechungsroutine vollständig durchlaufen wurde?
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
Sind Unterbrechungen synchron oder asynchron?
Hardwareunterbrechungen: asynchron Softwareunterbrechungen: synchron
367
Wie kommen die Daten aus dem Puffer des Gerätes in den Hauptspeicher?
- 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
Braucht das Betriebssystem pinned pages und forced output und wenn ja/nein, warum?
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
Dirty Bit
Kennzeichnet Seiten, auf die ein Schreibzugriff stattgefunden hat
370
Wofür braucht das BS die Registerinhalte im PCB?
Im PCB sind die Adressräume, die Prozessnummer, die Priorität, ob der Prozess im System- oder im Benutzermodus arbeitet und Zugriffsberechtigungen vermerkt
371
Kann ein Prozess auf seinen eigenen Prozesskontext zugreifen?
Nein, da sonst ein nicht priviligierter Prozess, sich z.B. eine höhere Priorität zuweisen könnte
372
Wo ist der Prozesskontext untergebracht?
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
Was limitiert die Größe des Adressraums?
Basis- und Grenzregister
374
Was heißt faires Scheduling?
Wenn ein rechenbereiter Prozess in endlicher Zeit rechnen darf
375
Bei einem Einprozessorsystem laufen Prozesse nicht parallel. Wie läuft es dann ab?
Der Scheduler weist jedem bereiten Prozess im schnellen Wechsel ein gewisses Quantum an Rechenzeit zu.
376
Bräuchte es bei einem Stapelbetrieb ein Befehlszählregister?
Nein, da ja der Auftrag nach einander abgearbeitet wird.
377
Wozu braucht man den Stack?
hier werden Registerinhalte gespeichert
378
Was steht in der Prozesstabelle?
Enthält pro laufenden Prozess einen Eintrag, den Prozesskontollblock.