Kapitel 6 Betriebssysteme - Einführung

Slides:



Advertisements
Ähnliche Präsentationen
Anbindung mobiler Endgeräte über den Terminal Service
Advertisements

Leistung.
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
7.3 Scheduling Zur Erinnerung:
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Ausblick ? Was geschieht, wenn G nicht azyklisch ist? G1 y1 x1
Betriebssysteme.
Informatik Tagesprotokoll vom
FU Berlin SS 2003 Klaus-Peter Löhr
Dateisysteme Was sind Dateisysteme (Definition)
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
Netzwerke im Dialogmarketing
WS 2009/10 1 Systeme 1 Kapitel 2 Betriebssysteme.
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
Systeme 1 Kapitel 5.1 Unix Scheduling WS 2009/101.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Kapitel 10 Nebenläufigkeit und wechselseitiger Ausschluss
Windows Universität zu Köln
1A: POSIX POSIX (Portable Operating System) ist ein Standard für UNIX-Systeme. Er dient dazu, Programme portabel unter UNIX und Derivaten zu tauschen und.
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
Einführung Definitionen
Haupt- und Arbeitsspeicher
Aufbau des Computers Das Betriebssystem
Medizinische Statistik und Informationsverarbeitung Goldschmidt, Quade, Baur Institut für Medizinische Statistik, Dokumentation und Datenverarbeitung.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Introducing the .NET Framework
Access 2000 Datenbanken.
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Referat zum Thema „DLL“
Geschichte von Windows Die Basis vieler Windowsbetriebssysteme, sei es Betriebsystemgrundlage (Windows 1-3) oder integriert (Windows 95-ME)´ist MS DOS.
Entwicklung verteilter eingebetteter Systeme - Einführung
Duo- und Quad Prozessor-Architektur
COMPUTER-GRUNDLAGEN Theoretischer Teil.
SOFTWARE.
Was ist ein Betriebssystem?
Einführung in betriebssysteme
Vorteile eines lokalen Netzwerks?
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Software und Programme
Das Betriebssystem.
Betriebssysteme & BIOS
Service Computing   Prof. Dr. Ramin Yahyapour IT & Medien Centrum 19. Januar 2010.
Wichtige Errungenschaften
Präsentation von Lukas Sulzer
Herzlich Willkommen zu meiner Präsentation
Systemsoftware und Betriebssysteme
Studiengang Informatik FHDW
Funktionen und Hauptaufgaben Die Entwicklung BIOS
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Betriebssysteme: Windows-OS
Betriebssysteme I: Windows
2.3 Implementierung von Prozessen
Betriebssysteme: Windows
Medizinische Statistik und Informationsverarbeitung Goldschmidt, Quade, Baur Institut für Medizinische Statistik, Dokumentation und Datenverarbeitung.
Mainboard Kolbe, Klein, Hollermann.
Ein kleiner Einblick für Anfänger
Betriebssysteme Was ist ein BS?
Betriebssysteme allgemein
Betriebssysteme: Theorie
Linux Universität zu Köln HKI Seminar: IT-Basics
05-Betriebssysteme1 Was ist ein Betriebssystem? l Programm, das die Verbindung zwischen dem Benutzer, der Software und der Hardware herstellt l Die Installation.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Ablauf von Daten- verarbeitungsprozessen Gliederung: ● Zeitliche Steuerung von Abläufen – Druckauftragsverarbeitung – scheinbare Gleichzeitigkeit von Prozessen.
Betriebssystem, BIOS, Firmware, Treiber, Systemtools
Magische Wand Ein Spiel zum Thema: Betriebssysteme.
 Präsentation transkript:

Kapitel 6 Betriebssysteme - Einführung

Überblick Betriebssysteme 6 Einführung 6.1 Aufgabe von Betriebssystemen 6.2 Verschiedene Komponenten / Konzepte von Betriebssystemen 6.3 Unterschiedliche Arten von Betriebssystemen 6.4 Anforderungen 6.5 Daraus abgeleitete Probleme, Teilaufgaben, Konzepte, Verfahren 6.6 Zusammenfassung 6.7 Historische Entwicklung 7 Prozesse, Fäden (threads), Scheduling 8. Speicherverwaltung 9. Dateisysteme 10. Ein- und Ausgabe Nebenläufigkeit und wechselseitiger Ausschluss – Inhalt der Vorlesung „Nebenläufige Programmierung“ Deadlocks - dito Kap. 6

