Gliederung Lehrmodul 1 Grundsätzlicher Aufbau von Betriebssystemen Typen, Aufgaben, Anforderungen,...

Preview:

Citation preview

Gliederung Lehrmodul 1

• Grundsätzlicher Aufbau von Betriebssystemen

Typen, Aufgaben, Anforderungen, Strukturen, Rechnerkomponenten

• Prozessverwaltung

Multitasking, Multiprocessing, Multithreading, Threads, Prozesszustände,

Verwaltungsmechanismen und -verfahren, Probleme

• Speicherverwaltung

Konzepte, Adressierungsarten, Aufgaben, Speicherbelegung, verschiedene

Techniken der Adressierung, Mechanismen zur Speicherverwaltung

Grundsätzlicher Aufbau von Betriebssystemen

Typen von Betriebssystemen

Beispiele:

Mainframe OS/390, MVS, BS2000

Unix Server Sun Solaris, HP-UX, IBM AIX, Linux

PC/Server Windows XX, MacOS

Echtzeitsysteme VX-Works, BOS

Grundsätzlicher Aufbau von Betriebssystemen

Aufgaben eines Betriebssystems:

• Hardwareerkennung, Initialisierung, Benutzeroberfläche

• Verwaltung/Steuerung von Systemressourcen

- Prozessor, Speicher, Geräte

• Programmausführung

• Bereitstellung von Werkzeugen

• Absicherung und Isolierung der Benutzer und Prozesse

• Kommunikation von Prozessen

• Zusammenarbeit von Prozessoren

Grundsätzlicher Aufbau von Betriebssystemen

Anforderungen an ein Betriebssystem:

• Multiuserfähigkeit

• Multiprozessorunterstützung

• Multitasking-, Multithreadingfähigkeit

• Kompatibilität

• Sicherheit

• Skalierbarkeit

• Zuverlässigkeit und Stabilität

• Netzwerkfunktionalität

• Applikationen

Grundsätzlicher Aufbau von Betriebssystemen

Struktur und Konzepte

Definition Betriebssystem:

Menge von Programmen, die Benutzern die effiziente und gemeinsame Nutzung

einer Rechenanlage ermöglicht.

• Monolithische Struktur

• Schichtenmodell

• Client-Server Architektur

Grundsätzlicher Aufbau von Betriebssystemen

UNIX - SystemarchitekturBenutzerschnittstelle

Kommandointerpreter (Unix-Shell)

UNIX-Werkzeuge Anwenderprogramme

Standard C-Bibliothek

Systemkern (Kernel)Treiber

HARDWARE

Möglichkeit die Hardware anzusprechen

Systemaufrufe

Grundsätzlicher Aufbau von Betriebssystemen

Bestandteile eines Rechnersystems

Benutzer 1 Benutzer n

Compiler, Editoren, Assembler, Applikationen

BetriebssystemProzess-, Speicher- und Dateiverwaltung

Steuerung I/O-Geräte

Rechner-hardware

Prozessverwaltung

Begriffserklärungen:

Programm

= ist die statische Abfolge von Instruktionen (Befehlen)

Prozess

= die dynamische Ausführung eines Programmes durch das Betriebssystem

mit den benötigten Ressourcen

Thread

= sequentielle Ausführungseinheit innerhalb eines Prozesses (Teilprozess)

Prozessverwaltung

Multitasking

- Aufteilung der Prozessorzeit auf verschiedene Prozesse

Prozess 1

Prozessor

Prozess 2

Zeit

Prozessverwaltung

Multiprocessing

Gleichzeitige Ausführung mehrerer Prozesse auf mehreren Prozessoren Prozess A Prozess B Prozess C

Daten

Registersatz

Code

Daten

Registersatz

Code

Daten

Registersatz

Code

Prozessverwaltung

asymetrisches Multiprocessing

• Betriebssystem zentral auf einem Prozessor

• Verteilung der Prozesse

Betriebssystem

Prozess

Prozess

Prozess

Prozessor A Prozessor B

Prozessverwaltung

symetrisches Multiprocessing

• Verteilung des Betriebssystems

• Zugriff aller Prozessoren auf den gesamten Speicher

Betriebs-system

Prozess

Prozess

Betriebs-system

Prozess

Prozess

Prozessor A Prozessor B

Prozessverwaltung

Multithreading

= ist die Aufteilung von Prozessen in mehrere parallele Threads

