Systemprogrammierung

Ähnliche Dokumente
Matrix-Matrix Multiplikation Problemskizze. Überblick. Verschiedenheit zwischen Quell- und Zielsprache

Assembler - Einleitung

Übung 1 - Betriebssysteme I

U23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides

Assembler Unterprogramme

Betriebssystemtechnik

Betriebssystemtechnik

c wosch BST (SS 2015, VL 2) Rekapitulation 2 1 Gegebenenfalls teilinterpretiert sich das Betriebssystem selbst partiell!

2. Aufgabenblatt Musterlösung

Echtzeitsysteme. Physikalisches Objekt Kontrollierendes Rechensystem. 27. Oktober Lehrstuhl Informatik 4

1 Maschinenunabhängige Optimierungen. Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17

Gliederung. Systemprogrammierung. Beispiel: Matrizenmultiplikation. Verschiedenheit zwischen Quell- und Zielsprache

2Binden 3. und Bibliotheken

Rechnernetze und -Organisation. Teil B (30. März 2011) 2011 Michael Hutter Karl C. Posch

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg Universitätsstraße 31, Regensburg

Systemprogrammierung

Rechnerne etze und -O Organisatio on

Karlsruher Institut für Technologie

Abstrakte C-Maschine und Stack

Grundlagen der Informatik III Wintersemester 2010/2011

Fallbeispiel Unix. Betriebssysteme. Hermann Härtig TU Dresden

Embedded-Linux-Seminare. Linux als Betriebssystem

6. Grundlagen der Programmierung

Agenda. Systemprogrammierung. Lehrstoff. Gliederung. Einführung. Schichtenstruktur Semantische Lücke Fallstudie

3.2 Prozessumschaltung

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Assembler - Adressierungsarten

Übungen zu Systemprogrammierung 1

Übungen zu Systemprogrammierung 1 (SP1)

Dynamisches Binden in Multics

Routinenartige Komponente eines Programms

Übersicht der wichtigsten Assemblerbefehle in ATT-Syntax. Operanden, Statusflags und Registersatz

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

Synchrone Programmunterbrechung

Einleitung Funktionsaufrufe Berechnungen Verzweigungen Systemaufrufe Speicherzugriffe Fazit Quellen. Laufzeitkosten in C.

Bibliotheks-basierte Virtualisierung

U23 Assembler Workshop

Konzepte von Betriebssystem-Komponenten. Ausnahme- / Unterbrechungsbehandlung

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2009/10 1 / 31

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

Überlegungen beim Entwurf eines Betriebssystems

"Organisation und Technologie von Rechensystemen 4"

Autonomer Kontrollfluss eines Programms Kontrollfaden (engl. thread of control, TOC) Überblick

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssystembau. 7. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Betriebssysteme KU - Einführungstutorium

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Programmunterbrechungen

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2008/09 1 / 26

Trap oder Interrupt? Synchrone Programmunterbrechung. Trap oder Interrupt? (Forts.) Asynchrone Programmunterbrechung

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

4. Speicherverwaltung

U23 Assembler Workshop

System Monitoring mit strace. Systemcall tracing

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Just-In-Time-Compiler (2)

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

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

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 9, Dienstag 18.

Vorlesung Programmieren

Just-In-Time-Compiler (2)

Legen Sie den Ausweis (mit Lichtbild!) griffbereit auf den Platz! Dieses Aufgabenheft umfasst 24 Seiten. Überprüfen Sie die Vollständigkeit!

6 Speicherorganisation

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Disclaimer: Das sind Lösungsvorschläge, keine Musterlösungen.

Echtzeit-Multitasking

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Übersicht. Speichertypen. Speicherverwaltung und -nutzung. Programmieren in C

Einführung in die C-Programmierung

Gliederung. 1 Vorwort. 3 Programmfaden. 4 Zusammenfassung. 5 Anhang. c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP2 # SS / 53

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1.

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Grundlagen der Informatik III Wintersemester 2010/2011

Rechnernetze und -Organisation. Teil D3 2010, Ver 0.9 Michael Hutter Karl C. Posch

Hinweise 80x86-Architektur

Assembler - Variablen

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Algorithmen versus Programmiersprachen

Echtzeit-Multitasking

Eine Mini-Shell als Literate Program

