Betriebsysteme-FAQ

Eine Funktion void funktion_1(int argument1, stru_2 *argument2) werde programmiert, dabei sei stru_2 wie folgt definiert:
typedef struct {
int x1;
char x2;
} stru_2;
Geben Sie die Instruktionenfolge an, mit der die Komponente x2 des 2. Arguments in das Register ah geladen wird. (Die Lösung besteht aus 2 Instruktionen!!!)
Modell: small
MOV BX,[BP + 6]
MOV AH,[BX + 2]
oder
MOV SI,[BP+6]
MOV DI,2
MOV AH,[SI + DI]

Geben Sie die Unterschiede bei der Ausführung von Programmen durch die Kommandointerpreter in MS-DOS und UNIX an. Beschreiben Sie dazu kurz, was abläuft, wenn unter MS-DOS in der Kommandozeile
c:\> progname
eingegeben wird, und wenn unter UNIX in der Kommandozeile
$ progname
eingegeben wird.

MS-DOS:
„command.com“ lädt den Programmtext der ausführbaren Programmdatei progname.exe in den freien Speicher. Zur Ausführung wird zum Anfang des Programmtextes verzweigt.
Das Return geht zum command.com zurück.
UNIX:
Die Shell führt ein fork() aus. Der Child-Prozeß führt ein exec auf die Programmdatei progname aus. Damit wird der Programmtext von progname in den Hauptspeicher geladen und ausgeführt. Der Parent-Prozeß (Shell) führt ein wait() auf das Ende des Child-Prozesses aus.

Es gibt bei modernen Betriebssystemen Threads (leichtgewichtige Prozesse) und Prozesse (schwergewichtige Prozesse).
a) Wie sieht die Einrichtung eines gemeinsamen Speicherfeldes zwischen Threads und wie zwischen Prozessen aus?
b) Ist der Bezug auf dieses gemeinsame Feld bei Threads problemlos, wenn hierüber ein Datenaustausch erfolgen soll? Welche Tools müssen evtl. eingesetzt werden?

a) Globale Variable können als gemeinsame Speicherfelder eingerichtet werden.
b) Es ist eine Synchronisation erforderlich. Programmtechnisch ergeben sich kritische Abschnitte, die z.B. über Semaphore gesteuert werden können.

Gegeben sei eine virtuelle Speicherung mit Seitenaustauschorganisation.
Welche Nachteile bringt eine zu große Seitenlänge mit sich?
Welche Nachteile erhält man, wenn die Seitenlänge sehr klein ist?

zu groß: Behebung der Seitenfehler ist zeitaufwendig.
    Verschnitt ist insbesondere bei kleinen Programmen relativ groß.
zu klein: viele Seitenfehler
    lange Seitentabellen (Verwaltungsaufwand)

Beim Öffnen einer Datei wird vom Betriebssystem ein Verwaltungsfeld angelegt. Geben Sie 3 wichtige Größen an, die dort abgespeichert werden.
Anfangsadresse der Datei
Dateizeiger
Pufferadresse(n), Pufferinhalte


Eine Funktion void funktion_1(int arg1, typx arg2) werde in Assemblersprache programmiert.
Dabei sei typx wie folgt definert:
typedef char typx[20];
(in Worten: arg2 ist ein Zeiger auf einen Array mit dem Komponententyp char)
Geben Sie die Instruktionenfolge in Assemblersprache an, mit der die 4. Komponente von arg2 in das Register ah geladen wird.
Modell: small
Argumentübergabe entsprechend der Konvention der Sprache C

1) MOV AX,.. AX=4
POP SI SI=2
ADD AX,.. AX=4+1=5
MOV .. AH=4C
INT 21H Interrupt

2) MOV BX,[BP+6]
MOV SI,3
MOV AH,[SI+BX]

