310 likes | 454 Views
Definitionen :. Spezielles Programm, das alle Komponenten eines Computersystems verwaltet und steuert sowie die Ausführung von Aufträgen veranlasst. (Lehrbuch Grundlagen der Informatik, Balzert)
E N D
Definitionen: Spezielles Programm, das alle Komponenten eines Computersystems verwaltet und steuert sowie die Ausführung von Aufträgen veranlasst. (Lehrbuch Grundlagen der Informatik, Balzert) • Diejenigen Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Abwickung von Programmen steuern und überwachen. (DIN44300, Lexikon der PC-Fachbegriffe, W. Dietzel) • Sammlung von Systemprogrammen, die zum Betrieb eines Computers erforderlich sind. (Computerlexikon, Grieser/Irlbeck) Betriebsysteme
Aufgaben • Verbergen der Komplexität der Maschine vor dem Anwender (Abstraktion) • Bereitstellen einer Benutzerschnittstelle ("Kommandointerpreter", "Shell") • Bereitstellen einer normierten Programmierschnittstelle (API), ggf. auch Compiler, Linker, Editor • Verwaltung der Ressourcen der Maschine • Prozessor(en) • Hauptspeicher • Hintergrundspeicher (Platte, Band, etc.) • Geräte (Terminal, Drucker, Plotter, etc.) • Rechenzeit • Verfolgung von Schutzstrategien bei dieser Ressourcenbereitstellung • Koordination von Prozessen • Abstraktion des Maschinebegriffes nach Coy: • Reale Maschine = Zentraleinheit + Geräte (Hardware) • Abstrakte Maschine = Reale Maschine + Betriebssystem • Benutzermaschine = Abstrakte Maschine + Anwendungsprogramm Betriebsysteme
Gliederung der Systemprogramme • Organisationsprogramme: – Kontrolle der auszuführenden Programme – Verwaltung und Zuteilung von Betriebsmitteln – Abwicklung der Kommunikation übers Netz – "Buchführung" über Benutzung der Rechenanlage (Systemlog) • Übersetzungsprogramme: – übersetzen Programme höherer Programmiersprachen in auf einer Rechenanlage ausführbare Programme • Dienstprogramme: – für häufig anfallende Standardaufgaben im Umgang mit einer Rechenanlage und mit Rechnernetzen Betriebsysteme
Entwurfsprinzip bei Betriebssystemen Modularisierung, meist Schichten- hierarchie Betriebsysteme
Betriebsarten Man unterscheidet i.w. folgende Betriebsarten: (A) Stapelbetrieb: (batch mode) (B) Dialogbetrieb: (time sharing mode) (C) Echtzeitbetrieb: (real time mode) (D) Multiprogrammbetrieb: (multiprogramming mode) (E) Spool-Betrieb: (abgesetzte Ein-/Ausgabe) (F) Client/Server-Betrieb: (verteilte Aufgaben) I.a. sind mehrere Betriebsarten auf einer Rechenanlage möglich Betriebsysteme
(A) Stapelbetrieb: (batch Mode) • Merkmale: – Aufträge müssen vor Übergabe an die Rechenanlage vollständig definiert sein; inkl. aller Eingabedaten – Ein Auftrag wird stets zusammenhängend übergeben (z.B. in Form einer Systemdatei) – kein modifizierendes Eingreifen während der Bearbeitung eines Auftrags möglich – keine strengen Zeitanforderungen hinsichtlich Beendigung der Aufträge (aber eventuell bzgl. des Beginns) • typische Anwendungen – rechen- und/oder datenintensive Programme ohne Interaktion mit dem Benutzer, z.B. statistische Auswertungen, LuG, technisch/wissenschaftliche Berechnungen ... • Hauptaufgabe des Batch-Betriebssystems: Maximierung des Durchsatzes (Durchsatz = Anzahl der pro Zeiteinheit vollständig bearbeiteten Aufträge) Betriebsysteme
(B) Dialogbetrieb: (time sharing mode) • Merkmale: – i.a. große Zahl von Benutzern direkt mit der Rechenanlage verbunden – ein Auftrag wird erst im Verlauf einer Dialogsitzung interaktiv definiert (Reaktion auf Ergebnisse abgeschlossener Teilaufträge möglich) 2 Arten von Dialogbetrieb: – Teilhaberbetrieb: alle Benutzer verwenden dasselbe Programm – Teilnehmerbetrieb: die Benutzer können der Rechenanlage unabhängig voneinander verschiedene Aufträge übergeben • typische Anwendungen – Teilhaberbetrieb: Platzbuchungssystem eines Reisebüros, Programme für Schalterterminals einer Bank – Teilnehmerbetrieb: interaktive Programmentwicklung • Hauptaufgabe des Timesharing-Betriebssystems: Minimierung der Antwortzeit (= Wartezeit des (Teil)Auftrags auf Beginn/Fortsetzung seiner Bearbeitung plus Bearbeitungszeit durch Prozessor) Betriebsysteme
(C) Echtzeitbetrieb: (real time mode) • Merkmale: im Prinzip wie Dialogbetrieb, jedoch – zusätzlich Einhaltung von Zeitrestriktionen, d.h. für die Bearbeitung eines Auftrags u.U. Höchstdauer vorgegeben – Zuteilung von Betriebsmitteln an Aufträge aufgrund ihrer Priorität (Dringlichkeit) • typische Anwendungen: – Mess- und Regelungsaufgaben bei technischen Prozessen – Kfz-Elektronik – Telekommunikation erforderlich: – geeignete E/A-Geräte (Messfühler, Steuerungsventile, ...) – Unterbrechungsmöglichkeit bei der Auftragsbearbeitung (dringenderer Auftrag muss Bearb. eines weniger dringlichen unterbrechen können, um selbst bearbeitet zu werden) • Hauptaufgabe des Echtzeit-Betriebssystems: größtmögliche und zeitgerechte Verfügbarkeit der Betriebsmittel einer Rechenanlage garantieren (d.h. bei Anforderung soll entsprechendes Betriebsmittel sofort frei sein) Betriebsysteme
(D) Multiprogrammbetrieb: (multiprogramming mode) • genauer: Mehrprozessbetrieb; – Prozess (vorläufig): ablaufendes Programm/-stück. • Merkmale: – mehrere Prozesse gleichzeitig im Hauptspeicher resident – Bearbeitung der Prozesse zeitlich verzahnt (quasi-parallel) • Hauptaufgaben des Multiprogramm-Betriebssystems: – Zuteilung von Betriebsmitteln an Prozesse – Aktivierung, Blockierung von Prozessen – gegenseitige Isolation der Prozesse (zur Vermeidung unerwünschter gegenseitiger Beeinflussung beim Zugriff auf gemeinsam benutzte Betriebsmittel) Vorteil des Multiprogrammbetriebs bessere Ausnutzung der Betriebsmittel einer Rechenanlage Betriebsysteme
Illustration der Auftragsbearbeitung: Betriebsysteme
(E) Spool-Betrieb: (abgesetzte Ein-/Ausgabe) • spool: simultaneous peripheral operations on line • Merkmale: Lösung der tatsächlichen Ein-/Ausgabe von der Auftragsbearbeitung durch Pufferung der Ein-/ Ausgabedaten auf Hintergrundspeicher – tatsächliche Eingabe (z.B. von Bandgeräten) • vor Bearbeitung des Auftrags Abspeicherung der Eingabedaten auf Hintergrundspeicher (durch spezielles Systemprogramm) • während der Bearbeitung des Auftrags • lesen der Eingabedaten vom Hintergrundspeicher • schreiben der Ausgabedaten auf Hintergrundspeicher – tatsächliche Ausgabe (z.B. auf Drucker) • erst, wenn Ausgabegerät frei (i.a. nach Auftragsbearbeitung) • Abruf der Ausgabedaten von Hintergrundspeicher (spez.Syst.progr.) • notwendig bei Multiprogrammbetrieb • Hauptaufgaben des Spool-Betriebssystems Verwaltung der E/A- Pufferbereiche auf Hintergrundspeicher Betriebsysteme
(F) Client/Server-Betrieb: (in verteilten Systemen) Merkmale: • zentrale Systemfunktionen wie – Benutzerverwaltung – Dateiverwaltung – Datenbank-Management-System – Mail-Server – WWW-Server – Druckersteuerung – … werden im verteilten System nur an einem Ort bereitgestellt (im Server) • Jeder Rechner ( "Client" ) kann Funktionen des Servers durch Remote Procedure Call (RPC) aufrufen. • Während der Ausführung eines RPC's kann der Client andere Aufgaben bearbeiten. • Sind Rechner sowohl Clients als auch Server, so heißen sie auch Peers. Betriebsysteme
(G) Kombination von Betriebsarten auf einer Rechenanlage • Betriebsarten jeweils nacheinander – z.B. tagsüber Dialogbetrieb, nachts/Wochenende Stapelbetrieb – Hauptaufgaben des Betriebssystems: Wechsel der Umgebung, Verfolgung eines anderen Ziels (z.B. Durchsatzmaximierung anstelle Minimierung von Antwortzeiten) • Betriebsarten gleichzeitig vorhanden – konkurrierende Anforderungen an das Betriebssystem (z.B. gleichzeitig Multiprogramming, Batch und Echtzeit) – Erfüllung unterschiedlicher, sich ergänzender Anforderungen (z.B. Timesharing, Multiprogramming, Spool und Client/Server) – Hauptaufgaben des Betriebssystems: gerechter Ausgleich zwischen konkurrierenden Anforderungen Betriebsysteme
Der Begriff des Prozesses • Betriebssystem transformiert i.A. jeden Auftrag in mehrere Prozesse (processes, tasks, threads). Prozess: Zeitlicher Ablauf einer Folge von Aktionen eines Rechners, die zu einer identifizierbaren funktionellen Einheit zusammengefasst sind. Ein Prozess ist charakterisiert durch – das durchzuführende Programm/-stück – die zu verwendenden Daten d.h. jeder Prozess hat – eigenen Kontrollfluss – eigenen Adressraum neuerdings: Prozesse bestehen aus mehreren "leichtgewichtigen" Prozessen ("Threads") mit – jeweils eigenem Kontrollfluss – gemeinsamem Adressraum Vorteil von Prozessen: zeitlich verzahnte Ausführung der Aufträge durch "Zerstückelung" Vorteil von "multithreaded"-Systemen: Mehrere Threads arbeiten unabhängig voneinander auf denselben Variablen. Betriebsysteme
Mögliche Zustände eines Prozesses: • initiiert Prozess ist dem Betriebssystem bekannt, abgelegt in Zwischenspeicher, aber noch nicht zur Bearbeitung zugelassen. • bereit Prozess besitzt mit Ausnahme des Prozessors alle zu seiner Bearbeitung notwendigen Betriebsmittel. • aktiv Prozess besitzt zusätzlich Prozessor, wird dort ausgeführt. • blockiert Prozess wartet auf Eintritt eines bestimmten Ereignisses (z.B. Abschluss einer E/A-Operation oder Zuteilung eines Betriebsmittels). • terminiert Prozess hat seine Berechnungen beendet und die von ihm belegten Betriebsmittel freigegeben. Betriebsysteme
Mögliche Zustandsübergänge (" "): initiiert -> bereit zuständig: Auftragssteuerung (job scheduler); bereit -> aktiv Prozessorverwaltung (CPU scheduler) aktiv -> bereit Prozessorverwaltung aktiv -> blockiert Betriebsmittelverwaltung. blockiert -> bereit Betriebsmittelverwaltung. aktiv -> terminiert Betriebsmittelverwaltung. Betriebsysteme
Einige konkrete Betriebssystem-Aufgaben Zuteilung von Rechenzeit (A) Einfache Zuteilungsverfahren möglichst viel Prozessorleistung für Benutzerprozesse, möglichst wenig Prozessorleistung für Zuteilungsverfahren. Beispiel: First Come First Served (FCFS) • Implementierung einfach: mittels (FIFO-) queue. (B) Prioritätsgesteuerte Zuteilungsverfahren Betriebsysteme
(C) Zeitscheibenverfahren ("Round-Robin") • Zeitscheibe (time-slice): feste Zeitspanne Z typische Werte für Z: 10 ms - 100 ms. pro Durchlauf erhält jeder Prozess maximal Prozessorzeit Z • möglich: vorzeitiger Prozessorentzug durch Zustand "blockiert" oder "terminiert". • "preemptive Scheduling„ (d.h. ein Prozess kann vor Fertigstellung unterbrochen werden) im Gegensatz zu • "nonpreemptive Scheduling„, (d.h. ein Prozess wird nicht vorzeitig abgebrochen) Betriebsysteme
Benutzer Prozesse Beispiele Single-User Single-Tasking MS-DOS Single-User Multi-Tasking Windows 9x Windows Millenium MAC OS Multi-User Multi-Tasking Linux (UNIX) Multi-User (aber nacheinander, nicht gleichzeitig) Multi-Tasking Windows NT Windows 2000 Windows 2003 Eigenschaften Betriebsarten Betriebsysteme
Anzahl Prozesse Anzahl Benutzer Single-Tasking Nur ein Prozess auf einmal Start eines weiteren Programms erst nach Beendigung des ersten möglich Single-User Nur ein Benutzer kann das System zu einer Zeit nutzen Multi-Tasking Mehrere Prozesse (scheinbar) gleichzeitig, das Betriebssystem ordnet jedem Prozess eine bestimmte Zeitspanne(-Scheibe) zu, nach deren Ablauf der nächste Prozess behandelt wird usw. (Timesharing) Multi-User Mehrere Benutzer gleichzeitig Zugriffsrechte müssen verwaltet werden Setzt Multitasking voraus Eigenschaften Betriebsarten verdrängendes Multitasking(preemptive) kooperatives Multitasking (non preemptive) Betriebsysteme
Entwicklung der Betriebssysteme Betriebsysteme
Systemunterscheidungen Betriebsysteme
Hauptspeicherverwaltung Hauptspeicherverwaltung mit Seitenwechsel (paging); (A) Adressraum und Speicherraum • Adressraum A: Folge (u, u+1, u+2, ... ,o) von Zahlen aus IN U {0}; i.a.: u = 0, o = 2k-1 (bei “k-Bit-Adresse“) • Adresse (numerisch): Zahl aus Adressraum; Verwendung: Identifikation eines Speicherelements • Speicherraum : Menge aller Speicherelemente des Hauptspeichers einer Rechenanlage • Der Hintergrundspeicher einer Rechenanlage kann mit Hilfe eines geeigneten Betriebssystems wie ein Hauptspeicher benutzt werden; man spricht dann von einem virtuellen (fiktiven) Hauptspeicher. • virtuelle Adresse: Adresse im virtuellen Hauptspeicher; • reale Adresse: Adresse im (realen) Hauptspeicher. Betriebsysteme
Hauptspeicherverwaltung (B) Struktur von Adressraum und Speicherraum Hauptspeicher Hintergrundspeicher (schnell, klein) (langsam, groß; N Blöcke) Betriebsysteme
Hauptspeicherverwaltung (C) Zuweisung von (realem) Hauptspeicher an Prozesse Problem: Was geschieht, wenn die im Speicherraum residenten Prozesse P(i) nicht gleichzeitig im Hauptspeicher Platz finden? Lösung: Seitenwechsel zwischen Haupt- und Hintergrundspeicher. zu jedem Zeitpunkt und für jeden initiierten Prozess P gibt es eine Zuordnungsfunktion F: {0,...,N-1} -> {0,...,M-1} U {n}, page fault (Seite s ist nicht im Hauptspeicher): a) Seite wird in freien Seitenrahmen kopiert b) kein freier Seitenrahmen: Auslagern des Inhalts eines Seiten- rahmens auf den Hintergrundspeicher Betriebsysteme
Synchronisation von Prozessen Synchronisation notwendig zur gegenseitigen Isolation von Prozessen beim Zugriff auf gemeinsam benutzte Betriebsmittel (also insbesondere bei Threads!) Beispiel: Sei int x = 0; Prozess P1: { x = x + 1 }; Prozess P2: { x = x + 2 } Fall 1: Zuweisungen atomare (ununterbrechbare) Operationen Ergebnis korrekterweise: x = 3. Fall 2: Zuweisungen sind keine atomare Operationen; LOAD x z. B. x = x + a ADD # a (jeweils einzeln atomar) STORE x u.a. folgende 3 Operationsfolgen denkbar: 1. Operationsfolge Akku x 2. Operationsfolge Akku x 3. Operationsfolge Akku x Betriebsysteme
Arten der Synchronisation: • Prozesskooperation: voneinander abhängige Prozesse kennen sich gegenseitig und "sprechen sich ab" • wechselseitiger Ausschluss (mutual exclusion): Der Zugriff eines der voneinander abhängigen Prozesse auf ein gemeinsam benutztes Betriebsmittel verhindert den Zugriff aller anderen auf dieses Betriebsmittel. Werkzeug für diese Art der Prozesssynchronisation: Semaphor. Gefahr bei wechselseitigem Ausschluss: Deadlock-Situation: (P1, P2 Prozesse; M1, M2 Betriebsmittel) – P1 wartet auf M2, während er selbst M1 belegt; – P2 wartet auf M1, während er selbst M2 belegt. notwendig: • Verfahren zur Deadlock-Vermeidung bzw. • Deadlock-Erkennung und -Auflösung. Dies ist ein zentrales Problem in Betriebssystemen! Betriebsysteme
Sicherheitsaspekte Gewährleistung von Sicherheit wird immer mehr zu einer wesentlichen Aufgabe eines Betriebssystems. Unter Sicherheit versteht man • Zuverlässigkeit: Aufgaben sollen korrekt entsprechend den spezifizierten Anforderungen erfüllt werden • Verfügbarkeit: auch beim Ausfall von Komponenten müssen vom Betriebssystem zu erbringende Dienste für den Benutzer bereitstehen • Vertraulichkeit: Zugriff auf Informationen auf spezifizierte Kommunikationspartner bzw. Benutzer einschränken (z..B. Kryptografie) • Zugriffsschutz : kein unberechtigter Zugriff auf Daten oder auf Dienste • Nachvollziehbarkeit: Zugriffe auf Daten oder Dienste nachvollziehbar s (durch "Systemlog" oder ähnliches). Betriebsysteme
Benutzerverwaltung – Identifikation: Benutzername, Kennwort – Authentifizierung: digitale Signatur, Fingerabdruck, Sprache,... Folgendes ist zu klären (u.a.) • Wer darf auf Ressourcen des Rechners zugreifen? • Welche Zugriffsrechte hat ein Benutzer – Lesen von Dateien? – Schreiben in Dateien? – Drucken von Dateien? – Versenden von E-Mail? – Inanspruchnahme von Systemdiensten? – Ausführen von Programmen? – Erzeugen/Kopieren/Löschen von Dateien? – Verändern/Weitergabe von Zugriffsrechten? • Welche Arbeitsumgebung erwartet ein Benutzer nach seiner Anmeldung ? • Was ist bei der Abmeldung eines Benutzers zu tun? Betriebsysteme
Ressourcenverwaltung • Für jede Ressource des Rechners (HW, Dienst, Datei) muss festgelegt werden – Wer darf diese Ressource in Anspruch nehmen ? – Welche anderen Ressourcen werden benötigt ? – u.s.w. • Informationen der Ressourcenverwaltung entsprechen denen der Benutzerv. • Wesentlicher Teil der Ressourcenverw. ist das Dateiverwaltungssystem (FMS) • Wichtiger Teil der Ressourcenverwaltung in verteilten Systemen (Rechnernetzen) ist die Firewall: – Einschränkung des externen Zugriffs auf sehr wenige Dienste des Rechners (über sehr wenige Ports). – Vollständige Kontrolle der Kommunikation zwischen Diensten des Rechners und externen Partnern. – Grenzt in der Regel das Intranet gegen das Extranet und dieses gegen das Internet ab. Betriebsysteme
Bootvorgang Kaltstart: Reset oder Einschalten Warmstart: <Strg +Alt + Entf > BIOS (Basic Input/Output System ; auch als Urlader bezeichnet) i. d. R. in einem EPROM, ggf. auch Flash-EPROM) POST (Power in Self Test) setzt alle Komponenten in einen definierten Anfangszustand (nicht beim Warmstart !) C-MOS (Complementary Metal-Oxid-Semiconductor) grundsätzliche Informationen über System- konfiguration, geringe Stromaufnahme Betriebsysteme