Eduard Glatz. Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung. rj dpunkt.verlag

Ähnliche Dokumente
2 Grundlagen der Programmausführung und Systemprogrammierung 19

Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung. von Eduard Glatz. 2., aktualisierte und überarbeitete Auflage. dpunkt.

1 Einführung 1. 2 Programmausführung und Hardware 25

Grundkurs Betriebssysteme

Inhaltsverzeichnis XII

Betriebssysteme R. Thomas (Stand : SS 2010)

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Grundkurs Betriebssysteme

Inhaltsverzeichnis Übersicht Prozesse

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme Teil 11: Interprozess-Kommunikation

Betriebssysteme WS Betriebssysteme. Prof. Hannelore Frank. Einführung. Prozesse und Threads. Scheduling. Synchronisation

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Maren Bennewitz

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Was sind dpunkt.ebooks? Was darf ich mit dem dpunkt.ebook tun? Wie kann ich dpunkt.ebooks kaufen und bezahlen? Wie erhalte ich das dpunkt.ebook?

Willkommen zur. VO Betriebssysteme. Peter Puschner. Peter Puschner 1

Willkommen zur. VO Betriebssysteme. Peter Puschner. Institut für Technische Informatik. Peter Puschner 1

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Blätter zur Vorlesung Sommersemester Betriebssysteme. Prof. Dr. P. Schulthess Dr. M. Schöttner & al.

Rüdiger Brause. Betriebssysteme. Grundlagen und Konzepte. Dritte, überarbeitete Auflage Mit 170 Abbildungen. Springer

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Bernd Bleßmann, Jörg Bleßmann. Linux. Aufbau und Einsatz eines Betriebssystems. 1. Auflage. HLuHB Darmstadt. Bestellnummer Bildungsverlag EINS

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

William Stallings. Betriebssysteme. Prinzipien und Umsetzung. 4., überarbeitete Auflage. Pearson Studium

D Einführung Betriebssysteme

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Überblick und Aufgaben

Teil 3: Konzepte von Betriebssystemen

EINFÜHRUNG IN LINUX DR. MATTHIAS M. HÖLZL

1.1 Zweck. Betriebssysteme. Was leistet ein Betriebssystem? -> Zwei Grundfunktionen:

Einführung in die Informatik

Parallele und verteilte Anwendungen in Java

Überlegungen beim Entwurf eines Betriebssystems

1.3 Architektur von Betriebssystemen

Rechnernutzung in der Physik. Betriebssysteme

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur

Vorlesung Betriebssysteme Hochschule Niederrhein, Prof. Pohle-Fröhlich, SS 2015

Prüfung WS 1997/98. Studiengang: Informatik Fächergruppe: Software (I4) Tag: Bearbeitungszeit: 4 Stunden. Name:... Matr.Nr.:...

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

Betriebssysteme. FU Berlin SS 2003 Klaus-Peter Löhr

OS/2 System- und Netzwerkprogrammierung

1 Ab welchen Zeitpunkt kann man Thrashing bei einem PC beobachten? 2 Auf was muss man beim gleichzeitigen Datenzugriff mehrerer Prozesse beachten?

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Betriebssysteme Kap A: Grundlagen

Steffen Heinzl Markus Mathes. Middleware in Java

Verteilte Betriebssysteme

Betriebssysteme. VO Betriebssysteme

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Echtzeit-Multitasking

Echtzeit-Multitasking

I Grundlagen der parallelen Programmierung 1

NEBEN - LÄUFIGE PROG RAM -

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Moderne Betriebssysteme

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Einführung Betriebssysteme

Betriebssysteme. FU Berlin WS 2004/05 Klaus-Peter Löhr. bs-1.1 1

Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung. von Eduard Glatz. 1. Auflage

Grundkurs Betriebssysteme

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection

Betriebssysteme Vorlesung im Herbstsemester 2008 Universität Mannheim

