330 likes | 464 Views
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
E N D
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 - Systemarchitektur Benutzerschnittstelle Kommandointerpreter (Unix-Shell) UNIX-Werkzeuge Anwenderprogramme Standard C-Bibliothek Systemaufrufe Systemkern (Kernel) Treiber Möglichkeit die Hardware anzusprechen HARDWARE
Grundsätzlicher Aufbau von Betriebssystemen Bestandteile eines Rechnersystems Benutzer 1 Benutzer n Compiler, Editoren, Assembler, Applikationen Betriebssystem Prozess-, 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 Daten Daten Registersatz Registersatz Registersatz Code Code Code
Prozessverwaltung asymetrisches Multiprocessing • Betriebssystem zentral auf einem Prozessor • Verteilung der Prozesse Prozess Betriebssystem Prozess Prozess Prozessor A Prozessor B
Prozessverwaltung symetrisches Multiprocessing • Verteilung des Betriebssystems • Zugriff aller Prozessoren auf den gesamten Speicher Betriebs- system Betriebs- system Prozess Prozess Prozess Prozess Prozessor A Prozessor B
Prozessverwaltung Multithreading = ist die Aufteilung von Prozessen in mehrere parallele Threads (nebenläufige Aktivitäten) Registersatz Registersatz Registersatz Thread A Thread B Thread C Programmcode Programmcode
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 freiwillig auf Tastatureingabe Prozesszustände Auslagern ausgelagert wartend wartend Warte kann immer nur ein Prozess sein Signal rechnend Signal Zeitscheibe abgelaufen Anhalten Weiter Auslagern ausgelagert bereit bereit Einlagern unfreiwillig auf Scheduler oder Dispatcher Programm im Hauptspeicher Programm auf Festplatte
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 Prozess 1 fordert Betriebsmittel B2 an Betriebsmittel B2 ist von Prozess 2 belegt Betriebsmittel B1 ist von Prozess 1 belegt P2 B1 Prozess 2 forder Betriebsmiite B1 an
Speicherverwaltung Speicherhierarchie: Kosten Zugriffszeit Register L1-Cache L2-Cache Arbeitsspeicher (RAM) Erweiterungsspeicher Magnetplattenspeicher Optische Plattenspeicher 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 P3 segmentiert BS BS 20 KB P3 Code 9 KB unbenutzt 9 + 11 KB Daten 15 KB 50 KB P1 Stack 6 KB P1 30 KB 50 KB 30 KB 20 KB unbenutzt 15 + 5 KB 10 KB P2 10 KB P2 20 KB unbenutzt 6 + 14 KB