Grundlagen der Informatik III



Ähnliche Dokumente
Dämon-Prozesse ( deamon )

Systeme 1. Kapitel 5. Scheduling

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Round-Robin Scheduling (RR)

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

5 Speicherverwaltung. bs-5.1 1

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Operating System Kernels

Rechnernutzung in der Physik. Betriebssysteme

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Einführung in die technische Informatik

Domänenanalyse Threadverwaltung/Scheduling

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Übungen zum Fach Betriebssysteme Kapitel 3

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

TIMI: Technische Informatik für Medieninformatiker

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Monitore. Klicken bearbeiten

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Betriebssystemschichten ( )

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Übung: Verwendung von Java-Threads

Technische Informatik II

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Formular»Fragenkatalog BIM-Server«

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Proseminar Technische Informatik A survey of virtualization technologies

Zunächst empfehlen wir Ihnen die bestehenden Daten Ihres Gerätes auf USB oder im internen Speicher des Gerätes zu sichern.

SDD System Design Document

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Softwarelösungen: Versuch 4

Lizenzen auschecken. Was ist zu tun?

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

Workshop: Eigenes Image ohne VMware-Programme erstellen

Projekt für Systemprogrammierung WS 06/07

Der Scheduler von Windows Konzepte und Strategien

CA Übung Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder

Datensicherung. Beschreibung der Datensicherung

Betriebssysteme Kap A: Grundlagen

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

CPU-Scheduling - Grundkonzepte

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert 20. Juni 2007

B.4. B.4 Betriebssysteme Prof. Dr. Rainer Manthey Informatik II 1

4D Server v12 64-bit Version BETA VERSION

Anleitung zum Prüfen von WebDAV

FastViewer Remote Edition 2.X

Systeme 1. Kapitel 10. Virtualisierung

Betriebssystembau (BSB)

ESB - Elektronischer Service Bericht

Lösungsvorschlag zur 4. Übung

Prozesse und Logs Linux-Kurs der Unix-AG

1 topologisches Sortieren

VMware als virtuelle Plattform

How to do? Projekte - Zeiterfassung

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

Bilder zum Upload verkleinern

Teil VIII Von Neumann Rechner 1

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Win 7 optimieren. Unser Thema heute: Meine erstellten Daten in eine andere Partition verschieben.

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Installation der SAS Foundation Software auf Windows

gibt es verschiedene Betriebssysteme die je nach Gerät und Nutzer installiert werden können.

Ontrack EasyRecovery 11 Neue Funktionen. S.M.A.R.T.-Analysefunktion Wiederherstellung von VMware VMDK-Images Datenlöschfunktion

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Prozesse und Scheduling

Mitarbeiter-Alarm. 1x Taster mit Kabel zum Anschluss an den seriellen Com-Port (optional) 1x Installationsprogramm auf CD 1x Lizenz

Prozesse. Stefan Janssen. Alexander Sczyrba

! " # $ " % & Nicki Wruck worldwidewruck

Prozessarchitektur einer Oracle-Instanz

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Einführung in PHP. (mit Aufgaben)

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Adressen der BA Leipzig

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Transkript:

Grundlagen der Informatik III WS 2009 / 2010 [Folien basierend auf VL von Prof. Eckert, WS 07/08, und von Prof. Fellner WS 08/09] Prof. Dr. rer. nat. Frederik Armknecht Sascha Müller Daniel Mäurer Fachbereich Informatik / CASED Mornewegstraße 30 64293 Darmstadt

Gliederung der Vorlesung GdI 3 1. Einführung 2. Assemblerprogrammierung 3. Leistungsbewertung 4. Speicherhierarchie 5. Assembler, Binder, Lader 6. Betriebssysteme und Ein-/Ausgabe (Grundlagen) 7. Rechnernetze (Grundlagen) 8. Compiler (Grundlagen) Fachbereich Informatik Prof. Dr. Frederik Armknecht 2

Gliederung dieses Kapitels 6.1 Einführung 6.2 Betriebssystemstruktur 6.3 Varianten von Betriebssystemen 6.4 Interrupt und Systemaufruf 6.5 Prozess- und Prozessorverwaltung 6.6 Scheduling 6.7 Strategien zur virtuellen Speicherverwaltung 6.8 Dateien und Dateisystem 6.9 Ein-Ausgabe (I/O-Subsystem) 6.10 Busse (spezielle E/A-Geräte) 6.11 Synchronisation Fachbereich Informatik Prof. Dr. Frederik Armknecht 3

6.1 Einführung (Tanenbaum, Modern Operating Systems, 3e, Pearson) Fachbereich Informatik Prof. Dr. Frederik Armknecht 4

6.1 Einführung Einordnung eines Betriebssystems in ein Rechensystem Ein Rechnersystem besteht aus Hardware, System- und Anwendungsprogrammen Fachbereich Informatik Prof. Dr. Frederik Armknecht 5 anwendungsunabhängige Systemprogramme (z.b. Kommando- Interpreter (Shell), Compiler, Editoren, Windows) im user mode Betriebssystem (kernel/supervisor mode) Befehlssatz-Architektur (ca. 50 bis 300 Instruktionen) Zu Funktionseinheiten zusammengefasste, physikalische Bauteile (z.b. CPU-Register, ALU) Integrierte Schaltungen etc.

6.1 Einführung Definition Betriebssystem (operating system) (nach DIN 44300) Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden, und die insbesondere die Abwicklung von Programmen steuern und überwachen. Aufgaben eines Betriebssystems Abstraktion, bieten einer einfach zu nutzende Schnittstellen Strategien zur Verwaltung gemeinsamer Ressourcen nach festen Qualitätskriterien, Beispiele? Dienste für Anwender und Anwendungsprogramme, Beispiele? Fachbereich Informatik Prof. Dr. Frederik Armknecht 6

6.1 Einführung BS-Aufgaben am Beispiel Windows 2000 Fachbereich Informatik Prof. Dr. Frederik Armknecht 7

6.1 Einführung BS-Aufgaben am Beispiel Unix/Linux Betriebssystemkern Fachbereich Informatik Prof. Dr. Frederik Armknecht 8

6.1 Einführung Bem.: Heutige Betriebssysteme sind historisch gewachsen Evolutionäre Weiterentwicklung, sehr komplexe Softwaresysteme Komplexität von BS gemessen in Source Lines of Code (SLOC) Werte unterschiedlicher Microsoft Windows Betriebssysteme: Year Operating System SLOC (Million) 1995 Windows NT 4 1997 Windows 95 15 1998 Windows NT 4.0 16 1999 Windows 98 18 2001 Windows 2000 35 2002 Windows XP 40 2007 Windows Vista 50 Richtwert (Erfahrung): 5-50 Bugs pro 1000 Lines of Code! Strukturiertes Design ist unabdingbar, sonst a big mess (Tanenbaum) Fachbereich Informatik Prof. Dr. Frederik Armknecht 9

6.2 Betriebssystemstruktur Betriebssystem ist ein großes und komplexes System modularisiert in Komponenten und Subsysteme meist in C, C++ geschrieben (früher komplett in Assembler, heute nur noch einige Gerätetreiber und Teile des BS-Kerns) Kern ( kernel ) umfasst die kritischen Funktionen des BS Systemprogramme werden nach Bedarf geladen: z.b. Linker, Debugger, Kommandointerpreter (Shell),... Daemons: Hilfsprozesse erfüllen eine Service-Funktion, durch Ereignisse aufgeweckt ( Datei zum Drucken eingetroffen ) Beispiele aus Unix: Fachbereich Informatik Prof. Dr. Frederik Armknecht 10

6.2.1 Monolithische Systeme Kapselung aller Betriebssystemdienste in einem große Kern idr Prozedur-orientiert, d.h. Systemdienste sind Prozeduren, Aufruf des Dienstes (Systemcall) entspricht Prozeduraufruf z.b. UNIX/Linux: Module als Strukturierungshilfsmittel Anwendung Anwendung BS-Kern System-Schnittstelle Hardware Legende Prozess im Benutzermodus Systemprozedur Systemaufruf Nutzungsabhängigkeit Fachbereich Informatik Prof. Dr. Frederik Armknecht 11

