Download - BS Zusammenfassung

Transcript

BS-Zusammenfassung Anforderungen BS Hardware Schichten Betriebsmittel Betriebsmittel Lsung Hardware Abstraktion Durchsatz optimieren (Pipelining) Betriebsmittelverwaltung Determinismus/Echtzeit Reaktionen Mehrbenutzerbetrieb (+Durchsatz, -Zeit) Zugriffsrechte residente Prozesse im Hauptspeicher -ist Software -steuert Ausfhrung von Anwendungssoftware -ist Software/Hardware Schnittstelle -Verwaltet Resourcen -legt Betriebsarten fest Physische Gerte Schicht (Hauptspeicher) Mikroarchitektur Schicht (Steuerwerk etc.) Maschinensprache Schicht (Assembler) Virtuelle Maschine, die Hardware abstrahiert Verwaltung von Betriebsmitteln (nach Tannenbaum) CPU Hauptspeicher E/A Gerte (HDD, Netzwerk, USB...) Mehrere Programme greifen zu Mehrere Benutzer greifen zu Gerechter Zugriff auf Betriebsmittel Betriebsmittelnutzung ist 2 Dimensional Prozesse drfen sich nicht in die Quere kommen Prozesse konkurrieren um Betriebsmittel Prozesse und Benutzer mssen kontrolliert auf Betriebsmittel zugreifen Integritt der Daten muss gewhrleistet sein BS realisiert HW-Schutzmechanismen BS realisiert Prozess-Synchronisation BS weist Betriebsmittel (BM) zu BS realisiert faire BM Strategie

Definition BS

Funktionen BS

Betriebsmittel Anforderungen

BM Konsequenzen

Virtual Machine (Probleme)

Hardware muss: universell einsetzbar sein

Virtual Machine (Konsequenzen) Befehlssatz (RISC CISC etc.) - Befehlsarten CPU-Zustnde CPU-Ereignisse

billig sein schnell sein zuverlssig sein ersetzbar sein Nur das ntigste Hardware ist schwer zu programmieren Nutzung durch AW-Software schwierig Detai-Unterschiede Viele AWS-Versionen notwendig BS verbirgt HW-Unterschiede Einheitliche Sicht auf Hardware Schnittstelle zur Nutzung der Hardware fr AW-Software Rechenwerk (arithm. Logisch.) Steuerwerk (Koordination Befehlsausfhrung) Registersatz (Daten, Adress, Stapelzeiger, Befehlszhler, Statusregister) Prozessor Speicher (Lade Speicherbefehle) Prozessor E/A ert (E/A Befehle) Berechnungen (arith. Log.befehle) Programmberlaufsteuerung (Sprungbefehle) Kernel-Mode/Systemmode (Kompletter Befehlssatz nutzbar) User-Mode (nur Teil des Befehlssatzes nutzbar) Umschalten zwischen den Modi passiert bei Ereignissen (Interrupts) Asynchrones Ereignis (externer Interrupt [ber Systembus]) maskierbar nicht maskierbar synchrones Ereignis (von CPU) Aunahme/Exception TRAP-Befehl/Software Interrupt Gegenseitiger Schutz von BS-AWSoftware und AWS-AWS Laden von AWS an unterschiedlichen Adressen im HSP BS-seitige Speicherverwaltung

Virtuall Machine (Lsung)

CPU

Speicher (Problem)

Speicher (Lsung)

Speicherhierarchie

Jedes Programm hat eigenen Adressraum Virtuelle Adressen werden auf physische abgebildet Adressumsetzung und Gltigkeitsprfung wird durch HW bernommen

Register Cache Hauptspeicher Magnetspeicher Magnetband Das Gert selbst zeichenorientiert (Tastatur/Maus) blockorientiert (z.B. HDD) Controller zur Ansteuerung spezifische u. leistungsfhige Speicherhardware wenige Register kann asynchrones Ereignis (Interrupt) auslsen Gertetreiber Software zur Controller Kommunikation Schnittstelle fr BS verschiedene Wege einen Treiber in BS zu integrieren Initiierung einer Ein/Ausgabe Programmierung des Controllers durch seine Register Controllerregister-Adressraum frei sichtbar (=speicherbasierte Adressierung) Ein eigener Adressraum fr Controller aller Gerte (=isolierte Adressierung) Beendigung einer Ein/Ausgabe Polling (Schleife fragt durchgehend ab, ob Statusbit auf 'Ende' gesetzt ist) Interrupt (Interrupt wird ber Systembus an CPU gesendet) (Alternative Kommunikation durch eigene Hardware auf dem Gert) Chkdir, mkdir etc. werden im Kernel-Mode ausgefhrt Besteht aus Systembus (= Steuer-,Daten,- und Adressbus) Flaschenhals Hardware kommuniziert unterschiedlich