Betriebssystem UNIX: Welche Bedeutung hat der Pipe-Operator | in einer Kommandozeile? Wie und mit welchen Systemaufrufen wird er in der Shell realisert?
Die Standardausgabe des links stehenden Kommandos wird in die Standardeingabe des rechts stehenden Kommandos umgelenkt.
pipe() zum Erstellen der Pipe
fork() für ersten Child-Prozeß
close() und dup() zur Umlenkung der Standardausgabe in die Pipe,
exec() für die Programmdatei
fork für zweiten Child-Prozeß
close() und dup() zur Umlenkung der Standard-Eingabe
exec() für die Programmdatei

Synchronisation mit Semaphoren:
Gegeben sei ein Systemprozeß P. P läuft in einer Schleife.

loop:
Warten auf ein Signal
  |
Bearbeiten der Datenstruktur XX
jmp loop;


Das Warten geschieht über einen Semaphor.
Die Datenstruktur XX muß exclusiv belegt werden.

Geben Sie die benötigten Semaphore mit den Anfangswerten an.
Geben Sie die Funktionsaufrufe für die Semaphore der Prozesses P an.
0 sig_sem
1 riegel_sem
sem_wait(sig_sem);
sem_wait(riegel_sem);
Bearbeiten
sem_signal(riegel_sem);

INTEL Prozessoren X86, Pentium:
Welche Bedeutung haben die Werte in den Segmentregistern?
a) im Real-Mode
b) im Protected Mode
Bei zusätzlichem Paging (Seitenaufteilung):
In welcher Stufe der Adreßumsetzung greift der Paging-Mechanismus ein?