6.2.1 Monolithische Systeme Trennung zwischen Benutzerprogrammen und BS: Verschiedene Betriebsmodi: Benutzer- und Systemodus, dual-mode operation Schutz des BS vor fehlerhaften User-level Zugriffen! Modus wird in der Hardware durch 1 Bit festgehalten (1) System-Modus (engl. kernel mode, supervisor mode): Privilegierte Befehle sind verfügbar, u.a. Zugriff auf Hardware nur mit privilegierten Befehlen möglich Dienste des Betriebssystemkerns werden im Systemmodus ausgeführt, beim Aufruf (system call): Moduswechsel Fachbereich Informatik Prof. Dr. Frederik Armknecht 12

6.2.1 Monolithische Systeme Benutzer-Modus (engl. user mode): Benutzerprozesse In diesem Modus sind nur nicht privilegierte Befehle verfügbar, z.b. Zugriff auf Prozessadressraum und unkritische Register Ausführung eines privilegierten Befehls führt zu einer Unterbrechung (Interrupt) Aufruf eines Systemdienstes erfolgt über Systemcalls und führt zu einer Unterbrechung mit kontrolliertem Einsprung in das BS Fachbereich Informatik Prof. Dr. Frederik Armknecht 13

6.2.2 Virtuelle Maschine Unabhängigkeit und Isolation von Prozessen konsequent fortgeführt: Illusion: jedem Prozess steht der gesamte Rechner allein zur Verfügung unterschiedliche Betriebssysteme gleichzeitig auf einer vorhandenen Hardware-Konfiguration z.b. VMware: Linux neben Windows Bem. Java Virtual Machine Konzept (JVM) rührt auch hier her Vorteil: vollständige Isolation der Benutzerprozesse (Schutz) Nachteil: schwierige gemeinsame Nutzung von Ressourcen, evtl. Geschwindigkeit Fachbereich Informatik Prof. Dr. Frederik Armknecht 14

6.2.2 Virtuelle Maschine Fachbereich Informatik Prof. Dr. Frederik Armknecht 15

6.2.3 Client-Server Architektur mit Mikrokern Zusammenfassung verwandter Systemdienste zu Diensteklassen Diensteklassen werden mit Servern (Serverprozessen) realisiert Clients (Clientprozesse) nutzen Dienste Kommunikation zwischen Client und Server ist notwendig: klassisches Konzept hierfür: Nachrichtenaustausch Mikrokern: Prinzip: Trennung von Strategie und Mechanismus Vorteil? Fachbereich Informatik Prof. Dr. Frederik Armknecht 16

6.3 Varianten von Betriebssystemen Mainframe-Betriebssysteme: Großrechner E/A-Kapazität ein wesentlicher Unterschied zum PC (z.b. tausende von Festplatten und tausende von GB Daten-Kapazität) viele nebenläufige Prozesse mit viel Ein-/Ausgabe Server-Betriebssysteme: Server-Rechner sind große PCs, Workstations oder Mainframes gleichzeitige Bedienung mehrerer Nutzer über ein Netzwerk zur gemeinsamen Nutzung von Hard- und Software-Ressourcen, Server- Farmen sind heute Usus z.b. Datenbankserver, Web-Server Fachbereich Informatik Prof. Dr. Frederik Armknecht 17

6.3 Varianten von Betriebssystemen Mehrprozessor-Betriebssysteme: Hochleistungsrechenkapazität durch Verbindung mehrerer CPUs zu einem einzigen Rechnersystem, je nach Architektur: Parallelrechner, Multiprozessoren,... Aktuell: Entwicklung von Computer-GRIDs PC-Betriebssysteme: idr Ein-Benutzer-Systeme z.b. zu Textverarbeitung, Tabellenkalkulation, Internet-Zugriff Echtzeit-Betriebssysteme: Einhaltung von Deadlines etc. z.b. zur industriellen Prozess-Steuerung Eingebettete (embedded) Betriebssysteme: realisieren spezielle und keine allgemeinen Funktionen, müssen spezielle Größen-, Speicher- und Energie-Beschränkungen erfüllen z.b. Mobiltelefone, Smartcards Fachbereich Informatik Prof. Dr. Frederik Armknecht 18

6.4 Interrupt und Systemaufruf 6.4.1 Interrupts (Unterbrechungen) Heutige BS arbeiten idr Ereignis (event) getrieben Auftreten eines Ereignisses wird durch Interrupt angezeigt: bei Hardware über Leitungen/Busse, bei Software: Systemaufruf Effekt: das laufende Programm wird unterbrochen und i.a. später wieder fortgesetzt Klassifikation der Unterbrechungsereignisse Interne Unterbrechung ( trap oder exception ): synchron wird innerhalb der CPU selbst ausgelöst, z.b. Division durch 0 Externe Unterbrechung: asynchron wird ausgelöst durch Signal an Interrupt-Eingang der CPU, z.b. E/A Fachbereich Informatik Prof. Dr. Frederik Armknecht 19

6.4 Interrupt und Systemaufruf Synchrone Interrupts sind reproduzierbar, asynchrone Interrupts i.allg. nicht, Konsequenz: CPU muss stets auf Auftreten einer asynchronen Unterbrechung gefasst sein, aber: eine Unterbrechung eines Programms ist nicht immer gewünscht CPU kennt die Programmsemantik (z.b. Unterbrechung ok) nicht: deshalb: CPU bietet Konzept, um Unterbrechungen zu sperren (disable), z.b. für kritische BS-Dienste nützlich Maskierbare Unterbrechung: Interrupt vorübergehend außer Kraft setzbar, z.b. E/A-Interrupt Das kann für gewisse zeitkritische Routinen z. B. in Gerätetreibern notwendig sein Reaktion der CPU auf Unterbrechung: Start eines speziellen, unterbrechungsabhängigen Programms ( Interrupt Handler ) Fachbereich Informatik Prof. Dr. Frederik Armknecht 20

6.4 Interrupt und Systemaufruf Allgemeine Vorgehensweise zur Unterbrechungsbehandlung Interrupt normale Programmausführung Fortsetzung der normalen Programmausführung Behandlung der Unterbrechung Rückkehr vom Interrupt Handler Verzahnte Ausführung von normalen Programmen und Unterbrechungsbehandlung: quasi-parallelen Ablauf: Synchronisation erf. Transparenzforderung: Unterbrechungsbehandlung hinterlässt bzgl. des unterbrochenen Programms keine Spuren Fachbereich Informatik Prof. Dr. Frederik Armknecht 21

6.4 Interrupt und Systemaufruf Interrupt-Handling am Beispiel Tastatur 1. Bei Tastendruck wird ein entsprechender Interrupt ausgelöst. 2. Taste wird vom BIOS ausgelesen. 3. Entsprechender ASCII-Wert und Tastencode werden in einen Puffer geschrieben. 4. Ein weiterer Interrupt wird ausgelöst, wenn die Taste losgelassen wurde. Fachbereich Informatik Prof. Dr. Frederik Armknecht 22

6.4 Interrupt und Systemaufruf Aktionen des BS beim Auftreten eines Interrupts: CPU wechselt in Kernel-Modus BS-Kern sucht nach der Routine zur Behandlung des Interrupts: Suche im Interrupt-Vektor, der im BS-Kern verwaltet wird Interrupt-Handler von Geräten: Bestandteile der Treibersoftware Geräte-Nummer dient als Index in den Interrupt-Vektor der Interrupt-Vektor: enthält Anfangsadressen der Handlerroutinen, Tabelle ist idr resident in Bereich niedriger Adressen abgelegt, Tabelle: beim Booten mit den Routinen initialisiert Ausführung der Handler-Routine: Unterbrechungsgrund ermitteln, Behandlung durchführen Nach Beendigung: Return-from-Interrupt Befehl Fachbereich Informatik Prof. Dr. Frederik Armknecht 23

6.4 Interrupt und Systemaufruf Beispiel: Interrupt-Vektor Tabelle des Intel-Pentiums Fachbereich Informatik Prof. Dr. Frederik Armknecht 24