Betriebssystembau (BSB)

Maschinencode Dateiformat und Stackframes

Betriebssysteme (BS) Koroutinen und Fäden. Überblick: Vorlesungen. Agenda. Agenda. Anwendung(en) Hardware. Motivation: Quasi-Parallelität

Betriebssysteme Teil 3: Laufzeitsystem für Programme

Propädeutikum. Dipl.-Inf. Frank Güttler

Buffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung)

Threads Einführung. Zustände von Threads

Kompaktkurs C-Programmierung

C/C++-Programmierung

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester

Transkript:

Systemprogrammierung Rechnerorganisation: Maschinenprogramme Wolfgang Schröder-Preikschat Lehrstuhl Informatik 4 Ergänzende Materialien c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 1 / 23

B V-3 Maschinenprogramme Gliederung 1 Vorwort 1 Vorwort Hybrid 2 Programmhierarchie Hochsprachenkonstrukte Assembliersprachenanweisungen Betriebssystembefehle 3 Organisationsprinzipien Funktionen Komponenten 4 Zusammenfassung c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 2 / 23

B V-3 Maschinenprogramme 1 Vorwort 1.1 Hybrid Konventionelle hybride Schicht in einem Rechensystem Maschinenprogramme enthalten zwei Sorten von Elementaroperationen: 1 Maschinenbefehle der Befehlssatzebene (ISA) normalerweise direkt interpretiert durch die Zentraleinheit (Ebene 2 ) ausnahmsweise partiell interpretiert vom Betriebssystem (Ebene 3 ) 2 Systemaufrufe an das Betriebssytem das normalerweise nur noch Elementaroperationen der ISA enthält Hybrid: etwas Gebündeltes, Gekreuztes oder Gemischtes [2] ein System, in dem zwei Techniken miteinander kombiniert werden: 1 Interpretation von Programmen der Befehlssatzebene 2 partielle Interpretation von Maschinenprogrammen ein Maschinenprogramm ist Hybridsoftware, die auf Ebene 2,3 läuft c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 3 / 23

B V-3 Maschinenprogramme 1 Vorwort 1.1 Hybrid Betriebssystem Programm der Befehlssatzebene ein Betriebssystem implementiert die Maschinenprogrammebene es zählt damit selbst nicht zur Klasse der Maschinenprogramme es setzt normalerweise keine Systemaufrufe (an sich selbst) ab es interpretiert eigentümliche Programme nur eingeschränkt partiell Teilinterpretation von Betriebssystemprogrammen bewirkt indirekt rekursive Programmausführungen im Betriebssystem erfordert die Fähigkeit zum Wiedereintritt (engl. re-entrance) a ab einer bestimmten Ebene im Betriebssystem ist dies unzulässig a Beachte: Teilinterpretation wird durch eine Programmunterbrechung ausgelöst. gleichwohl sollten Betriebssysteme es zulassen, in der Ausführung eigentümlicher Programme unterbrochen werden zu können nicht durch Systemaufrufe aber durch Traps oder Interrupts... c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 4 / 23

B V-3 Maschinenprogramme Gliederung 2 Programmhierarchie 1 Vorwort Hybrid 2 Programmhierarchie Hochsprachenkonstrukte Assembliersprachenanweisungen Betriebssystembefehle 3 Organisationsprinzipien Funktionen Komponenten 4 Zusammenfassung c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 5 / 23

B V-3 Maschinenprogramme 2 Programmhierarchie Maschinensprache(n) Maschinenprogramme setzen sich aus Anweisungen zusammen, die ohne Übersetzung von einem Prozessor ausführbar sind gleichwohl werden sie (normalerweise) durch Übersetzung generiert nahezu ausschließlich automatisch: Kompilierer, Assemblierer, Binder in seltenen Fällen manuell: natürlicher Kode (engl. native code) 1 sie repräsentieren sich technisch als Lademodul (engl. load module) erzeugt durch Dienstprogramme (engl. utilities): gcc(1), as(2), ld(1) besorgt, verarbeitet und entsorgt durch Betriebssysteme Grundlage für die Entwicklung von Maschinenprogrammen bilden Hochund (vereinzelt) Assembliersprachen und zwar auf: 1 Anwendungsprogrammebene 2 Laufzeitsystemebene 3 Betriebssystemeebene 1 Binärkode des realen Prozessors, auch: Maschinenkode. c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 6 / 23