a) Der Wert im Segmentregister, erweitert rechts um 4 binäre 0’en, stellt die Segmentanfangsadresse dar.
b) Der Wert im Segmentregister stellt einen Segment-Selektor dar. (Verweis auf einen Eintrag in einer Segment-Deskriptor-Tabelle.
Paging ist nur im protected Mode möglich.
Herangezogen wird die flache Adresse nach der Segmentumsetzung.


Warum kann man bei dem Betriebssystem DOS 16 Zeichen vorab an der Tastatur eingeben, ohne daß bereits die Eingabeanforderung vorliegt? Gehen Sie kurz auf den Mechanismus ein.
Der Tastaturcontroller ist interruptfähig.
Der Tastaturtreiber besitzt eine ringförmig organisierten Puffer, der 15 Zeichen aufnehmen kann.
Ein Tastendruck löst einen Interrupt IRQ1 (INT 9) aus. Die Interruptfunktion INT 9 identifiziert den Tastendruck, ermittelt den ASCII-Wert und trägt ihn in den Puffer ein, falls noch Platz ist. Ausgelesen wird der Puffer mit der Funktion INT 16h.

Warum sind Puffer zwischen Produzent und Konsument nützlich? Schildern Sie kurz den Sachverhalt bei sehr vielen Pufferfeldern und bei nur einem Pufferfeld.
Durch Puffer können Geschwindigkeitsunterschiede zwischen abhängig operierenden Prozessen ausgeglichen werden, zB zwischen Produzent und Konsument.
Sehr viele Pufferfelder: große Geschwindigkeitsunterschiede können ausgeglichen werden.
Ein Pufferfeld: Produzent und Konsument müssen synchron laufen

Wozu benutzt eine Funktion, die der PASCAL- oder der C-Konvention entspricht, das Register BP? Welche Daten (insgesamt drei verschiedene Arten von Daten!) werden damit angesprochen?
Über BP wird der Aktivierungssatz einer Funktion adressiert.
• Argumente
• Rücksprungadresse
• Lokale Variable

Skizzieren Sie die Client-/Serverbeziehung. Geben Sie mindestens zwei Kommunikationstools an, die in diesem Zusammenhang verwendet werden können.
Der Serverprozeß erstellt einen Kommunikationspunkt, über dessen Adresse er für den Client erreichbar ist. Der Clientprozeß stellt eine Kommunikationverbindung mit dem Server her und fordert einen Dienst an. Der Client muß die Adresse des Servers kennen.
• Sockets
• Named Pipes
• Remote Procedure Call

Warum stürzt ein Rechner (hier: ein PC) ab, wenn man ohne Vorbereitung aus dem Real-Mode-Betrieb in den Protected-Mode-Betrieb umschaltet? Welche Minimalanforderung muß erfüllt sein, damit dies nicht geschieht?
Die Adreßumsetzung (Segment, Offset) -> flache Adresse kann nicht korrekt ausgeführt werden.
Die Segmenttabelle muß vorhanden sein, das Register GDTR-Register muß auf dieTabelle zeigen

Beispiele für eine gestreute Abspeicherung von Dateien sind die Systeme HPFS (OS/2) und NTFS (Windows NT).
Welche Probleme entstehen, wenn bei solchen Systemen eine Datei stark vergrößert wird? Wie werden sie gelöst?

Bei HPFS und NTFS werden die Datenblöcke gestreut abgespeichert. Die logische Reihenfolge der Blöcke wird über Indextabellen sichergestellt. Wächst eine Datei, so müssen die Indextabellen sich ausdehnen können.
Lösung des Problems: Die Indextabellen werden als Bäume strukturiert


Grafik-Ausgabe auf den Bildschirm
Die Grafikausgabe hat einen Adressraum der Länge 64 kByte.
1. Wie bezieht man sich auf diesen Adressraum?
2. Die Grafikadapter besitzen heute einen eigenen Speicher von mehreren MegaBytes. Welche beiden Kenngrößen der Grafikausgabe können dadurch erhöht werden?
3. Wie ist es möglich mit einem 64kB-Adressraum sich auf z.B. 4 MB Speicher zu beziehen? (nur kurze Antwort mit wenigen Stichworten!)

1. Hauptspeicheradressen A0000 bis AFFFF
2. Auflösung und Anzahl der Farben
3. Es gibt hardwaremäßig mehrere Ebenen der Länge 64kB, die jeweils in die Hauptspeicheradressen eingeblendet werden. Welche Ebene dies gerade ist, wird über ein Register des Adapters (I/O-Adresse) gesteuert.

Auf einer Steckkarte für ein ISA-Slot soll ein Uhrmodul entwickelt werden. Welche Minimalschnittstelle muß zur Verfügung stehen, damit das Betriebssystem einmal pro Sekunde die Zeit lesen kann?
Der Modul muss interruptfähig sein und damit eine IRQ-Nummer haben.
Das Datenregister des Moduls, das die Uhrzeit enthält muss eine I/O-Adresse besitzen.
Evtl. wird noch ein Statusregister benötigt.

Auslagerungstrategie bei virtueller Speicherung
Ein Rechner besitzt vier Seitenrahmen. Der Zeitpunkt des Ladens, des letzten Zugriffs und die R(eference) und M(odify)-Bits für jede Seite sind unten angegeben. Die Zeiten sind Uhrticks: 0,1,2,3,... .

Seite Ladezeitpunkt Letzter Zugriff R M
0 155 160 0 0
1 330 332 1 1
2 112 180 1 1
3 220 390 1 0
a) Welche Seite wird durch FIFO ersetzt?
b) Welche Seite wird durch LRU (least recently used) ersetzt?
c) Welche Seite wird durch LRU-Second Chance ersetzt? Das Verfahren beginne hier bei Seite 2.

a) Seite 2
b) Seite 0
c) Seite 0

Betriebssystem UNIX:
Warum unterscheidet man zwischen der Standardausgabe und der Standardfehlerausgabe, obwohl bei beiden der Bildschirm voreingestellt ist?

Charakteristisch für UNIX sind Programme, deren Standardausgabe in Dateien umlenkbar sind (zB Filterprogramme).
Man kann die Standardausgabe umlenken und trotzdem die Fehlerausgaben auf dem Bildschirm haben.

Prozesse
Zwei parallel ablaufende Prozesse (oder auch Threads) beziehen sich auf die gemeinsame Variable A (Anfangswert = 0).
Prozess P1 addiert 100 mal eine 1 auf A. Prozess P2 subtrahiert 100 mal eine 1 auf A.
Gibt es eine Bedingung, bei deren Vorliegen ein Wert  0 herauskommt? Falls ja, geben Sie die Bedingung an, falls nein, begründen Sie dies.