Abstraktionsniveaus für Programmierer Anwender Anwendungs-programmierer Anwendungsprogramme Betriebssystem-programmierer Bibliotheksfunktionen, Dienstprogramme Betriebssystem - Abstraktion der Architektur Befehlssatzarchitektur - Instruction Set Architecture (ISA) Kap. 6

6.1 Aufgabe von Betriebssystemen Hardware für bestimmte Zwecke benutzbar machen: bietet komfortable Abstraktion der Hardware an, Beispiel (Tanenbaum): read- und write-Kommando für Floppy Disks verlangen 13 Parameter, in 9 Bytes gepackt: Adresse, Zahl der Sektoren pro Spur, Aufzeichnungsmodus, Zwischenraum zwischen Sektoren, … geben 23 Status- und Fehlerfelder zurück, in 7 Bytes gepackt Programmierer möchte aber Datei-Abstraktion haben. Kap. 6

6.2 Was gehört zum Betriebssystem Rechner haben (mindestens) zwei Betriebsmodi (Hardware hat ein Modus-Bit): System-Modus – erlaubt uneingeschränkte Nutzung aller Hardware-Funktionen und Zugriff auf alle Betriebsmittel, Benutzer-Modus – erlaubt eingeschränkte Nutzung (Ausführung von nur einem Teil der Maschinenbefehle). Betriebssystem läuft als einziges im System-Modus! System-Modus ist die Basis für Schutzmechanismen. Darauf aufbauend gibt es weitere privilegierte Systeme, z.B. Passwortverwaltung, … Bedienoberfläche, Webbrowser laufen nicht im System-Modus  nicht Teil des Betriebssystems Kap. 6

Betriebssystem, Dienstprogramme, Anwendungsprogramme Schnittstelle zwischen Betriebssystem und System- bzw. Dienstprogrammen ist nicht immer klar definiert. Hier: Dienstprogramme laufen nicht im System-Modus, sind also nicht Teil des Betriebssystems. Typische (anwendungsunabhängige) Dienstprogramme sind: Compiler Editoren Bedienoberfläche Kommandointerpreter (sog. Shell) Anwendungsprogramme: Textverarbeitung Tabellenkalkulation Datenbankanwendungen Webbrowser etc. Beispiel: Ist Internet Explorer Bestandteil des Betriebssystems oder nicht? Kap. 6

6.3 Typen von Betriebssystemen Viele Typen von Betriebssystemen mit verschiedenen Aufgaben, Unterstützung von Anwendungsprogrammen: Textverarbeitung, Tabellenkalkulation, Spiele, … Softwareentwicklung, Kontrolle eingebetteter (Echtzeit-)Systeme, Transaktionssystemen: Datenbanken, Reservierungssysteme, Buchhaltung,… Betriebssysteme unterstützen verschiedene Arten von Benutzern: Architektur-Abstraktion wichtig für den Anwendungsprogrammierer, Interaktivität wichtig für Online-Nutzer, Persistente Speicherung wichtig für Server-Nutzer Kap. 6

6.4 Anforderungen an Betriebssysteme Kap. 6

Anforderungen an und Charakteristik von PC/Workstation-Betriebssystemen Kap. 6

Anforderungen an und Charakteristik von Echtzeit-Betriebssystemen Kap. 6

Anforderungen an und Charakteristik von File-Server-Betriebssystemen Kap. 6

Anforderungen an und Charakteristik von Compute-Server-Betriebssystemen Kap. 6

Anforderungen an und Charakteristik von Transaktions-Betriebssystemen Kap. 6

Kap. 6