B V-3 Maschinenprogramme 2 Programmhierarchie Triumvirat zur Ausführung von Anwendungsprogrammen Maschinenprogramm Betriebssystem Anwendungsprogrammebene Laufzeitsystemebene Zentraleinheit Teilinterpretation } Interpretation (durch das Betriebssystem) (durch die CPU) Maschinenprogramm = Anwendungsprogramm + Laufzeitsystem beide Ebenen teilen sich denselben Programmadressraum normale Unterprogrammaufrufe aktivieren das Laufzeitsystem Ausführungsplattform = Betriebssystem + Zentraleinheit (CPU) zwischen den Ebenen erstreckt sich die Hard-/Softwaregrenze Systemaufrufe (engl. system calls) aktivieren das Betriebssystem c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 7 / 23

B V-3 Maschinenprogramme 2 Programmhierarchie 2.1 Hochsprachenkonstrukte Anwendungsprogrammebene: C Maschinenprogramm realisiert mit Ebene 5 -Konzepten: echo.c void echo () { char c; while (write(1, &c, read(0, &c, 1))!= -1) {} } Funktion read(2) überträgt ein Zeichen von Standardeingabe (0) an die Arbeitsspeicheradresse &c, deren Inhalt anschließend mit der Funktion write(2) zur Standardausgabe (1) gesendet wird. Die Schleife terminiert durch Unterbrechung, unter UNIX z.b. nach Eingabe von ^C. c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 8 / 23

B V-3 Maschinenprogramme 2 Programmhierarchie 2.2 Assembliersprachenanweisungen Anwendungsprogrammebene: ASM Maschinenprogramm realisiert mit Ebene 4 -Konzepten: gcc -O6 -fomit-frame-pointer -S echo.c echo () {... while (... ){}... } echo: pushl %ebx subl $40,%esp leal 39(%esp),%ebx.p2align 4,,7.p2align 3.L2: movl $1,8(%esp) movl %ebx,4(%esp) movl $0,(%esp) call read movl %ebx,4(%esp) movl $1,(%esp) movl %eax,8(%esp) call write addl $1,%eax jne.l2 addl popl ret $40,%esp %ebx unaufgelöste Referenzen der Systemfunktionen read(2) und write(2) werden vom Binder ld(1) aufgelöst libc.a c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 9 / 23

B V-3 Maschinenprogramme 2 Programmhierarchie 2.3 Betriebssystembefehle Laufzeitsystemebene: ASM Maschinenprogramm realisiert mit Ebene 4 -Konzepten: 1 gcc -O6 -fomit-frame-pointer -static echo.c 2 Verwendung der disassemble-operation von gdb(1) read: push %ebx movl 16(%esp),%edx movl 12(%esp),%ecx movl 8(%esp),%ebx mov $3,%eax int $0x80 pop %ebx cmp $-4095,%eax jae syscall_error ret syscall_error: neg %eax mov %eax,errno mov $-1,%eax ret.comm errno,16 write: push %ebx movl 16(%esp),%edx movl 12(%esp),%ecx movl 8(%esp),%ebx mov $4,%eax int $0x80 pop %ebx cmp $-4095,%eax jae syscall_error ret Systemaufrauf durch synchrone Programmunterbrechung int $0x80 explizit die Teilinterpretation des Maschinenprogramms anfordern c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 10 / 23

B V-3 Maschinenprogramme 2 Programmhierarchie 2.3 Betriebssystembefehle Betriebssystemebene: ASM Programm der Befehlssatzebene realisiert mit Ebene 4 -Konzepten: kernel-source-2.4.20/arch/i386/kernel/entry.s (Auszug) Sichern system_call: pushl %eax cld pushl %es pushl %ds pushl %eax pushl %ebp pushl %edi pushl %esi pushl %edx pushl %ecx pushl %ebx... Interpretieren... cmpl $(NR_syscalls),%eax jae badsys call *sys_call_table(,%eax,4) movl %eax,24(%esp) ret_from_sys_call:... badsys: movl $-ENOSYS,24(%esp) jmp ret_from_sys_call Wiederherstellen... popl popl popl popl popl popl popl popl popl addl iret %ebx %ecx %edx %esi %edi %ebp %eax %ds %es $4,%esp Systemaufraufzuteiler (engl. system call disptachter): ASM ein Muss... c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 11 / 23