Unfreiwilliger Entzug der CPU durch den Scheduler (zB Zeitscheibenbetrieb).
Wird bei einem Prozess die arithmetische Operation nicht atomar ausgeführt, d.h. ein Prozess wird vor dem Zurückschreiben des Ergebnisses vom Register in den Hauptspeicher unterbrochen, so kann ein Endergebnis  0 herauskommen.


Wie wird das Berechnen einer Bedingung und der Bezug auf den errechneten Wert von der höheren Programmiersprache in die Maschinensprache umgesetzt?
Zeigen Sie dies an Hand des Beispiels if (a < b) a=a+1; (int a,b;).

Es wird a-b mit der Instruktion cmp gebildet:
Mov ax,a
Cmp ax,b
Danach wird mit einer bedingten Sprunganweisung über die Instruktionen a=a+1 gesprungen. Die Sprunganweisung wird ausgeführt, wenn a<b nicht erfüllt ist. Angezeigt wird dies durch die Flagwerte Zero==1 oder Sign==0.

Welche Abstraktion stellt das BIOS gegenüber der direkt programmierten Ein-/Ausgabe zur Verfügung?
Beispiel: Ausgabe auf den Bildschirm

Das BIOS stellt Funktionen der Art INT nr zur Verfügung, die Argumente werden in Registern übergeben.
ZB die Ausgabe eines Zeichens auf dem Bildschirm geschieht über die Funktion INT 10h, das auszugebende Zeichen steht in einem Register.
Bei direkter Ausgabe werden Werte in IO-Variable (Steuer-, Daten- und Statusports) geschrieben bzw von dort gelesen. Bei der Bildschirmausgabe werden die Zeichen nicht in eine I/O-Variable, sondern in einen festen Bereich des Hauptspeichers geschrieben.

Wie kann man erreichen, daß ein Programm einmal pro Stunde aktiviert wird?
Man muß eine Interruptfunktion an einen Zeitgeberinterrupt anbinden. Diese Funktion muß bei jeder Aktivierung feststellen, ob die Stunde vergangen ist. Die Zeit wird in festen BIOS-Variablen gezählt.
Ist die Stunde vergangen, so wird über eine Betriebssystemfunktion die Programmausführung gestartet.

In modernen Betriebssystemen hat jeder Prozeß einen eigenen Adreßraum von maximal 4 Gigabytes. Wie wird dies realisiert?
Wie wird erreicht, daß ein Prozeß keinen Zugriff auf den Adreßraum eines anderen Prozesses hat?
Wie kann man Speicherbereiche nur zum Lesen einrichten (read only)?

Die Lösung ist die virtuelle Speicherung, die den Adreßraum bei Bedarf auf einem Festplattenspeicher realisiert. Dazu ist wird der Adreßraum ia in Seiten aufgeteilt, die sich entweder im Hauptspeicher oder in einem Festplattenspeicher befinden. Verwaltet wird dies über die Seitenabbildungen. Die Seitenabbildungen können mehrstufig ausgeführt werden.
Man trennt die Adreßbereiche dadurch, daß man jedem Prozeß eine eigene Seitenabbildung gibt. Bei einer Prozeßumschaltung muß dann jeweils auch eine neue Seitenabbildung aktiviert werden.
Da bei jedem Speicherbezug die Seitenabbildung herangezogen werden muß, kann man dort auch wirkungsvoll einen Schreibschutz eintragen. Führt die aktive Instruktion eine Zuweisung durch, so würde die Ausführung der Instruktion abgebrochen werden.

Ein Dateisystem speichere die Dateien komplett in einem zusammenhängenden Speicherbereich ab. Welche Vorteile und Nachteile hat ein solches Verfahren?
Welche modernen Betriebssystem streben eine solche Speicherung an? Wann und wie weichen sie von diesem Prinzip ab?