E/A Gerte

E/A Kommunikation

Systemaufrufe Bussysteme

schnell Datenbertragung seriell parallel populre Busse IDE, ISA, PCI, SCSI, USB, Firewire... Betriebssystem-Arten Betriebssystem-Konzepte Mainframe (viele Prozesse mit schnellem E/A) Server (viele Benutzer gleichzeitig) Multipozessorsysteme PC-ein User mit verschiedenen AWS Handheld (PDA,Handy) Sensorknoten Echtzeit BS BS fr Smartcards

Prozesse Prozessmodell Threadmodell Prozesskommunikation Scheduling Deadlocks Speicherverwaltung Zuweisung Schutzmanahmen I/O Handling Periphrer Speicher Terminals Netzwerk weitere Gerte Dateiverwaltung DateiSystem Datei Verzeichnis Sicherheit Bedrohungen Datenverlust Betriebsstrungen Shell Leistungsfhigkeit Shellscript-Sprachhe GUI Monolithische Systeme

BS-Strukturen

viele Routinen/Funktionen Jede Routine kann jede andere aufrufen Hauptroutine ruft Serviceroutinen auf Serviceroutinen rufen Hilfsroutinen auf Geschichtete Systeme Routinen sind hierarchisch Jede Schicht baut auf unterer Schicht auf Schichten haben Schutzmechanismen Mikrokerne und Client/Server BS grtenteils ausgelagert BS-Kernel hat nur Minimale Funktionalitt Prozesswechsel Interprozesskommunikation E/A Zugriffe & HDD Server stellt Prozesse zur Verfgung (CS) AWS ist Client Prozess (CS) Nutzung von Dienst erfolgt mittels Nachrichten (CS) Virtuelle Maschinen Befehlssatz hat Kernel und User-Mode Aufruf von User-Mode Befehl wird mglicherweise Ignoriert Type-1 Hypervisor (HV) CPU muss Virtualisierung untersttzen , d.h. Aufruf eines Kernel-Befehls im Benutzermodus bewirkt Sprung ins BS Type-2 Hypervisor Hypervisor ist AWS Bei HV Start mssen neue BS installiert werden sensitive Befehle handelt der HV

Virtuelle Maschinen Typen

Echte Virutalisierung Paravirtualisierung Prozesse

Unmodifiziertes BS auf HV Modifiziertes BS auf Mikrokernel Anwendungen brauchen CPU fr Berechnungen E/A Anforderungen CPU-Auslastung Multiuser-Untersttzung Multitasking

Probleme #Programme ungleich #CPUs Programme mssen sich CPU teilen Umsetzung von Quasi-Parallelitt Unkenntnis ber bentigte Dauer eines Prozessabschnittes Lsung Prozessmodell Konzept des sequenziellen Prozesses Anzahl der Zustnde ist BS-abhngig created 1> ready running 4> waiting 5> ready ready 2> running 3> ready running 6-> terminated

Prozesszustnde

1) Prozess wird gestartet 2) Scheduler whlt nchsten Prozess 3) Prozess gibt CPU freiwillig oder forciert frei 4) Prozess wartet auf Ereignis/Signal 5) Ereignis tritt ein 6) Prozess beendet Prozess-Warteschlange Fr Prozessmodell waiting-Prozesse ready-Prozesse Prozess = Programm in Ausfhrung Ablauf = sequenziell Jeder Prozess hat eine virtuelle CPU Jeder Prozess hat eigene Ressourcen Jeder Prozess hat eigenen Adressraum Mittels Prozess Datenstruktueren die vom BS verwaltet werden Diese Infos werden im Prozesskontrollblock verwaltet Alle PKB werden in Prozesstabelle verwaltet Prozess ist beschrieben durch Prozessadressraum Prozesskontrollblock

Implementierung d. Prozessmodells

Prozessadressraum

Beinhaltet Befehle/Code Daten (statisch) Laufzeitkeller (aktive Elemente) Heap (dynamische Programmdaten)

Prozesskontrollblock