6.4 Interrupt und Systemaufruf 6.4.2 Systemaufruf (engl. system call) Konzeptuell analog zu Interrupt, aber: Software-Unterbrechung System call: Schnittstelle zwischen Prozessen und BS meist als Assembler-Anweisung verfügbar bzw. nutzbar In der Regel aber nicht direkt, sondern über Routinen des Laufzeitsystems der Programmiersprache nutzbar gemacht Laufzeitsystem (runtime system): Menge von Bibliotheksfunktionen, vom Compiler automatisch zum Programm hinzu gebunden z.b. Unix: Systemaufrufe direkt aus C, C++ Programmen, Windows: Aufruf über Win32 API (Application Programmer Interface) Fachbereich Informatik Prof. Dr. Frederik Armknecht 25

6.4 Interrupt und Systemaufruf Aufgabe: Transfer der Kontrolle an BS und Datentransfer, z.b. read-operation auf Dateien, Parameter: Datei, Zeiger auf Buffer, Byteanzahl Ablauf eines Syscalls: Analogie zum klassischen Prozeduraufruf, Zu übergebene Parameter: über Stack, Register, Pointer Nummer des Systemaufrufs (Dienstnummer): idr in ein Register geschrieben Kontrolltransfer an den BS-Kern über eine Trap-Instruktion Dienstnummer: Index in Dispatch-Tabelle (vgl. Interrupt-Vektor) Nach Beendigung des Dienstes: Kontroll- und Modus-Wechsel zurück zum Aufrufer des Syscalls, ggf. Blockieren des aufrufenden Prozesses, z.b. Prozess wartet auf Eingabe Fachbereich Informatik Prof. Dr. Frederik Armknecht 26

Beispiel: SysCall read (fd, buffer, nbytes) (Unix/Linux) (5-6) Sys call read durch Bibliotheksfunktion, Trap-Befehl (6) Kern-Einsprung mit Modus- Wechsel (1-4) Benutzer- Programm: Aufruf der Bibliotheksfunktion read mit Parameterübergabe auf Stack etc. (7) Auswahl des Systemdienstes anhand der Dienstnummer im Register Fachbereich Informatik Prof. Fachgebiet Dr. Frederik Graphisch-Interaktive Armknecht 27Systeme (GRIS) Prof. Dr. D. Fellner 27 (8-9) Ausführung des read-systemdienstes, Return mit Modus-Wechsel

Beispiel: Unix-Syscalls für Prozessmanagement s ist Fehlercode, pid ist Prozess ID Fachbereich Informatik Prof. Dr. Frederik Armknecht 28

6.5 Prozess- und Prozessorverwaltung Ziel: Konzepte, Datenstrukturen, Strategien zur Verwaltung nebenläufiger Aktivitäten Benötigt werden: Konzepte zur Virtualisierung der CPU Lösung: Thread-, Prozess-Konzept Konzepte, um Informationen zu speichern Lösung: Prozess-individueller Adressraum Datenstrukturen zur Verwaltung von Prozessen/Threads: Lösung: Deskriptoren, Tabellen, Warteschlangen, etc. Operationen zur Verwaltung von Prozessen/Threads Lösung: Scheduling, Prozess-Erzeugung etc. Fachbereich Informatik Prof. Dr. Frederik Armknecht 29

6.5.1 Prozesskonzept Ein Prozess ist eindeutig identifizierbarer Ablauf eines Programms, d.h. ein Prozess ist ein Programm in Ausführung: jeder Prozess besitzt einen eigenen Adressraum, ein Prozess durchläuft unterschiedliche Zustände, z.b. rechnend, wartend auf E/A, wartend auf CPU Pseudoparallele Prozessausführung (Multiprogramming, multitasking): CPU wechselt zwischen der Ausführung verschiedener Programme Scheduling-Strategien erforderlich (a) Multiprogrammierung von 4 Programmen (b) Konzeptmodell von 4 unabhängigen, sequentiellen Prozessen Fachbereich Informatik Prof. Fachgebiet Dr. Frederik Graphisch-Interaktive Armknecht 30Systeme (GRIS) Prof. Dr. D. Fellner 30 (c) zu jedem Zeitpunkt nur ein Programm aktiv

6.5.1 Prozesskonzept Dienste des Betriebssystems zur Prozessverwaltung: Prozess-Erzeugung und Starten (z.b. fork) Prozess-Terminierung, Auflösung (z.b. kill, exit) Strategien zur CPU-Zuteilung (scheduling) Prozessor-Anbindung (dispatching) (z.b. resume, sleep, wakeup) Erzeugung von Prozessen: u.a. bei Systeminitialisierung, durch Benutzeranfrage Terminierung von Prozessen: u.a. normaler Ausgang oder Fehlerausgang (freiwillig) Fataler Fehlerausgang (unfreiwillig) Abschuss durch einen anderen Prozess (unfreiwillig) Fachbereich Informatik Prof. Dr. Frederik Armknecht 31

Beispiel: Zustandsübergangsdiagramm für Prozesse Legende Blau: Zustand Schwarz: Übergang 9 Zombie exit wartend im Speicher 3 5 Prozess im Benutzermodus Systemaufruf sleep swap out wartend, geswappt Fachbereich Informatik Prof. Fachgebiet Dr. Frederik Graphisch-Interaktive Armknecht 32Systeme (GRIS) Prof. Dr. D. Fellner 32 1 wake up 2 wake up return return im Kernelmodus unterbrochen rechenbereit im Speicher 4 genug Speicher swap in fork 8 swap out erzeugt 6 zu wenig Speicher rechenbereit, geswappt 7

6.5.1 Prozesskonzept Prozesserzeugung Alle Prozesse, die nicht zur Boot-Zeit erzeugt werden, entstehen, indem ein laufender Prozess, z.b. laufender Benutzerprozess, von Tastatur oder Maus aufgerufener Systemprozess oder Batch-Manager-Prozess, einen Prozesserzeugungsdienst aufruft. Dieser teilt dem Betriebssystem direkt oder indirekt mit, welches Programm im neuen Prozess auszuführen ist. Erzeugung neuer Prozesse in Unix mit fork in Windows mit CreateProcess Fachbereich Informatik Prof. Dr. Frederik Armknecht 33

6.5.1 Prozesskonzept Beispiel: Prozesserzeugung unter Unix: fork erzeugt exakten Klon des aufrufenden Prozesses. Kindprozess erbt vom Vater-/Mutterprozess das Speicherabbild (memory image copy on write), die offenen Dateien,. idr führt Kindprozess dann z.b. execve, um Speicherabbild zu ändern und neues Programm auszuführen. Beispiel: Benutzer tippt Kommando in Shell ein, z.b. sort, Shell erzeugt Kindprozess ( forks off child process ), Kindprozess führt sort aus. Dieser zweistufige Vorgang ermöglicht dem Kindprozess nach fork aber vor execve die Manipulation seiner Datei-Deskriptoren, um Standard-Input (stdin), Standard-Output (stdout) und Standard-Error (stderr) umzulenken. Fachbereich Informatik Prof. Dr. Frederik Armknecht 34

6.5.1 Prozesskonzept Beispiel: Prozesserzeugung unter Windows Ein Win32 Funktionsaufruf, CreateProcess, behandelt beides: Prozesserzeugung und Laden des korrekten Programms Aufruf hat 10 Parameter, u.a. das auszuführende Programm, die Kommandozeilenparameter zur Versorgung des Programms, verschiedene Sicherheitsattribute, Win32 hat zusätzlich etwa 100 weitere Funktionen zur Verwaltung und Synchronisation von Prozessen und verwandten Aufgaben. Nach der Prozesserzeugung haben in Unix und Windows Vater-/Mutter- und Kindprozess jeweils eigene Adressräume. Änderungen im eigenen Adressraum sind nicht sichtbar für den jeweils anderen. Fachbereich Informatik Prof. Dr. Frederik Armknecht 35

6.5.1 Prozesskonzept Prozesshierarchien: Entstehen durch Prozesserzeugung In Unix bilden Prozess mit allen Kind- und Kindeskindprozessen eine Prozessgruppe (process group). Z.B. wenn Benutzer Signal von Tastatur sendet, wird das zu allen Mitgliedern der mit der Tastatur assoziierten Prozessgruppe übermittelt. Jeder Prozess kann Signal aufnehmen oder ignorieren. Initialisierung von Unix durch Starten des Prozesses init: Init liest beim Start eine Datei mit der Anzahl der Terminals und erzeugt (forks off) einen neuen Kindprozess pro Terminal. Diese warten auf einen Login-Vorgang. Bei erfolgreichem Login: Starten von Shells, GUI-Prozess, Shells bearbeiten Kommandos, z.b. zur Prozesserzeugung Alle Prozesse zu einem einzigen Baum mit init als Wurzel. Fachbereich Informatik Prof. Dr. Frederik Armknecht 36

