Unix: Systemarchitektur und Programmierung - Brossura

Hieronymus, Andreas

 
9783528052836: Unix: Systemarchitektur und Programmierung

Sinossi

UNIX - sicherlich eines der Schlagworter auf dem heutigen Computer- markt. UNIX hat sich zu einem der wichtigsten Betriebssysteme am Markt entwickelt. Implementationen sind auf allen Rechnerplattformen vom PC bis hin zu GroBrechnern verfugbar. AIle namhaften Hersteller von Computern haben einen Schwerpunkt in ihrem Produktspektrum bei Rechnern, auf denen UNIX-Systeme lau- fen. Direkt verbunden mit dem kometenhaften Aufstieg von UNIX war die Verbreitung der Programmiersprache C. Ein Grund dafiir war sicher- lich, daB der Quellcode von UNIX zu 97% in C geschrieben war, was es Herstellern von Rechnern sehr einfach ermoglichte, UNIX auf ihre eigene Hardware zu portieren. Sie muBten nur die rest lichen 3% Assem- blercode auf die Gegebenheiten ihrer Hardware anpassen und konnten mit Hilfe eines C-Compilers UNIX Stuck fiir Stuck auf ihren Rechnern zum Laufen bringen. Diese allgemeine Verfugbarkeit fiihrte dazu, daB jeder Hersteller UNIX fur seine Computer portierte, weiterentwickelte und um eigene Featu- res erweiterte. Damit konnte man nicht mehr von dem UNIX sprechen, sondern es gab eine Vielzahl von UNIX-Varianten, die zum Teil so un- terschiedlich waren, daB fUr jedes System eine Hingere Einarbeitungszeit notwendig war, obwohl es sich um ein UNIX-System handelte. Heutzutage gibt es zwei UNIX-Varianten, die sich den groBten Teil des UNIX-Marktes teilen. Diessind 4.3 BSD UNIX, das an der Universitat von Berkeley in Kalifornien entwickelt wurde, und UNIX System V Release 4, welches von der amerikanischen Telefongesellschaft AT&T lizenziert wird. Beide Systeme bilden den Schwerpunkt in diesem Buch.

Le informazioni nella sezione "Riassunto" possono far riferimento a edizioni diverse di questo titolo.

Contenuti