B V-3 Maschinenprogramme 2 Programmhierarchie 2.3 Betriebssystembefehle Betriebssystemebene: Systemaufrufe verarbeiten Betriebssysteme realisieren einen Befehlsabruf- und -ausführungszyklus (engl. fetch-execute cycle) 2 zur Ausführung von Systemaufrufen 1 Prozessorstatus des unterbrochenen Programms sichern Aufforderung der CPU zur Teilinterpretation nachkommen 2 Systemaufruf interpretieren (Maschinenprogramm teilinterpretieren): (i) Systemaufrufnummer (Operationskode) abrufen (ii) auf Gültigkeit überprüfen und ggf. Fehlerbehandlung auslösen (iii) bei gültigem Operationskode, zugeordnete Systemfunktion ausführen 3 Prozessorstatus wiederherstellen und zurückspringen Beendigung der Teilinterpretation der CPU mitteilen Notwendigkeit zur Assembliersprache Teilinterpretation erfordert kompletten Zugriff auf den CPU-Status dieser ist nicht mehr Teil des Programmiermodells einer Hochsprache 2 Wiederkehrende gleichartige, ähnliche oder vergleichbare Ereignisse oder Prozesse. c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 12 / 23

B V-3 Maschinenprogramme 2 Programmhierarchie 2.3 Betriebssystembefehle Betriebssystemebene: C Programm der Befehlssatzebene realisiert mit Ebene 5 -Konzepten: kernel-source-2.4.20/fs/read_write.c (Auszug) asmlinkage ssize_t sys_read(unsigned int fd, char *buf, size_t count) { ssize_t ret; struct file *file; } ret = -EBADF; file = fget(fd); if (file) {... } return ret; asmlinkage ssize_t sys_write... Systemfunktion (Implementierung) innerhalb des Betriebssystems aktiviert durch call *sys call table(,%eax,4) (S. 11) c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 13 / 23

B V-3 Maschinenprogramme Gliederung 3 Organisationsprinzipien 1 Vorwort Hybrid 2 Programmhierarchie Hochsprachenkonstrukte Assembliersprachenanweisungen Betriebssystembefehle 3 Organisationsprinzipien Funktionen Komponenten 4 Zusammenfassung c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 14 / 23

B V-3 Maschinenprogramme 3 Organisationsprinzipien 3.1 Funktionen Zusammenspiel der Ebenen des echo -Anwendungsfalls Aufrufhierarchie Anwendungsprogramm echo main() Prozeduraufruf Laufzeitsystem libc read() write() Verzweigung syscall_error Systemaufruf (Trap) Betriebssystem Linux system_call Prozeduraufruf sys_read() sys_write() c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 15 / 23

B V-3 Maschinenprogramme 3 Organisationsprinzipien 3.1 Funktionen Systemaufrufschnittstelle (engl. system call interface) UNIX Programmers Manual (UPM), Lektion 2 man(2) read: push %ebx movl 16(%esp),%edx movl 12(%esp),%ecx movl 8(%esp),%ebx mov $3,%eax int $0x80 pop %ebx cmp $-4095,%eax jae syscall_error ret Aufrufstümpfe verbergen die technische Auslegung der Interaktion zwischen Anwendungsprogramm und BS nach außen erscheint ein Systemaufruf als normaler Prozeduraufruf nach innen setzt ein Systemaufruf eine (synchrone) Programmunterbrechung ab Systemaufrufe sind spezielle Prozedurfernaufrufe, die ggf. bestehende Schutzdomänen in kontrollierter Weise überwinden müssen getrennte Adressräume für Anwendungsprogramm und BS Ein-/Ausgabeparameter in Registern übergeben, Trap auslösen c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 16 / 23