Betriebssysteme I. Hochschule München Fakultät für Informatik und Mathematik Sommersemester Hans-Georg Eßer

Patagonia - Ein Mehrbenutzer-Cluster für Forschung und Lehre

Abstrakte Schnittstelle

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Programmieren von UNIX-Netzen

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Leichtgewichtsprozesse

Betriebssysteme. Kommunikation von Prozessen und Threads. Sommersemester Prof. Dr. Peter Mandl. Seite 1. Prof. Dr. Peter Mandl.

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme

Lehrplan IFG. Mediamatiker_ab_ Allgemeine Bildungsziele In eigener Regie Arbeitsplatzsysteme aufsetzen

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner

Inhaltsverzeichnis VII. Teil I: PC- und Mikrocomputer-Technik

1.0 Ein Blick zurück - Wie es angefangen hat 2.0 Die z/architektur und die zseries 3.0 Die I/O-Architektur der zseries

Kommunikationsmodelle

Musterlösung Prüfung WS 01/02

Parallele und verteilte Programmierung

Einführung FAT - File Allocation Table NTFS - New Technology Filesystem HFS - Hierachical Filesystem ext - Extended Filesystem Zusammenfassung

FUSE Dateisysteme. Eine schriftliche Ausarbeitung von Jens Spiekermann im Rahmen des Proseminars "Speicher- und Dateisysteme"

Betriebssysteme. Speicherverwaltung - Grundlegende Konzepte. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

Kapitel 2. Betriebssysteme

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Übung I Echtzeitbetriebssysteme

Transkript:

Eduard Glatz Betriebssysteme Grundlagen, Konzepte, Systemprogrammierung rj dpunkt.verlag

InhaItsverzeichnis 1 Einführung 1 1.1 Zweck 1 1.2 Definitionen............................................ 3 1.3 Einordnung im Computersystem 4 104 Betriebssystemarten 6 104.1 Klassische Einteilungen 6 1.5 Betriebssystemarchitekturen................................ 7 1.5.1 Architekturformen 7 1.5.2 Benutzer-lKernmodus.............................. 8 1.5.3 Monolithische Systeme 10 1.504 Geschichtete Systeme.............................. 10 1.5.5 Mikrokernsysteme................................ 11 1.5.6 Beispiele von Systemarchitekturen.................... 12 1.5.7 Abstraktionen aus Benutzer- und Entwicklersicht........ 14 2 Grundlagen der Programmausführung und Systemprogrammierung 19 2.1 Programmausführung und Hardware........................ 19 2.1.1 Rechner- und Prozessorgrundlagen................... 21 2.1.2 Grundlagen des Adressraums 30 2.1.3 Grundlagen der Programmausführung 40 2.1.4 Unterprogrammmechanismen 48 2.2 Systemprogrammierung 61 2.2.1 Wahl der Systemprogrammiersprache................. 61 2.2.2 Laufzeitsystem der Programmiersprache............... 62 2.2.3 Unterprogrammtechniken 63 2.204 Grundlagen der Systemprogrammierung............... 64 2.2.5 Systemprogrammierschnittstellen 82