6.5.1 Einfaches Multiprogramming Modell Oft wichtiges Ziel von Multiprogramming: Maximierung der CPU Auslastung Beobachtung: Prozesse blockieren oft aufgrund von I/O Operationen Frage: Welches Multiprogramming Level (=Anzahl an parallelen Prozessen) wird benötigt, um bei gegebener Blockierungswahrscheinlichkeit der Prozesse eine bestimmte CPU Auslastung zu erzielen? Einfaches Modell: p: Wahrscheinlichkeit, dass ein gegebener Prozess blockiert n: Anzahl Prozesse p n : Wahrscheinlichkeit, dass alle Prozesse gleichzeitig blockieren (1 - p n ): durchschnittliche CPU Auslastung Fachbereich Informatik Prof. Dr. Frederik Armknecht 37

6.5.1 Einfaches Multiprogramming Modell Aussage des Modells? Beschränkungen? Degree of multiprogramming (Tanenbaum, Modern Operating Systems, 3e, Pearson) Fachbereich Informatik Prof. Dr. Frederik Armknecht 38

6.5.2 Datenstrukturen zur Prozessverwaltung Prozesskontrollblock (Prozessdeskriptor): PCB Beschreibt den Kontext eines Prozesses; enthält i.d.r. folgende Informationen: eindeutiger Name, z.b. fortlaufende Nummerierung des Prozesses (z.b. pid in UNIX) Name des Benutzers, dem der Prozess zugeordnet ist, Namen der zugeordneten Gruppen Prozesszustand (wartend, rechnend, rechenwillig,...) Spezifikation des Ereignisses, auf das der Prozess wartet (z.b. warten auf Eingabe von Tastatur (E/A-Auftrag)) Scheduling Informationen: z.b. Ablaufpriorität, bereits verbrauchte CPU-Zeit Fachbereich Informatik Prof. Dr. Frederik Armknecht 39

6.5.2 Datenstrukturen zur Prozessverwaltung PCB-Bestandteile: Forts. Registerinhalte, wie Programm-Zähler (PC), Stackpointer, etc. Accounting-Information: verbrauchte Ressourcen etc. Prozesshierarchie: Vaterprozess, Kind-Prozesse Informationen für das Speichermanagement Informationen für die Dateiverwaltung: u. a. Home-Verzeichnis Liste der zugeordneten E/A-Geräte PCB-Information Fachbereich Informatik Prof. Dr. Frederik Armknecht 40

6.5.2 Datenstrukturen zur Prozessverwaltung Prozess-Image im Speicher der PCB eines Prozesses gehört zum Prozessadressraum zur Prozessverwaltung müssen Teile des PCB in dem Hauptspeicher eingelagert sein ein Verweis auf den PCB eines Prozesses wird in der systemglobalen Prozesstabelle des BS verwaltet PCB i Stack-Bereich i Privater Prozess- Bereich: Code, Daten Shared Bereich Prozess i PCB j Stack-Bereich j Privater Prozess- Bereich: Code, Daten Shared Bereich Prozess j Fachbereich Informatik Prof. Dr. Frederik Armknecht 41

6.5.2 Datenstrukturen zur Prozessverwaltung Prozesstabelle: enthält Verweise auf die PCBs existierender Prozesse idr als Tabelle fester Länge organisiert, d.h. die maximale Prozessanzahl ist durch Systemparameter festgelegt Suchen nach PCB-Verweisen: anhand der Prozess-ID (pid) Suchalgorithmen: Hashing, Suchbäume etc. pid=2 PCB2 PCB0 PCB1 PID Zustand Registerinhalte Schedulinginfo... Prozess-Tabelle Fachbereich Informatik Prof. Dr. Frederik Armknecht 42

6.5.2 Datenstrukturen zur Prozessverwaltung Prozess-Warteschlangen: Zur Prozess-Verwaltung führt das BS unterschiedliche Warteschlangen. Die wichtigsten sind: Ready-Queue(s) für rechenbereite Prozesse Warteschlangen für verschiedene Ereignisse blockierte Prozesse i.d.r. jeweils eine eigene Warteschlange für E/A-Geräte (z.b. Platte, Terminal) Verwaltung der Prozesse z.b. durch verkettete Listen der PCBs oder wie beispielsweise in Linux (ab 2.6): Rot-Schwarz-Bäume, die nach Zeit geordnet sind Fachbereich Informatik Prof. Dr. Frederik Armknecht 43

6.5.3 Thread-Konzept (lightweight Process) Bislang betrachtet: Sequentieller Prozess mit virtuellem Adressraum und einem Kontrollfluss (Thread of control) Multi-threaded Prozess: Prozess mit mehreren, parallelen Kontrollflüssen, d.h. multi-threaded Prozess kann parallele Aktivitäten ausführen Charakteristika: ein Thread besitzt: eine eigene Identität: Thread-ID, einen eigenen Programmzähler, einen eigenen Stack, eigenes Registerset und einen eigenen Zustand (blockiert, rechenbereit, rechnend etc.) Fachbereich Informatik Prof. Dr. Frederik Armknecht 44

6.5.3 Thread-Konzept Threads des gleichen Prozesses: teilen sich den gemeinsamen Prozessadressraum, nutzen gemeinsame Ressourcen Konsequenz: jeder Thread kann auf jede Speicheradresse zugreifen, z.b. auch auf den Stack anderer Threads des Prozesses Adressraum Adressraum Thread... Thread... Thread... Thread... Single-threaded Prozess Multi-threaded Prozess Fachbereich Informatik Prof. Dr. Frederik Armknecht 45

6.5.3 Thread-Konzept Multi-threading: effiziente Kooperation zwischen Threads möglich Threads greifen auf globale Variablen des Prozesses gemeinsam zu: Synchronisationskonzepte erforderlich! Informationen pro Prozess Thread-Beschreibung: durch Thread Control Block Informationen pro Thread Programzähler Stack Register-Set Kind-Threads Zustand Programzähler Adressraum Stack globale Register-Set Variablen geöffnete Kind-Threads Dateien Kind-Prozesse Zustand Timer Signale Semaphore Accounting Informationen Zustand Fachbereich Informatik Prof. Dr. Frederik Armknecht 46

6.5.3 Thread-Konzept Vorteile des Thread-Konzepts Pro Prozess viele parallele Aktivitäten, aber einige sind von Zeit zu Zeit blockiert. Durch Zerlegung des Prozesses in quasi-parallel ausführbare Ausführungsstränge: vereinfachtes Programmiermodell Gemeinsame Nutzung von Daten: sehr schneller Datenaustausch, kein Versenden von Nachrichten notwendig Threads sind schneller zu erzeugen und zu terminieren als Prozesse (z.b. um Faktor 100). Performanz-Steigerung durch Threads: Z.B. umfangreiche Berechnungen und umfangreiche Ein-/Ausgabe kann überlappend abgearbeitet werden. Echte Parallelität auf Mehrprozessor-Rechnern Fachbereich Informatik Prof. Dr. Frederik Armknecht 47

6.5.3 Thread-Konzept (Tanenbaum, Modern Operating Systems, 3e, Pearson) Fachbereich Informatik Prof. Dr. Frederik Armknecht 48

6.5.3 Thread-Konzept (am Beispiel einer Textverarbeitungssoftware) Beispiel: Text-Verarbeitungsprogramm mit 3 Threads Interaktiver Thread: wartet auf Eingaben von Tastatur und Maus Thread zur Reformatierung (Neuberechnung) des Textes im Hintergrund nach Eingaben und zur Darstellung auf Bildschirm Thread zum Anlegen von Sicherungskopien im Hintergrund Fachbereich Informatik Prof. Dr. Frederik Armknecht 49