Vorteile: schneller Zugriff, insbesondere bei sequentieller Verarbeitung, einfache Speicherverwaltung
Nachteile: Die Datei kann nicht vergrößert werden, es entsteht viel Verschnitt auf dem Datenträger.
OS/2 und Windows NT
An sich basieren beide Systeme auf der gestreuten Abspeicherung von Dateibereichen (Extents), jedoch wird versucht, durch entsprechende Planung die Extents möglichst groß und erweiterbar anzulegen. Wird die Datei sehr groß, so werden die Bereiche mit einem B-Baum verwaltet.


Hardwarebezogene Ein-/Ausgabe. Geben Sie die Unterschiede zwischen PIO und DMA an, indem Sie beide Verfahren kurz charakterisieren.
PIO ist die per Programm über die CPU abgwickelte Ein-/Ausgabe. Die Daten werden über die CPU-Register und die IO-Variablen (Port-Variablen) transportiert. Unterstützt werden kann dies durch Geräte-Interrupts.
Bei DMA wird ein größerer Datenblock direkt zwischen Gerätesteuerung und Hauptspeicher übertragen. Dazu muss eine DMA-Steuerung die Bus-Master-Eigenschaft besitzen. Die Übertragung wird von dem CPU-Programm angestoßen, das Ende der Übertragung wird per Interrupt mitgeteilt.

In den höheren Programmiersprachen wird nur in ganz seltenen Fällen eine Sprunganweisung („goto“) verwendet. Gilt dasselbe auch für die Sprunginstruktionen der Maschinensprache? Begründen Sie Ihre Antwort. Gehen Sie dabei auch auf die verschiedenen Arten der Sprunginstruktionen ein.
Nein. In der Maschinensprache wird die Sprunginstruktion für die Auswertung logischer Ausdrücke und die Realisierung von if- und while-Anweisungen benötigt.
Es gibt bedingte Sprunginstruktionen und unbedingte Sprunginstruktionen. Die bedingten Sprunginstruktionen verzweigen in Abhängigkeit von vorhandenen Bitmustern im Flag-Register. Die unbedingte Sprunginstruktion führt immer eine Verzweigung aus.

Wo und warum werden B-Bäume in Dateisystemen verwendet? Welche Probleme werden damit gelöst?
B-Bäume werden bei Dateisystemen mit gestreuter Speicherung der Dateien auf dem Datenträger eingesetzt. Mit ihnen wird der Index auf die Datenblöcke realisiert. Beispiel: NTFS-Dateisystem
Die Baumstruktur wird gewählt, um Änderungen in der Dateigröße einfach verwalten zu können und gleichzeitig ein schnelles Suchen zu ermöglichen.
Der besondere Vorteil des B-Baumes liegt darin, dass er für alle Endelemente die Stufenzahl gleich ist und dass die Knotengröße optimal an die Systemgegebenheiten anpassbar ist (wenig Plattenzugriffe bei einem Suchvorgang).

Gegeben sei ein Planungs- (Schedule-) Schema mit Priorität. Was bedeutet „Verhungern“ („Starvation“) in diesem Zusammenhang? Wie kann man in einem solchen System ein Verhungern vermeiden?
Ein Prozess verhungert dann, wenn er in einer prioritätsgesteuerten Bereit-Liste steht und aufgrund seiner schlechten Priorität nie aktiv gesetzt wird, da immer Prozesse mit höherer Priorität vorhanden sind.
Man kann das Verhungern vermeiden, indem man mit zunehmenden Altern in der Bereit-Liste die Priorität erhöht.

Warum wird das Konzept der Arbeitsmenge („Working Set“) in einer virtuellen Speicherverwaltung verwendet? Was kann passieren, wenn dieses Konzept nicht realisiert wird?
Mit der Arbeitsmenge wird die Zahl der Speicherrahmen gesteuert, die einem Prozess zur Verfügung stehen. Die Arbeitsmenge wird dynamisch so gehalten, dass der Seitenfehlerrate einen bestimmten Wert nicht übersteigt. Arbeitet man ohne dieses Konzept, kann es zum Thrasing kommen (Seitenflattern).


Was ist ein Betriebsystem?
Was macht ein Betriebsystem aus?

