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
Top Related