6.5.3 Thread-Konzept (am Beispiel eines Webservers) Dispatcher-Thread: Annahme von Anfragen aus dem Netz Weiterleitung an einen Worker-Thread Worker prüft, ob Anfrage aus Cache erfüllbar, falls nicht: Lese-Anfrage an Platte, Worker wird blockiert, bis Antwort vorliegt worker while(true){ getnextrequest(&buf); handoffwork(&buf); } Dispatcher BS-Kern Netzverbindung Cache von Web-Seiten while(true){ waitforwork(&buf); lookforpagincache(&buf,&page); if(pagenotincache(&page)){ readpagefromdisk(&buf,&page); } returnpage(&page) } Worker Fachbereich Informatik Prof. Dr. Frederik Armknecht 50

6.5.3 Thread-Konzept Thread Implementierung Ansätze: in User Space über Thread-Pakete, Bibliotheken Kern-integriert: d.h. BS-Kern bietet Thread-Konzept Kombination User Space Kernel Space Thread1 Thread2 Laufzeitsystem Thread-Verwaltung Kern User-level Threads Thread3 User Space Kernel Space Fachbereich Informatik Prof. Fachgebiet Dr. Frederik Graphisch-Interaktive Armknecht 51Systeme (GRIS) Prof. Dr. D. Fellner 51 Thread1 Thread2 Thread3 Kern Thread-Verwaltung Kernel-level Threads

6.5.3 Thread-Konzept User-level Threads: Kern besitzt keine Kenntnis über Threads Kern verwaltet nur Prozesse (Scheduling, Signale etc.) Realisierung der Operationen zur Threadverwaltung mit Thread-Paket, z.b. für Unix-Systeme pthreads Bibliothek Thread-Paket setzt auf beliebigem BS auf, keine BS-Änderung nötig Paket stellt als Laufzeitsystem eine Menge von Operationen zur Verfügung: create, wait, etc. für jeden Prozess wird vom Laufzeitsystem (nicht vom BS-Kern!) eine Threadtabelle verwaltet das Laufzeitsystem bietet Schedulingoperationen für Threads eines Prozesses, d.h. two-level Scheduling, Vorteil? Nachteil? Fachbereich Informatik Prof. Dr. Frederik Armknecht 52

6.5.3 Thread-Konzept Probleme bei user-level Implementierungen: u.a. Implementierung von blockierenden Systemaufrufen: alle User-level Threads des Prozesses werden blockiert, keine Parallelverarbeitung mehr Ähnlich: Blockierung aufgrund Page Fault eines Threads Scheduling des Kerns greift nicht (z.b. keine Uhrunterbrechung), u.u. kann ein Thread alle anderen monopolisieren, d.h. Threads müssen CPU freiwillig abgeben Fazit: Herausziehen von BS-Diensten aus dem Kern in den User-Level: Flexibilität: individuelle Anpassung an Anforderungen der Anwendung (z.b. individuelles Scheduling ihrer Threads) keine globale Strategie (Fairness etc.) Fachbereich Informatik Prof. Dr. Frederik Armknecht 53

6.5.3 Thread-Konzept Kernel Level Implementierung Kern verwaltet Threads selber: eine Thread-Tabelle für alle Prozesse im Kern Thread-Operationen wie Erzeugung, -Terminierung etc. sind Kern-Aufrufe: trap in den Kern blockierender Aufruf: welche Scheduling-Optionen? Effizientes Recycling von Thread Datenstrukturen Beispiele: Linux: Kernel-level Threads Windows2000: Kernel-level und User-level Threads Fachbereich Informatik Prof. Dr. Frederik Armknecht 54

6.5.3 Thread-Konzept Hybride Lösung: Kernel + User Threads (Tanenbaum, Modern Operating Systems, 3e, Pearson) Fachbereich Informatik Prof. Dr. Frederik Armknecht 55

6.5.4. Kontextwechsel Aufgabe des Dispatchers: Prozess an CPU binden Analog zur Unterbrechung einer CPU, aber größerer Kontext Bei einem Kontextwechsel ist durchzuführen: Retten der Prozessumgebung des aktuellen Prozesses, inkl. PC, Registerinhalte Update des PCB des aktuellen Prozesses um neue Zustandsinformation, eintragen in Verwaltungsdatenstrukturen (dann: Auswahl eines Prozesses) Update des PCB des neuen Prozesses, Update der Datenstrukturen für Speichermanagement Laden des Prozess-Kontexes Bem.: Kontextwechsel sind teuer (ca. einige 1000 Instruktionen), Anzahl der Prozesswechsel pro Sekunde sollte klein sein: Strategie ist erforderlich: Scheduling Fachbereich Informatik Prof. Dr. Frederik Armknecht 56

6.6 Scheduling Im Alltag: Planen, Organisieren von Abläufen und Ereignissen z.b. Stundenplan, Fahrpläne, OP-Einsatzplan, etc. CPU Scheduling: Strategische Entscheidung treffen: welchen Prozess, wann, wie lange an CPU zu binden Ausnutzen: CPU-Nutzungsbursts wechseln sich mit E/A-Wartephasen ab Fachbereich Informatik Prof. Dr. Frederik Armknecht 57

6.6.1 Kriterien beim Scheduling Wann sind Scheduling-Entscheidungen zu treffen? Prozesserzeugung (z.b. fork) Prozess (wird) terminiert Prozess blockiert (z.b. I/O, Semaphor) I/O Interrupt Clock Interrupt (bei präemptiven Scheduling) Kriterien: Effizienz: CPU (bzw. allg.: Ressourcen) so gut wie möglich auslasten Durchsatz: max. Anzahl ausgeführter Jobs pro Zeiteinheit Turnaround : min. Verweilzeit für einen einzelnen Prozess Antwortzeiten interaktiver Prozesse minimieren Fairness Fachbereich Informatik Prof. Dr. Frederik Armknecht 58

6.6.1 Kriterien beim Scheduling Gewichtung der Scheduling-Ziele kann variieren Batch Systeme Durchsatz, Turnaround, CPU Auslastung Interaktive Systeme Antwortzeit, Proportionalität Echtzeitsysteme Vorhersagbarkeit, definierte Anforderungen einhalten Allgemein Fairness Einhaltung von Regeln Balancierung Fachbereich Informatik Prof. Dr. Frederik Armknecht 59

6.6.1 Kriterien beim Scheduling Schwierigkeiten: Optimierungskriterien beim Scheduling teilweise widersprüchlich Optimieren nach Mittelwert oder Extremwert oder Varianz? Prozessverhalten ( kommt der nächste E/A-Befehl bald? ) kann vom Scheduler nur vermutet, aber nicht exakt vorhergesehen werden. Frage: wie soll man Hypothesen über Verhalten erstellen? Fachbereich Informatik Prof. Dr. Frederik Armknecht 60

6.6.1 Kriterien beim Scheduling Kenngrößen zur Bewertung von Scheduling-Verfahren: u.a. mittlere Wartezeit, mittlere Verweilzeit, CPU Auslastung Gegeben ist eine Strategie S und die Ankunftszeiten (Erzeugungszeitpunkte) a = (a 1,..., a n ) der Prozesse P i, und die Bedienzeiten (benötigte Prozessorzeit) b = (b 1,..., b n ) der Prozesse Abgangszeit c i (a,b,s) von P i Verweilzeit v i (a,b,s) = c i (a,b,s) - a i von Pi Wartezeit w i (a,b,s) = c i (a,b,s) - a i b i von Pi Mittlere Verweilzeit V(a,b,S) = 1/n Σ i=1 v i (a,b,s) Mittlere Wartezeit W(a,b,S) = 1/n Σ i=1 w i (a,b,s) Fachbereich Informatik Prof. Dr. Frederik Armknecht 61

6.6.2 Strategie Klassen (1) Nicht unterbrechend (non preemptive, run to completion): Scheduling nur dann möglich, wenn der rechnende Prozess blockiert wird oder wenn er terminiert einfach zu implementieren, aber Gefahr des Monopolisierens Beispiele: FCFS (first come first served) Shortest Jobs First Nicht unterbrechende Strategie: z.b. in Microsoft Windows 3.x (2) Unterbrechende Strategie (preemptive): Unterbrechung beim Eintreten von speziellen Ereignissen, z.b. I/O Interrupt, Clock Interrupt, Blockierung Beispiel: Zeitscheiben-Strategie (Round-Robin), Prioritäten Präemptive Strategien u.a. in Windows2000, Vista, Unix-Derivate Fachbereich Informatik Prof. Dr. Frederik Armknecht 62