3 Prozesse und Threads 89 3.1 Parallelverarbeitung 89 3.1.1 Darstellnng von parallelen Abläufen 89 3.1.2 Hardware-Parallelität 90 3.1.3 Software-Parallelität 91 3.1.4 Begriffe......................................... 91 3.2 Prozessmodell 94 3.2.1 Grnndprinzip 94 3.2.2 Prozesserzengung und Terminierung 98 3.2.3 Prozesse unter Unix 101 3.2.4 Funktionsweise der Unix-Shell 108 3.2.5 Prozesse & Jobs unter Windows 111 3.2.6 Vererbung unter Prozessen 114 3.2.7 Prozesshierarchie 114 3.2.8 Systemstart 114 3.3 Threads 119 3.3.1 Thread-Modell 119 3.3.2 Vergleich Prozesse zu Threads 120 3.3.3 1mplementiernug des Multithreading 122 3.3.4 Threads & Fibers unter Windows 127 3.3.5 Threads unter Unix 133 3.4 Prozessorzuteilungsstrategien 136 3.4.1 Quasiparallelität im Einprozessorsystem 136 3.4.2 Prozess- und Thread-Zustände 137 3.4.3 Zuteilungsstrategien 142 3.4.4 Multiprozessor-Schednling 155 3.4.5 POS1X-Thread-Schednling 157 3.4.6 Java-Thread-Scheduling 159 3.4.7 Scheduling unter Windows " 161 3.4.8 Scheduling unter Unix 167 4 Synchronisation von Prozessen & Threads 173 4.1 Synchronisationsbedarfe und Lösungsansätze 173 4.1.1 Problem der Ressourcenteilung 173 4.1.2 Verlorene Aktualisiernng (lost update problem) 174 4.1.3 1nkonsistente Abfrage (inconsistent read) 176 4.1.4 Absichernng mit Selbstverwaltung 177 4.1.5 Absichernng mit Systemmitteln 178

4.2 4.3 4.4 4.5 4.6 Semaphore. 4.2.1 Semaphortypen. 4.2.2 Implementierungsfragen. Anwendung der Semaphore. 4.3.1 Absicherung kritischer Bereiche (mutual exclusion). 4.3.2 Synchronisation von Abläufen (barrier synchronization). 4.3.3 Produzenten & Konsumenten (producer and consumer). 4.3.4 4.3.5 4.3.6 Leser & Schreiber (readers and writers). Problem der Prioritätsumkehrung (priority inversion). Weitere Anwendungsprobleme. Implementierungen von Semaphoren. 4.4.1 Semaphore unter Unix. 4.4.2 Semaphore unter Windows. Unix-Signale. 4.5.1 Idee & Grundprinzip der Unix-Signale. 4.5.2 Programmierung der Signale. 4.5.3 Signale im Multithreading. 4.5.4 Realtime-Signale. Verklemmungsproblematik (deadlocks). 4.6.1 Ursache. 4.6.2 Deadlock-Bedingungen. 4.6.3 Lösungsansätze und ihre Beurreilung. 178 180 180 182 182 184 186 189 195 197 197 198 203 214 214 217 223 225 225 225 229 230 5 5.1 Kommunikation von Prozessen & Threads Überblick über Synchronisation und Kommunikation 5.2 Nachrichtenbasierte Verfahren 241 5.2.1 Allgemeine Aspekte 241 5.2.2 Unix-Pipes..................................... 247 5.2.3 Windows-Pipes................................. 256 5.2.4 Unix Message Queues............................ 263 5.2.5 Windows-Messages 267 5.2.6 Windows-Mailslots 269 5.3 Speicherbasierte Verfahren............................... 272 5.3.1 Gemeinsamer Speicher unter Windows 273 5.3.2 Gemeinsamer Speicher unter Unix................... 275 239 239