Betriebssystem verwaltet Berechnungen 6.5 Von den Aufgaben abgeleitete Probleme, Teilaufgaben, Komponenten, Konzepte, Verfahren, Eigenschaften Betriebssystem verwaltet Berechnungen Konzept: Prozess – in Ausführung befindliches Programm kreiert durch Benutzer, Service-Anfrage oder periodischen Auslöser, koexistiert häufig mit anderen Prozessen  Nebenläufigkeit, Schutz voreinander, Deadlock, Livelock Sicherheitseigenschaften, Lebendigkeitseigenschaften benötigt zur Ausführung Betriebsmittel/Ressourcen  Verwaltung von Betriebsmitteln, Virtualisierung, wg. Nebenläufigkeit: Konkurrenz um Betriebsmittel Scheduling Lebendigkeitseigenschaften, Fairness Kap. 6

Von den Aufgaben abgeleitete Probleme, Teilaufgaben, Komponenten, Konzepte, Verfahren, Eigenschaften Betriebssystem verwaltet Speicher, garantiert Persistenz – Dateisystem, garantiert Atomizität – Transaktion, Betriebssystem verwaltet Ein-/Ausgabegeräte Virtualisierung – jedem Prozess sein verlangtes Gerät Zuordnung zu realen Geräten unter Randbedingungen - Synchronität, gegenseitiger Ausschluss Kap. 6

Von den Aufgaben abgeleitete Probleme, Teilaufgaben, Komponenten, Konzepte, Verfahren Verschiedenen Typen von Betriebssystemen - verschiedene Optimierungsziele Server – Durchsatz Timesharing-System - Interaktivität Echtzeitbetriebssystem „garantiert Reaktionszeiten”, genauer, garantiert bestenfalls die Unabhängigkeit des zeitlichen Verhaltens der Prozesse, Kap. 6

6.6 Zusammenfassung: Aufgabe von Betriebssystemen Ein Betriebssystem ist ein Programm (Software) mit den grundsätzlichen Funktionen: Virtualisierung von Systemressourcen, dazu Verwaltung von Systemressourcen, Bereitstellen einer „erweiterten Maschine“ für den Anwendungsprogrammierer, Anbieten von Schutzmechanismen. Kap. 6

Virtualisierung Betriebssystem bietet dem Benutzer statt einem realen Rechner mit einer festen Zahl von Prozessoren, beschränktem Hauptspeicher, beschränkter Zahl von Ein-/Ausgabe-Geräten viele virtuelle Rechner an pro ausgeführter Anwendung einen, mit (fast) unbegrenztem Speicher, der notwendigen Zahl von Ein-/Ausgabe-Geräten. Kap. 6

Verwaltung von Systemressourcen Verwaltung aller Komponenten eines komplexen Systems Komponenten sind z.B. Prozessoren, Speicher, Uhren, Platten, Terminals, Ein-/Ausgabegeräte, Netzwerkschnittstellen etc. Diese Bestandteile eines Rechnersystems bezeichnet man auch als Betriebsmittel. Betriebssystemaufgabe: Geordnete und kontrollierte Zuteilung von Betriebsmitteln an konkurrierende Prozesse / Benutzer. Beispiele: Mehrere Programme rechnen scheinbar gleichzeitig auf einer CPU und im gleichen Speicher, versuchen gleichzeitig Daten auf demselben Drucker auszugeben. Kap. 6

Betriebssystem als Ressourcenmanager Aufgaben beim Verwalten von Systemressourcen: „Faire“ Zuteilung von gemeinsam genutzten Betriebsmitteln Auflösung von Konflikten bei der Betriebsmittelanforderung Effiziente Verwaltung von Betriebsmitteln Protokollieren der Ressourcennutzung Abrechnung der Betriebsmittelnutzung Fehlererkennung, Fehlerbehandlung Hardware: Gerätefehler Software: Programmfehler Kap. 6

Ressourcenverwaltung in zwei Dimensionen: Zeit: Verschiedene Benutzer erhalten Betriebsmittel nacheinander Raum: Verschiedene Benutzer erhalten verschiedene Teile einer Ressource. Achtung: Manche Ressourcen sind unteilbar! Kap. 6

Ressourcen-Zuteilung Vergabestrategie zur Erreichung von Entwurfszielen, je nach Typ des Betriebssystems: Fairness Grad an Interaktivität Optimierungsziel: Maximierung von Durchsatz Garantien: Einhaltung von Fristen (Deadlines) Kap. 6