(nebenläufige Aktivitäten)

Thread A Thread B Thread C

Programmcode Programmcode

Registersatz Registersatz Registersatz

Prozessverwaltung

Threads

Threadstuktur

• Ein Thread besitzt:

- Befehlszähler

- Registerbelegungssatz

- Stack (für jeden Prozess, bei geschachtelten Unterprogrammen die

Rücksprungadressen

• Threads teilen sich den Adressraum und die Anweisungen des umfassenden

Prozeses

• Ein Thread wird auch lightweight process (LWP) genannt.

Normaler Prozess dagegen: heavyweight process (HWP).

Prozessverwaltung

Prozesszustände

wartendausgelagert

wartend

rechnend

bereitausgelagert

bereit

Warte

Auslagern

freiwillig auf Tastatureingabe

Signal

Auslagern

Einlagern

Anhalten

Weiter

unfreiwillig auf

Scheduler oder Dispatcher

kann immer nur ein Prozess sein

Programm im Hauptspeicher Programm auf Festplatte

Signal

Zeitscheibe abgelaufen

Prozessverwaltung

• UID PID PPID C TIME TTY TIME CMD• root 0 0 0 Apr 25 ? 0:01 sched• root 1 0 0 Apr 25 ? 5:07 /etc/init -• root 2 0 0 Apr 25 ? 0:00 pageout• root 3 0 1 Apr 25 ? 1739:26 fsflush• root 689 1 0 Apr 25 ? 0:00 /usr/lib/saf/sac -t 300• root 412 1 0 Apr 25 ? 0:00 /usr/lib/power/powerd• root 17 1 0 Apr 25 ? 2:58 vxconfigd -m boot• root 67 1 0 Apr 25 ? 0:00 /usr/lib/sysevent/syseventd• root 313 1 0 Apr 25 ? 0:02 /usr/sbin/rpcbind• root 420 1 0 Apr 25 ? 0:01 /usr/lib/utmpd• root 356 1 0 Apr 25 ? 0:00 /usr/lib/autofs/automountd• root 394 1 0 Apr 25 ? 1:13 /usr/sbin/nscd• root 368 1 0 Apr 25 ? 0:04 /usr/sbin/syslogd• root 348 1 0 Apr 25 ? 0:12 /usr/sbin/inetd -s• root 426 1 0 Apr 25 ? 0:00 /usr/sadm/lib/wbem/cim• root 352 1 0 Apr 25 ? 0:00 /usr/lib/nfs/lockd• daemon 353 1 0 Apr 25 ? 0:00 /usr/lib/nfs/statd• root 375 1 0 Apr 25 ? 0:02 /usr/sbin/cron• oracle 28462 1 0 10:02:12 ? 0:00 oraclePKSA (LOCAL=NO)• root 399 1 0 Apr 25 ? 0:00 /usr/lib/lpsched• root 450 1 0 Apr 25 ? 0:00 /bin/ksh • root 422 1 0 Apr 25 ? 0:00 /usr/lib/inet/xntpd• root 436 1 0 Apr 25 ? 0:02 /usr/sbin/vold• root 735 609 0 Apr 25 ? 64:59 mibiisa -r -p 32793• root 433 1 0 Apr 25 ? 0:00 /usr/lib/sendmail -bd -q15m• oracle 1067 1 0 14:54:34 ? 0:00 oraclePKSL (LOCAL=NO)

Prozessverwaltung

Scheduling

• Vergabestrategie für CPU an lauffähige Prozesse und Job-Verdrängung („job-preemption“).

• Im Gegensatz zu Dispatcher berücksichtigt der Scheduler auch den bisherigen Verlauf eines Prozesses bei seiner Entscheidung, welcher Prozess als nächster aktiviert werden soll.

• Optimierungsgesichtspunkte:

- kleine Bedienzeiten für die Benutzer

- gute Auslastung der (teuren) Betriebsmittel)

- hoher Durchsatz (Anzahl verarbeiteter Jobs pro Zeit)

- „faire“ Wartezeiten für alle Benutzer

- garantierte Abwicklung innerhalb vorgegebener Zeiten für wichtige Jobs

Prozessverwaltung

• Aufgaben des Schedulers

- Prioritätsentscheidungen aufgrund von:

Job-Umgebung

- geschätzte Restlaufzeit

- Betriebsmittelanforderungen

- Benutzerprioritäten

Rechner-Umgebung