1 Standardbibliothek.- 1.1 Aufbau des UNIX-Manuals.- 1.2 Ein- und Ausgabe von Daten.- 1.2.1 Definition von Streams.- 1.2.2 Aufbau der I/O-Routinen.- 1.2.3 Die Makros putc ― getc.- 1.2.4 Weitere Funktionen für Streams.- 1.3 Dynamische Speicherverwaltung.- 1.3.1 Aufbau einer ausführbaren Datei.- 1.3.2 brk und sbrk.- 1.3.3 malloc und free.- 1.3.4 Die Prozeduren der malloc-Familie.- 2 Das UNIX-Filesystem.- 2.1 Abstraktionsstufen des Filesystems.- 2.2 Interne Darstellung von Files.- 2.2.1 Index Nodes (Inodes).- 2.2.2 Datei ? Inode.- 2.2.3 Verzeichnisse.- 2.2.3.1 Verzeichnisse unter System V UNIX.- 2.2.3.2 Verzeichnisse unter 4.3 BSD UNIX.- 2.2.3.3 Aufbau eines Verzeichnisbaums.- 2.2.4 Links.- 2.2.5 Layout eines Filesystems.- 2.2.6 Vom Dateideskriptor bis zum Inode.- 2.2.7 Algorithmen des Filesystems.- 2.2.7.1 Die Funktionen iput und iget.- 2.2.7.2 Die Funktion bmap.- 2.2.7.3 Vom Filenamen zum Inode―namei.- 2.2.7.4 ialloc und ifree.- 2.2.7.5 alloc und free.- 2.2.8 Sonstige Dateitypen.- 2.3 Der buffer cache.- 2.3.1 Aufbau eines Puffers.- 2.3.2 Organisation des buffer cache.- 2.3.3 Auffinden eines Puffers.- 2.3.4 Lesen und Schreiben von Plattenblöcken.- 2.3.5 Vorteile und Nachteile des buffer cache.- 2.4 Systemaufrufe für das Filesystem.- 2.4.1 Öffnen einer Datei―open.- 2.4.2 Anlegen einer Datei―creat.- 2.4.3 Lesen einer Datei―read.- 2.4.4 Schreiben in eine Datei―write.- 2.4.5 Schließen einer Datei―close.- 2.4.6 Die Systemaufrufe stat und fstat.- 2.4.7 Die Systemaufrufe mknod und pipe.- 2.4.8 dup―Verdopplung eines Filedeskriptors.- 2.4.9 Die Systemaufrufe link und unlink.- 2.4.10 Weitere Systemaufrufe für das Filesystem.- 2.5 Filesystem Wartung.- 3 Das Prozeßsystem.- 3.1 Einführung.- 3.1.1 Der Kontext eines Prozesses.- 3.2 Kerndienste.- 3.2.1 Die Laufzeitstruktur des Kerns.- 3.2.2 Systemaktivitäten.- 3.2.3 Zutritt zum Kern.- 3.2.4 Austritt eines Prozesses aus dem Kern.- 3.2.5 Systemaufrufe.- 3.2.6 Traps.- 3.2.7 Hardware Interrupts.- 3.2.8 Software Interrupts.- 3.2.9 Clock Interrupts.- 3.2.9.1 Hardclock.- 3.2.9.2 Softclock.- 3.2.10 Timing.- 3.2.11 Benutzer- und Gruppennummer; S-Bits.- 3.2.12 Sonstige Kerndienste.- 3.3 Der Aufbau eines Prozesses.- 3.4 Systemprozesse.- 3.5 Prozeßmanagement.- 3.5.1 Prozeßstatus.- 3.5.1.1 Proc-Struktur.- 3.5.1.2 User-Struktur.- 3.6 Kontextwechsel.- 3.6.1 Kontextwechsel auf niedriger Systemebene.- 3.6.2 Freiwilliger Kontextwechsel.- 3.6.3 Kontextwechsel innerhalb eines Prozesses.- 3.6.4 Synchronisation.- 3.6.5 Prozeßscheduling.- 3.6.6 Der Prozeßscheduler.- 3.6.6.1 Berechnung der Prozeßpriorität.- 3.6.7 Prozeßlisten und Kontextwechsel.- 3.7 Der Lebenszyklus eines Prozesses.- 3.7.1 Das Erzeugen eines Prozesses.- 3.7.2 Das Terminieren eines Prozesses.- 3.8 Signale.- 3.8.1 Senden eines Signals.- 3.8.2 Bedienen eines Signals.- 4 Speichermanagement.- 4.1 Speicherhierarchie.- 4.2 Begriffe.- 4.3 Swapping.- 4.3.1 Verwaltung des Hintergrundspeichers.- 4.3.2 Das Auslagern von Prozessen.- 4.3.2.1 Swapout.- 4.3.2.2 Auslagern des Textsegments.- 4.3.3 Einlagern von Prozessen.- 4.4 Paging.- 4.4.1 Übersetzung virtueller Adressen.- 4.4.2 Die Seitentabelle und deren Einträge.- 4.4.3 Bewertung der Seitenauswahlstrategie.- 4.4.4 Demand Paging.- 4.4.4.1 Fill-on-demand Seiten.- 4.4.4.2 Einlagern von Seiten.- 4.4.5 Strategie des Seitenersatzes.- 4.4.5.1 Globaler CLOCK-Algorithmus.- 4.4.5.2 Verbesserter CLOCK-Algorithmus.- 4.4.5.3 Der Pagedaemon.- 4.4.5.4 Pageout-Algorithmus.- 4.5 Prozeßerzeugung.- 4.5.1 fork.- 4.5.1.1 Duplizieren der Verwaltungsstrukturen eines Prozesses.- 4.5.1.2 Duplizieren des virtuellen Adreßraums.- 4.5.1.3 Implementation der Prozeßerzeugung.- 4.6 Ausführen eines Programms.- 4.6.1 Besondere Behandlung der Textsegmente.- 4.7 Termination eines Prozesses.- A Beispielprogramme.- A.1 malloc―free.- A.2 Auslesen der Prozeßtabelle.- A.3 Auslesen der User-Struktur.- B Glossar.- Stichwortverzeichnis.

Le informazioni nella sezione "Su questo libro" possono far riferimento a edizioni diverse di questo titolo.