6.6.3 Mehr-Schichten Scheduling Idee: analog zur Speicherhierarchie: Anbindung an CPU muss sehr schnell gehen, Prozesse müssen vorbereitet sein: eingelagert im Speicher,... Lösung: Scheduling auf unterschiedlichen Stufen: long-, medium-, short-term (CPU-Schedling) Long-term Scheduling (LTS): nicht immer vorhanden Auswahl rechenwilliger neuer Aufträge, meist Jobs aus dem Hintergrundbetrieb (batch) und Einlagerung in den Hauptspeicher Einfügen der Prozesse in die Ready-Queue LTS wird relativ selten aufgerufen, u.u. erst nach Minuten Fachbereich Informatik Prof. Dr. Frederik Armknecht 63

6.6.3 Mehr-Schichten Scheduling Medium-term Scheduling: bei Überlast werden Prozesse auf Hintergrundspeicher ausgelagert (swap out) und später eingelagert (swap in) kann notwendig sein, um Prozessmix zu verbessern, was ist ein Prozessmix? Was ist guter Mix? Short-term Scheduling: (CPU-Scheduling) Auswahl eines geeigneten Prozesses aus der Ready-Queue Warteschlange häufig als FIFO (First in first out) Warteschlange realisiert häufig aufgerufen: mind. einmal alle 10 100 Millisekunden CPU-Scheduler ist zeitkritisch: Beispiel: Scheduler benötige 1 ms für Auswahlentscheidung, Prozess erhält 10 ms Rechenzeit, dann verschlingt Scheduling allein 1/11 = 9 Prozent der CPU-Zeit! Fachbereich Informatik Prof. Dr. Frederik Armknecht 64

6.6.3 Mehr-Schichten Scheduling Fachbereich Informatik Prof. Dr. Frederik Armknecht 65

6.6.4 Zeitscheibenstrategie (Round Robin) In heutigen Standardbetriebssystemen: Kombination aus Zeitscheiben- und Prioritätsbasierten Strategien Prozesse erhalten CPU jeweils für eine festgelegte Zeitdauer (Zeitscheibe) d spätestens nach dem Ablauf von d: CPU wird entzogen Warteraum zyklisches Bedienen der Prozesse Ready Queue als zyklische Schlange realisiert Ankunft von Prozessen Prozessor nicht beendete Aufträge Terminierte Prozesse Fachbereich Informatik Prof. Dr. Frederik Armknecht 66

6.6.4 Zeitscheibenstrategie (Round Robin) Gegeben seien n Prozesse in Warteraum und eine Dauer d jeder Prozess muss max (n 1) * d Zeiteinheiten warten, bis er wieder an der Reihe ist Probleme: Wahl der Dauerlänge Dauer zu groß: Effekte? Dauer sehr klein, dann process sharing, Probleme? Daumenregel: 80 Prozent der benötigten CPU-Zeit sollte kleiner als d sein. Typische Werte für d: 10 bis 100 ms (z.b. 4.3 BSD Unix 10ms) Bem.: Für d = 100ms bei 1MIPS Maschine: ca. 100.000 Instruktionen pro Zeitdauer d Fachbereich Informatik Prof. Dr. Frederik Armknecht 67

6.6.4 Zeitscheibenstrategien: Übersicht d = 1 d = 4 τ τ Quelle: W. Stallings Operating Systems (Prentice Hall) Fachbereich Informatik Prof. Dr. Frederik Armknecht 68

6.6.5 Prioritäten - Strategie Hintergrund bei Zeitscheibe implizit: alle Prozesse sind gleich wichtig, das ist nicht immer gewünscht (z.b. Systemprozesse) Lösung: Prozesse erhalten Priorität Fachbereich Informatik Prof. Dr. Frederik Armknecht 69

6.6.5 Prioritäten - Strategie Statische Prioritätenvergabe: jeder Prozess besitzt für die Dauer seiner Existenz eine feste Priorität Problem: Gefahr des Verhungerns (starvation) von Prozessen mit niedriger Prio Gerücht: bei Abschaltung der IBM 7094 am MIT 1973: Entdeckung eines nicht bearbeiteten, niedrig prioren Prozesses von 1967 Dynamische Prioritätenvergabe: die Prioritäten der Prozesse werden in gewissen Zeitabständen neu berechnet. Fachbereich Informatik Prof. Dr. Frederik Armknecht 70

6.6.5 Prioritäten - Strategie Kombination: mehrschichtige Warteschlangen (multi-level queues) in heutigen BS häufig: Multi-level Feedback Queues, d.h. Prozesse werden gemäß ihrer Priorität in Schlange eingeordnet Dynamik: Prozesse können zwischen Schlangen wandern. Notwendig: Schedulingverfahren pro Schlange: meist RR Scheduling zwischen Schlangen: meist nach Prioritäten Verfahren zur Neuberechnung der Prioritäten mit ggf. Wechsel der Warteschlange Beispiel: sowohl Unix-Familie als auch Windows-Familien verwenden Varianten von Multi-level Feedback Queues Fachbereich Informatik Prof. Dr. Frederik Armknecht 71

6.6.5 Prioritäten - Strategie Beispiel: Scheduling im BSD-Unix Betriebssystem 32-schichtiges Warteschlangen Scheduling Zeitscheibenstrategie (RR) mit überlagerter dynamischer Prioritätenvergabe Dauer d = 100ms Prioritäten von 0 127 (0 ist die höchste) Prozess mit Priorität PRIO: in Schlange PRIO/4 eingeordnet Jede Warteschlange wird mit Zeitscheibenverfahren bedient Fortlaufende Neuberechnung der Prioritäten Neuberechnung der Prioritäten: p_cpu: geschätzte CPU-Nutzung des aktiven Prozesses alle 10 ms (Uhrunterbrechung, Tick): p_cpu : = p_cpu + 1 Fachbereich Informatik Prof. Dr. Frederik Armknecht 72

6.6.5 Prioritäten - Strategie p_nice vom Benutzer bestimmter Gewichtungsfaktor (-20 p_nice 20) positiver Wert bedeutet, dass Prozess bereit ist, weniger als den ihm zustehenden Anteil an Prozessorzeit zu beanspruchen USER_PRIO Priorität, die dem Prozess beim Start zugeteilt worden ist. nach 4 Uhrunterbrechungen (Ticks) Neu-Berechnung der Prios aller rechenbereiten Prozesse u_prio = USER_PRIO + p_cpu 4 + 2 p_nice damit Prios nicht ständig wachsen, wird p_cpu jede Sekunde angepasst durch 2load p_cpu = * p_cpu + p_nice 2load+1 Fachbereich Informatik Prof. Dr. Frederik Armknecht 73

6.6.5 Prioritäten - Strategie Bem.: load ist eine Abschätzung der CPU-Auslastung Durchschnitt der rechenbereiten Prozesse über vorangegangenes 1-Minutenintervall Problem: Prio-Neuberechnung nur für rechenbereite Prozesse Passiv wartende Prozesse profitieren davon nicht notwendig: Prio-Neuberechnung wartender Prozesse: Basis: Variable p_slptime, enthält Schätzung der Wartezeit des Prozesses in Sekunden Beim Aufwecken des Prozesses: p _ cpu 2load = ( ) 2load + 1 p _ slptime * p _ cpu Fachbereich Informatik Prof. Dr. Frederik Armknecht 74

6.6.6 Weitere Verfahren Guaranteed Scheduling Jeder User (jeder Prozess) soll annähernd gleich viel CPU erhalten System beobachtet tatsächlichen CPU Verbrauch + steuert entsprechend Lottery Scheduling Prozesse halten Lose zur Teilnahme an Ressourcen- Verlosung System führt regelmäßig Lotterie aus Div. Ansätze möglich: Zuweisung von Losen zu neuen Prozessen Tausch von Losen zwischen Prozessen Einfach zu implementieren, transparent Fair Share Scheduling Verteilung von Ressourcen berücksichtigt Prozess-Eigentümer Aufteilung so, dass alle Eigentümer gleich (oder entspr. einem Verhältnis) bedient werden Fachbereich Informatik Prof. Dr. Frederik Armknecht 75