Processidentification ProcessID ParentID Process-Owner Prozesskontrollinformationen Scheduling und Zustandsinfos Zustand, Prioritt, Ereignis, used CPU time Interprozesskommunikation Prozessprivilegien Ressourcenbesitz Initialisierung durchHintergrundsystem (Daemon des BS) Systemaufruf durch anderen Prozess Benutzeraktionen Start eines Programms Stapelverarbeitung Initiieren Freiwillig Erreichen d. Prozessendes Systemaufruf durch eigenen Prozess (exit) Programmfehler Unfreiwillig Systemaufruf durch Fremdprozess Schwerwiegender Fehler Ereignisse/Exceptions (Interrupts)

Prozesserzeugung

Prozessbeendingung

Prozessstatusinformationen

Befinden sich im Datenregister Adressregister Stapelzeiger Befehlszhler Programmstatusregister Segmentregister 1. Prozesskontrollblock (PKB) speichert Prozess (P) Infos 2. Prozesskontrollinformation (PKI) im PKB aktualisieren 3. PKB in Warteschlange einhngen 4. PKB des neuen P aktualisieren 5. P aus PKB in CPU laden Durchfhrung BS bernimmt Prozesswechsel BS braucht Kontrolle

Prozesswechsel

BS bentigt CPU-INTERRUPTProzess muss CPU an BS abgeben BS-Kontrolle durch: Systemaufruf durch Prozess Exception durch Prozess Interrupt Interrupt Behandlung durch BS Timer Interrupt gewhrleistet regelmige Kontrollbergnge an BS Systemaufruf (Wechsel zu BS) Trap-Anweisung (Wechsel zu BS) Sichern der P-Infos P-Zustand wird 'ready' Wechsel zu BS-Prozessstatus = blockiert Aufruf Scheduler Scheduler Threadkonzepte Prozess Zuweisung an CPU Ausgewhlter Prozess = Aktiv oder Bereit Ressourcenbndelung eigener (virtueller) Adressraum weitere Ressourcen (offene Dateien) Threadkonzept Roter Faden durchs Programm Zustand des Threads ndert sich permanent Anlegen Verwalten Zuteilung von CPU RAM Gegenseitiger Prozessschutz Arbeit um Vorder- und Hintergrund Asynchrone Verarbeitung Adressraum (virtuell) globale Variablen geffnete Dateien Kindprozesse zu behandelnde Signale Signale und Signalrouteen Accounting Informationen Befehlszhler Register Keller/Stapel/Stack Zustand

Thread-Aufgaben des BS

Positiv

Nutzen von Threads Prozessinhalt

Threadinhalt

Thread im Kernel-mode

Blockierender Systemaufruf blockiert nicht alle Threads Echte Parallelitt mglich (nicht mehreren CPUs) Negativ Stark erhhter Zeitaufwand Thread Wechsel erfordert Wechsel im Kernel Mode Generierung und Beendigung erfordert Systemaufruf Threads (User Mode) Positiv Kein BS bentigt Schneller Thread Wechsel Schnelle Generierung Schnelle Beendigung Individuelles Scheduling mglich Negativ Blockierender Systemaufruf blockiert alle Threads im Prozess CPU-Abgabe durch Thread freiwillig Falls ein Prozess auf die Ressourcen eines anderen Warten muss Lsung: Prozesssynchronisation enterCriticalRegion leaveCriticalRegion Zeitliche Abstimmung zur Ausfhrung bentigt (kritischer Abschnitt) Prozesssynchronisation Mutual Exclusion Lsungen fr Kritische Bereiche Rcksichtnahme bei kritischen Abschnitten Wechselseitiger Ausschluss der kritischen Abschnitte Test&Lock (Maschinenbefehl) funktioniert auch bei Mehrkern CPUs enter CriticalRegion und leaveCR in Assembler realisiert atomar ununterbrechbar Sleep&WakeUp passives Warten (sleep) sobald CR vorbei WakeUp Keine Belegung der CPU durch aktives Warten Semaphor Zhlt gesendete, aber noch nicht

Race Conditions

empfangene Signale zwischen Prozessen Wenn Semaphor aktiv Interrupts inaktiv (=Zhlvariable in Prozess Warteschlange) Hat signal und wait Operationen signal (semaphor++) wait (sempaphor--) Binre Semaphore knnen nur freigeben und locken (Mutual Exclusion) Semaphore sind ununterbrechbar (atomar), da Interrupts ausgeschaltet werden Monitor Ein Objekt mit Methoden, das durch ein Mutual Exclusion-Lock gesichert ist. Es kann nur ein Prozess gleichzeitig im Monitor sein, es knnen aber mehrere im Monitor warten, dass eine Ressource wieder freigegeben wird Alle Methoden liegen synchronized (java) vor Nur ein Prozess kann gleichzeitig eine Monitor-Methode verwenden Welche Methoden der Monitor hat kann vom Programmierer festgelegt werden Alle anderen Prozesse werden blockiert (auf Zustand 'wait' gesetzt) Nachrichtenaustausch Nachricht = Von Prozess1 zu Prozess2 BS macht: send() und receive() Nachrichten sind automatisch synchron, da BS sie verschickt Hat direkte Adressierung (ProcessID) und indirekte Adressierung (Mailbox von Prozess) Nachrichten ermglichen eine Kopplung von Prozessen