- Prozessorauslastung

- Peripherieauslastung

- Warteschlangengrößen

• Überprüfung, ob die erforderlichen Betriebsmittel vorhanden sind

Prozessverwaltung

Dispatcher

- teilt einen rechenwilligen Prozess einen Prozessor zu

- muß sehr effizient implementiert sein, da Prozesswechsel im 100 Millisekundenbereich vorkommen

- ist für kurzfristige Prozessorzuteilung zuständig

• Steuerung der Prozessor-Umschaltung durch Zeitgeber

• Aufgaben des Dispatchers (bei Kontext-Wechsel)

- Sicherung des Prozessorzustandes im PCB des geraden aktiven Prozesses

- Setzen des neuen Prozesszustandes im PCB und ggf. Umketten des PCB in zugehörige Warteschlange

- Setzen des Prozessorzustandes aus dem PCB des Prozesses, dem als nächsten der Prozessor zugeteilt wird

- Aktivierung des neuen Prozesses

Prozessverwaltung

Scheduling-Verfahren

Beispielhafter Vergleich bei einfachem Stapelbetrieb:

- n Jobs im betrachteten Zeitabschnitt vorhanden

- Ti Turnaround von Job i (gesamte Bearbeitungs- und und Wartezeiten, Verweilzeit)

First come first served (FCFS)

• Bearbeitungsreihenfolge gleich Ankunftsreihenfolge

• Durchschnittliche Wartezeiten variieren stark und sind meist recht hoch (bei großer Anzahl Jobs)

Prozessverwaltung

Shortest job first

• Zu jedem Job ist die (geschätzte) Laufzeit bekannt.

• Es kommt derjenige Job zur Ausführung dessen Laufzeit aktuell am kürzesten ist

• Bei Überschreitung der geschätzten Laufzeit, Bestrafungsmechanismen (z.B. überzogene Zeiteinheiten teurer abrechnen, Job abbrechen etc.)

• Ergibt unter den non preemptive Systemen die minimalste Wartezeit für eine gegebene Menge von Prozessen

Prozessverwaltung

Round-Robin Scheduling

• Im einfachsten Fall sequentielle Abarbeitung der Prozesse in einer Multitasking-Umgebung.

• Es wird ein Zeitquantum q fest vorgegeben und es erfolgt eine Reihum-Zuteilung des Zeitquantums für alle Prozesse.

• dabei gilt:

für q --> 0: quasi gleichzeitige Bedienung aller Jobs, aber sehr großer Overhead.

für q --> : Übergang zu FCFS

Prozessverwaltung

Synchronisation

• notwendige Voraussetzung für Wechselwirkungen zwischen Prozessen

- mindestens zwei Prozesse vorhanden

- die Prozesse laufen (quasi-)parallel ab

• Es werden keine Annahmen über Laufzeiten sowie über den Zeitpunkt des Prozesswechsels gemacht

• Voraussetzung ist die Existenz elementarer non preemptive Operationen

Probleme, die sich bei konkurrierenden Prozessen ergeben:

- Umschaltung des Programmablaufs (Dispatcher und Scheduler)

- Sicherung des einen Prozesses gegen unerwünschte Einflüsse der anderen

- Nutzung gemeinsamer Betriebsmittel

Prozessverwaltung

Kritische Abschnitte

• unkritischer Abschnitt ist ein (Programm-)abschnitt, in dem nicht auf Betriebs-

mittel zugegriffen wird, die von mehreren Prozessen gleichzeitig benutzt werden.

• kritischer Abschnitt ist eine Menge von Anweisungen, in denen das Ergebnis ihrer Ausführung auf unvorhersehbare Weise variieren kann, wenn Variablen, auf die in diesem Abschnitt zugegriffen wird und die auch für andere parallel laufende Prozesse verfügbar sind, während der Ausführungszeit verändert werden.

Lösung:

- es darf sich zu jedem Zeitpunkt nur ein Prozess im kritischen Abschnitt befinden

- Ein Prozess innerhalb eines kritischen Abschnittes verläßt diesen wieder nach Ablauf einer endlichen Zeit

- wenn ein Prozess in einen kritischen Prozess eintreten will, muß ihm das nach einer endlichen Zeit gestattet werden

Prozessverwaltung

Deadlocks

• Verklemmung, d.h. eine Gruppe von Prozessen (mindestens zwei) wartet auf den Eintritt von Bedingungen, die nur durch Prozesse dieser Gruppe hergestellt werden können.