6.7 Strategien zur virtuellen Speicherverwaltung Erinnerung Virtuelle Adressräume in Seiten (pages) aufgeteilt Hauptspeicher ist in Seitenrahmen (frames) aufgeteilt Einlagern von Seiten in die Frames Seitentabelle(n) und Adressabbildung (vgl. Kapitel 4) Jetzt klären wichtiger strategischer Aufgaben Ladestrategie: welche Seite(n) ist/sind zu laden? Platzierungsstrategie: welcher Frame ist geeignet? Seitenersetzung: welche Seite(n) auslagern? Fachbereich Informatik Prof. Dr. Frederik Armknecht 76

6.7 Strategien zur virtuellen Speicherverwaltung (Wdh. aus Kapitel 4) Vergleich mit Caches Blöcke Seiten (pages) Cache-miss Seitenfehler (page fault) Adressen im Programm: virtuelle Adressen Adressen im Hauptspeicher: (reale) physikalische Adressen Dynamische Zuordnung von Programmadressen zu Hauptspeicheradressen durch Adressabbildung Virtual addresses Address translation Physical addresses Disk addresses Programm wird in unterschiedliche Bereiche des Hauptspeichers geladen: Relocation Fachbereich Informatik Prof. Dr. Frederik Armknecht 77

6.7.1 Ladestrategie Einzelseitenanforderungs-Strategie (demand paging): Idee: eine Seite wird genau dann geladen, wenn auf sie zugegriffen wird und sie noch nicht eingelagert ist Hardware-Unterstützung dafür: Valid-Bit für jede Seite Demand Paging ist häufigste Strategie in heutigen BS; Seiten-Pre-Fetching: Idee: Seiten werden im Voraus geladen, um sie sofort bei Bedarf verfügbar zu haben Fachbereich Informatik Prof. Dr. Frederik Armknecht 78

6.7.1 Ladestrategie Demand-Paging: Leistungsanalyse Page Fault Rate 0 <= p <= 1 if p= 0, keine Page Faults. if p= 1, jede Referenz (Zugriff) führt zu einem Page Fault Fehlerbehandlung kostet Zeit: wesentliche Beiträge dazu Behandlung des Interrupts (~ 1 100 µs) Einlagern der Seite (~ 24 Millisekunden: typische Latenzzeit der Platte: 8ms, Suche 15ms, Datentransfer 1ms) Re-Start des Prozesses (~ 1 100 µs) Memory access time = ~ 10 200 Nanosekunden Effective Access Time (EAT): EAT = (1 p) * memory_access_time + p * (page_fault_overhead + [swap_page_out] + swap_page_in + restart) Fachbereich Informatik Prof. Dr. Frederik Armknecht 79

6.7.1 Ladestrategie Annahme: durchschnittliche Zeit zur Seitenfehler-Behandlung : sei 25 Millisekunden ( = 25.000 µs = 25.000.000 Nanosek) Speicherzugriffszeit liege bei 100 Nanosekunden dann gilt für EAT (in Nanosekunden): EAT = (1 p) * 100 + p (25 Millisekunden) = (1 p) * 100 + p * 25.000.000 = 100 + 24.999.900 * p D.h. EAT ist direkt proportional von Fehler-Rate p abhängig Falls z.b. alle 1000 Zugriffe 1 Fault: EAT = 25 µs d.h. Verlangsamung um Faktor 250 durch Demand Paging Fachbereich Informatik Prof. Dr. Frederik Armknecht 80

6.7.1 Ladestrategie Um eine Verlangsamung um weniger als 10% zu erhalten: notwendig: 110 > 100 + 25.000.000 * p 10 > 25.000.000 * p p < 0,0000004 d.h. um Page-Fault Rate auf akzeptabler Größe zu halten, darf höchstens ein Page-Fault auf 2.500.000 Zugriffe auftreten! Fazit: gute Seitenersetzungstechniken sind erforderlich zusätzliche Maßnahmen zur Reduktion der Zugriffszeiten: u.a. Nutzung von TLB Fachbereich Informatik Prof. Dr. Frederik Armknecht 81

6.7.2 Seitenersetzungsstrategien FIFO Verdrängen der ältesten Seite, d.h. Kriterium ist die Zeit, wann die Seite eingelagert wurde Beispiel: Vorteil von FIFO: einfach zu implementieren z.b. über FIFO-Queue, Zeitstempel sind nicht erforderlich aber wirklich gute Strategie? Fachbereich Informatik Prof. Dr. Frederik Armknecht 82

6.7.2 Seitenersetzungsstrategien Schlechtes Leistungsverhalten, warum? Beispiele für ungünstige Szenarien (Charakteristika)? FIFO-Anomalie können auftreten: trotz Erhöhen der Anzahl der Frames steigt die Seiten-Fehler Zahl! Beispiel für Anomalie: Gegeben sei der Referenzstring: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 Frames 4 Frames 1 1 4 5 1 1 5 4 2 2 1 3 2 2 1 5 3 3 2 4 9 page faults 3 3 2 10 page faults Frage: Abänderung? Effizient und effektiv? 4 4 3 Fachbereich Informatik Prof. Dr. Frederik Armknecht 83

6.7.2 Seitenersetzungsstrategien Second Chance: FIFO-Variante Zugriffbits r einer Seite wird gesetzt, wenn darauf zugegriffen wird. Überprüfen des Zugriffsbits der ältesten Seite. falls r=0, dann ist die Seite alt und nicht benutzt, falls r=1, Seite an das Ende der Seitenliste anhängen r-bit wird gelöscht, Ladezeit der Seite wird aktualisiert Lade-Zeit der jeweiligen Seite Page-Fault zum Zeitpunkt 20, R-Bit von Seite A sei gesetzt A wird mit neuem Ladezeitpunkt 20 umgehängt Fachbereich Informatik Prof. Fachgebiet Dr. Frederik Graphisch-Interaktive Armknecht 84Systeme (GRIS) Prof. Dr. D. Fellner 84

6.7.2 Seitenersetzungsstrategien Clock Algorithmus effiziente Implementierung des Second Chance Algorithm. Ansatz: Seiten werden in zyklischer Liste verwaltet (Uhr) Der Zeiger der Uhr zeigt auf die älteste Seite. Seitenfehler: Seite unter der Zeigerposition: falls r=0, auslagern der Seite, und Zeiger vorrücken. Anderenfalls r:=0 und Zeiger vorrücken bis Seite mit r-bit = 0 gefunden Worst Case: alle r-bits gesetzt alle Seiten erhalten 2-te Chance degeneriert zu FIFO! Fachbereich Informatik Fachgebiet Graphisch-Interaktive Systeme (GRIS) Prof. Dr. D. Fellner 85

6.7.2 Seitenersetzungsstrategien LRU (Least recently used) Verdrängen der am längsten nicht genutzten Seite, im Vergleich zur optimalen Strategie: Blick in die Vergangenheit und nicht in die Zukunft Beispiel: 12 Faults (anstelle von 15 Faults bei FIFO) LRU ist gute Strategie, aber sehr aufwändig exakt zu implementieren, wird meist nur approximiert Fachbereich Informatik Prof. Dr. Frederik Armknecht 86

6.7.2 Seitenersetzungsstrategien Aging-Verfahren: Approximation von LRU Idee: Unterscheidung zwischen aktuellen und lange zurückliegenden Zugriffen ermöglichen r-bit allein ist dafür aber zu undifferenziert, deshalb wird mit jeder Seite ein Counter verbunden, meist 8-Bit Counter, initialisiert mit 0 Bei jedem Timerinterrupt: für jede Seite: Counter wird um 1 Bit nach rechts geshiftet Wert des r-bits wird zu Counter auf das am weitesten links stehenden Bit hinzuaddiert Beim Seitenfehler wird Seite mit kleinstem Counter-Wert zur Ersetzung ausgewählt Fachbereich Informatik Prof. Dr. Frederik Armknecht 87

6.7.2 Seitenersetzungsstrategien Beispiel: Software-Approximation von LRU mit 8 Bit Counter pro Seite und r-bit gesetzt durch Hardware sowie Timerinterrupts Unterschied zu exaktem LRU? 8-Bit Counter ausreichend? Fachbereich Informatik Prof. Dr. Frederik Armknecht 88

6.7.2 Seitenersetzungsstrategien Fachbereich Informatik Prof. Dr. Frederik Armknecht 89

