Einige Grundlegende Betriebssystemkonzepte Speicherverwaltung und Adressierung Multitasking Filesysteme Benutzerschnittstellen 1 Speicherverwaltung und Adressierung Zwei Konzepte zur Hauptspeicherverwaltung: Direkte Adressierung Virtuelle Adressierung Direkte Adressierung: Logischer und physikalischer Adressraum sind identisch. Das heißt, dass der adressierbare Speicher dem physikalisch vorhandenen entspricht. Keine Adressumsetzung notwendig. Der Wert einer Adresse bezeichnet den zugehörigen Speicherplatz im Hauptspeicher. Vorteil: Nachteil: Beispiele: 2
Speicherverwaltung und Adressierung Virtuelle Adressierung: Der logische Adressraum ist (viel) größer als der physikalische! Mehr Speicher adressierbar als RAM vorhanden!! Einteilung des Speichers in Seiten oder Kacheln. Eine Seite des virtuellen Speichers ist entweder im realen Speicher (physical memory) oder ausgelagert auf der Platte. Bei Bedarf werden ausgelagerte Seiten in den Speicher geholt und gegen (seit längerer Zeit) nicht benötigte ausgetauscht (Swapping, Paging). Unterstützung der Übersetzung virtueller Adressen in physikalische per Hardware (Memory Management Unit) Bei heutigen Mikroprozessoren bereits im Chip integriert 3 Speicherverwaltung und Adressierung Ein Programm adressiert z.b. 16 k Speicher Diese stehen zum Teil irgendwo im Hauptspeicher... virtueller Adressraum... oder auf der Festplatte 4
Speicherverwaltung und Adressierung Leistungsmerkmale einer virtuellen Speicherverwaltung: Kachelgröße Adressumrechnung: Methode der Umrechnung von physikalischen Adressen in virtuelle durch die Memory Management Unit Seitenersetzungsstrategie zum Austausch aktuell nicht benötigter Seiten durch angeforderte Beispiele virtuell adressierender BS: Windows 98, NT, ab 2000; Unix, Linux; Mac OS X 5 Speicherverwaltung und Adressierung Seitenersetzungsstrategien: Kriterien für die Seitenersetzung: Die Zugehörigkeit der Speicherseite zum aktiven Prozess Der letzte Zugriff auf die Speicherseite Die Unversehrtheit der Speicherseite Unveränderte Seiten müssen nicht ausgelagert werden und können direkt durch die neue angeforderte Seite überschrieben werden. Gängige Ersetzungsstrategien: First In - First Out Least recently used: Die am längsten nicht genutzte Seite wird ausgelagert. Not recently used: 1. Seiten, die innerhalb eines Zeitintervalls nicht benutzt und nicht modifiziert wurden, werden bevorzugt ausgelagert. 2. Danach Seiten, die entweder nicht benutzt oder modifiziert wurden und 3. als letzte Gruppe erst Speicherseiten, die modifiziert und benutzt wurden. 6
Speicherverwaltung und Adressierung Eigenschaften der virtuellen Adressierung Virtuelle Adressierung ist langsamer als direkte. Swapping benötigt Zeit. Je voller der virtuelle Speicher, desto mehr Swapping, desto langsamer der Speicherzugriff Viel Swapping bei normaler Arbeit: Zusätzlicher Hauptspeicher beschleunigt die Bearbeitung. Übung: 2 GB Hauptspeicher, BS + Standard-SW: 1 GB, Anwendungs-SW: 0,5 GB Ab welchem Platzbedarf der Anwendungsdaten beschleunigt zusätzlicher Speicher den Rechner: A: 450 MB B: 550 MB C: 1450 MB D: 1550 MB 7 Multitasking Prozess: Etwas vereinfacht ausgedrückt: Prozess = ein Programm während der Ausführung. Genauer: Prozess = Geladener und gestarteter Programmcode (im Arbeitsspeicher) Programmkontext (Register im Prozessor, Stack, belegter Speicher, Puffer, Filehandles,...) Multitasking: Fähigkeit eines Betriebssystems zur scheinbar gleichzeitigen Ausführung mehrerer Prozesse Dabei werden die verschiedenen Prozesse abwechselnd in so kurzen Abständen immer wieder aktiviert, dass der Eindruck der Gleichzeitigkeit entsteht. 8
Multitasking Formen des Multitaskings: Kooperatives Multitasking: Jeder Prozess bestimmt selbst, wann er die Kontrolle an das BS zurückgibt. Vorteil: Einfache Implementierung Nachteil: Nicht kooperierende (fehlerhafte) Programme blockieren das gesamte System und erfordern einen Neustart. Beispiele: MS Windows 3.11, Mac OS bis Version 9 Präemptives Multitasking Zuteilung von Rechenzeit an die wartenden Prozesse durch den Scheduler des Betriebssystems. Jeder wartende Prozess (gleicher Priorität) erhält dabei der Reihe nach eine Zeitscheibe zugeteilt (Round-Robin-Verfahren). 9 Multitasking, Präemptives Multitasking Ein Prozess kann verschiedene Zustände annehmen. Die wichtigsten: aktiv Der Prozess wird gerade von der CPU bearbeitet (running) bereit Der Prozess könnte die CPU benutzen und wartet auf Zuteilung (ready) blockiert Der Prozess wartet auf ein bestimmtes Ereignis wie z.b. eine Benutzereingabe (blocked) Für Prozesse gleicher Priorität führt der Scheduler-Prozess des BS-Kerns folgendes aus: Nach Verbrauch der Zeitscheibe wird der aktive Prozess unterbrochen, wechselt in den Zustand bereit und wird hinten in die Bereit-Warteschlange eingetragen. 10
Multitasking, Präemptives Multitasking Bereit-Warteschlange: Enthält alle bereiten Prozesse in der Reihenfolge ihrer Ankunft. Aktivierung des vordersten Prozesses bei Freiwerden der CPU Blockiertliste (unsortiert): Wartende Prozesse (z.b. auf das Ende einer Ein/Ausgabe) Wechsel in die Bereit-Warteschlange, wenn das Ereignis eingetreten ist. Weitere Prozess-Zustände: ausgelagert der gesamte Speicher des Prozesses befindet sich auf der Festplatte neu bei der Erzeugung eines Prozesses Übung: Zeichnen Sie ein Diagramm mit den drei Prozesszuständen und den möglichen Übergängen. 11 Multitasking, Präemptives Multitasking Prozesszustände und Übergänge: 12
Multitasking, Präemptives Multitasking Prioritäten: Mögliche Umsetzung unterschiedlicher Prozess-Prioritäten durch Einsortierung der Prozesse entsprechend ihrer Priorität in die Bereit-Warteschlange Beispiel: Einsortierung hinter die Prozesse gleicher Priorität Damit Prozesse niedriger Priorität nicht zu lange warten müssen, kann ihre Priorität mit zunehmender Wartezeit erhöht werden (dynamische Prioritäten). 13 Multitasking, Präemptives Multitasking Realisierungen von Multitasking durch User- und Kernel-Mode: Moderne CPUs verfügen über mindestens zwei Berechtigungs-Modi: Kernel-Mode für die meisten Funktionen des BS-Kerns User-Mode für Anwender-Programme und unkritische BS-Funktionen Das Betriebssystem lässt alle kritischen Funktionen des BS-Kerns, darunter den Scheduler im Kernel-Mode laufen. Damit ist das BS immer gegenüber Anwendungsprogrammen bevorrechtigt. CPU-Beispiele: Intel ab 80386 und kompatible, Risc-Prozessoren (z.b. PowerPC) BS-Beispiele: Windows ab NT, Linux, Unix, Mac OS ab X 14
Multitasking Multithreading Fähigkeit eines Prozesses, mehrere Bearbeitungsstränge gleichzeitig abzuarbeiten. Multithreading setzt neben Multitasking entsprechende Fähigkeiten des Betriebssystems voraus. Abgrenzung zu Multitasking Multitasking: parallele Ausführung mehrerer Prozesse Multithreading: parallele Ausführung von Bearbeitungssträngen innerhalb eines Prozesses. Teilung der zugeteilten Rechenzeit und des Speichers (gemeinsamer Adressraum). Hyperthreading: Spezielle Funktionen von Intelprozessoren (z.b. Pentium 4, Xeon) zur Unterstützung von Multithreading-Anwendungen. 15 Filesysteme Definition: Ein File- oder Dateisystem dient zur Speicherung und Verwaltung von Daten in Form von Dateien. Abkürzung: FS Speicher: Meist Massenspeicher wie Festplatten, USB-Sticks, CDs, DVDs, Eine Datei dient der Speicherung von Daten. Sie hat einen Namen Zeitstempel, wie z.b. Zeitpunkt der Erstellung, der letzten Änderung,... Attribute (z.b. Schreibschutz) einen Inhalt (die Daten) und sie kann haben: Zugriffsrechte Angaben zu den Besitzverhältnissen Angaben zur Verschlüsselung... 16
Filesysteme Dateien werden über ihren Namen angesprochen. Der Dateiname kann untergliedert sein, z.b. aus dem eigentlichen Namen und einer Erweiterung bestehen. Beispiele: meine_datei.txt Protokoll-V1.2.odt Die einzelnen Namensteile werden häufig durch Punkte getrennt. Die Namenslänge und der Zeichenvorrat sind begrenzt. MeineDatei.html Verzeichnisse: Verzeichniss: Zusammenfassung von Dateien und Unterverzeichnissen nach anwendungsspezifischen Ordnungskriterien Da ein Verzeichnis weitere Verzeichnisse enthalten kann, entsteht eine Verzeichnishierarchie. Moderne Filesysteme sind hierarchisch strukturiert. 17 Filesysteme Beispiele: Windows 2000/XP: Mac OS X: [Laufwerk C:] [Wurzelverzeichnis] +- boot.ini +- [Library] +- ntldr +- [System] +- [Dokumente und Einstellungen] +- [Users] +- [benutzername] +- [benutzername] +- [Eigene Dateien] +- [Bilder] +- [Eigene Bilder] +- Bild1.png +- Bild1.png +- [Texte] +- [Texte] +- Brief1.txt +- Brief1.txt +- Brief2.txt +- Brief2.txt +- [Applications] +- [Programme] [Verzeichnisse] sind durch eckige Klammern gekennzeichnet. Die Verzeichnisstruktur ist nicht durch das Filesystem vorgegeben. Sie ist vielmehr eine betriebssystemspezifische Konvention. 18
Filesysteme Verzeichnisse werden auch Ordner genannt. Verzeichnisse werden durch unterschiedliche Zeichen getrennt: \ DOS, Windows xx (Backslash) / Unix, Linux, Mac OS X (Slash) : Mac OS X Desktop und ältere Mac OS Versionen Jeder Verzeichnisbaum hat ein Wurzelverzeichnis. Die verschiedenen Windows-Filesysteme unterscheiden Laufwerke und jedes Laufwerk hat sein eigenes Wurzelverzeichnis. Unix, Linux und Mac OS X haben ein einheitliches Filesystem mit einer Wurzel. Laufwerke werden an geeigneter Stelle in den Baum eingehängt (Mounten). 19 Filesysteme Pfad: Weg von der Wurzel zu einem Verzeichnis Dateien gleichen Namens können sich in unterschiedlichen Verzeichnissen befinden. Eindeutige Bezeichnung einer Datei: Pfad und Dateiname Beispiel für Pfade für den Benutzer Egon : Windows: C:\Dokumente und Einstellungen\Egon\Eigene Dateien\Texte\Brief1.txt Mac OS X: /Users/Egon/Texte/Brief1.txt Unix, Linux: /Home/Egon/Texte/Brief1.txt 20
Filesysteme Aufbau von Dateisystemen: Massenspeicher ist logisch in Blöcke eingeteilt. Block = kleinste adressierbare Einheit Datei = n Blöcke mit n > 0 Der letzte Block ist in der Regel nur teilweise belegt (Verschnitt). Die Blöcke einer Datei sind verzeigert. Die Blöcke einer Datei können auf einem magneto-motorischem Speichermedium (z.b. einer Festplatte) hintereinander stehen (schneller Zugriff) verstreut sein (langsamer Zugriff, fragmentierte Datei) 21 Filesysteme Organisation eines Verzeichnisses: Ablage der Datei- und Verzeichnisnamen eines Verzeichnisses in einer unsortierten Liste einfach langsam bei steigender Dateizahl Beispiele: ältere Windows-Filesysteme FAT, VFAT, FAT32 einem Suchbaum (B-Tree) aufwändig schnell skaliert gut Beispiele: NTFS, verschiedene Unix Filesysteme, HFS+ (Apple) 22
Filesysteme Sicherheit: Sicherheit vor Datenverlust unerlaubtem Zugriff Sicherheit vor Datenverlust: Absturz (z.b. System- oder Programmabsturz, Stromausfall, Plattencrash,...) während I/O beschädigt die betroffenen Dateien. Gegenmittel: Journaling Journaling-Dateisysteme: Journal über die gerade geänderten Dateien und die Art der Änderung Einträge gültig bis der Schreibvorgang beendet ist erlaubt Reparatur bei Schäden am Filesystem Beispiele: NTFS, verschiedene Unix Filesysteme, HFS+ (Apple) 23 Filesysteme Sicherheit vor unerlaubtem Zugriff: Speicherung von Informationen über Besitz- und Zugriffsrechte in zusätzlichen Dateiattributen Zugriff nur für berechtigte Benutzer Beispiele: NTFS, verschiedene Unix Filesysteme, HFS+ (Apple) Alle älteren Windows-Filesysteme (FAT, VFAT, FAT32) haben KEINEN Schutz vor unerlaubtem Zugriff. Weitere Möglichkeiten für Datenschutz: Verschlüsselung Unterstützung durch das Filesystem (transparente Verschlüsselung) Zusatzsoftware (z.b. pgp (pretty good privacy) 24
Filesysteme Netzwerkfilesysteme: Erlauben den Zugriff auf Dateien, die sich auf anderen Rechnern im Netzwerk befinden. Transparenter Zugriff: Normalerweise kein Unterschied für den Benutzer zu lokalen Zugriffen Einsatz spezieller Techniken zur Replikation der Verzeichnisse für einen schnellen Zugriff auf die verteilten Ressourcen Beispiel: Fileserver 25 Filesysteme Adressgrößen und Adressraum: Filesysteme verwenden Adressen unterschiedlicher Größe. z.b.: 16-, 32- oder 64-Bit Adressen Adressierung mit 16-Bit-Adressen: Mit 16 Bit kann man 65536 (oder 64 k) Speichereinheiten adressieren, z.b. 64 k Bytes also 64 kb oder 64 k Blöcke zu 512 Byte, also 32 MB Bei einer Festplatte von 2 GB bedeutet eine Verwaltung mit 16-Bit-Adressen Speicherblöcke zu 32 kb. Wieso? viel Verschnitt bei kleineren Files. Beispiele: FAT16, VFAT 26
Filesysteme Adressierung mit 32-Bit-Adressen: Mit 32 Bit kann man 4.294.967.296 (oder 4 G) Speichereinheiten adressieren, zum Beispiel: 4 GB oder 4 G Blöcke zu 512 Byte, also 2048 GB = 2 TB (Tera Byte) 4 G Blöcke zu 4 kb, also 16348 GB = 16 TB Beispiel: FAT32 Sollte man meinen. Da aber nur 28 Bit zur Adressierung genutzt werden, kann nur 1 TB adressiert werden. 27 Benutzerschnittstellen Benutzerschnittstellen von n Zwei unterschiedliche Arten von Benutzerschnittstellen: Textuelle Benutzerschnittstelle Dies gilt für alle Programme, Grafische Benutzerschnittstelle also auch für. Textuelle Benutzerschnittstelle Kommandos werden textuell eingegeben. Reaktionen erfolgen als Textausgabe. Früher einzige Benutzerschnittstelle. In modernen n nach wie vor vorhanden: DOS-Box, Ausführen -Fenster Shell (Unix, Linux, Mac OS X) Wichtig zur Problembehandlung, wenn die grafische Oberfläche nicht zur Verfügung steht. Wichtig in allen Unix-Varianten bei professionellem Einsatz. 28
Benutzerschnittstellen, textuelle Beispiel im DOS-Look: Benutzereingabe Prompt Prompt: D:\FH> dir /o:gned Datenträger in Laufwerk D ist USER Datenträgernummer: 3461-13E0 Verzeichnis von D:\FH. <DIR> 09.10.96 18:25.. <DIR> 09.10.96 18:25 STUDARB <DIR> 09.10.96 18:25 UEBG <DIR> 09.10.96 18:25 VORL <DIR> 09.10.96 18:25 TEILNLI2 DOC 22.528 16.02.99 11:09 TEILN_LI DOC 21.504 18.09.96 21:39 7 Datei(en) 43.032 Byte 370.802.688 Byte frei Eingabeaufforderung der Shell mit Cursor. Kommandoeingabe durch Return. Danach Interpretation und Ausführung des Befehls durch die Shell. 29 Benutzerschnittstellen, Syntax Syntax (Befehlsaufbau): Die Syntax beschreibt den grammatikalischen Aufbau eines Befehls. Die Semantik deutet den Inhalt. Beispiele: Fische fliegen hoch. Richtig oder falsch? Die Staubecken sind voller Fische. Richtig oder falsch? Syntaktisch (grammatikalisch) ist das alles richtig!!! Bestandteile eines Betriebssystem-Kommandos: Befehlswort Parameter (optional) Trennung durch Blanks (Leerzeichen) Optionen (optional) Syntax: Beschreibung des Befehlsaufbaus basierend auf den Bestandteilen mit Hilfe der Backus-Naur-Form (BNF). Wird in Handbüchern und Online-Hilfen verwendet. 30
Benutzerschnittstellen, Syntax Backus-Naur-Form (BNF): Text <synt_var> Fester Bestandteil des Befehls. Abweichend wird (z.b. bei DOS) auch GROSS geschrieben. Syntaktische Variable: Diese ist durch einen geeigneten Text, z.b. einen Dateinamen, zu ersetzen. Statt der < > wird auch unterstrichen oder alles klein geschrieben. [... ] Optionalklammer: Inhalt kann weggelassen werden. (...... ) Alternative. (... )* Stern-Operator: Inhalt kann gar nicht, einmal oder beliebig oft vorkommen. (... )+ Plus-Operator: Inhalt kommt mindestens einmal vor. Klammern, Auslassungspunkte und Operatorzeichen sind nicht Bestandteil der Befehle. 31 Benutzerschnittstellen, Syntax Beispiele: BNF: cd [ <verzeichnis>.. ] Gültige Kommandos: cd cd.. cd bilder BNF: dir [/a[:]<attr>] [<drive>:][\][<verz>(\<verz>)*] Gültige Kommandos: dir dir /a:h dir /ah dir d:\briefe\anna dir /a:h \dos Sind folgende Kommandos gültig? dir /h dir d:anna dir d\anna dir d:\anna cd cd. cd xxyz cd... 32
Benutzerschnittstellen, Syntax Beispiel für einen Ausdruck der manual pages von Unix: Alternative (nicht optional) Optionale Alternative Sind folgende Kommandos gültig: who h who a p who am who am I who b am I who u who -b I who bi 33 Benutzerschnittstellen, Syntax Muss eine Datei angegeben werden? alternative Kammandoworte Was bedeuten die Punkte:...? Wie würde das in Backus-Naur-Form aussehen? 34
Benutzerschnittstellen, grafische Grafische Benutzeroberflächen mit fensterorientierter und grafischer Benutzeroberfläche: Eingabemedien: 1.Tastatur textuell Gegenüberstellung Benutzerschnittstelle Bildschirm entspricht der physikalischen Größe des Monitors Befehle werden textuell eingegeben virtueller Bildschirm, Größe variabel Befehle per Menü durch zeigen und klicken Objektorientierung: Aktionen am Objekt - durch zeigen und klicken -per drag and drop Eingabemedien: 1.Maus (pointing device) 2.Tastatur fensterorientiert 35 grafische Benutzerschnittstellen Neu sind im Wesentlichen: ein Gerät zur Eingabe durch Zeigen (Maus, Trackball, Sensorfläche, Touchscreen,...) Die Aufteilung des physikalischen Bildschirms in virtuelle Bildschirme, genannt Fenster. Menüsteuerung statt Befehlseingabe Objektorientierung Das Fenster ist in zweifacher Hinsicht ein virtueller Bildschirm: ein Bildausschnitt aus einem größeren virtuellen Bild viele Fenster unterschiedlicher Größe und Position auf einem physikalischen Bildschirm 36
grafische Benutzerschnittstellen Titelzeile Menüleiste Schaltflächen 4 Buttons für Hilfe Iconbildung Maximierung Schließung Fensterinhalt Verkleinern oder Vergrößern: über die Ränder über die linke untere Ecke Scrollbar 37 grafische Benutzerschnittstellen Weiteres Beispiel für eine moderne Fenstergestaltung: Andere Anordnung der Schaltflächen für Icon-Bildung, Schließung und Maximierung 38
grafische Benutzerschnittstellen Konventionen für Menüs: Grau oder abgeblendet: Funktion im aktuellen Kontext nicht verfügbar.... (Auslassungspunkte): Es folgt ein Dialogfeld mit Optionen. (Häkchen): Aktivierte Option. (Dreieck): Hinweis auf Untermenü. Abbruchmöglichkeit durch klicken außerhalb des Menüs. Shortcuts: Für viele Befehle gibt es Tastenkombinationen zur alternativen schnelleren Aktivierung eines Kommandos. Beisiele für Icons Unterschied? 39 grafische Benutzerschnittstellen Anmerkungen zum Gebrauch der Maus: Rechte Maustaste: objektorientierte Zusatzinformationen und / oder weitere Funktionen (Kontextmenü) Häufig Modifikation der Maustastenfunktion durch gleichzeitiges Drücken von Shift, Alt oder Control (Strg) Drag & Drop: 1. Positionieren auf das Objekt 2. Maustaste drücken und gedrückt halten bei gleichzeitiger Positionsänderung (drag) 3. Taste (und damit das Objekt) an der Zielposition loslassen (drop) 40