P1 B2

P2B1

Prozess 1 fordert Betriebsmittel B2 an

Betriebsmittel B2 ist von Prozess 2 belegt

Prozess 2 forder Betriebsmiite B1 an

Betriebsmittel B1 ist von Prozess 1 belegt

Speicherverwaltung

Speicherhierarchie:

RegisterL1-Cache

L2-Cache

Arbeitsspeicher (RAM)

Erweiterungsspeicher

Magnetplattenspeicher

Optische Plattenspeicher

Kosten Zugriffszeit

Kapazität

Speicherverwaltung

Adressfeld

• Zur Adressierung einer Speicherstelle verwendet ein Prozessor eine bestimmte Anzahl Bits. Die Länge des Adressfeldes gibt Auskunft über die adressierbaren Speicherstellen und somit über den Adressraum eines Rechners.

Adressraum

• physikalischer Adressraum - als Hauptspeicher real im Rechner vorhanden

• logischer Adressraum - auch virtueller Adressraum, der einem Programm zur Verfügung steht. Setzt sich aus Hauptspeicher + Plattenspeicher zusammen.

Speicherverwaltung

Aufgaben der Speicherverwaltung

• dynamische Adressumsetzung

• Bereitstellung von Speicherbereichen für

- gemeinsam genutzten Programmcode

- gemeinsam genutzte Daten für Interprozesskommunikation

• Schutz der Daten und Programme vor fehlerhaften/unberechtigten Zugriff

• dynamische Speicherzuteilung an die Prozesse

Speicherverwaltung

Hauptspeicherbelegung

Im einfachsten Fall erfolgt eine Aufteilung des Hauptspeichers in zwei Teile:

1. residenter Teil des Betriebssystems (sog. Monitor)

2. Benutzerprogramme (Code + Daten + Stack)

• Beispiel MS-DOS (vereinfacht)

ROM

Benutzer-

programme

BS

Speicherverwaltung

• Swapping-Technik

Das Ein- und Auslagern von Bereichen des Hauptspeichers auf Magnetplatten-

speicher nennt man Swapping virtueller Speicher

• Speicherbelegung bei Multitasking-Systemen

Bei modernen Betriebssystemen (UNIX, NT) übernimmt der sog. Memory

Manager die Speicherverwaltung, beispielsweise anhand einer Speicher-

belegungstabelle

Speicherverwaltung

Seitenverwaltung

• Adressrelokation

- Fähigkeit, daß Programme an verschiedenen Speicherstellen im Haupt-

- speicher ablauffähig gemacht werden

• virtuelle Adressierungsarten

- virtueller Adressraum ist erheblich größer als der physikalische

- ein Prozess weiß nicht, ob sich eine adressierte Speicherstelle im Haupt-

speicher oder im Hintergrundspeicher befindet

- Abbildung der virtuellen Adresse auf eine physikalische Adresse mit Hilfe

einer Abbildungsfunktion - Memory Management Unit (MMU)

Speicherverwaltung

Speicherverwaltungsmechanismen

• Seitenaustauschverfahren (Paging)

- Speicher wird in Blöcke fester Größe aufgeteilt

- logischer Adressraum wird in Seiten fester Größe aufgeteilt

- physikalische Adressraum wird in Kacheln fester Größe aufgeteilt

- Kachelgröße = Seitengröße

- für die Zuordnung der virtuellen Seiten zu den physikalischen Kacheln

legt das Betriebssystem für jeden Prozess eine Seitenersetzungstabelle

an.

• Assoziativspeicher (Transaction Lookaside Buffer, kurz TLB)

Zwischenspeicher im Hauptspeicher, der die zuletzt berechneten physikalischen Adressen enthält.

Speicherverwaltung

Specherverwaltungsmechanismen - Fortsetzung

• Segmentierung

- Aufteilung des virtuellen Adressraumes in Segmente variabler Größe

Ohne Segmentierung Mit Segmentierung

BSunbenutzt

P1

unbenutzt

unbenutzt

P2

20 KB

50 KB

20 KB

10 KB

20 KB

P3

30 KB

BS

P1

P2

9 + 11 KB

50 KB

10 KB

15 + 5 KB

6 + 14 KB

P3 segmentiert

Code 9 KBDaten 15 KB

Stack 6 KB30 KB

Recommended