Ist ein Programm welches beim Booten geladen wird und dann beim Ausführen von Programmen die Prozesse Verwaltet.

Wodurch Kommunizieren die Programme unter Windows und mit Windows?
Durch die Messages

Was Enthält eine DLL?
Eine Ansammlung an Funktionen

Was ist der Vorteil einer DLL?
1) Wenn die Funktionen gebraucht werden wird die DLL's in den Speicher geladen.
2) Ein mal im Speicher kann von mehreren Prozessen gebraucht werden. (Speicher Komprimierung)

Was ist der Unterschied zwischen den *.sys und *.dll Dateien?
Die DLL Dateien werden bei bedarf in den Speicher geladen und *.sys sind immer im Speicher.

Wie ist es Realisierbar mehrere Prozesse/Programme parallel zu verarbeiten oder auch simuliert parallel zu verarbeiten?
1) Mehrere Prozessoren
2) Ein Prozessor mit intern (parallel Verarbeitungs-Architektur)
3) Prozess- / Timesharing

Was sind die Elementar Teile einer Programmiersprache?
1) Lade Befehle
2) Funktions-/Makroaufrufe
3) Verzweigungen


Welches sind die wesentlichen Unterschiede zwischen „Programm“, „Prozess“ und „Thread“?
Ein Programm ist ein ausführbarer Programmtext mit Datenfeldern in einem Adressraum, sei es im Hauptspeicher oder in einer EXE-Datei.
Ein Prozess ist die Ausführung eines Programms: Ein Programm wird als Prozess ausgeführt.
Ein Thread bezeichnet eine Ausführungsbahn eines Prozesses. Bei einem strikt sequentiell ausgeführten Programm hat der Prozess genau eine Ablaufbahn d.h. genau einen Thread.
Bei einem Programm mit nebenläufigen Funktionen besitzt der Prozess mehr als einen Thread. Mehrere Threads innerhalb eines Prozesses haben denselben Adressraum.

Gegeben sei ein Round-Robin-Scheduling. Welche Länge müssen die Zeitscheiben haben, damit Prozesse mit vielen I/O-Bursts bevorzugt werden? Haben Windows NT und Linux ein reines Round-Robin-Scheduling? Begründung!
Die Zeitscheiben müssen kurz gewählt werden.
Nein, bei beide Betriebssysteme haben Prozesse eine Schedule-Priorität. Prozesse mit gleicher Priorität haben ein RR.

Eine Pipe ist ein Mechanismus (Tool) zur Prozesskommunikation. Bei welcher Bedingung wird der schreibende Prozess angehalten? Bei welcher der lesende Prozess? Begründen Sie ihre Antwort anhand des Pipe-Mechanismus (Realisierung). Wann wird ein EOF gelesen?
Eine Pipe ist ein im Hauptspeicher realisierter Puffer, ähnlich einem Ringpuffer.
Ein Schreiber wird angehalten, wenn der Puffer voll ist. Ein Leser wird angehalten, wenn der Puffer leer ist. Ein Leser erhält ein EOF, wenn der Puffer leer ist und kein Schreibeingang mehr offen ist.

Unterschied zwischen Funktion und INT?
Macro und Funktion

Was macht ein Mode-Bit?
Ein Mode-bit zeigt die jeweilige Betriebsart. SUPERVISOR | USER


Was ist ein Adressraum?
Menge der Adressen der dem Prozess zur Verfügung stehenden Speicherfelder. Die Speicherfelder werden benötigt um den Programmtext, die Datenfelder, den Stack des Prozesses im Hauptspeicher unterzubringen.
Was ist ein linearer Adressraum?
Wenn die adresse direkt den speicher anspricht, ohne vorherberechnet zu werden (Realmode)
Was ist ein zweidimensionaler Adressraum? (Beispiel?)
Der logische Adressraum ist zweidimensional (SegmentNr., Offset) , z.B (3, 288) Speicherfeld 288 im Segment 3
Was ist ein Time-Sharing-Betrieb?
Der Begriff Time-Sharing kommt daher, dass die CPU-Zeit reihum auf die einzelnen Nutzer verteilt wird, das ganze geschieht interaktiv.
Was ist ein Batch-Betrieb?
Kann nur ein Programm gleichzeitig laufen, die Befehle werden nacheinander ausgeführt.
Warum wurde, als es die Hardware ermöglichte, ein Mehrprogrammbetrieb entwickelt?
Damit man einen Rechner nicht nur eine Anwendung laufen lassen kann
An welches Betriebsmittel stellt ein Mehrprogrammbetrieb besonders hohe Anforderungen?