Prozess-Synchronisation

Konsument (v.N.)muss bei leerem Nachrichten-Lager warten Produzent (v.N.) muss bei vollem N-Lager warten (v.N. = von Nachrichten) Beliebig viele N-Leser, nur ein NSchreiber CPU-Last eines Prozesses E/A-Last eines Prozesses Systemart Stapelverarbeitung

Reader-Writer Problem Scheduling-Algorithmus Kriterien

Echtzeit Strategie-Einhaltung Scheduling-Ziele SHORTEST RUNNING TIME NEXT (SRTN) ROUND ROBIN Fairness Balance Strategie-Einhaltung Lngster Warter bekommt CPU Kann bei E/A-lastigen Prozessen problematisch werden Wenn alle Prozesse hnlich lang sind ist die Methode beweisbar optimal Nachteil: Man muss schon vorher die Lnge der Prozesse wissen Dauer und verbleibende Dauer mssen bekannt sein Nach einer vorgegebenen Zeit wird Prozess die CPU entzogen und wieder hinten angereiht je grer die Zeiteinheit, desto besser Bei E/A-lastigen Prozessen nicht fair Prozesse bekommen statisch oder dynamisch Prioritten zugewiesen (dynamisch aus Fakten) Prozesse verwenden Ressourcen BS verwaltet Ressourcen Eine Ressource kann nur einem Prozess gleichzeitig zugeteilt sein, sonst Race Condition

FIRST COME FIRST SERVED (FCFS)

SHORTEST JOB FIRST (SJF)

PRIORITT-SCHEDULING

Ressourcen

Vergabe von Ressoucen

1. Anfordern 2. Verwenden 3. Freigeben Preemtable Resource (unterbrechbar) kann Prozess entzogen werden z.B. CPU, Ram non-preemptable Ressource (ununterbrechbar) kann nicht entzogen werden z.B. DVD Brenner beim Brennen

Ressourcen-Typen

DEADLOCK

Werden mehr als eine non-preemtpable Ressource von einem Prozess angefordert, so kann es zum DEADLOCK kommen Bei einem Deadlock blockieren sich zwei Prozesse gleichzeitig und knnen von alleine nicht