5.4 5.5 5.6 Monitor. 5.4.1 Grundprinzip " ". 5.4.2 Java-Monitor. 5.4.3 Monitornachbildung mit Bedingungsvariablen. Rendezvous. 5.5.1 Grundprinzip. 5.5.2 Synchronisation in Client/Server-Systemen (barber shop). Rechnerübergreifende Interprozesskommunikation. 5.6.1 Netzwerksoftware. 5.6.2 Berkeley-Sockets. 5.6.3 Remote Procedure Call (RPC). 5.6.4 Überblick über Middleware. 277 277 281 282 288 288 289 291 291 293 302 308 6 6.1 6.2 6.3 6.4 Ein- und Ausgabe Peripherie. 6.1.1 Einordnung im Rechnermodell " ". 6.1.2 Begriffsdefinitionen. Ein-/Ausgabeabläufe. 6.2.1 Programmgesteuerte Ein-/Ausgabe. 6.2.2 Ein-/Ausgabe mittels Programmunterbrechungen. 6.2.3 Ein-/Ausgabe mittels OMA. 6.2.4 Ein-/Ausgabearten im Vergleich. Ein-/Ausgabesystem. 6.3.1 Treiber. 6.3.2 Geräteverwaltung. 6.3.3 Treiberschnittstelle. 6.3.4 Ein-/Ausgabeschnittstelle. 6.3.5 Ein-/Ausgabepufferung. 6.3.6 Treibermodell in Linux. 6.3.7 Treibermodelle in Windows (WOM & WOF). Massenspeicher. 6.4.1 Verfahren der Oatenaufzeichnung. 6.4.2 Wichtigste Massenspeicher. 6.4.3 Eigenschaften von Plattenspeichern. 6.4.4 Zugriffsplanung für Plattenspeicher (disk l/o scheduling). 6.4.5 Pufferung von Plattendaten (disk cache). 311 311 311 312 312 313 314 321 325 326 326 327 328 329 333 334 341 346 347 350 350 353 357

6.5 Benutzerinteraktion aus Systemsicht (Benutzeroberflächen) 359 6.5.1 Allgemeines.................................... 359 6.5.2 Systemarchitekturen 361 6.5.3 Programmiermodelle............................. 366 6.5.4 Die Unix-Shell als Kommandointerpreter 368 6.5.5 funktionsweise & Programmierung des X-Window-Systems 370 6.5.6 Funktionsweise und Programmierung des Windows-GUI.................................. 383 7 7.1 7.2 7.3 7.4 7.5 Speicherverwaltung Speichersystem. 7.1.1 Einordnung im Rechnermodell. 7.1.2 Grundlegende Speicherprinzipien. 7.1.3 Speicherhierarchie & Lokalitätsprinzip. 7.1.4 Cache-Funktionsweise. Verwaltungsgrundlagen. 7.2.1 Abstraktionen mittels Abbildungsfunktionen. 7.2.2 Aufgaben der Systemsoftware. 7.2.3 Dynamische Speicherbereitstellung. Verwaltung von Prozessadressräumen. 7.3.1 Adressraumnutzung durch Programme. 7.3.2 Adressraumverwaltung durch das Betriebssystem. Realer Speicher. 7.4.1 Monoprogrammierung. 7.4.2 Multiprogrammierung mit Partitionen. 7.4.3 Verfahren für knappen Speicher. Virtueller Speicher. 7.5.1 Adressumsetzung. 7.5.2 Seitenwechselverfahren (demand paging). 7.5.3 Speicherabgebildete Dateien. 7.5.4 Gemeinsamer Speicher (shared memory). 401 402 402 403 407 411 416 417 421 423 443 443 446 448 449 449 453 457 459 471 499 500

8 Dateisysteme 503 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9 Aufgaben des Dateisystems Dateisystemkonzepte. 8.2.1 Logische Organisation. 8.2.2 Dateisystemfunktionen. 8.2.3 Gemeinsame Dateinutzung. 8.2.4 Speicherabgebildete Dateien. Realisierung von Dateisystemen. 8.3.1 Konzeptionelles Modell. 8.3.2 Blockspeichet als Grundlage. 8.3.3 Organisationsprinzipien. UFS - traditionelles Unix-Dateisystem. FAT- traditionelles Windows-Dateisystem. 8.5.1 Struktur der Gesamtplatte. 8.5.2 Aufbau der Belegungstabelle (FAT). 8.5.3 Verzeichnisdaten. 8.5.4 Lange Dateinamen (VFAT). NTFS - modernes Windows-Dateisystem. Netzwerkdateisysteme. 8.7.1 Logische Sicht. 8.7.2 Implementierung. 8.7.3 NFS - Network File System in Unix. 8.7.4 5MB - Netzwerkdateisystem in Windows. Spezielle Dateisystemtechnologien. 8.8.1 Protokollierende Dateisysteme. Festplattenpartitionierung. 8.9.1 Anwendungsbereiche. 8.9.2 Festplattenpartitionierung der pe-systeme. Programmentwicklung 503 504 504 515 532 537 537 537 538 539 545 549 550 551 552 554 555 559 559 560 563 565 566 566 567 567 568 573 9.1 Software-Entwicklungswerkzeuge. 573 9.1.1 Ablauf der Programmübersetzung. 574 9.1.2 Darstellung von Übersetzungsvorgängen mittels T-Notation 578 9.1.3 Automatisierte Übersetzung 581 9.1.4 Versionenkontrolle " 583 I

