1.36k likes | 1.53k Views
Betriebssysteme. Studiengang Betriebsinformatik Wintersemester 2009/10 (2. Semester). Vorlesung : 5 Veranst. á 2 DS = 20 Unterrichtsstunden Praktikum : 3 Veranst. 3 / 3 / 4 DS = 20 Unterrichtsstunden. Inhalt. Einführung Grundlagen (Windows 2000/XP) Anpassung der Arbeitsumgebung
E N D
Betriebssysteme Studiengang Betriebsinformatik Wintersemester 2009/10 (2. Semester) Vorlesung : 5 Veranst. á 2 DS = 20 Unterrichtsstunden Praktikum : 3 Veranst. 3 / 3 / 4 DS = 20 Unterrichtsstunden
Inhalt • Einführung • Grundlagen (Windows 2000/XP) • Anpassung der Arbeitsumgebung • Dienste & Dienste verwalten (MMC) • Verteilte Betriebssysteme • Mehrnutzerbetrieb und Benutzerverwaltung • Kommandointerpretation und Batch-Dateien • Datensicherung
Literatur Windows 2000 Professional, Eine Einführung in die PC-Benutzung Regionales Rechenzentrum für Niedersachsen / Universität Hannover http://www.rrzn.uni-hannover.de, 1. Auflage, Februar 2000 Windows 2000 Professional, Systembetreuer: Workstation Regionales Rechenzentrum für Niedersachsen / Universität Hannover http://www.rrzn.uni-hannover.de, 1. Auflage, November 2000 S. Tanenbaum Moderne Betriebssysteme. Carl Hanser u. Prentice-Hall, 1994 M. Kuppinger Microsoft Windows 2000 Server – Das Handbuch Microsoft Press Deutschland, 2000, ISBN 3-86063-133-0 P. Mandl Grundkurs Betriebssysteme Vieweg-Verlag, 2008 C. Immler Knoppix 4.0 Franzis Verlag, 2006
Einführung 1.1 Was ist ein Betriebssystem? Anwendungsprogramme Software Systemprogramme Rechnersystem (RS) = Rechenanlage (RA) + Betriebssystem (BS) Der Nutzer muss von der Komplexität der Hardware abgeschirmt werden. Dem Nutzer wird eine virtuelle Maschine (= BS) angeboten, die einfacher zu verstehen und zu programmieren ist
Sichten Top-down : Nutzung der virtuellen Maschine durch Benutzer Bottom-up : untersuchen, wie ein BS eine virtuelle Maschine realisiert Betriebsmittelverwaltung Zuteilung von Prozessoren (CPU), Speichern, I/O-Geräten für konkurrierende Programme Benutzer kommunizieren mit einem BS über eine grafische Benutzeroberfläche (GUI) Kommandos in einer einfachen Programmiersprache (Shell, Command-Tool) eine programmiersprachliche Schnittstelle: Systemaufrufe in C, BS ist selbst in C programmiert
1.2 Konzepte, Strukturen und Klassifizierung von BS 1. Generation ( vor 1955) : kein BS ! 2. Generation (1955 – 65) : jeweils 1 Programm zur Abarbeitung im HS, CPU wartet die meiste Zeit auf E/A 3. Generation (1965 – 80) : HS in Partitionen geteilt, in jeder Partition kann ein Programm abgearbeitet werden (Multiprogramming) Spooling-Technik Timesharing, Prozesskonzept, schneller online-Zugang für Terminale + „Stapeljobs“ im Hintergrund 4. Generation (1980 -90) : Netzwerk-BS, verteilte BS
Netzwerkbetriebssystem: auf jedem Rechner läuft ein eigenes Betriebssystem, die Nutzer sind sich der Existenz vieler Rechner bewusst, sie können - Zugang auf entfernte Rechner haben - Dateien von einem Rechner zu anderem kopieren „Echte“ Verteilte (Betriebs-) Systeme Das BS sieht für den Benutzer aus wie ein traditionelles Einprozessorsystem, es besteht aber aus vielen Prozessoren. Nutzer haben keine Kenntnis, wo Programme ausgeführt werden.
Grundlagen (Windows 2000/XP) 2.1 Architektur 2.2 Dateiverwaltung 2.3 Programme und Prozesse 2.4 Kommunikation zwischen Prozessen 2.5 Hauptspeicherverwaltung 2.6 Netzwerkbetrieb/Netzwerkprotokolle
Architektur (Aufbau, Struktur) von BS Monolithische Systeme Prozeduren können sich gegenseitig aufrufen (Vermittlung von Parametern und Ergebnissen). Systemaufrufe (Supervisor call, Trap-Befehl) sind vorhanden. Umschalten von Benutzermodus in Kernmodus unterstützt. Schichtenmodell Trennung der Funktionalität in Schichten und Module, die unabhängig voneinander arbeiten. Soviel Funktionalität wie möglich in höhere Schichten verlagern, übrig bleibt der Kern (kernel) . Client-Server-Modell → Windows ist eine Kombination aus Schichtenmodell und Client-Server-Modell → Entlastung des Kernels: Microkernel-Architektur
Das Client-Server-Modell (nach Tanenbaum) Das Client-Server-Modell in einem verteilten System (nach Tanenbaum)
Terminalserver • Ein Terminalserver verwaltet Terminals (d.h. Client-Arbeitsplätze) • Anwendungsprogramme laufen vollständig auf den Server-Rechnern, • Server stellen Rechenleistung zur Verfügung • Clients werden ausschließlich für Präsentationen eingesetzt • Ein Server bedient (in Abhängigkeit von seiner Leistung) mehrere Clients • Client und Server kommunizieren über spezielle Protokolle • (z.B. Remote Desktop Protocol (RDP) von Microsoft)
Typischerweise bestehen BS aus Komponenten für Prozessverwaltung Prozessmanager Speicherverwaltung Speicherverwaltung Dateiverwaltung Objekt-Manager Verwaltung der I/O-Geräte I/O-Manager Bei Windows NT 4.0 gab es im Benutzermodus ein Win32-Subsystem Der Modul wurde aufgespalten und Teile davon in den Kernel verschoben. Über das Grafical Device Interface greift der Windows Manager auf grafische Geräte zu.
Dateien 2.2 Dateiverwaltung a) eine Folge von Bytes (Beispiel UNIX) b) eine Folge von Datensätzen (Beispiel CP/M) c) ein Baum
Mit dem Konzept der Verzeichnisse (directories) bieten BS die Möglichkeit, Dateien zu gruppieren. Metapher: Verzeichnisse sind Behälter für Dateinamen Hierarchie von Dateien: eine Datei ist eine gewöhnliche Datei oder ein Verzeichnis (oder eine Gerätedatei) ein Verzeichnis enthält Dateien Jede Datei innerhalb einer Verzeichnishierarchie kann durch Angabe eines Pfadnamens benannt werden. Ein absoluter Pfadname besteht aus einer Liste von Verzeichnissen, die Ausgehend vom Wurzelverzeichnis durchlaufen werden müssen, um auf die Datei zuzugreifen. Die einzelnen Bezeichnungen werden durch ein Separatorzeichen getrennt
Benennung von Dateien: .bin ausführbares Binärprogramm .batBatch-Datei (Kommandoprozedur) .c C-Quellprogramm .comkleines ausführbares Programm .class übersetzte Java-Datei .doc Dokumentationsdatei .exe ausführbares Programm .hlp Hilfe-Datei .java Java-Quellprogramm .lib Bibliothek von Objekt-Code-Dateien, vom Linker benutzt .obj Objekt-Datei .pas Pascal-Quellprogramm .sys Gerätetreiber .txt ASCII-Textdatei .xls EXCEL-Datei
Dateien werden auf Datenträgern in Dateisystemen organisiert. Über Bereitstellungspunkt Verzeichnis eines NTFS-Datenträgers direkt mit anderem Datenträger verbinden
Dateisystem FAT 16 VFAT FAT 32 NTFS Urspung MS-DOS Windows 95 Windows 95b Windows NT Maximale Dateigröße 2 GByte 4 GByte 4 GByte 16 Exabyte Maximale Partitionsgröße 2 GByte 4 Gbyte 2 Terabyte 16 Exabyte (2 Gigabyte) Maxim. Länge der Datei- und Verzeichnisnamen 8 255 255 255 Datei- und Ver-zeichnisattribute 3 3 3 erweitert Im Bereich der Microsoft-BS werden mehrere Arten von Dateisystemen unterstützt:
Attribute von NTFS-Dateien sind: ● Attribut „schreibgeschützt“ ● Attribut „versteckt“ ● Archivattribut ● Indexattribut ● Komprimierungsattribut ● Verschlüsselungsattribut Verarbeitung von Dateien: ► Lesen, Schreiben, ► Ausführen, ► Navigieren (ein Verzeichnis zum aktuellen Verzeichnis machen) Benutzer: Subjekt Dokument: Objekt Dokument D Benutzer A Benutzer B
Zugriffskontrollmatrix O1 O2 O3 S1 rwx - - S2 - w - S3 rx - x Access Control List (ACL) In einer ACL sind ACE‘s enthalten, die einzelne Berechtigungen erteilen oder entziehen. Auswertung der ACL einer Datei: 1) negative ACE‘s (welche Berechtigungen sind entzogen?) 2) positive ACE‘s: (welche Berechtigungen sind zugelassen?) → unlogische Kombinationen werden verhindert!
Regeln: ► Beim Anlegen einer Datei bekommt diese dieselben Rechte wie der Ordner, in dem sie angelegt wird (Vererbung). ► Kopieren: Berechtigungen des Zielverzeichnisses werden angenommen ► Verschieben: Berechtigungen werden mit übertragen. aber zwischen unterschiedlichen Datenträgern: wie Kopieren. ► Besitzrechte: Besitzer eines Objektes ist der Benutzer, der das Objekt erstellt hat. Besitzrechte können nicht übertragen, sondern nur übernommen werden.
2.3 Programme und Prozesse Prozessdefinition: Wird ein Programm aufgerufen (Benutzerprogr., Kommando), wird der Programmcode in den HS geladen u. abgearbeitet. Das ablaufende Programm heißt Prozess (Task). ► In einem Multitasking-BS entscheidet das BS periodisch, einen laufenden Prozess zu unterbrechen und einen anderen Prozess zu starten (wenn die dem Prozess zustehende CPU-Zeit verbraucht ist). -> Prozessscheduling ► Wenn ein Prozess suspendiert wurde, muss er später in genau diesem Zustand wieder gestartet werden.
Prozesskenndaten ( sind in einer Prozesstabelle gespeichert ) bzgl. Prozessverwaltung bzgl. Speicherverwaltung● Prozessnummer (PID) bzgl. Dateiverwaltung● Prozessnummer des Elternprozesses (PPID) ● Benutzerkennung (UID) und Gruppenkennung (GID) ● Prozesspriorität (PRI) ● Prozesszustand (STAT) ● Kontrollterminal (TTY) ● zugeordnete Datenbereiche (Programm + Daten)● aktuelles Verzeichnis● die geöffneten Dateien● Environment (Variablen und Werte)● der Stack● der Befehlszähler● Register… Anzeige von Prozessen:
Mit Hilfe des Taskmanagers können 1) Die Systemleistung überwacht werden - Auslastung des Prozessors - Speicherauslastung 2) laufende Systemprozesse gesteuert werden 3) aktive Anwendungen beendet werden Taskmanager → Register PROZESSE → Ansicht
Prozesshierarchie: Ein Prozess kann von sich aus einen neuen Prozess erzeugen und starten. Kindprozess (child process) Elternprozess (parent process) Beim Erzeugen eines Prozesses wird mittels des Systemaufrufs fork eine Kopie des erzeugenden Prozesses erzeugt 0 1 19 20 21 128 129 130
main() { int w_status; int pid_fork; if((pid_fork = fork()) == 0) { execl("psohn","psohn",0); printf("execl gescheitert\n"); exit(1); } if(pid_fork == -1) { printf("fork gescheitert\n"); exit(2); } wait(&w_status); printf("Beendigungsgrund: %x\n",w_status & 0xff); printf("Exit-Status : %x\n",(w_status>>8) & 0xff); } pvater Anwendung, wenn kein Programm psohn existiert: ~> pvater execl gescheitert Beendigungsgrund: 0 Exit-Status : 1 Anwendung wenn ein Program psohn existiert mit: main(){ exit(4); } ~> pvater Beendigungsgrund: 0 Exit-Status : 4
Prozess-Scheduling Es gibt viele Algorithmen für konkurrierende Forderungen nach Effizienz und Fairness gegenüber einzelnen Prozessen • Ob einem Prozess CPU-Zeit zugeteilt wird, hängt ab von • Priorität des Prozesses • Platzbedarf des Prozesses • verstrichene Wartezeit des Prozesses • Regeln: • Jeder Prozess in der Systemphase hat höhere Priorität als alle Prozesse • in der Benutzerphase • die Priorität eines Prozesses in der Benutzerphase ist um so größer • je kleiner das Verhältnis • verbrauchte CPU-Zeit • insgesamt verbrauchte Zeit ist.
Round-Robin-Scheduling Wenn ein Prozess blockiert oder seine Ausführung beendet ist, bevor das Quantum abgelaufen ist, wird ihm der Prozessor entzogen. B F D G A Aktueller Prozess Nächster Prozess F D G A B
2.4 Kommunikation zwischen Prozessen • temporäre Dateien • Pipes • Signale (Unterbrechungssystem) • Shared Memory (gemeinsam genutzter Speicher) • Semaphore • Messages • Sockets IPC = Inter Process Communication
Kommunikation mittels Shared Memory : Zeitkritische Abläufe (race conditions) Kritische Bereiche Wechselseitiger Ausschluss Schlafen und Aufwecken Semaphore Monitore Zeitkritische Abläufe: Probleme bei gemeinsam genutztem Speicher (HS oder Dateien) Mehrere Prozesse lesen/schreiben gemeinsam genutzte Daten, Ergebnisse hängen Von zeitlicher Reihenfolge der Les-/Schreiboperationen ab. Beispiel: Drucker-Warteschlange
Kritische Bereiche: Die Teile von Programmen, in denen auf gemeinsam benutzten Speicher zugegriffen wird. Finden eines Verfahrens, um zu verhindern, dass zu einem Zeitpunkt mehr als ein Prozess gemeinsame Daten liest oder schreibt. Programm A Programm B Daten Kritischer Bereich Wechselseitiger Ausschluss: ● Sperren aller Unterbrechungen vor Eintritt in kritischen Bereich ● Aktives Warten mittels Sperrvariablen (0 – kein P. im KB., 1 – P. im KB. ) ● Schlafen und Aufwecken
Aktives Warten verschwendet Prozessorzeit (Warteschleife, falls Eintritt in den kritischen Bereich nicht möglich ist). „Blockieren“, wenn ein Prozess nicht in den Kritischen Bereich eintreten kann: Der Aufrufer wird suspendiert, bis er von einem anderen Prozess aufgeweckt wird. → Ereigniszählung erforderlich
Das Erzeuger-Verbraucher-Problem Puffer n = 6 Erzeuger count Verbraucher • im Zustand count=0 liest der Verbraucher count. • Verbraucher startet den Erzeuger und will sich schlafen legen. • bevor der Verbraucher sich schlafen legen kann, wird der Verbraucher-Prozess unterbrochen. • der Erzeuger wird geweckt, erhöht count (count++) und weckt den Verbraucher. • der Verbraucher schläft noch nicht, das Wecksignal bleibt wirkungslos. • der Verbraucherprozess wird fortgesetzt, der Verbraucher legt sich schlafen. • der Erzeuger füllt den Puffer und legt sich schlafen. • beide Prozesse schlafen für immer → Deadlock
Messages: Nachrichtenaustausch über eine im BS-Kern verwaltete Datenstruktur. Messages werden vom Sender-Prozess in eine Message-Queue geschrieben und vom Empfänger-Prozess dort abgeholt. Falls keine Nachricht verfügbar ist, kann der Empfänger blockieren, bis eine Nachricht eintrifft.
2.5 Hauptspeicherverwaltung Swapping : Ist nicht genügend HS zum Einlagern eines ausgewählten Prozesses vorhanden, werden andere Prozesse ausgelagert. Paging : Virtueller Speicher: Der Speicher wird in Seiten (pages) eingeteilt, es werden nur noch benötigte Teile von Prozessen ein-/ausgelagert. Der Seitenwechsel wird als Paging bezeichnet. Die Speicherverwaltungseinheit MMU (Memory Management Unit) rechnet virtuelle in reale Adressen um. → es können Programme ausgeführt werden, die größer sind als der HS.
Dynamisches Binden (Linken): übersetzen vebinden (linken) HS x.c x.o a.Out Bibliotheksprogramme Quellprogramme Objektprogramme (Zielprogramme) Ausführbares Programm (Lademodul, Executable)
Flexible Methode ist das Binden jeder Prozedur zum Zeitpunkt ihres ersten Aufrufs: = Dynamisches Binden Alle Versionen von Windows unterstützen das dynamische Binden durch ein spezielles Dateiformat : DLL (Dynamic Link Library) DLLs können Prozeduren oder Daten oder beides enthalten