mehr befreit werden Vorraussetzungen fr Deadlocks 1. Mutual Exclusion 2. Hold&Wait-Bedingung 3. Unterbrechbarkeit (Unentziehbarkeit von Ressourcen) 4. Zyklisches Warten (Ein Kreis aus Prozessen wartet auf eine Ressource aus einem anderen Prozess aus dem Kreis (Nur wenn alle 4 Vorraussetzungen zutreffen kann es zu Deadlocks kommen) Beii Ressourcen-Anforderung In regelmigen Abstnden Bei geringer CPU-Auslastung (Hinweis auf DL)

Erkennungs-Zeitpunkte

Deadlock Erkennung (Bei einer Ressource)

Anforderungen zulassen + auf DL prfen Ressourcen-Belegungsplan fhren Ressourcen Belegungsplan auf Zyklen prfen Zyklus = Deadlock (Alogithmus notwendig) Ressourcen-Belegungsgraph nicht mehr sinnvoll Vektoren eignen sich besser Teilweise Wiederholung eines Prozesses (Rollback) Rcksetzen des P auf Checkpoint Schwierig umzusetzen Prozessabbruch Idealerweise ein Prozess bei dem es zu keinen Problemen kommt Schwierig zu bestimmen Temporrer Entzug einer Ressource Defensive Ressourcen-Zuteilung Zuteilung nur wenn unkritisch Algorithmus existiert (Bankier) Ressourcen Anforderung aller Prozesse mssen bekannt sein Wechselseitiger Ausschluss Ressourcen nur zuteilen, wenn das unvermeidlich ist Sicherstellen, dass mglist wenige Prozesse die Ressource anfordern Einsatz von Spooling

Deadlock Erkennung (Bei mehreren Ressourcen)

Beheben von Deadlocks

Verhinderung von Deadlocks (allgemein)

Verhinderung von Deadlocks (speziell)

Hold&Wait Prozess fordert alle Ressourcen zu Beginn an Jeder Prozess gibt alle nicht-bentigten Ressourcen frei (unpraktisch) Ununterbrechbarkeit keine Lsung Zyklisches Warten Prozess darf gleichzeitig nur eine Ressource haben Vor Anforderung neuer Ressourcen mssen alte freigegeben werden Nicht immer einsetzbar Durchnummerieren der Ressourcen Anforderung immer mglich unlogisch zu programmieren Unendlich viel Speicher Unendlich schneller Speicher Speicher nicht flchtig [non volatile] Speicherhierarchie (Verwaltun durch BS) Verschiedene Verwaltungssysteme Prozessspeicher ist immer Arbeitsspeicher Prozess wird zwischen RAM und HDD herumgelagert Swapping (komplett) Paging (teilweise) Programmcode (Anweisungen) Daten (statisch) Heap (dynamisch) Stack (Infos ber aktive Prozeduren und deren Parameter) 1-Programm Es ist immer nur ein Programm gleichzeitig im RAM Swapping ermglicht mehrere 'gleichzeitig' Neben demm Programm ist auch ein Teil des BS im RAM Mehrere Programme Es sind mehrere Programme im RAM Auch Teile des BS im RAM Probleme Programme verwenden absolute physische Adressen

Idealzustand der Speicherverwaltung

Realer Zustand der Speicherverwaltung

Prozesse brauchen Speicher fr

Systeme ohne Speicherabstraktion

Laden von Programmen an unterschiedlichen Stellen im RAM Konsequenzen Keine Programm-Kapselung (gegenseitig) Keine Programm-Kapselung (vor BS) Jedes Programm-eigener Adressraum Trennung von logischem und physischem Adressraum Logische mssen auf physische Adressen abgebildet werden Adressumsetzung + Prfung macht Hardware (MMU) Speicherverwaltung durch BS (ab RAM aufwrts) Adressumsetzung durch dynamische Relokation Adressumsetzung durch Hardware (MMU) Adressumsetzung z.B. Physisch = logisch + Basisregister RAM reicht nicht fr alle Prozesse aus Swapping lagert Prozesse komplett in HDD aus/ein Durch Swapping entstehen Lcken im RAM (Zeitaufwendige Reinigung) Probleme bei Verwaltung dynamischer Programmdaten (Heap) Bitmaps Speicher in Belegungseinheiteen unterteilt Status von Belegungseinheit frei oder belegt Problem: Es kann aaufwendig sein, eine gengend groe Lcke zu finden Verkettete Listen Zusammenhngende freie oder belegte Bereiche Paging virtuelle Adressen MMU(paging Tabellen) physikalische Adressen Zugriff auf Page die nicht im RAM ist: 1. Page-Fault (nicht gefunden) 2. wenig benutzte Page wird auf HDD ausgelagtert

Basis und Limitregister

Swapping

Verwalten freien Speichers

Virtueller Speicher

3. aktualisiere Liste 4. gesuchte page wird aus HDD in RAM eingelagert 5. aktualisiere Liste Seitentabelle Besteht aus Seitenrahmennummer Seitennummer Present/Absent Bit (liegt Page im RAM?) Protection Bits (lesen schreiben) M-Bit (modifiziert) R-Bit (referenziert) Caching on/off (soll antwort gelesen werden?)

Probleme mit Seitentabellen (bei Page-Fault BS Lsung 1: invertierte Seitentabelle whlt Seite aus HDD) Lsung 2: Bei TLB Hashtable mit virtuellen Adressen als Keys Paging Algorithmen Optimaler Algorithmus wenn Platz bentigt wird, unbeschftigste Seite ausgelagert um Platz zu schaffen Jede Seite wird markiert wann sie wieder verwendet werden soll (Countdown) Algorithmus entfernt Seite mit dem hchsten Countdown NOT RECENTLY USED benutzt R und M Bits 4-seiten Zustnde -R -M -R M R -M R M Algorithmus liest eine zufllige Seite aus dem nchsten nicht-leeren Zustand + effizient, verstndlich Bewertung: nicht optimal FIRST IN FIRST OUT Schlecht FIFO Anomalie SECOND CHANCE (FIFO variante) ltestes Element: R-Bit = 0 auslagern R-Bit = 1 ->Liste = soeben

geladen Bewertung: ineffizient CLOCK ALGORITHMS R=0 verdrngte Seite R=1 lsche R, rcke Zeiger auf nchste Seite LEAST RECENTLY USED Entferne am lngsten ungenutzte Seite Problem: Liste muss bei jedem Zugriff berprft werden