B V-3 Maschinenprogramme 3 Organisationsprinzipien 3.1 Funktionen Laufzeitumgebung (engl. runtime environment) UNIX Programmers Manual (UPM), Lektion 3 man(3) Programmbausteine in Form eines zur Laufzeit zur Verfügung gestellten universellen Satzes von Funktionen und Variablen Lesen/Schreiben von Dateien, Ein-/Ausgabegeräte steuern Daten über Netzwerke transportieren oder verwalten formatierte Ein-/Ausgabe,... Laufzeitbibliothek von C unter UNIX (Auszug) printf scanf perror man(3) putchar getchar malloc free errno man(2) socket write read sbreak c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 17 / 23

B V-3 Maschinenprogramme 3 Organisationsprinzipien 3.1 Funktionen Ensemble problemspezifischer Prozeduren Anwendungsroutinen (des Rechners) bei C/C++ die Funktion main() und anderes Selbstgebautes setzen u.a. Betriebssystem- oder Laufzeitsystemaufrufe ab Laufzeitsystemfunktionen (des Kompilierers/Betriebssystems) bei C z.b. die Bibliotheksfunktionen printf(3) und malloc(3) setzt Betriebssystem- oder (andere) Laufzeitsystemaufrufe ab Systemaufrufstümpfe (des Betriebssystems) bei UNIX z.b. die Bibliotheksfunktionen read(2) und write(2) setzen Aufrufe an das Betriebssystem ab Systemaufruf synchrone Programmunterbrechung Trap bilden zusammengebunden das Maschinenprogramm (Lademodul) c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 18 / 23

B V-3 Maschinenprogramme 3 Organisationsprinzipien 3.2 Komponenten Grobstruktur von Maschinenprogrammen man(1) Anwendungsroutinen UPM man(3) Laufzeitsystem man(2) Systemaufrufstümpfe Bibliothek z.b. libc Statisch gebundenes Programm zum Ladezeitpunkt des Programms sind alle Referenzen aufgelöst Kompilierer und Assemblierer lösen lokale (interne) Referenzen auf der Binder löst globale (extern,.globl) Referenzen auf Schalter -static bei gcc(1) oder ld(1) c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 19 / 23

B V-3 Maschinenprogramme 3 Organisationsprinzipien 3.2 Komponenten Grobstruktur von Maschinenprogrammen (Forts.) man(1) Anwendungsroutinen UPM man(3) Laufzeitsystem man(2) Systemaufrufstümpfe DLL Dynamisch gebundenes Programm Bibliotheksfunktionen erst bei Bedarf (vom Betriebssystem) einbinden zur Laufzeit, bei erstmaligem Aufruf ( trap on use, Multics [1]) bindender Lader (engl. linking loader) im Betriebssystem dynamische Bibliothek (shared library, dynamic link library (DLL)) c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 20 / 23

B V-3 Maschinenprogramme Gliederung 4 Zusammenfassung 1 Vorwort Hybrid 2 Programmhierarchie Hochsprachenkonstrukte Assembliersprachenanweisungen Betriebssystembefehle 3 Organisationsprinzipien Funktionen Komponenten 4 Zusammenfassung c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 21 / 23

B V-3 Maschinenprogramme 4 Zusammenfassung Resümee Maschinenprogramme umfassen zwei Arten Elementaroperationen (1) Maschinenbefehle der Befehlssatzebene und (2) Systemaufrufe Befehle, die ohne Übersetzung von einem Prozessor ausführbar sind typisches Programm der Befehlssatzebene ist ein Betriebssystem das einen abstrakten Prozessor (Ebene 3 ) implementiert das einen Befehlsabruf- und -ausführungszyklus realisiert Teilinterpretation ist nicht strikt auf Maschinenprogramme bezogen ein Betriebssystem kann eigentümliche Programme teilinterpretieren wenn diese etwa durch Traps oder Interrupts unterbrochen wurden dazu muss das Betriebssystem allgemein zum Wiedereintritt fähig sein Maschinenprogramme als Ensemble problemspezifischer Routinen Anwendungsroutinen, Laufzeitsystemfunktionen, Systemaufrufstümpfe statisch/dynamisch zusammengebunden als Lademodul repräsentiert c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 22 / 23

B V-3 Maschinenprogramme 4 Zusammenfassung 4.1 Bibliographie Literaturverzeichnis [1] Organick, E. I.: The Multics System: An Examination of its Structure. MIT Press, 1972. ISBN 0 262 15012 3 [2] http: // de. wikipedia. org/ wiki/ Hybrid c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP1 # SS 2012 23 / 23