Um gleichzeitig mehrere Prozesse von mehreren Nutzern ausführen zu lassen, diese stellen besonders hohe anforderungen an Betriebsmittel wie Arbeitspeicher und CPU.
Das Betriebssystem DOS unterstützt nur einen Ein-Programm-Betrieb. Warum war dies zu Beginn sinnvoll? Warum ist dies heute nicht mehr sinnvoll?
 ?????
Welche Betriebssysteme kennen Sie vom Namen her?
Windows, Linux, os/2, WinNT
Was versteht man unter dem Adressraum eines Prozesses?
Ablauf einer Anwendung:
Was ist eine Datei?
Die Dateien sind eine Abstraktion für die Speicherung von Daten auf den Speichergeräten
Charakterisieren Sie das frühe UNIX und das heutige UNIX anhand der Betriebssystemkategorien.
????
Was ist eine Schnittstelle (Interface)?
???
Was versteht man unter der Abstraktion von Betriebsmitteln?
Man fasst die Betriebsmittel, die sich ähnlich sind in Gruppen zusammen, um denen gemeinsame Funktionen zur Verfügung zu stellen, oder informationen die für den nutzer irrelevant sind werden verborgen.
Was versteht man unter der geteilten Nutzung von Betriebsmitteln?
Wenn Betriebsmittel gleichzeitig von mehreren Prozessen genutzt werden, (seite 7)
Was versteht man unter der Isolierung von Betriebsmitteln?
Wenn ein prozess auf ein Betriebsmittel zugreift, dürfen andere prozesse keinen einfluss darauf haben, z.b. Hauptspeicher: ein andrer prozess darf dort weder schreiben noch lesen.
Warum wird eine Funktion des Betriebssystemkerns nicht mit einem einfachen „call“ aufgerufen? (2 Gründe!)
Über call werden nur Nachrichten ausgetauscht, dazu gibt es keine Hardwareunterstützung
Die Funktionen werden mit Hilfe der Interrupt aufgerufen und im SUPERVISOR MODUS ausgeführt werden
Welche Speicherhierarchie sieht der Programmierer? Gibt es weitere Speicherstufen?
Sekundärer Speicher(massenspeicher) Dateien im Sekundärspeicher
Primärer Speicher(Hauptspeicher) Prozesskomponenten im Hauptspeicher
Temporäre Daten und Instruktionen in Registern der CPU
sind dem Programmierer sichtbar
L1 und L2 Cache die sich im prozessor bzw. mainboard befinden sieht der Programmierer nicht
Welche vier wichtige Teilsysteme enthält ein Betriebssystem?
Geräteverwaltung
Prozess- und Betriebsmittelverwaltung
Speicherverwaltung
Dateisystem
Warum können Speicherhierarchien die Korrektheit der Daten gefährden?
???