Bereitstellen einer „erweiterten Maschine“ (ABI) Abstraktion von Verhalten des zugrunde liegenden Rechners auf möglichst hohem Niveau Verstecken von Eigenschaften der realen Hardware vor dem Programmierer Leichte Programmierbarkeit Beispiel: Datenspeicherung auf der Festplatte Entlastung des Programmierers von Details wie Einschalten des Motors, Bewegung des Plattenarms, Aufteilung des benötigten Platzes auf Sektoren der Platte etc. Einfache Programmierschnittstelle: Schreiben in Datei Das BS stellt dem Programmierer eine abstrakte Programmierschnittstelle (ABI) zur Verfügung. Das BS bietet einen Satz von Kommandos (Systemaufrufe), über die z.B. auf Ein-/Ausgabegeräte zugegriffen werden kann. Kap. 6

Schutz Schutz verschiedener Benutzer und Programme voreinander Kontrolle des Zugriffs auf Speicherbereiche und Dateien – z.B. kein Überschreiben von Programmener, kein Pufferüberlauf (buffer overflow) Zugriffskontrolle zum System Verhindern nicht autorisierten Eindringens. Kap. 6

6.7 Historische Entwicklung von Betriebssystemen bis 1955 Rechnen auf „nackter“ Hardware Stapelverarbeitung, Serielle Abarbeitung der Jobs gesteuert durch kleines Softwareprogramm, genannt Monitor, IBM 1955 1966/67, IBM OS/360 Mehrprogrammfähige Stapelverarbeitungssysteme, überlappende Ausführung mehrerer Progamme zur Überbrückung von Ein-/Ausgabewartezeiten, mehrere Speicherpartitionen. 1962 CTSS, 1963-69 Multics, 1969-74 UNIX Time-Sharing Systeme (Zeitaufteilungsverfahren), interaktives Arbeiten mehrerer Benutzer mit Online-Zugang 1974 CPM, 1980 MS-DOS Mikrocomputer-Betriebssysteme 1974 XEROX, 1983 Apple 1985 MS-Windows Systeme mit graphischen Benutzeroberflächen, Fenster, Maus, … Kap. 6

6.7 Historische Entwicklung von Betriebssystemen (1) Verschiedene Entwicklungsstadien: Serielle Systeme Einfache Stapelverarbeitungssysteme Mehrprogrammfähige Stapelverarbeitungssysteme Timesharing-Systeme (Systeme mit Graphischen Benutzeroberflächen) Netzwerkbetriebssysteme Verteilte Betriebssysteme Kap. 6

6.7.: Historische Entwicklung von Betriebssystemen (2) Serielle Systeme (1945-1955) Betrieb von Rechnern ohne Betriebssystem Programmierung von Rechnern durch Einschieben von Steckkarten Später: Einlesen von Lochkarten Zuteilung von Rechenzeit durch Reservierung mit Hilfe Papieraushang Kap. 6

6.7 Historische Entwicklung von Betriebssystemen (3) Einfache Stapelverarbeitungssysteme, 1955 für IBM Unterscheidung Programmentwickler Operateure, die Rechner („Mainframes“) betrieben Sammlung von Programmen (Jobs) auf Lochkarten Einlesen der gesammelten Jobs durch kleine Rechner (z.B. IBM 1401), Speichern auf Band Abarbeitung des Bandes durch Hauptrechner (z.B. IBM 7094): Lese ersten Job ein Führe ersten Job aus Ausgaben auf zweites Band Dann weiter mit zweitem Job etc. Serielle Abarbeitung der Jobs gesteuert durch kleines Softwareprogramm, genannt Monitor. Ausgabe der Ergebnisse auf Band durch kleinen Rechner (z.B. IBM 1401) Fortschritt: Eingabe von Lochkarte, Rechnen, Ausgabe auf Drucker parallel. Kap. 6

6.7 Historische Entwicklung von Betriebssystemen (5) Mehrprogrammfähige Stapelverarbeitungssysteme, ab 1965 Verarbeitung durch einzigen Rechner (IBM 360 + Nachfolger) Spooling (Simultaneous Peripheral Operation On Line): Einlesen von Jobs auf Lochkarten, Speichern auf Platte Nach Beenden des aktuellen Jobs: Laden eines neuen Jobs von Platte + Ausführung Mehrprogrammfähigkeit bzw. Multiprogramming … Kap. 6

