Die inneren Strukturen der Betriebssystemumgebung Solaris 10
Seminar
In Stuttgart, Bern (Schweiz) und Zürich (Schweiz)
Beschreibung
-
Kursart
Seminar
-
Niveau
Anfänger
-
Ort
-
Dauer
5 Tage
Dieser Kurs vermittelt folgende Kenntnisse und Fähigkeiten: - Schrittweise Erläuterung, wie eine Sperre erzielt wird. - Erläutern der Gründe für die Prioritätsvererbung und ihre Implementierung. - Identifizieren der Schritte bei der Adressumsetzung vom virtuellen zum physischen Hauptspeicher. - Auflisten von Prozessstrukturen und Routinen für die Implementierung einer Schedu.. Gerichtet an: Der Kurs richtet sich an Programmierer, Systemingenieure, erfahrene Systemadministratoren und Supportmitarbeiter.
Standorte und Zeitplan
Lage
Beginn
Beginn
Beginn
Beginn
Hinweise zu diesem Kurs
Um diesen Kurs erfolgreich absolvieren zu können, sollten Sie über folgende Vorkenntnisse verfügen:
- Lesen von C-Programmen und Erläutern der Bedeutung von "a = (struct foo *) b" und "int func(int)".
- Kenntnis und Erläutern der Konzepte von Zeigern (Pointer), Strukturen, Vereinigungen (Union), Verknüpfungslisten, Hashing und binären Strukturen.
Meinungen
Inhalte
Dieser Kurs vermittelt folgende Kenntnisse und Fähigkeiten:
- Schrittweise Erläuterung, wie eine Sperre erzielt wird
- Erläutern der Gründe für die Prioritätsvererbung und ihre Implementierung
- Identifizieren der Schritte bei der Adressumsetzung vom virtuellen zum physischen Hauptspeicher
- Auflisten von Prozessstrukturen und Routinen für die Implementierung einer Scheduling-Klasse
- Auflisten von Prozessstrukturen für die Implementierung mehrerer Scheduling-Klassen und der Felder in den Timesharing- und Echtzeit-Dispatch-Parametertabellen
- Darstellen der Paging- und Swap-Algorithmen für die Verwaltung des physischen Hauptspeichers als Cache-Speicher
- Beschreiben der Prozesserstellung, -ausführung und -beendigung
- Darstellen des Kernel-Thread-Scheduling und der Präemption
- Einsetzen von kmdb, mdb und DTrace zum Lokalisieren und Anzeigen der Systemstrukturen für eine offene Datei in einem vorgegebenen Prozess, zum Beispiel Dateideskriptor, Dateistruktur, vnode-Struktur, Inode-Struktur, Seitenstruktur und Superblock
- Beschreiben der Platzierungsstrategien des UNIX®-Dateisystems (UFS) für die Anordnung von Inodes und Datenblöcken
Teilnehmerkreis
Der Kurs richtet sich an Programmierer, Systemingenieure, erfahrene Systemadministratoren und Supportmitarbeiter.
Voraussetzungen
Um diesen Kurs erfolgreich absolvieren zu können, sollten Sie über folgende Vorkenntnisse verfügen:
- Lesen von C-Programmen und Erläutern der Bedeutung von "a = (struct foo *) b" und "int func(int)".
- Kenntnis und Erläutern der Konzepte von Zeigern (Pointer), Strukturen, Vereinigungen (Union), Verknüpfungslisten, Hashing und binären Strukturen.
Überblick über den Inhalt des Trainings
Dieser Kurs vermittelt den Teilnehmern Kenntnisse über die
verschiedenen Kernel-Subsysteme, Routinen und Strukturen, die das
Betriebssystem Solaris 10 bilden. Die Teilnehmer werden mithilfe von
Solaris Dynamic Tracing (DTrace) schrittweise das Erstellen, Ausführen,
die Signalübermittlung sowie die Zeitplanung von Prozessen durchlaufen,
wobei Beobachtungen mit dem über OpenSolaris verfügbaren Code in
Beziehung gesetzt werden. In den praktischen Übungen kommen die Befehle
dtrace, kmdb und mdb für die Untersuchung der Systemstrukturen auf
Live-Systemen intensiv zum Einsatz. Darüber hinaus wird in den Übungen
anhand des OpenSolaris-Internetzugriffs die Funktionsweise des
Betriebssystems dargestellt. Zu den behandelten Kernel-Subsystemen
gehören die Multithread-Architektur, virtuelle Speicher, Zeitplanung,
Prozesslebensdauer, Signalverwaltung, die vnode-Schicht und
Dateisysteme wie UFS, ZFS und swapfs.
Einführung in das Betriebssystem Solaris 10
- Darlegen von Sinn und Zweck des Betriebssystems, Erläutern der Konzepts der Kernel-Schichten.
- Erläutern und grafisches Darstellen der Segmente, die den Prozessadressraum bilden.
- Erläutern des Trap-Mechanismus.
- Unterscheidung zwischen Hardware- und Software-Interrupts.
- Auflisten der neuen Leistungsmerkmale in den jüngsten Versionen von Solaris 10
- Einführung in die Verwendung von Tools wie mdb, kmdb und DTrace zum Untersuchen von Kernel-Datenstrukturen.
- Einführung in die Verwendung von http://cvs.opensolaris.org/source/ zum Untersuchen des Quellcodes.
Multithread-Architektur
- Erläutern des Unterschieds zwischen symmetrischem Multiprocessing (SMP) und asymmetrischem Multiprocessing (ASMP)
- Definieren von Anwendungs- und Kernel-Threads
- Definieren von LWP (Lightweight Process)
- Erläutern des Unterschieds zwischen Thread und LWP
- Auflisten der Strukturen, die den Status eines Kernel-Thread, LWP bzw. Prozesses beschreiben
- Erläutern der Funktionsweise einer Mutex-Sperre
- Definieren von Bedingungsvariablen
- Beschreiben der Implementierung von Zähl-Semaphoren
- Erläutern der Funktionsweise einer Sperre, die mehrmaliges Lesen, aber nur einmaliges Schreiben erlaubt
- Erläutern der Vorzüge von mehreren LWPs für einen vorgegebenen Prozess
Hardwarespeichermanagement
- Beschreiben, wie die MMU-Tabellen für die Umsetzung von virtuellen in physische Adressen verwendet werden.
- Auflisten der Unterschiede zwischen der x86/x64-MMU (Memory Management Unit) und der SFMMU (SPARC-Referenz-MMU).
- Beschreiben der in Sun-Systemen implementierten Cache-Typen
- Erläutern des Zwecks der HAT-Schicht (Hardware Address Translation, Hardwareadressumsetzung).
Softwarespeichermanagement
- Auflisten der Schichten im VM-System (Virtual Memory, virtueller
Speicher) von SunOS 5.x und Definieren der Funktion jeder einzelnen
Schicht - Auflisten der Mapping-Strukturen, die einen Prozessadressraum bilden
- Lokalisieren der Seitenstrukturen und Prozessadressraumstrukturen
in mdb oder dtrace und Identifizieren der Felder in diesen Strukturen - Erläutern, wie ein Anwendungsprogrammierer mithilfe von
Systemaufrufen für Speicher-Mapping und Speichersteuerung eine
effektive Prozessspeicherverwaltung erzielen kann
Paging und Swapping
- Erläutern des Schichtenprinzips bei der Seitenfehlerbehandlung
- Auflisten der Bedingungen, unter denen der Paging-Dämon läuft
- Auflisten der Funktionen des Paging-Dämons
- Auflisten der Bedingungen, unter denen der Swapper läuft
Das Dateisystem swapfs
- Auflisten der Schwachpunkte beim Swap-Management von SunOS 4.x.
- Beschreiben der Änderungen an der Anonymous-Memory-Schicht, um die Implementierung des Dateisystems swapfs zu ermöglichen
- Auflisten von zwei Vorteilen, die das Dateisystem swapfs in SunOS 5.x mit sich bringt.
Zeitplanung
- Auflisten von mindestens zwei Haupthindernissen für die
Echtzeitverarbeitung in herkömmlichen UNIX-Architekturen, zum Beispiel
dem System V Release 3 (SVR3), der 4.3 BSD-Version (Berkeley Software
Distribution) von UNIX und der SunOS 4.x-Software - Erläutern der Unterschiede zwischen einem vollständig
unterbrechbaren (fully preemptable) Kernel und einem Kernel mit
Präemptionspunkten (Unterbrechungspunkten) - Angeben einer Routine, mit der sich ein Thread in eine Dispatch-Warteschlange einreihen lässt
- Beschreiben, wann ein Thread an den Anfang einer Dispatch-Warteschlange gestellt wird
- Beschreiben der Reihenfolge, in der die Sleep-Warteschlangen angeordnet sind
- Definieren von Präemption auf Benutzerebene
- Definieren von Präemption auf Kernel-Ebene
- Definieren der deterministischen Dispatch-Antwort (Dispatch-Latenz)
- Definieren von Prioritätsumkehrung
Prozesslebensdauer
- Erläutern der Unterschiede zwischen den zum Erstellen eines neuen Prozesses verwendeten Systemaufrufe.
- Beschreiben der Kernel-Routinen zur Implementierung der Prozesserstellung
- Auflisten der unterschiedlichen Typen ausführbarer Dateien, die in Solaris 10 unterstützt werden
- Erläutern der Routinen zur Implementierung ausführbarer Dateien im ELF-Format (Executable and Linking Format)
- Auflisten der Vorzüge des ELF-Formats
- Beschreiben der Aktionen eines Prozesses bei der Beendigung
- Erläutern des Systemaufrufs waitid(2) und seiner Implementierung
Signale
- Auflisten der unterschiedlichen Typen von Signalen, die an einen Prozess oder Thread übergeben werden können
- Erläutern der Unterschiede zwischen einem Trap-Signal und einem Unterbrechungssignal
- Auflisten der Routinen zum Signalmanagement und Beschreiben ihrer Funktionen
- Beschreiben der Signalfunktion und der Art und Weise, wie ein Signal übergeben wird
Dateisysteme
- Beschreiben der vnode-Schnittstellenschicht in Bezug auf ein Dateisystem
- Auflisten der vier Felder in einem Verzeichniseintrag
- Erläutern der Vorzüge des 4.3 BSD-Dateisystems
- Beschreiben der Funktion von Superblock- und Zylindergruppenstrukturen
- Auflisten der Felder in der Inode-Struktur der Festplatte und Erläutern ihrer Einsatzweise
- Benennen der Routinen, die bei der Bestimmung der globalen Platzierungsstrategien benutzt werden
- Erläutern der Zuordnungsroutinen unter Verwendung von
Flussdiagrammen und Beschreiben, wie sich die Fragmente schnell
lokalisieren lassen
Kurssprache deutsch, Unterrichtsmaterial überwiegend in englischer Sprache.
Die inneren Strukturen der Betriebssystemumgebung Solaris 10