Anwendungssoftware: Löst ein spezielles Problem.
Systemsoftware: Unterstützt die Erstellung von Anwendungssoftware.
Betriebssystem: Der hardwarenahe Teil der Systemsoftware. Das Betriebssystem stellt die unabdingbaren
Funktionen zur Verfügung, die für einen sinnvollen Betrieb des Rechnersystems erforderlich
sind. Es ist schwierig das Betriebssystem innerhalb der Systemsoftware abzugrenzen.
Prozeß Ablauf einer Anwendung:
Ressource Betriebsmittel:
Raummultiplex: Das Betriebsmittel läßt sich in mehrere Einheiten aufteilen. Ein Prozeß bekommt eine solche Einheit zugewiesen. Beispiel: Speicherplatz
Zeitmultiplex: Zuweisung des kompletten Betriebsmittels für kurze Zeitintervalle. Beispiel: CPU
HAL Hardware-Abstraktions-Schicht
RPC Remote Procedure Call
DLL Dynamic Link Libraries
DDE Direct Data Exchange
OLE Object Linking and Embedding
PCB ProcessControlBlock Prozesssteuerblock
Thread ( oder ein leichtgewichtiger Prozeß, deutsch: Faden –bessere Bezeichnung: Ablaufbahn)
ist eine Basiseinheit der Programmausführung durch die CPU. Er besteht aus: Instruktionenadresse, Registersatz, Stack
SJF Shortest-Job-First - Scheduling
SJF ist optimal - ergibt ein minimale durchschnittliche Wartezeit für eine gegebene Menge von Prozessen.
nonpreemptive - dem Prozeß wird während des gesamten CPU-Bursts die CPU nicht ent zogen
preemptive - wenn ein Prozeß bereit wird, der eine kürzere CPU-Burstzeit hat als die verbleibende Zeit des derzeitigen Running-Prozesses, so wird diesem die CPU entzogen. Dieses Schema ist als Shortest-Remaining-Time-First (SRTF) bekannt.
Verhungern: Starvation :
1:ein Prozeß mit sehr niedriger Priorität erhält nie die CPU
2:Wenn die wait()-Funktion die Wartezeit nicht begrenzt, dann kann einem Prozess das „Verhungern" drohen.
Es besteht die Möglichkeit, daß ein Prozess nie aus einer Warteliste eines Semaphors herausgenommen wird.
RR Round-Robin ("Reihum")
Swapping (Auslagerung)
Das Speicherabbild eines Prozesses wird temporär in einen externen Speicher ausgelagert (swap out). Vor
der Fortsetzung des Ausführung wird es wieder in den Hauptspeicher eingelagert (swap in).
STLR Längenregister: enthält die Zahl der Segmente des Prozesses.
Segmentnr. s ist zulässig, wenn s kleiner STLR ist.
DMA Direct Memory Access -Direkter Speicherzugriff : Eine DMA-Einheit steuert den Datenfluß zwischen I/O-Einheit und Speicher. Die CPU sendet die Transferanforderung direkt zur DMAEinheit.
EIDE-Plattenlaufwerken (Enhanced Intelligent Drive Electronics) werden die Blöcke fortlaufend durchnummeriert (LBA=Logical Block Adress).
Die Umwandlung in (Cylinder, Oberfläche, Sektor) geschieht im Laufwerkscontroller.
FCB File Control Block - Dateisteuerblock: enthält im Hauptspeicher die Information einer im Zugriff befindlichen Datei.
FAT-Tabelle (File Allocation Table).
HPFS-Dateisystem (HighPerformanceFileSystem)
Lazy-Write (aufgeschobenes Zurückschreiben der Blöcke).
MFT Master File Table.
LCN (logical cluster number).
Virtueller Speicher kann implementiert werden durch:
- Demand paging (Seitenverwaltung mit Swap)
- Demand segmentation (Segmentverwaltung mit Swap)
FIFO First-In-First-Out
LRU Least Recently Used
Thrashing ein Prozess ist damit beschäftigt, die Seiten ein- und auszulagern.
Summe Größe der lokalen Bezugsräume > der zur Verfügung stehende Speicher
VMM Virtual Memory Manager: verwaltet den virtuellen Speicher.
Deadlock: Eine Menge von wartenden Prozessen, jeder hält ein Betriebsmittel und wartet auf die Zuteileung eines Betriebsmittels, das ein anderer Prozess aus der Menge gerade hält.
POST Power On Self Test:
Nach dem Einschalten des Rechners wird die POST-Funktion des BIOS durchlaufen. Es wird
-die Größe des Speichers ermittelt,
-festgestellt, ob die erforderlichen Hardware-Komponenten vorhanden sind (z.B. Tastatur).
Danach führt jede Adapterkarte, die ein eigenes BIOS besitzt, ebenfalls ein POST aus.