Betriebssysteme FU Berlin SS 2003 Klaus-Peter Löhr 1 Einführung Zur Erinnerung: Informatische Fachbegriffe in Deutsch und Englisch findet man unter http://www.babylonia.org.uk Software „zwischen Hardware und Umwelt“ eingebettete Systeme (embedded systems) geschlossene Anwendungssysteme Betriebssysteme + Anwendungsprogramme Transaktionssystem eingebettetes System Basissoftware Betriebssystem (operating system) Benachbarte Gebiete: • Rechnerarchitektur • Verteilte Systeme • Echtzeitsysteme • Systemsicherheit • Datenbanksysteme • Programmiersprachen & Übersetzer • Softwaretechnik Abgrenzung: Betriebssystem im engeren Sinn = System aus Sicht der Anwendungssoftware = Software zwischen der Hardware und der Systemschnittstelle (¼2) Betriebssystem im weiteren Sinn = System aus Sicht des Benutzers, d.h. zuzüglich Benutzerschnittstelle (¼9), Übersetzer, Dienstprogramme usw. Benutzerschnittstelle Anwendungssoftware Interaktionssystem Systemschnittstelle (Datenbanksystem, Middleware, .....) Betriebssystem Hardware Benutzerschnittstelle Anwendungssoftware Interaktionssystem Systemschnittstelle (Datenbanksystem, Middleware, .....) Betriebssystem Hardware auch „Systemsoftware“ Merke: Das Begriffspaar Systemsoftware – Anwendungssoftware (systems software – application software) ist unscharf, weil auf der Systemschnittstelle nicht nur Anwendungssoftware, sondern auch Systemerweiterungen aufgesetzt werden können. Grobe Klassifikation der Hardware: • Einprozessorsystem (uniprocessor) • Mehrprozessorsystem (multiprocessor) • Mehrrechnersystem (multicomputer) mit verteiltem Speicher ¼ verteiltes Betriebssystem • Rechnernetz (computer network) ¼ verteilte und/oder kooperierende Betriebssysteme Betriebsarten eines Rechners Einplatzsystem (single-user system) Einbenutzersystem (single-user system) Mehrplatzsystem (multi-user system) Teilhaberbetrieb (multi-access) Mehrbenutzersystem (multi-user system) interaktiv Stapelbetrieb (batch processing) Teilnehmerbetrieb (time-sharing) Betriebsarten eines Rechners Einplatzsystem (single-user system) Einbenutzersystem (single-user system) Mehrplatzsystem (multi-user system) Teilhaberbetrieb (multi-access) Mehrbenutzersystem (multi-user system) interaktiv Klient (client) Teilnehmerbetrieb (time-sharing) Stapelbetrieb (batch processing) Dienstanbieter (server) 1.1 Betriebsmittelverwaltung Hardware ist Konglomerat aus verschiedenen Betriebsmitteln (auch Ressourcen, engl. resources) wie z.B. Prozessoren, Speicher, Peripheriegeräte, Netzanschlüsse, ..... Aufgabe eines Betriebssystems ist, den Anwendungsprogrammen statt der realen Betriebsmittel virtuelle Betriebsmittel (virtual resources) zur Verfügung zu stellen (z.B. „virtueller Speicher“) mit den folgenden Eigenschaften: komfortabel – durch geeignet parametrisierte prozedurale Schnittstelle betriebssicher – gegenüber Hardware- und Software-Fehlern sowie böswilliger Manipulation effizient – bezüglich der realen Betriebsmittel 1.1.1 Prozeßverwaltung Betriebsmittel: Prozessor virtualisiert: Prozess (process, task) Verwandter Prozessbegriff bei nichtsequentieller Programmierung: Prozess = Programmteil, der unabhängig von den anderen Programmteilen ablaufen kann Genauer: leichtgewichtiger Prozess (lightweight process, thread) = virtueller Prozessor schwergewichtiger Prozess (heavyweight process) = virtueller Rechner (Prozessor + Speicher + Peripherie) Mehrprozessbetrieb (multiprogramming, multitasking): Anzahl der Prozesse ist nicht durch die Anzahl der Prozessoren beschränkt Mehrprozeßbetrieb (multiprogramming, multitasking): Anzahl der Prozesse ist nicht durch die Anzahl der Prozessoren beschränkt Schnappschuss der Prozessorzuordnung (processor allocation): Prozesse aktiv bereit wartend Prozessoren Die Zuordnung wechselt: „Multiplexen“ des Prozessors (processor multiplexing) Zustandsübergänge eines Prozesses p : (mit Operationen block/wake [siehe NSP, Probeklausur]) aktiv anderer Prozess macht block() bereit block() wartend wake(p) Die Zuordnung wechselt: „Multiplexen“ des Prozessors (processor multiplexing) Zustandsübergänge eines Prozesses p : (mit Operationen block/wake [siehe NSP, Probeklausur]) aktiv anderer Prozess macht block() block() wake(p) bereit wartend wake(p) falls aktiver Prozess verdrängt werden kann Warum Mehrprozessbetrieb? X Teilnehmer- bzw. Server-Betrieb Y Effiziente Nutzung des Systems angesichts unterschiedlicher Ressourcen-Anforderungen verschiedener auszuführender Programme Beispiel: Software installieren Diskette Festplatte Drucker Dokument drucken ... und noch freie Prozessorkapazität für rechenintensives Programm im Hintergrund 1.1.2 Speicherverwaltung Betriebsmittel: Arbeitsspeicher/Adressraum virtualisiert: virtueller Adressraum (virtual address space) Von virtuellem Speicher (virtual memory) (¼5) spricht man, wenn der virtuelle Adressraum größer als der Arbeitsspeicher sein kann und teilweise auf Hintergrundspeicher ausgelagert werden kann. Schnappschuss der Speicherzuordnung (memory allocation): [Speicheralloziierung – falsche Übersetzung!] Virtuelle Adressräume der (schwergewichtigen) Prozesse Arbeitsspeicher Betriebssystem Multiplexen des Arbeitsspeichers durch Umlagerung (swapping) der Prozesse zwischen Arbeitsspeicher und Hintergrundspeicher Zustandsübergänge eines Prozesses: aktiv eingelagert ausgelagert bereit wartend 1.1.3 Dateiverwaltung Betriebsmittel: Langzeitspeicher (Platte, Band, ...) virtualisiert: Datei (file) = benanntes, persistentes Objekt a b c d e f g 1.1.4 Druckerverwaltung Betriebsmittel: reale Drucker virtualisiert: virtuelle Drucker ¼ Spooling Auf verschiedene Weise realisierbar, z.B. so: jeder Prozess besitzt einen eigenen virtuellen Drucker, auf dem er mit print(text) drucken kann. (Zwischenspeicherung der Ausgabe auf Hintergrundsp.!) ¼ Komfortabel und effizient 1.1.5 Weitere Peripherie Betriebsmittel: Bildschirm + Tastatur/Maus virtualisiert: Fenster Betriebsmittel: Netzanschluss virtualisiert: Port usw. . . . + Tastatur/Maus