6.7 Historische Entwicklung von Betriebssystemen (6) Mehrprogrammfähigkeit bzw. Multiprogramming Beobachtung: Viel Rechenzeit wird verschwendet durch Warten der CPU auf Beendigung von Ein- / Ausgabeoperationen. Bis zu 90% der Zeit verschwendet bei Hochleistungs-Datenverarbeitung. Idee: Führe aus Effizienzgründen Jobs nicht streng sequentiell aus. Aufteilung des Speichers in mehrere Bereiche Eigene Partition pro aktiven Job Wartezeiten auf Beendigung von Ein- / Ausgabeoperationen genutzt durch Rechenzeit für andere Jobs. Job 3 Job 2 Speicher-partitionen Job 1 Betriebs-system Kap. 6

6.7 Historische Entwicklung von Betriebssystemen (7) Timesharing-Systeme Nachteil mehrprogrammfähiger Stapelverarbeitungssysteme: kein interaktives Arbeiten mehrerer Benutzer möglich Abhilfe durch Timesharing-Systeme: Variante des Multiprogrammings Online-Zugang zum System für alle Benutzer Mehrprogrammbetrieb mit schnellem Umschalten von Benutzer zu Benutzer. Idee: Interaktives Arbeiten eines Benutzers erfordert nicht die komplette Rechenzeit eines Rechners Bei schnellem Umschalten bemerkt der Einzelnutzer nicht, dass er die Maschine nicht für sich allein hat. Kap. 6

6.7 Historische Entwicklung von Betriebssystemen (8) Vergleich Mehrprogrammfähige Stapelverarbeitungssysteme versus Timesharing-Systeme: Stapelverabeitung Maximale Prozessornutzung (Betreiberwunsch) Job Control Language Timesharing Minimale Antwortzeit (Benutzerwunsch) Interaktive Kommandos Kap. 6

6.7 Historische Entwicklung von Betriebssystemen (9) Systeme mit Graphischen Benutzeroberflächen GUI (Graphical User Interface) Geht zurück auf D. Engelbart, Stanford Research Institute, 60er Jahre Elemente: Fenster, Icons, Menüs, Maus Übernommen durch Apple Macintosh Später durch Microsoft Windows 1985-1995: Graphische Umgebung, aufsetzend auf MS-DOS Windows95, …, WindowsXP Betriebssystem und GUI stark miteinander verschränkt. UNIX / LINUX: GUI als Aufsatz auf Betriebssystem X-Windows-System (M.I.T.): Grundlegende Funktionen zur Fensterverwaltung Komplette GUI-Umgebungen basierend auf X-Windows: z.B. Motif Kap. 6

6.7 Historische Entwicklung von Betriebssystemen (10) Netzwerkbetriebssysteme und verteilte Betriebssysteme Netzwerkbetriebssysteme: Benutzer kennt mehrere vernetzte Rechner Einloggen auf entfernten Rechnern möglich Datenaustausch möglich Auf Einzelrechnern: Lokales Betriebssystem, lokale Benutzer Netzwerkbetriebssystem = „normales Betriebssystem mit zusätzlichen Fähigkeiten“ Verteilte Betriebssysteme: Mehrere vernetzte Rechner Erscheinen Benutzern wie Einplatzsystem Datenspeicherung und Programmausführung verteilt auf mehreren Rechnern Verwaltung transparent und effizient (?) durch Betriebssystem Probleme: Nachrichtenverzögerungen, Datenkonsistenz Kap. 6

Zusammenfassung Betriebssystem ist ein Softwareprogramm. Liefert eine abstrakte Schnittstelle zum Rechner Verwaltet Systemressourcen Verschiedene Arten von Betriebssystemen aufgrund verschiedener Anforderungen in unterschiedlichen Anwendungsgebieten Moderne Betriebssysteme sind in der Regel Timesharing-Systeme mit vielen zusätzlichen Eigenschaften. Kap. 6