Betriebssysteme Prozess Verwaltung: Prozesse Prozess Verwaltung: Threads Prozess Verwaltung: Synchronisation Prozess Verwaltung: Verklemmungen Verwaltung Ein Ausgabe Verwaltung Verwaltung Einführung: Inhalt Betriebssysteme: Architektur unverzichtbar: "" beim Booten in Arbeitsspeicher geladen verbleibt dort während der Nutzung des BS andere Teilprogramme: bei Bedarf in Arbeitsspeicher geladen Unix Kommandos (cp, grep...) (grundlegende Funktionen) Unix Shells (interaktive Steuerung BS, Abarb. von Programmen) Bibliotheken: hochsprachlicher Zugriff auf BS Funktionen "API": application program interface (höhere Fkt.: grafische Oberflächen etc.) Architektur: UNIX Definition und Aufgaben von Betriebssystemen Definition Allgemeine Aufgaben Prozess Modell Multi Process / Multi User BS ressourcen orientierte Aufgaben Unterstützung für BS Aufgaben Betriebssystem Architekturen Monolithische Mikro Modulare monolithische Schichten Modell weitere Merkmale: Multithreading & SMP Nutzer Shell Skripte cp grep sh gcc API (libc.a) C Applikation Einführung: Inhalt Definition und Aufgaben von Betriebssystemen Definition Allgemeine Aufgaben Prozess Modell Multi Process / Multi User BS ressourcen orientierte Aufgaben Unterstützung für BS Aufgaben Betriebssystem Architekturen Monolithische Mikro Modulare monolithische Schichten Modell weitere Merkmale: Multithreading & SMP Allgemeine Aufgaben von BS Abstraktion und Transparenz Schutz abstrakte Sicht auf n, Entlastung von Details Festplatten Zugriff transparente Sicht auf n: konkrete Zuordnung verborgen Änderung der Prozessor Anzahl n Zugriff nur über BS Unabhängigkeit gleicher Prozessor: Maschinencode kompatibel anderer Prozessor: Quellcode kompatibel Betriebssysteme: Definition Definition BS: Menge von Programmen und Bibliotheken (Programm: Befehlssequenz, allein ausführbar) (Bibliothek: Befehlssequenz, in Programmen nutzbar) steuern & überwachen Abarbeitung von Programmen verwalten n: Prozessoren, Speicher, E/A Einheiten Definition Programm: Prozess Modell Sequenz von Prozessor Anweisungen Definition Prozess: Instanz eines Programms, welches von einem BS ausgeführt wird Sequenz befindet sich in Adress Raum Teil des Arbeitsspeichers, von min. bis max. Adresse darf von Programm gelesen / beschrieben werden enthält: Programm, Daten, Stapel (Stack) Zustand des Prozesses: CPU Register Prozess = Menge von Daten; beschreiben, wie weit Abarbeitung des Programms fortgeschritten 1
Prozess Modell Prozess aus Sicht des s: Prozess fungiert als Einheit, zu welcher n zugewiesen werden "Wesen" eines Prozesses: n Besitz: Adress Raum für Aufnahme des Prozess Abbilds zeitweise: Kontrolle über n (Speicher, E/A) BS sorgt für Prozess Isolierung Ablaufplanung ( CPUs): Trace (Ausführungsweg) durch Programm Trace mit anderen Prozessen "verschachtelt" Prozess = Einheit, die vom BS berücksichtigt wird Prozess Zustände: laufend, lauffähig, blockiert Prozess Priorität Multi Process BS n orientierte Aufgaben von BS Prozess Verwaltung CPU Prozesse erzeugen/beenden, Scheduling n in Konkurrenz und zur Kommunikation Verwaltung Hauptspeicher Zuweisung und Freigabe von Hauptspeicher Abarbeitung v. Prozessen in deren Adress Raum; Schutz Swapping, virtueller Speicher Verwaltung Massenspeicher: HD, CD... strukturiertes Dateisystem über unstrukturierter HW Zugriffsrechte (Multi User BS) Ein Ausgabe Steuerung Terminals,Massensp., Ports Verwaltung konkurrierender Zugriffe zeitkritische Vorgänge: Nutzung von Interrupts Netzwerk Verwaltung Empfang und Zustellung von Paketen, Versenden von Paketen Architektur: LINUX simultane Abarbeitung mehrerer Prozesse (auch: dasselbe Programm in mehreren Prozessen) zu gewährleisten: Ausführg. nebeneinander & unabhängig voneinander nebeneinander: nutzen selbe n unabhängig: keine wechselseitige Beeinflussung zusätzliche Anforderungen an Multi Process BS: Scheduling (Ablaufplanung, "nebeneinander") Zuordnung der n im Wechsel / Teilung Prozess Isolierung ("unabhängig") ungewollte Beeinflussung verhindern (Schutz) Zugriff auf Adress Raum anderer Prozesse Prozess Nebenläufigkeit Multitasking Architektur abhängiger Code CPU Anwenderprogramme & Applikationen Virtueller Speicher manager RAM Systemrufe systeme Dateien & Verzeichnisse Dateisystem typen Block Geräte Festplatten, Disketten & CDs steuerung Terminals & Gerätezugriff Konsole, serielle Ports, spez. Erwei terungskarten Netzwerke Connectivity Netzwerk Subsystem Schnittstellen treiber Netzwerk schnittstellen Anwendungs ebene Ebene Teile Implemen tierte Features Software Unter stützung Ansteue rung Ebene Module Multi Process BS Unterstützung für BS Aufgaben Unterstützung durch spezielle Prozessor Funktionen: Prozess 1 Prozess 2 Prozess 3... Prozess n Interrupts und Exceptions (Ausnahmen) Prozess, Scheduler CPU E/A Speicher unteilbare Befehle Schutz Mechanismen privilegierte Befehle Mechanismen zur Speicheraufteilung Multi User BS Prozesse und Dateien verschiedenen Nutzern zugeordnet zusätzliche Anforderungen: Authentifizierung Authentifizierung des Nutzers bei Zugang Einführung von Restriktionen beim Zugriff Abrechnung Abrechnung der genutzten n (Rechenzeit, Prozessor Anzahl...) Interrupts (1) von allen Prozessoren unterstützt erforderlich für Unterstützung zeitkritischer Vorgänge sofortiges Einlesen bei Anliegen neuer E/A Daten 1. laufender Prozess unterbrochen 2. Befehlszähler auf Stack gespeichert (EIP) 3. Interrupt Service Routine ( Handler) aufgerufen 4. ISR (kurz!) bedient Peripherie Einheit 5. unterbrochener Prozess fortgesetzt (EIP vom Stack) 2
Interrupts (2) Exceptions EIP 100 101 102 103 104 105... ähneln Interrupts, auch: Aufruf von Handler Routinen ausgelöst beim Auftreten bestimmter Fehler Zustände unzulässiger Zugriff auf geschützte Speicherber. Handler: Programmabbruch "Speicherverletzung" ISR 300 301 302 iret iret iret iret Zugriff auf ausgelagerte Speicherseite (virt. mem.) Handler: Nachladen vom Massenspeicher Stack 103 103 privilegierter Befehl auf zu niedriger Priv. Stufe Handler: Programmabbruch Interrupts (3) Unterstützung für BS Aufgaben Anforderungen an Interrupts: Interrupts abschaltbar Verhindern von Unterbrechungen in kritischen Programm Abschnitten Interrupts hierarchisch organisiert Int. höherer Priorität können ISR von Int. niederer Priorität unterbrechen (umgekehrt nicht) Unterstützung durch spezielle Prozessor Funktionen: Interrupts und Exceptions (Ausnahmen) unteilbare Befehle Schutz Mechanismen Proz. ISR1 ISR2 ISR1 Proz. ISR2 privilegierte Befehle Mechanismen zur Speicheraufteilung Terminal Clock Terminal Clock Interrupts (4) Unteilbare Befehle (1) sinnvolle Zuordnung von Interrupt Prioritäten: Unterbrechungen durch Interrupts: an beliebiger Stelle Maschinenfehler Echtzeit Uhr Festplatten Netzwerk Geräte Terminals höhere Priorität kleinere Priorität Operation, die mehrere Maschinen Instruktionen benötigt, in der Mitte unterbrechbar evtl.: Umschalten auf anderen Prozess anderer Prozess von Interrupt Handler geweckt, erhält CPU Operation ist noch nicht abgeschlossen kann zu Konflikten führen Interrupts (5) "präemptives Scheduling": Prozesse von CPU "verdrängbar" jeder Prozess: bestimmte Zeit auf der CPU nach Ablauf der Zeit: nächster Prozess Interrupts von Zeitgeber Baustein hohe Frequenz Grundtakt "Tick" nach einer Anzahl von Ticks: Prozess Wechsel frei? belege benutze freigeben Unteilbare Befehle (2) Prozess 1 Prozess 2 ja frei sollten unteilbar (atomar) sein frei? ja belege benutze freigeben 3
erste Möglichkeit: Unteilbare Befehle (3) Abfrage und Belegen in einem Datenbus lesen CPU1 Datenbus lesen CPU2 Datenbus schreiben CPU1 Datenbus schreiben CPU2 Maschinenbefehl int test_and_set_bit(int nr, void *addr) lock bts dword [addr], nr sbb eax, eax lock Präfix verhindert Bus Zugriff anderer CPUs Unterstützung: bts, lock } Inline Assembler bts testet (ins Carry) und setzt in einem Schritt sbb transferiert Carry Flag in Return Wert (SMP!) Schutz Mechanismen (2) mindestens 2 Betriebsmodi (Privilegstufen): User Mode nicht privilegiert unberechtigte Zugriffe / Befehle: Exception Mode privilegiert: Zugriff auf alle Einheiten / alle Befehle Mechanismen: Speicher unterteilt in Bereiche, zugänglich nur in einem der Modi (oder in beiden) (IA 32: CPL in CS Register, DPL in Segment Deskriptor) bestimmte Instruktionen nur im Mode zulässig Unteilbare Befehle (4) zweite Möglichkeit: Eintritt in kritische Region: Interrupts abschalten Verlassen der kritischen Region: Interrupts einschalten Prozess kann nicht unterbrochen und verdrängt werden Schutz Mechanismen (3) privilegierte Befehle (nur mit CPL = 0) LGTR lade globales Deskriptor Tabellen Register HLT Stillstand der Abarbeitung lange kritische Region: "Einfrieren" von Zugriffen möglich spezielle Schutzmechanismen bei Ein Ausgabe: IOPL Feld in EFLAGS + I/O Bitmap keine Lösung für SMP: andere CPU von Abschaltung nicht betroffen; Prozess auf dieser CPU kann auf zugreifen IN, OUT CLI, STI Ein und Ausgabe von / auf Ports Interrupt sperren / freigeben Unterstützung für BS Aufgaben Schutz Mechanismen (4) Unterstützung durch spezielle Prozessor Funktionen: Interrupts und Exceptions (Ausnahmen) unteilbare Befehle Schutz Mechanismen privilegierte Befehle Mechanismen zur Speicheraufteilung Wechsel des Modes: Nutzerprogramm überträgt eine Aufgabe ("Systemruf") Auslösen Software Interrupt (Trap) (int 0x80) dabei: Umschalten in Mode Routine läuft im Mode Rückkehr: Rückschalten in User Mode (iret) ebenso bei Interrupts / Exceptions Schutz Mechanismen (1) Schutz Mechanismen (5) Kontrolle des Zugriffs auf Speicher, Peripherie, kritische CPU Register (z.b. Prozessor Status) User Mode Prozesse A B C D U U Mechanismen: Mode K K Speicheraufteilung (Segmentierung, Seitenverw.) Privilegstufen und privilegierte Befehle Mechanismen für virtuellen Speicher (Nachladen) Prozessor unterscheidet zwischen User / Mode, nicht zwischen Prozessen unterscheidet zwischen Prozessen 4
Einführung: Inhalt Definition und Aufgaben von Betriebssystemen Definition Allgemeine Aufgaben Prozess Modell Multi Process / Multi User BS ressourcen orientierte Aufgaben Unterstützung für BS Aufgaben Betriebssystem Architekturen Monolithische Mikro Modulare monolithische Schichten Modell weitere Merkmale: Multithreading & SMP Monolithische : Vor /Nachteile schnelle Interaktion im (Calls) enge Verflechtung der Teile: unübersichtlicher Entwurf hardware abhängiger Code evtl. verteilt über verschiedene Objektdateien: Problem bei Portierung gesamter mit Code und Daten ständig im Speicher Änderungen erfordern Compilieren (1 Objektdatei), Verlinken mit allen anderen Objektdateien; Neustart verteilte BS nicht ohne weiteres realisierbar Unix, Linux; aber: Linux mit Modul Konzept BS Architekturen vom Einsatz Gebiet abhängig: Großrechner (Mainframes): (viele Prozesse, Nutzer, n) spezielle BS Server, Parallelrechner, PC: selbe BS: Unix, Linux, W2K, NT Mikro Prozess: wenige, grundlegende Funktionen (Synchronisation zwischen Prozessen, Scheduling, Interprozess Kommunikation) andere BS Dienste: in getrennten System Prozessen (Verwaltung, Gerätetreiber, API) im User Mode Austausch von Nachrichten zwischen Prozessen (via Mikro ) Echtzeit BS, BS für embedded systems: spezielle BS (VxWorks, Palm OS) User Mode Mode Nutzer Progr. Nachricht Speich. verwalt. treiber Mikro Server BS Architekturen: Klassifikation Mikro : Nachteile monolithischer (geschichteter ) Benutzer Dateisystem Interprozesskommunikation E/A und Geräte Virtueller Speicher Einfache Prozess prozess... Mikrokernel Gerätetreiber Dateiserver Prozess Server Mikrokernel Virtueller Speicher mehrere Prozesse an Lösung von Aufgaben beteiligt: Austausch von Nachrichten erforderlich, aufwendig oft Prozesswechsel bei Nachrichtenaustausch: Systemprozess geweckt, erhält CPU evtl. bei Prozesswechsel sogar Auslagerung / Einlagerung von Prozessen (Massenspeicher; Swapping) ("monolithisch": aus einem großen Steinblock bestehend) Benutzermodus modus Größe, Prozesse, Modus Monolithische Entstehung des s: alle Teilprogramme übersetzt Objekt Codes zu einem großen Programm gelinkt wechelseitiger Aufruf der Funktionen: über Unterprogramm Aufrufe Aufruf von Funktionen aus Nutzer Programmen: über definierte Schnittstellen (Traps, in API) Trap Fkt. Fkt. Fkt. Call Nutzer Programm Mikro : Vorteile Zwang zur Modularisierung übersichtlichere und besser erweiterbare BS hardware abhäng. Code im Mikro konzentriert leichter portierbar nur benötigte Systemprozesse belegen Speicher (andere Prozesse evtl. ausgelagert) Änderungen: kein Linken notwendig evtl. sogar Austausch zur Laufzeit möglich (User Mode) Erweiterung auf verteilte Systeme einfach W2K: modifizierte Mikro Architektur (aber: System Prozesse im Mode!) 5
Mikro und verteilte BS Modulare : einheitliche Schnittstellen Server Modell: Anfrage vom wird vom Server bearbeitet lokal: Anfrage server Druck Server Schnittstelle zu Geräten verteilt: Rechner 1 Rechner 2 server Druck Server gerät 1 gerät 2 Anfrage Netzwerk read(), write(), open(), close() (via "Objekt" = Struktur mit Funktionszeigern) Modulare monolithische beheben einige Nachteile streng monolithischer Modul = Objekt Datei kann zur Laufzeit der s hinzugefügt werden "dynamisches Linken" Modul kann Funktionen des s und Funktionen bereits eingefügter Module nutzen bestimmte Klassen von Modulen mit einheitlicher Schnittstelle (z.b.: Zeichengeräte) Module: "mittlere" BS Funktionen: Organisation von Dateisystemen, Gerätetreiber (setzen niedere Fkt. voraus: /Prozessverwalt.) Linux Architektur: LINUX Modulare : Vorteile Erzwingen einheitlicher Schnittstellen Senken des Entwicklungsaufwands effiziente Hauptspeicher Nutzung: nur benötigte Module (automatisches Nachladen und Entfernen möglich) Kommunikation weiterhin über schnelle Unterprogrammrufe statt Nachrichten Schichten Modell Prozess Anwenderprogramme & Applikationen Systemrufe systeme steuerung Netzwerke Anwendungs ebene Ebene Teile Benutzer Dateisystem Interprozesskommunikation E/A und Geräte Nebenläufigkeit Multitasking Architektur abhängiger Code CPU Virtueller Speicher manager RAM Dateien & Verzeichnisse Dateisystem typen Block Geräte Festplatten, Disketten & CDs Terminals & Gerätezugriff Konsole, serielle Ports, spez. Erwei terungskarten Connectivity Netzwerk Subsystem Schnittstellen treiber Netzwerk schnittstellen Implemen tierte Features Software Unter stützung Ansteue rung Ebene Module Virtueller Speicher Einfache Prozess monolithische häufig in Schichten organisiert hierarchische Organisation der BS Funktionen streng: Schicht n bietet Dienst, Schicht n+1 nutzt Dienst (umgekehrt nicht) nicht streng: Schichten "übersprungen" Benutzermodus modus Modulare : Modul Hierarchie Weitere Architektur Merkmale fct. fct. fct. Module C fct. fct. fct. fct. fct. fct. Module A Module B fct. fct. fct. fct. fct. fct. fct. Basis Multi Threading mehrere Befehlssequenzen (Threads) innerhalb eines Prozesses nutzen gemeinsamen Datenspeicher (einfach) Thread Umschaltung ist schneller Symmetrischer Multiprozessor Betrieb (SMP) mehrere gleichartige Prozessoren teilen sich Hauptspeicher und Peripherie Zuweisung ist für Nutzerprogramm "transparent" komplexere Architektur (Schutz von n schwieriger) 6