6.7.2 Seitenersetzungsstrategien Beispiel Seitenersetzung unter 4BSD-Unix Kombination aus Paging und Swapping Paging: teilweise durch BS-Kern und teilweise durch Systemprozess: Pager-Daemon (Prozessnummer 2) Pager-Daemon wird periodisch alle 250 msec gestartet Pager-Daemon führt Seitenersetzungen durch: falls Anzahl der freien Frames < lotsfree, Zurückschreiben von Seiten auf Platte (=> immer mind. lotsfree freie Frames) Bem.: lotsfree i.d.r. ¼ des Arbeitsspeichers Globale Seiten-Ersetzungstrategie: 2-Hand Clock-Algorithmus auf der Core-Map (=Tabelle mit einem Eintrag per Frame) Fachbereich Informatik Prof. Dr. Frederik Armknecht 90

6.7.2 Seitenersetzungsstrategien Aufteilung des Arbeitsspeichers (1) nicht auslagerbarer BS-Kern, (2) Frames, (3) Core Map: nicht auslagerbare Frame-Tabelle: pro Frame ein Eintrag Fachbereich Informatik Prof. Dr. Frederik Armknecht 91

6.7.2 Seitenersetzungsstrategien 2-Hand Clock-Algorithmus: 2 Zeiger in Core Map Überprüfen der Seite unter vorderem Zeiger: Zurücksetzen des Zugriffbits (r), Überprüfen der Seite unter hinterem Zeiger: Auslagern, falls r=0 Nach Prüfung: beide Zeiger vorrücken, bis genügend freie Seiten (lotsfree) Fachbereich Informatik Prof. Dr. Frederik Armknecht 92

6.7.2 Seitenersetzungsstrategien Swapper-Prozess: wird gestartet, falls Paging-Rate zu hoch wird und die Anzahl der freien Frames ständig < lotsfree Swapper (PID 0) prüft, ob ein Prozess > 20s untätig war; der am Längsten untätige Prozess wird ausgelagert Auslagerung wird für weitere Prozesse solange wiederholt, bis genügend freier Speicher verfügbar falls keine lange wartenden Prozess gefunden: prüfe die vier größten Prozesse Auslagern des am längsten untätigen Prozesses Swapper prüft regelmässig (nach wenigen Sekunden), ob rechenbereite Prozesse einzulagern sind Auswahlfunktion: gewichtet nach Länge der der Auslagerungszeit, Größe des Prozesse, Wartezeit etc. Swap-in großer Prozesse nur, wenn genügend Speicher vorhanden, da Einlagern aufwändige Operation Fachbereich Informatik Prof. Dr. Frederik Armknecht 93

6.8 Dateien und Dateisystem 6.8.1 Datei-Konzept Motivation: Vielzahl unterschiedlicher Speichermedien: Bänder, Platte etc. Abstraktion von physikalischen Speicher-Eigenschaften: Definition einer logischen Speichereinheit (Datei) Notwendigkeit zur langlebigen Datenspeicherung! D.h. Speicherung im Prozessadressraum ist nicht sinnvoll! Warum? Lösungsansatz: Datei Konzept zur dauerhaften (persistenten) Speicherung von Daten, Informationen, Programmen auf Platten oder anderen externen Speichermedien Fachbereich Informatik Prof. Dr. Frederik Armknecht 94

6.8.1 Dateikonzept Persistente Speicherung: Dateien überdauern das Terminieren von Prozessen, durch die sie erzeugt wurden Datei: Information gespeichert als: Folge von Bytes (z.b. Unix) oder als Folge von Records Benutzer legt Semantik fest BS kennt keine Semantik, es verwaltet nur uninforme, benannte Container Dateiattribute: Information über Datei: u.a. Name, Daten, Erzeugungszeitpunkt, Schutzbits, Größe, Zeitpunkt der letzten Änderung, Zeitpunkt des letzten Zugriffs,... Fachbereich Informatik Prof. Dr. Frederik Armknecht 95

6.8.1 Dateikonzept Beispiele für Datei-Attribute Fachbereich Informatik Prof. Dr. Frederik Armknecht 96

6.8.1 Dateikonzept Dateitypen: Klassen von Dateien mit Charakteristika: üblicherweise ist die Typ-Identifikation Teil des Dateinamens, das ist die sog. Datei-Extension Beispiele: vgl. Tabelle Sinn der Extension: Hinweise für BS über den Typ der gespeicherten Daten z.b. BS kann beim Öffnen einer.doc Datei die assoziierte Anwendung starten, z.b. Word-Prozessor prn, ps, pdf mpeg, mov, rm Fachbereich Informatik Prof. Dr. Frederik Armknecht 97

6.8.1 Dateikonzept Beispiele: Datei-Typen unter Unix (a) ausführbare Datei, Magic Number enthält Infos über Typ (b) Archiv-Datei weitere Typen u.a. gewöhnliche Dateien: ASCII oder Binärdatei Verzeichnisse Zeichenorientierte Spezialdatei: serielles... E/A-Geräte Fachbereich Informatik Prof. Dr. Frederik Armknecht 98

6.8.1 Dateikonzept Datei-Strukturierung meist hierarchische Struktur (Bäume, Graphen) Verzeichnis-Datei: Zusammenfassung von Dateien Verzeichnis (directory) enthält Verwaltungsinformationen Aufteilung der Plattenspeicher in Partitionen (Volumes) Device-Directory (Volume Table) enthält Informationen über die Dateien (Verzeichnisse) in der Partition Typische Dateisystem- Organisation Fachbereich Informatik Prof. Dr. Frederik Armknecht 99

6.8.1 Dateikonzept zwei-stufiges Verzeichnis Hierarchisches Verzeichnis Fachbereich Informatik Prof. Dr. Frederik Armknecht 100

6.8.1 Dateikonzept Häufiges Benennungs-Schema für Dateien: Pfadnamen (z.b. /usr/jim), absolute, relative Namen Traversieren des Verzeichnisbaums Beispiel: Unix-Verzeichnis-Baum Eingesetzte Algorithmen: u.a. Baumsuche Traversieren von Bäumen Einfügen/Entfernen von Knoten Fachbereich Informatik Prof. Dr. Frederik Armknecht 101

6.8.2 Aufgaben des Dateisystems Bereitstellung von Operationen zur: Verwaltung, Speicherung, Benennung zur gemeinsamen Nutzung und zum Schutz von Dateien Systemaufrufe auf Dateien: u.a. create: Speicher belegen, Verzeichniseintrag anlegen delete: Eintrag in Verzeichnis ungültig, Speicher freigeben open: Eintrag in open-file Tabelle des BS-Kerns close: im System belegter Tabellenplatz wird wieder freigegeben read: lesen der aktuellen Dateizeigerposition, Aufrufer muss Datenmenge und Puffer angeben z.b. int read(int fd, char *puffer, int max_n) Fachbereich Informatik Prof. Dr. Frederik Armknecht 102

6.8.2 Aufgaben des Dateisystems File System API-Aufrufe unter Windows und Vergleich mit UNIX Fachbereich Informatik Prof. Dr. Frederik Armknecht 103

6.8.3 Dateisystem Implementierung Speicherung und Verwaltung von Dateien auf Platte Repräsentation der Dateien durch Dateideskriptoren Realisierung von Dateien durch Blöcke Datei-Deskriptor: Datenstruktur pro Datei Dateityp, Länge der Datei, Plattenblöcke Beispiel: 64 Byte inode (Unix) owner joe, uid group student, guid type regular file perms rwxr-xr-x accessed Feb 12 1999 3:00 P.M. modified Feb 11 1999 10:16 A.M. Adressen der 10 ersten Plattenblöcke einfach indirekt zweifach indirekt dreifach indirekt Fachbereich Informatik Fachgebiet Graphisch-Interaktive Systeme (GRIS) Prof. Dr. D. Fellner 104... Verweise auf Plattenblöcke

6.8.3 Dateisystem Implementierung Wo, wie findet man was auf der Platte? Dateiverwaltung/-speicherung auf dem Plattenspeicher: Inhaltsverzeichnis des Datenträgers (hier Platte) Inhaltsverzeichnis (z.b. Superblock unter Unix) befindet sich an fest definierter Position auf der Platte Typisches Plattenlayout: MBR: Master Boot Record MBR-Code lädt Inhalt des Boot-Blocks der aktiven Partition Fachbereich Informatik Prof. Dr. Frederik Armknecht 105