Vorlesung Betriebssysteme Hochschule Darmstadt Studiengang: CNAM Dozent: Günther Fröhlich Literatur: A. Tanenbaum, Moderne Betriebssysteme, 3. Auflage (2009) Vorlesung SS 2013 Aus der Einführung von Tanenbaum Dem obigen Schaubild kann man entnehmen: Ein Betriebssystem liegt direkt über der blanken Hardware und ist die Basis für die gesamte übrige Software Es läuft in einem privilegierten Kernmodus Die Benutzungsschnittstelle ist eine Shell (textbasiert, Befehlszeileninterpreter für die Command Language) oder ein Graphical User Interface (GUI) Benutzerschnittstelle erlaubt das Starten von Applikationen wie Webbrowser etc Benutzerschnittstelle und Applikationen laufen im unprivilegierten Benutzermode Gliederung ● ● ● ● ● ● ● ● ● Einführung Prozesse und Threads Speicherverwaltung Dateisysteme Eingabe und Ausgabe Deadlocks Multimediasysteme Linux und Windows BS für Smartphones, NetBooks und Tablet-Computer (Android...) 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 3 Was ist ein Betriebssystem? Gängige Schlagworte und Kategorien: ● Monolithisches BS PDA-BS Netzwerk-BS OpenVMS Linux Geschichtete BS Windows Verteilte Systeme BS Batchprocessing BS Multiprozessor BS Single Tasking OS Timesharing OS Single User BS Mac OS Solaris Parallelrechner BS MVS Echtzeit OS Mikrokerne BS Mainframe OS Multiuser BS Interactiv processing Android Multitasking OS MS-DOS Embedded Systems OS NetBook, Tablet, Smartphone OS 24.05.13 Betriebssysteme - Kapitel 1 - Einführung PC-BS 4 Was ist ein Betriebssystem? ● Gängige Schlagworte und Kategorien sortiert nach : BS-Architektur Betriebsarten Monolithisches BS Geschichtete BS BatchprocessingBS Interactive Processing Mikrokerne BS Timesharing OS Echtzeit BS Einsatzbereich Anzahl Nutzer Rechnerklassen Multiuser BS Embedded Systems OS Single User BS PDA, Tablet, Smartphone OS Multiprozessor BS Mainframe BS MS-DOS OpenVMS Windows Anzahl Aufträge Single Tasking OS Verteilte Systeme BS Parallelrechner Multitasking OS BS Netzwerk-BS 24.05.13 Reale BS Betriebssysteme - Kapitel 1 - Einführung PC-BS Solaris Linux UNIX Mac OS MVS, TSO Android 5 Was ist ein Betriebssystem? ● ● ● 24.05.13 Die Abgrenzung ist schwierig 1. Versuch: BS ist Software, die im Kernelmode läuft (Hardwareschutz !) 2. Versuch funktional: BS übernimmt zwei unabhängige Aufgaben: – Bietet (saubere) Abstraktion der Betriebsmittel für Programme und Programmierer – Verwaltung der Hardwareresourcen Betriebssysteme - Kapitel 1 - Einführung 6 Was ist ein Betriebssystem ? Das Betriebssystem als eine erweiterte Maschine ● Top-Down-Sicht ● Architektur eines Rechners auf Ebene der Maschinensprache ist simpel (nicht abstrakt) und schwer zu programmieren ● Gutes Beispiel ist die Ein-/Ausgabe mit einer alten einfachen Diskette und Diskettenlaufwerk. ● Der IBM-PC Disketten-Controller kennt 16 Steuerbefehle 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 7 Was ist ein Betriebssystem ? Das Betriebssystem als eine erweiterte Maschine ● Elementare Kommandos sind read und write mit je 13 Parametern in 9 Byte und bestimmen ● ● ● ● ● 24.05.13 die Adresse des zu lesenden Diskettenblocks die Anzahl der Sektoren pro Spur den Aufzeichnungsmodus des physikalischen Mediums den Abstand zwischen den Sektoren Die Behandlung der deleted data address Marke Betriebssysteme - Kapitel 1 - Einführung 8 Was ist ein Betriebssystem ? Das Betriebssystem als eine erweiterte Maschine ● Nach Abschluss der Operation liefert der Controller 23 Status und Fehlerfelder, die in 7 Byte gepackt sind. ● Zusätzlich muss der Programmierer eines Diskettensystems berücksichtigen, ob der Motor an oder ausgeschaltet ist. ● Ist er ausgeschaltet, muss er mit einer Anlaufverzögerung angeschaltet werden, bevor Daten gelesen / geschrieben werden 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 9 Was ist ein Betriebssystem ? Das Betriebssystem als eine erweiterte Maschine ● Motor darf nicht zu lange eingeschaltet sein, um die Diskette zu schonen Mit der Programmierung des Controllers will sich ein Anwendungsprogrammierer nicht beschäftigen, er will eine einfache Abstraktion auf oberster Ebene: Diskette enthält Dateien, die geöffnet, gelesen, geschrieben und geschlossen werden können. Details der Ausführung sollen in der Abstraktion nicht auftreten 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 10 Was ist ein Betriebssystem ? Das Betriebssystem als eine erweiterte Maschine ● Hardware ist hässlich: eine der Hauptaufgaben eines BS ist es, die Hardware zu verstecken 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 11 Was ist ein Betriebssystem ? Das Betriebssystem als Ressourcenverwalter ● Bottom-Up-Sicht ● BS soll die Hardware (Prozessoren, Speicher, Ein-Ausgabegeräte wie Tastaturen, Mäuse, Druckern, Netzwerkschnittstellen etc. ) geordnet und kontrolliert den um sie konkurrierenden Programmen zuteilen (z.B. Druckausgaben) ● Braucht man kein BS, wenn nur ein Programm laufen kann? 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 12 Was ist ein Betriebssystem ? Das Betriebssystem als Hardwareschutz Auch wenn nur ein Programm läuft, muss verhindert werden, dass ein fehlerhaftes Programm ● die Maschine zum Absturz bringt ● die Hardware beschädigt 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 13 Geschichte der Betriebssysteme Die erste Generation (1945 1955) ● Rechner auf Basis von Relais oder Röhren ● Eine Gruppe von Ingenieuren entwarfen, bauten, betrieben und warteten einen Rechner ● Programmierung erfolgte in Maschinensprache Assembler und höhere Programmiersprachen waren noch unbekannt ● Betriebssysteme gab es nicht ● Typische Aufgaben der Computer waren einfache Berechnungen wie: Erstellen von Tabellen mit Sinus- Kosinus- und Logarithmuswerten 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 14 Geschichte der Betriebssysteme Die zweite Generation (1956- 1965) - Transistoren und Stapelverarbeitungssysteme ● Mit Einführung der Transistoren wurden Rechner kleiner, zuverlässig und in Serie hergestellt. ● Erstmals Trennung zwischen Entwicklern, Herstellern, Operateuren und Wartungspersonal ● Mainframes wurden in geschützten klimatisierten Räumen von Operateuren betrieben ● Besitzer: Große Unternehmen, Behörden und Universitäten ● Einsatz in anspruchsvolleren, wissenschaftlich technischen Anwendungen wie Lösen partieller Differentialgleichungen in Physik und Ingenieurswissen24.05.13schaften Betriebssysteme - Kapitel 1 - Einführung 15 Geschichte der Betriebssysteme Die zweite Generation (1956- 1965) - Transistoren und Stapelverarbeitungssysteme ● Einführung von Assembler und Fortran ● Programme wurden auf Papier entwickelt und dann auf Lochkarten gestanzt ● Lochkartenstapel (Stapelverarbeitung !) wurde dann den Operateuren übergeben, die sie ● ● ● ● ● 24.05.13 in den Rechner zum Lesen einlegten Compiler-Kartenstapel dazu holten ein ausführbares Programm erstellten das Programm ausführen ließen das Ergebnis dem Programmierer übergaben Betriebssysteme - Kapitel 1 - Einführung 16 Geschichte der Betriebssysteme Die zweite Generation (1956- 1965) - Transistoren und Stapelverarbeitungssysteme ● Lochkartenstapel wurde dann den Operateuren übergeben, die sie ● ● ● ● ● ● 24.05.13 in den Rechner zum Lesen einlegten Compiler-Kartenstapel dazu holten ein ausführbares Programm erstellten das Programm ausführen ließen das Ergebnis dem Programmierer übergaben Dabei wurde viel Rechenzeit für Laufarbeiten verschwendet. Zeitoptimierung führte zum Konzept des Stapelverabeitungssystems (batch system) Betriebssysteme - Kapitel 1 - Einführung 17 Geschichte der Betriebssysteme Die zweite Generation (1956- 1965) Phasenpipeline ? 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 18 Geschichte der Betriebssysteme Die zweite Generation (1956- 1965) - Transistoren und Stapelverarbeitungssysteme ● Ziel: optimale Auslastung der Rechenkapazität ● Trennung von Programmerzeugung, Ausführung und Ergebnisausgabe ● Bei der Ausführung auf der 7094 wurde ein spezielles Programm geladen, das den ersten „Job“ vom Band geladen und ausgeführt hat. Dieses Programm ist ein Vorläufer der heutigen Betriebssysteme ● Nach Abschluss eines Jobs las das BS automatisch den nächsten Job vom Band 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 19 Geschichte der Betriebssysteme Die zweite Generation (1956- 1965) FMS = Fortran Monitor System 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 20 Geschichte der Betriebssysteme Die zweite Generation (1956- 1965) Struktur des Jobs: ● $JOB-Karte Maximale Laufzeit, Abrechnungsnummer und -name ● $FORTRAN Betriebssystem lädt Compiler vom Band und compiliert ● $LOAD Das übersetzte Programm wird in den Speicher geladen ● $RUN Das BS startet die Ausführung des Programms ● $END Markiert das Ende des Jobs Diese Kontrollkarten waren die Vorläufer der modernen Kommandozeileninterpreter und Shells 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 21 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) Zwei grundlegende Rechnerarchitekturen: ● wortorientierte wissenschaftliche Rechner (numerische Berechnungen ) ● zeichenorientierte kommerzielle Rechner (z.B. IBM 1401) für Listenerstellen, -sortieren und -drucken ● IBM System/360 verband beide Produktlinien und führte die Rechnerfamilienbildung ein. 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 22 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) IBM System/360 verband beide Produktlinien und führte die Rechnerfamilienbildung ein, um ● nur ein Betriebssystem (OS360) entwickeln und warten zu müssen ● mit einer Befehlssatzarchitektur (ISA) die gleiche Software auf unterschiedlichen Generationen der Rechnerfamilie benutzen zu können Kommerziell bis heute erfolgreiches Konzept mit den Generationen 360, 370, 3080, 3090... bis SystemZ. Werden heute noch als DB- und WWW-Server eingesetzt 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 23 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) Die Stärke von OS360 war seine größte Schwäche: ● Es sollte universell einsetzbar sein, bestand aus einigen Millionen Zeilen Assemblercode und enthielt tausende von Fehlern. ● Jede Version beseitigte Fehler und erzeugte neue. ● Die Anzahl der Fehler blieb über die Laufzeit konstant! 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 24 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) Wichtige neue Konzepte: ● Multiprogrammierung ● Spooling ● Timesharing 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 25 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) Multiprogrammierung ● Ziel: Bessere Auslastung der CPU ● Mehrere Jobs liegen im Speicher in eigenen durch Hardware geschützten Partitionen ● Muss ein Job pausieren, um eine Ein-/Ausgabe abzuwarten, kann das BS einem anderen Job die CPU zuteilen 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 26 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) Spooling (Simultaneous Peripheral Operation On Line) ● Die Job-Karten wurden wurden statt auf Bändern auf eine (schnelle) Platte geschrieben ● Wurde ein Job beendet, lud das BS einen neuen von Platte in eine freie Partition BS der 3. Generation waren im Kern Stapelverarbeitungssysteme mit entsprechend langen Antwortzeiten 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 27 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) Timesharing Ist eine Variante der Multiprogrammierung ● Vorteil: Erlaubt kurze Antwortzeiten für viele Benutzer und Stapelverarbeitung im Hintergrund ● Verfahren: BS teilt jedem Job/Benutzer für kurze Zeit die CPU zu Erstes universelles System war CTSS (Compatible Timesharing System) vom M.I.T. 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 28 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) MULTICS (Multiplexed Information and Computing System) wurde Nachfolger von CTSS. ● Projekt von M.I.T, Bell Labs und General Electric ● Vorbild war die Elektrizitätsversorgung ● Damalige verfügbare Hardware (Rechenleistung) wurde dem Anspruch, mit einer Maschine mehrere hundert Anwender zu bedienen nicht gerecht ● Kommerziell kein großer Erfolg ● Lief in einigen Unternehmen bis in die 90ger Jahre 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 29 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) Neue Rechnergeneration: Minicomputer (PDP-1 bis PDP-11) von DEC ● PDP-1Speicher nur 4096 Worte á 18 Bit ● Sehr preiswert – 5% des Preises einer IBM 7094 ● Kommerziell sehr erfolgreich, neuer Markt wurde geschaffen 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 30 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) UNIX ● ● ● ● ● ● 24.05.13 Bell Labs und MULTICS Mitarbeiter Ken Thompson schrieb für eine PDP-7 ein Einbenutzer-bestriebssystem von MULTICS, also ein abgespecktes MULTICS Dies bildete die Grundlage für das spätere BS UNIX Freier Quellcode ! System V von AT&T und BSD Unix (Berkeley Software Distribution) Nach chaotischer, inkompatibler Entwicklung: POSIX als Standard für UNIX von IEEE (Institute of Electrical and Electronics Engineers) POSIX definiert einen Teil der Systemschnittstelle Betriebssysteme - Kapitel 1 - Einführung 31 Geschichte der Betriebssysteme Die dritte Generation (1966- 1980) MINIX ● ● ● 24.05.13 UNIX Klon für Ausbildungszwecke von Tanenbaum. Unter www.minix3.org ist der Quellcode frei erhältlich POSIX kompatibel Betriebssysteme - Kapitel 1 - Einführung 32 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) ● Fortschritte der Halbleitertechnik → Zeitalter der Personalcomputer ● PC Betriebssysteme waren ● ● ● 24.05.13 CP/M (Control Program for Mikrocomputers) von Digital Research MS-DOS 16 Bit Systeme ohne grafische Benutzerschnittstelle Betriebssysteme - Kapitel 1 - Einführung 33 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) Entwicklungsphasen bei PC und Homecomputer: ● BS war ursprünglich fest im ROM eingebaut und enthielt meistens BASIC, das als Kommando- und auch als Programmier-Sprache diente. (z.B: C64) ● BS benötigten mehr Speicherplatz und wurden von Platte/Disk nachgeladen („Bitte legen Sie die Systemdiskette in Laufwerk A“ ) oder auf einer Platte installiert. (CP/M, DOS, Linux oder Unix) ● DOS und CP/M bestanden aus mehreren Teilen: dem Kommandointerpreter (COMMAND.COM), sowie Zusatzprogrammen, die bestimmte Aufgaben übernahmen. COMMAND.COM enthielt nur rudimentäre Befehle (z.B. Starten von Programmen, Kopieren und Löschen von Dateien) 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 34 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) Entwicklungsphasen bei PC und Homecomputer: ● In Verbindung mit Zusatzprogrammen war es möglich, Texte zu bearbeiten (EDIT), Disketten zu formatieren (FORMAT) und zu überprüfen (SCANDISK), oder gelöschte Dateien wiederherzustellen (UNDELETE). Um Peripherie und Computerkomponenten anzusprechen , wurden die nötigen Treiber in den Autostartdateien wie z.B. (bei DOS) CONFIG.SYS und AUTOEXEC.BAT eingebunden; bei vielen gleichzeitig vorhandenen Hardwarekomponenten eine schwierige Aufgabe. 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 35 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) Entwicklungsphasen bei PC und Homecomputer: ● Grafische Benutzeroberflächen: GEM, MacOS, OS/2, Windows → Benutzerfreundlichkeit, weniger Expertenwissen notwendig. ● 1985-1995: Windows war (nur) grafische Benutzerumgebung auf MS-DOS ● 1995: Windows 95 benötigte DOS nur noch zum Hochfahren des Rechners (Booten) ● Windows 98 war auch noch ein 16 Bit System, lief aber in der Regel auf 32 Bit Prozessoren (ab 80386 von 198x) 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 36 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) Entwicklungsphasen bei PC und Homecomputer: ● WINDOWS NT erstes 32 Bit BS-System von Microsoft ● ● Weitere Versionen bis zur Erweiterung auf 64 Bit ● ● ● ● ● ● 24.05.13 Sollte MS-DOS und Windows 3.x und Windows 95 ersetzten. Setze sich nicht durch NT 4.0 Windows 98 Windows ME Windows XP Windows Vista Windows 7 und Windows 8 Betriebssysteme - Kapitel 1 - Einführung 37 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) Entwicklungsphasen bei PC und Homecomputer: ● Unix Familie ● Linux wurde die Alternative zu Windows auf Intel Pentium (IA32) Rechnern ● FreeBSD ist bekannter UNIX Ableger, läuft auf modernen Macintosh Rechnern ● Standard im Workstation-Bereich bei HP und SUN ● Benutzeroberflächen (GUIs) sind X11-basiert ● ● 24.05.13 KDE, GNOME setzen auf X11 auf Solaris auf Basis von SunOs ist ein Unix-BS und kompatibel zu System V (siehe bei Wikipedia) Betriebssysteme - Kapitel 1 - Einführung 38 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) Netzwerkbetriebssysteme ● Für Netzwerke mit Workstations und PCs benötigt man Netzwerkbetriebssysteme. ● Einloggen auf entfernten Maschinen und Zugriff auf entfernte Dateien möglich ● Auf jedem Rechner läuft ein lokales BS, das mit Kommunikationsfähigkeiten erweitert wurde. ● Die Struktur des BS bleibt gleich ● Die Hoheit über den Rechner hat das lokale BS 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 39 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) Verteilte Betriebssysteme Benutzer sieht nur einen Rechner, der aus vielen Rechnern bestehen kann. ● Das BS organisiert und verbirgt dem Benutzer, auf welchem Rechner sein Programm läuft und wo seine Daten liegen ● Läuft eine Anwendung gleichzeitig auf mehreren Rechnern (Paralleles Rechnen), benötigt das BS zusätzliche Sychronisationsmechanismen ● Struktur des BS ändert sich, ein BS auf einem Rechner hat nicht mehr die Hoheit über das Gesamtsystem Betriebssysteme - Kapitel 1 - Einführung 24.05.13 40 Geschichte der Betriebssysteme Die vierte Generation (1981 – heute) ● OpenVMS für Mini-Computer – und Workstation http://de.wikipedia.org/wiki/Virtual_Memory_Syst em 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 41 Computerhardware Das Betriebssystem als erweiterte Maschine, Resourcenverwalter und Schützer der Hardware muss die Hardware genau kennen. Deshalb ein prinzipieller Exkurs in die Hardware eines Computers ● Prozessoren ● Arbeitsspeicher ● Festplatten ● Magnetbänder ● Ein-/Ausgabegeräte ● Bussysteme ● Hochfahren des Computers 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 42 Computerhardware 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 43 Computerhardware - Prozessoren ● ● Der Prozessor, die Central Processing Unit (CPU) führt ein Programm aus, dessen Code und Daten im Speicher stehen. Eine CPU besteht in der Regel aus (mindestens) ● ● ● ● ● ● ● ● 24.05.13 n Allzweckregistern zum Speichern von Variablen Programcounter (PC) Instructionregister (IR) Arithmetic and Logical Unit (ALU) Stackpointer (SP) Framepointer (FP) Program Status Word (PSW) Control Unit (CU) Betriebssysteme - Kapitel 1 - Einführung 44 Computerhardware - Prozessoren ● ● (CPU ist Thema bei Rechnerarchitektur und wird dort behandelt.) BS – CPU ● ● ● 24.05.13 BS muss die Register kennen, weil es bei Prozessumschaltung (s. Multiprocessing, Timesharing) den Status (die Register) des zu suspendierenden Prozesses sichern muss. BS muss Programmausnahmen behandeln (z.B Programm beenden nach Division durch null) BS läuft im Kernelmode, privilegierten Mode der CPU und hat Zugriff auf komplette Hardware Betriebssysteme - Kapitel 1 - Einführung 45 Computerhardware - Prozessoren ● 24.05.13 Multithreading fähige CPU: für BS erscheint das als seien mehrere CPUs verfügbar Betriebssysteme - Kapitel 1 - Einführung 46 Computerhardware - Prozessoren ● 24.05.13 Multicore-CPU: BS muss mit mehreren Kernen umgehen können ! Betriebssysteme - Kapitel 1 - Einführung 47 Computerhardware - Speicher ● ● 24.05.13 Speicher soll schnell, groß und billig sein Das erreicht man mit einer Speicherhierarchie: Betriebssysteme - Kapitel 1 - Einführung 48 Computerhardware - Speicher Register Cache 24.05.13 schnell wie CPU, relativ wenige (eins bei Akkumulator-Prozessoren, 2*128 bei Intel Itanium Gesteuert von Anwendungsprogramm-, BS und Hardware ●Wird von Hardware gesteuert ●L1 im Prozessor (KB) statisches RAM ●L2 auf dem Prozessorchip oder eigenem Chip (MB) ●oftmals gibt es schon L3 Cache ●Caching ist weitverbreitetes Konzept in der Informatik ●Verschiedene Cacheorganisationen (direct maped … vollassoziativ) ●Cache-Ersetzungsstrategien Betriebssysteme - Kapitel 1 - Einführung 49 Computerhardware - Speicher RAM Eigentlicher Arbeitsspeicher, dynamisches RAM (Random Access Memory) ●Hieß früher Kernspeicher -Magnetkernspeicher ●Entwicklung von einigen KB auf einige GB in 40 Jahren. ●Wird vom BS verwaltet Nicht-flüchtigeROM, PROM EPROM FLASH-EPROM Speicher BIOS früher im ROM, heute FLASH-EPROM FLASH-EPROM ist wie RAM, aber langsamer FLASH-EPROM ist schneller als Festplatte mit kürzerer Abnutzungszeit 24.05.13 ● Betriebssysteme - Kapitel 1 - Einführung 50 Computerhardware - Speicher Festplatten 24.05.13 Kapazität: früher Megabyte, heute Terabyte Faktor 100 pro Bit billiger als RAM, aber 1000 mal langsamer, weil es ein mechanisches, rotierendes Gerät ist (bis 10000 mal pro Minute) Betriebssysteme - Kapitel 1 - Einführung 51 Computerhardware - Speicher Festplatten 24.05.13 Einteilung in Spuren (tracks), Segmente und Zylinder Bewegung des Arms von einem Zylinders zum nächsten braucht etwa 1 ms Betriebssysteme - Kapitel 1 - Einführung 52 Computerhardware - Speicher Festplatten 24.05.13 BS muss die Festplatte verwalten (Formatieren, Partitionieren, Listen über beschädigte Segmente führen, Fragmentierung von Dateien vermeiden , Defragmentieren BS kennt Verfahren, Festplattenzugriffe zu optimieren (Caching, Fragen des Dateisystems) Betriebssysteme - Kapitel 1 - Einführung 53 Computerhardware - Ein-/Ausgabegeräte ● ● ● ● ● ● 24.05.13 E/A-Geräte bestehen aus Controller und dem Gerät. Controller nehmen über spezielle Treiber Aufträge vom BS an (z.B. lese Sektor 10120) und wandelt die lineare Nummer in gerätespezifische Parameter um (Spur, Sektor, Zylinder) und führt die Aktion geordnet aus. Controller ermittet, über welchem Zylinder der Schreib-/Lesekopf gerade steht und und bewegt ihn in einzelnen Impulsen zum benötigten Zylinder. CO wartet bis der richtige Sektor am Kopf erscheint. CO startet Schreib-/Leseoperation ...... ! Controller ist eine spezialisierte CPU für komplexe Vorgänge Betriebssysteme - Kapitel 1 - Einführung 54 Computerhardware - Ein-/Ausgabegeräte Treiber ● Jeder Controllertyp braucht seinen speziellen Treiber ( z.B. IDE (integrated drive electronics ) Controller für IDEFestplatten) ● Controllerhersteller liefert Treiber für Betriebssystem(e) ● Treiber müssen ins BS integriert werden. ● Drei Verfahren der Integration: 1.Treiber wird in Kern eingebunden, Systemneustart (ältere Unix-Systeme) 2.Treiber wird in einer Datei als notwendig eingetragen und nach Neustart geladen (Windows) 3.Neuer Treiber wird zur Laufzeit geladen und zur Verfügung gestellt (Hot-Plug-fähige Geräte über USB) 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 55 Computerhardware - Ein-/Ausgabegeräte Zugriff auf Controller Zwei Varianten: 1.Jedes Controllerregister ist über einen Port (eine Portadresse) mittels IN und OUT-Befehlen ansprechbar. IN und OUT sind nur im Kernmodus verfügbar, Geräteschutz ist damit gewährleistet 2.Controllerregister werden in den Adressraum des BS eingeblendet (memory mapped devices), benötigen keine speziellen IN/OUT Befehle. Treiber in Hochsprache möglich Geräteschutz: Applikation hat keinen Zugriff auf Adressraum des Betriebssystems 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 56 Computerhardware - Ein-/Ausgabegeräte Methoden der Ein-/Ausgabe Synchrones IO durch Aktives Warten 1.Applikation führt Systemaufruf aus und springt in den Kern 2.Betriebssystem ruft Treiber auf 3.Gerätetreiber programmiert den Controller und fragt solange den Controller immer wieder ab, bis dieser Vollzug meldet (steht in einem Register des Controllers) 4.BS übergibt an Applikation 1. Wie oben Asynchrones IO 2. Wie oben durch 3.Gerätetreiber programmiert den Controller Interruptsteu4.Controller führt Aktion aus erung 5.Controller signalisiert Vollzug einem Interrupt-Controller 6.Interrupt-Controller signalisiert der CPU, dass Daten vorliegen 7.Interrupt-C. teilt CPU mit, von welchem Gerät die Daten kommen 8.CPU rettet Befehlszähler und Programm-Status-Wort und schaltet in Kernmodus 9. Der Interrupt-Handler für das entsprechende Gerät wird gestartet 10. Rückkehr ins Beutzerprogramm 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 57 Computerhardware - Ein-/Ausgabegeräte Methoden der Ein-/Ausgabe DMA Direct Memory Access 24.05.13 Spezieller auf Ein-/Ausgabe optimierter Chip, der Datenfluss zwischen Speicher und Controller ohne die CPU organisiert CPU gibt Auftrag an DMA-Controller, wieviele Byte von A nach B in welcher Richtung zu übertragen sind ● Schneller als über die CPU ● CPU kann entweder warten oder etwas anderes ausführen Nach Abschluss wird ebenfalls ein Interrupt erzeugt und das Betriebssystem kann das wartende Programm wieder aktivieren Betriebssysteme - Kapitel 1 - Einführung 58 Computerhardware - Ein-/Ausgabegeräte Interrupt während Interruptausführung ● ● ● 24.05.13 Wird ein Interrupt bearbeitet, werden andere Interrupts blockiert Interruptauslöser senden solange ihr Interruptsignal, bis die Blockierung aufgehoben ist Interrupts-Priörität legt fest, welcher als nächstes ausgeführt wird Betriebssysteme - Kapitel 1 - Einführung 59 Computerhardware -Ein-/ Ausgabegeräte 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 60 Computerhardware - Bussysteme ● ● Historisch typisches Bussystem Reicht für heutige Anforderungen nicht aus wegen ● ● Steigender Zahl von Peripherigeräten Unterschiedlicher Arbeitsgeschwindigkeit der Komponenten z.B: – – 24.05.13 Sehr schnelle Verbindung zum Speicher und Grafikkarte notwendig Langsame Verbindung zur Tastatur reicht aus Betriebssysteme - Kapitel 1 - Einführung 61 Computerhardware - Bussysteme 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 62 Computerhardware - Bussysteme ISA (IBM-PC/AT) 16 Bit parallel 8.3 MHz 16.67 MB/s PCI Nachfolger ISA 64 Bit parallel 60 MHz 528 MB/s PCI-Express 64 Bit parallel Anschluss zur Laufzeit des Rechners möglich 1.5 MB/s USB 1 60 MB /s USB 2 300 MB/s USB 3 USB für langsame bitseriell IO-Geräte Tastatur, Maus...) IDE für Festplatten, CD-ROM SCSI 8 /16 Bit parallel 300 MB/s FireWire bitseriell 100 MB/s BS muss wissen, welche Peripheriegeräte angeschlossen sind und muss diese konfigurieren. Heute mit Plug und Play (zuerst bei MacIntosh) – früher feste Interruptnummern und Adressen 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 63 Die Betriebssystemfamilie ● ● ● ● ● ● ● Betriebssysteme für Großrechner Server Multiprozessorsysteme Personalcomputer Handheld-Computer Eingebettete Systeme Echtzeitsysteme 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 64 Betriebssystemfamilie- Großrechner ● ● ● ● Großrechner werden z.B als WebServer, als Server im Bereich E-Commerce (Banken, Versicherungen...) eingesetzt Hohe I/O-Leistung mit mehr als 1000 Festplatten und vielen Terabyte Daten Kombination von Batch-, Dialog- und Timesharingsystem Immer noch aktuell: IBM OS390, Tendenz nach Linux 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 65 Betriebssystemfamilie Server ● ● ● Hardware: Workstations, PCs, auch Großrechner Webdienste, Internetanbieter setzen viele Server ein Typische Bertiebssysteme: ● ● ● ● 24.05.13 Solrais, FreeBSD, Linux , Windows Server 200x Betriebssysteme - Kapitel 1 - Einführung 66 Betriebssystemfamilie Multiprozessorsysteme ● ● Multicomputer, Multiprozessorsysteme, Parallelcomputer Sind oft erweiterte Server Betriebssysteme – erweitert um ● ● ● ● Kommunikation Anschlussfähikeit Konsistenz Multicoreprozessoren in PCs benötigen heutzutage Eigenschaften eines MultiprozessorBetriebssystems. Windows und Linux sind bereits Multiprozessorfähig 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 67 Betriebssystemfamilie Personalcomputer ● ● ● Moderne PC Betriebssysteme unterstützen Multiprogrammierung mittels Timesharing, aber: ausgelegt auf optimale Unterstützung eines Benutzers also: Multitasking, aber nicht Multiusersyteme 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 68 Betriebssystemfamilie Handheld-Computer ● ● ● ● ● PDA (Personal Digital Assistent) Westentaschencomputer PDA und Mobiltelefon sind intern mittlerweile sehr ähnlich Enthalten mittlerweile einen 32 Bit Prozessor Vertreter: ● ● ● Palm OS Symbian OS Unterschied zu PC: keine mechanische Festplatte 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 69 Betriebssystemfamilie Eingebettete Systeme ● Eingebettete Systeme steuern andere Geräte. Z.B: ● ● ● ● ● ● ● ● Mikrowelle Fernsehgeräte Autos DVD-Recorder MP3-Player Gesamte Software steht im ROM Schutzmechanismen zwischen Applikationen sind nicht nötig Typische Vertreter: QnX, VxWorks 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 70 Betriebssystemfamilie Echtzeitsysteme Typischer Einsatz: Prozesssteuerung, aber auch Multimediaanwendungen haben EchtzeitAnforderungen ● Zeit ist wichtiger Parameter der Resourcenvergabe (Deadline) ● Hartes Echtzeitsystem (hard-realtime-system). Bietet absolute Garantie, dass Aktionen in definierter Zeit ausgeführt werden (Prozesssteuerung) ● Weiches Echtzeitsystem (soft-realtime-system) Eine verpasste Deadline ist nicht erwünscht, aber tolerabel (Multimediaanwendungen). ● Harte Echtzeitsysteme sind oft nur eine Bibliothek, die an die Applikation angebunden ist ohne Schutz 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 71 zwischen den Systemteilen ● Betriebssystemkonzepte ● ● ● ● ● ● ● Prozesse Adressräume Dateien Ein-/Ausgabe Datenschutz und Datensicherheit Die Shell Ontogenese rekapituliert die Phylogenese 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 72 Betriebssystemkonzepte - Prozesse Prozesse sind die Abstraktion des Prozessors, denn für jeden Prozess scheint es einen Prozessor zu geben Ein Prozess ● ist das Schlüsselkonzept von Betriebssystemen ● ist ein Programm in Ausführung (mit vielen Einschränkungen) ● Bekommt einen einen Adressraum zugeordnet, nicht einfach Speicher. Der Adressraum enthält ● ● ● 24.05.13 das ausführbare Programm die Programmdaten den Stack Betriebssysteme - Kapitel 1 - Einführung 73 Betriebssystemkonzepte - Prozesse Ein Prozess ● bekommt Ressourcen zugeordnet wie ● ● ● ● ● ● 24.05.13 Register Programcounter Programstatusword Stackpointer Liste von geöffneten Dateien und vieles mehr Betriebssysteme - Kapitel 1 - Einführung 74 Betriebssystemkonzepte - Prozesse ● ● ● 24.05.13 Bei Multiuser-Systemen gibt es mindestens soviel Prozesse wie angemeldete Benutzer Auch beim PC als Single User System befinden sich viele Prozesse (s. Taskliste)in der Ausführung Die Prozessliste zeigt noch zusätzliche Prozesse des Betriebssystems Betriebssysteme - Kapitel 1 - Einführung 75 Betriebssystemkonzepte - Prozesse ● ● ● 24.05.13 Bei Einprozessormaschinen (das war bis vor kurzem die Regel, das Prozesskonzept ist aber Jahrzente alt) kann zu einem Zeitpunkt nur ein Prozess den Prozessor benutzen Ein Prozess muss vom BS die CPU zugeteilt und später wieder abgenommen bekommen Diese Verwaltung der Ressource CPU zwischen den Prozessen ist eine aufwendige und damit CPUbelastende Aufgabe des Betriebssystems (ContextSwitch) Betriebssysteme - Kapitel 1 - Einführung 76 Betriebssystemkonzepte - Prozesse ● Systemaufrufe zur Prozessverwaltung Prozess erzeugen ● ● .... Prozess beenden Typisches Beispiel unter Linux: 1.Ein Prozess - Shell (Kommandozeileninterpreter) – liest Kommandos vom Terminal ein. Benutzer gibt das Kommando „Kompiliere Datei xx“. 2.Die Shell startet einen neuen Prozess, der den Compiler ausführt 3.Am Ende des Kompilierens beendet sich der Prozess 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 77 Betriebssystemkonzepte - Prozesse Prozessbaum ● Jeder Prozess kann einen weiteren Prozess - einen Kindprozess – erzeugen ● Arbeiten diese Prozesse gemeinsam an einer Aufgabe, müssen sie sich synchroni-sieren (Interprozesskommunikation) ● BS muss Bibliothek für Kommunikation anbieten 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 78 Betriebssystemkonzepte - Prozesse ● ● ● ● 24.05.13 Systemaufrufe zur Prozessverwaltung: Anforderung von zusätzlichem Speicher Freigabe von nicht mehr benötigtem Speicher Warten auf das Ende eines Kindprozesses Signalerzeugung und Behandlung Betriebssysteme - Kapitel 1 - Einführung 79 Betriebssystemkonzepte - Adressräume ● ● Aktuelle BS kennen Adressräume für Prozesse. D.h.: Jeder Prozess kann über den gesamten systemspezifischen Adressraum verfügen, z.B bei ● ● ● ● ● 16 Bit Adressraum – 64 KB 32 Bit - 4 GB BS stellt diesen Speicherraum durch Verwaltung des virtuellen Speichers zur Verfügung „Im wesentlichen erzeugt das BS die Abstraktion des Adressraums als einer Menge von Adressen, auf die ein Prozess zugreifen kann.“ (S. 74) Die Verwaltung der Adressräume und des physischen Speichers ist eine der Hauptaufgaben des BS (Paging, Swapping, dynamische Zuteilung von physikalischem Speicher...). 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 80 Betriebssystemkonzepte - Dateien ● ● Mit ihrem Dateisystem bieten Betriebssysteme ein abstraktes Modell von geräteunabhängigen Dateien an. Systemaufrufe werden benötigt für ● ● Verzeichnisse erlauben ● ● ● Erzeugen, Verschieben, Lesen, Schreiben, Löschen von Dateien die Zuordnung einer Datei zu einem bestimmten Ort die Gruppierung von Dateien Zur Verwaltung der Verzeichnisse werden Systemaufrufe benötigt: ● 24.05.13 Erzeugen, Verschieben, Lesen, Schreiben, Löschen von Verzeichnissen, Wechsel des Arbeitsverzeichnisses Betriebssysteme - Kapitel 1 - Einführung 81 Betriebssystemkonzepte - Dateien 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 82 Betriebssystemkonzepte - Dateien ● ● ● Es gibt relative und absolute Pfadangaben. Die Syntax ist BS abhängig: UNIX/Linux: /Fakultaet/ProfBrown/Seminare/CS01 ist absolut. Seminare/CS01 führt zur gleichen Datei, wenn das aktuelle Arbeitsverzeichnis /Fakultaet/ProfBrown ist. ● 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 83 Betriebssystemkonzepte - Dateien Zugriffsrechte: ● Beim Öffnen einer Datei werden die Zugriffsrechte vom BS geprüft ● Ist Zugriff erlaubt, wird ein Filedescriptor geliefert, mit dem weitergearbeitet werden kann, andernfalls wird ein Fehlercode geliefert. 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 84 Betriebssystemkonzepte - Dateien Eingebunde Dateisysteme – mounted file system: ● Zweck: Einbindung von optischen Laufwerken (CD,DVD), Solid State Disc (SSD) und externe Festplatten über USB in das Dateisystem. ● Implementierung unter Linux sehr elegant: Mit dem mount Befehl wird ein Laufwerk in das Dateisystem eingebunden und im Pfad ohne physikalische Laufwerksbeschreibung angesprochen. (Abstraktion! des BS) 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 85 Betriebssystemkonzepte - Dateien 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 86 Betriebssystemkonzepte - Dateien Spezialdatei – special file (Unix/Linux): ● Zweck: Einbindung von Ein-/Ausgabegeräten in das Dateisystem. ● Können dann mit den Systemaufrufen wie Dateien gelesen und beschrieben werden ● Zwei Arten: ● ● 24.05.13 Blockdateien (block special file) Für Geräte mit freiadressierbaren Blöcken wie bei Festplatten. Zeichendatei (character special file) Werden benutzt beispielsweise Drucker abzubilden. Sie liegen im /dev Verzeichnis: /dev/lp Betriebssysteme - Kapitel 1 - Einführung 87 Betriebssystemkonzepte - Dateien Pipes (Unix/Linux): ● Zweck: Verbindung zweier Prozesse mittels einer Pseudodatei. ● Kommunikation zweier Prozesse ist dem Lesen und Schreiben einer Datei sehr ähnlich ● Sender schreibt in die Pipe (Datei) ● Empfänger liest aus der Pipe ● Pipe wird vorher eingerichtet.... 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 88 Betriebssystemkonzepte - Ein-/Ausgabe ● ● ● ● Siehe Folien bei BS und Hardware BS hat die Aufgabe, alle Ein-Ausgabegeräte zu verwalten. Ein-Ausgabe Subsystem Gerätetreiber 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 89 Betriebssystemkonzepte Datenschutz und Datensicherheit ● ● ● ● Verwaltung von Zugriffsrechten auf Dateien um autorisierte Benutzung zu gewährleisten Oft: Hierarchiche Organisation wie z.B. user/group/world Linux: rwx bits (read, write execute) Listet man Dateien, sieht man auch die Zugriffsrechte, z.B rw-r-x--x 1 froehlic bel 14040 May 16 2012 QSBenchmark.jar user froehlich darf die Datei lesen und schreiben, aber nicht ausführen, Gruppenmitglieder von bel dürfen sie lesen, world (alle anderen) dürfen die Datei nur ausführen ● Sicherheit umfasst auch Virenschutz – eigenes 24.05.13Thema Betriebssysteme - Kapitel 1 - Einführung ● 90 Betriebssystemkonzepte - Die Shell BS führt Systemaufrufe aus! ● Editoren, Compiler, Linker, Assembler, Kommandozeileninterpreter (SHELL) sind nicht Teil des BS ● Shell ist Schnittstelle zwischen user und BS ● Linux: viele Shells – sh,csh,ksh,bash ● Beim Anmelden des users wird eine Shell gestartet und ein Terminal als Standardein-/ausgabe benutzt ● Nach Eingabe eines Kommandos erzeugt die Shell einen Kindprozess. Shell wartet auf das Ende des Kindprozesses und nimmt dann neuen Auftrag an ● Später Vortrag über die Linux Shell, mit Beispielen für Pipes. 24.05.13 Betriebssysteme - Kapitel 1 - Einführung ● 91 Betriebssystemkonzepte - Ontogenese rekapituliert die Phylogenese ● Biologie: Die Entwicklung eines Embryos wiederholt die Entwicklung der Art ● ● ● ● ● 24.05.13 Betriebssysteme - Kapitel 1 - Einführung 92