9.2 Adressraumbelegung und Relokation....................... 585 9.2.1 Storage Class................................... 585 9.2.2 Programmorganisation in Sektionen 586 9.2.3 Relokation von Programmen....................... 587 9.3 Programmbibliotheken.................................. 594 9.3.1 Grundlagen und Begriffe 594 9.3.2 Programmbibliotheken unter Unix 596 9.3.3 Programmbibliotheken unter Windows............... 600 9.4 Skriptprogrammierung unter Unix......................... 605 9.4.1 Anwendungsbereiche 605 9.4.2 Die Shell als Programminterpreter................... 607 9.4.3 Portabilität und Kompatibilität..................... 607 9.4.4 Erstellung von Skriptprogrammen................... 608 9.4.5 Elemente der Skriptsprache........................ 608 9.4.6 Shell-Befehle................................... 609 9.4.7 Shell-Variablen 611 9.4.8 Metazeichen 615 9.4.9 Synonyme und Funktionen 617 9.4.10 Bedingte Tests (condirional tests) 618 9.4.11 Arithmetik 621 9.4.12 Kontrollstrukturen für Skripte...................... 621 10 Sicherheit 627 10.1 Schutzziele 627 10.2 Autorisierung und Zugriffskontrolle........................ 628 10.2.1 Grundlagen und Begriffe 629 10.2.2 Schutzdomänenkonzept 631 10.2.3 Schutzstrategien 639 10.3 Hochsichere Betriebssysteme 641 10.4 Sicherheit unter Unix 642 10.5 Sicherheit unter Windows................................ 646

11 Spezielle Technologien 649 11.1 Multiprozessorsysteme 649 11.1.1 Einprozessorsysteme 650 11.1.2 Multiprozessorsysteme (Klassifikation nach Flynn) 652 11.1.3 Rechenleistung paralleler Prozessoren (Amdahl's Law) 655 11.1.4 Strukturen von Multiprozessorsystemen............... 658 11.1.5 Leistungsbewertung von Computern 664 11.2 Handheld-Computing 665 11.2.1 Allgemeines 666 11.2.2 Spezielle Anforderungen an das Betriebssystem 667 11.2.3 Palm OS 669 11.2.4 WindowsCE 674 11.2.5 Embedded Linux 678 11.2.6 Symbian OS 679 11.3 Virtualisierungskonzepte und ihre Anwendung 684 11.3.1 Anwendungsbereiche 684 11.3.2 Virtuelle Prozessoren 684 11.3.3 Virtuelle Prozessumgebungen 685 11.3.4 Virtuelle Ressourcen 685 11.3.5 Virtuelle Computer (Stufe Computerhardware) 685 11.3.6 Virtuelle Sekundärspeicher (storage virtualization) 689 11.3.7 Virtuelle Netzwerke (network virtualization) 689 A Anhang 691 A.l Maßeinheiten und Darstellungen 691 A.1.1 Maßeinheiten in der Informatik 691 A.1.2 Darstellung von Bitmustern 692 A.1.3 Oktal- und Hexadezimalzahlen 692 A.1.4 Kennzeichnung der Zahlensysteme 693 A.1.5 Rechnerinterne ZahlendarsteIlungen 693 A.1.6 Textzeichensätze 697 A.2 Instruktionssatz der Intel ia32-prozessoren 702 Literaturhinweise Index 707 709