Echtzeit-Multitasking

Ähnliche Dokumente
Berichte aus der Produktionstechnik

Rechnernutzung in der Physik. Betriebssysteme

Tim Landvoigt Stefan Nieland. Konzeption von Supply-Chain- Management-Funktionen für elektronische Marktplätze

Stephan Buse / Rajnish Tiwari (Hrsg.) Grundlagen Strategien Kundenakzeptanz Erfolgsfaktoren

Verbunde aus Hochtemperaturthermoplasten und Kupfer für flexible Schaltungsträger

Datenaustausch in Geographischen Informationssystemen

Rainer Ambrosy / Franz Bosbach / Susanne Schulz (Hrsg.) Campusmanagement

Willi Nüßer (Hrsg.) Web Services und J2EE Chancen und Erfahrungen

Michael Schleeger Funktionsstudien der Cytochrom c Oxidase mit Hilfe von stationärer Differenz- und zeitaufgelöster FT-IR-Spektroskopie

Stefan Kirn, Christian Anhalt, Christian Heine (Hrsg.)

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Fertigungsbedingte Bauteilverformungen beim Kleben dünnwandiger Stahlbauteile

Hubert Biskup Ralf Kneuper (Hrsg.) Nutzen und Nutzung von Vorgehensmodellen

Analyse und Vergleich der Online-Patienteninformationen der Universitätskliniken Deutschlands

Neuausrichtung des Firmenkundengeschäfts öffentlich-rechtlicher Kreditinstitute unter dem Einfluß von Basel II

Innovationsdrehscheibe Bergisches Land - Innovationen erleben

Einführung in die technische Informatik

Qualitätsmanagement in kleinen und mittleren Unternehmen (KMU)

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS)

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

Entwicklung und Untersuchung eines Konzepts zur interaktiven Erhebung von Arbeitsprozessen

Neues vom STRIP Forth-Prozessor

OS/2 System- und Netzwerkprogrammierung

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Entwicklung einer rechnergestützten Auswahl, Anpassung und Anwendung von Qualitätsmethoden

Entwurf zur Prozessanalyse biotechnologischer Produktionen

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

6.6 Persistenter virtueller Speicher

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Projekt für Systemprogrammierung WS 06/07

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Jürg Gutknecht, SI und ETH Zürich, April 2015

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Memory Management. Peter Puschner Institut für Technische Informatik

Vorgehensmodelle: Wirtschaftlichkeit, Werkzeugunterstützung und Wissensmanagement

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

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

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

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

Operating System Kernels

5 Speicherverwaltung. bs-5.1 1

Lösungsskizzen zur Abschlussklausur Betriebssysteme

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

Embedded-Linux-Seminare. Linux als Betriebssystem

Grundlagen der Rechnerarchitektur. Einführung

Technische Informatik 2 Software

Altes neu gedacht Rückgriff auf Traditionelles bei Musikalischen Volkskulturen

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

Grundlagen von Python

Die Mikroprogrammebene eines Rechners

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS Teil 4/ProtectionI

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

TIMI: Technische Informatik für Medieninformatiker

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

Embedded OS für ARM Cortex Microcontroller

4.3 Hintergrundspeicher

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Grundlagen der Rechnerarchitektur

Informatik I Modul 6: Betriebssysteme

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Betriebssysteme KU - Bewertung A2 - WS 15/16

Grundlagen der Rechnerarchitektur

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Verschlüsseln von Dateien mit Hilfe einer TCOS-Smartcard per Truecrypt. T-Systems International GmbH. Version 1.0 Stand

Betriebssysteme BS-V SS Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

5.Vorlesung Betriebssysteme Hochschule Mannheim

B.4. B.4 Betriebssysteme Prof. Dr. Rainer Manthey Informatik II 1

Grundlagen zur nebenläufigen Programmierung in Java

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};

4D Server v12 64-bit Version BETA VERSION

Instruktionssatz-Architektur

Objektorientiertes Programmieren für Ingenieure

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

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

Enseignement secondaire technique

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Betriebssystemschichten ( )

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Berichte aus den technischen Fachbereichen der Fachhochschule Osnabrück. Bernd Hamacher und Lutz Mardorf. (Hrsg.) Projektmanagement

Aufbau und Funktionsweise eines Computers

Systemstart und Programmausführung

DSL Business Standleitung unter Windows XP

Installationsanleitung DSL Business Standleitung unter Windows 7

jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER

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

Compiler und Codegenerierung. Hw-Sw-Co-Design

Klausur zur Mikroprozessortechnik

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Systemsoftware (SYS)

Banner T 1 T 2. Bild T 7 T 8. Fließtext T 9

VBA Programmieren mit Visual Basic for Applications

Transkript:

Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002

Die Deutsche Bibliothek - CIP-Einheitsaufnahme Thies, Klaus-Dieter: Echtzeit-Multitasking : Memory Management und System Design im Protected Mode der x86/pentium-architektur / Klaus-Dieter Thies. Aachen : Shaker, 2002 (Technische Informatik) ISBN 3-8265-9954-3 Copyright Shaker Verlag 2002 Alle Rechte, auch das des auszugsweisen Nachdruckes, der auszugsweisen oder vollständigen Wiedergabe, der Speicherung in Datenverarbeitungsanlagen und der Übersetzung, vorbehalten. Printed in Germany. ISBN 3-8265-9954-3 ISSN 1436-882X Shaker Verlag GmbH Postfach 1290 52013 Aachen Telefon: 02407 / 95 96-0 Telefax: 02407 / 95 96-9 Internet: www.shaker.de email: info@shaker.de

Vorwort Die vorliegende Arbeit wendet sich an System-Designer und Betriebssystem-Entwickler, sowie an Software-Entwickler, die den protected mode der x86/pentium-architektur nutzen wollen. In diesem mode "betrachtet" die Architektur das Software-System (das Betriebssystem genauso wie die Anwendungen) als eine Anzahl asynchroner Tasks. Jede Task kann aus maximal 4 Privilegebenen bestehen, von denen jede einen individuellen Grad an Software-Schutz gewährt. Ein x86/pentium-betriebssystem muss mit Hilfe der Hardware die Aktivitäten vieler Tasks koordinieren und den Schutz zwischen den Tasks und innerhalb der Tasks zwischen den Privileg-Ebenen verwalten. Tasks Eine Task ist die Ausführung einer Sequenz von Instruktionen. Ein Programm ist eine logische Einheit, die viele Repräsentationen haben kann: Zum Beispiel eine source code-datei oder eine object program-datei. Ein Programm wird zur Task, wenn es aktuell für die Ausführung verfügbar ist. Dies wird erreicht durch die Konvertierung des source codes (z. B. mit einem Compiler, einem Assembler oder einem Programmlader) in eine Repräsentation, die für die Ausführung geeignet ist, und der Bekanntgabe an das Betriebssystem, dass die Task für die Installation und Ausführung bereit ist. Der Unterschied zwischen Programmen und Tasks kann am besten an Multitasking-Systemen geklärt werden. Dort ist es möglich, dass zwei oder mehrere Tasks ein Programm simultan ausführen. Ein Zeileneditor-Programm in einem timesharing-system ist ein allgemeines Beispiel. Obwohl jede Zeileneditor-Task das gleiche Programm benutzt, liefert jede Task unterschiedliche Ergebnisse, denn jede Task wird mit individuelle Eingaben "versorgt". Segmentierter Speicher Die x86/pentium-architektur bildet den virtuellen Adressraum einer Task auf physikalische Segmente variabler Länge ab. Ein physikalisches Segment ist ein zusammenhängender Block von Speicher und überlappt sich im Regelfall nicht mit einem anderen physikalischen Segment. Jedes physikalische Segment einer Task enthält ein oder mehrere logische Segmente, die ihrerseits die Organisation der Task als Code-, Daten- und Stack-Region reflektieren. Pageorientierter Speicher Jedes x86/pentium-betriebssystem implementiert normalerweise eines der möglichen Segmentierungsmodelle, doch paging ist optional. Obwohl paging typischerweise zur Implementierung eines virtuellen Speichers eingesetzt wird, kann es wegen seiner Leistungsmerkmale auch für andere Anwendungen benutzt werden. Zum Beispiel: Virtuelle 86 mode-tasks generieren Adressen, die im ersten 1 Megabyte des linearen Adressraums liegen. Ein Betriebssystem, das mehrere solcher Tasks unterstützt, kann paging benutzen, um deren Adressen auf unterschiedliche pages im physikalischen Adressraum abzubilden. Alle pages haben die gleiche Grösse von 4 K Bytes. Sie können deshalb relativ "bequem" während der Disk-Transfers aus- und eingelagert werden. In Echtzeit-Betriebssystemen ist der pageorientierte Speicher nicht empfehlenswert, denn bedingt durch die sogenannten swapping-zeiten (aus- und einlagern der pages) reduzieren sich die Antwortzeiten der Tasks.

Multitasking Die x86/pentium-architektur stellt alle Mechanismen zur Unterstützung von Multitasking bereit. Eine Task wird entweder durch einen Interrupt, eine Ausnahmesituation, einen jump oder einen call aufgerufen. Jede dieser Formen bezieht sich auf einen speziellen Deskriptor in einer der Deskriptor-Tabellen. Dieser Deskriptor bewirkt einen Wechsel von der augenblicklichen Task zu einer neuen Task, nachdem der Status der "austretenden" Task in ein spezielles Segment gerettet worden ist. Ein Taskwechsel ist mit einem Funktionsaufruf vergleichbar. Der Unterschied ist, dass bei einem Taskwechsel mehr Prozessorstatus- Informationen gerettet werden als beim Prozduraufruf. Nach dem Wechsel befindet sich der Prozessor in einer komplett neuen Umgebung. Das Buch besteht aus 11 Kapiteln Kapitel 1 beschreibt das Basis-Programmier-Modell des x86/pentium und führt den Leser in diejenigen Eigenschaften ein, die vor allem für die Entwicklung und Implementierung von Anwender-Programmen von Interesse sind. Kapitel 2 zeigt das segment- und pageorientierte Memory Management, die virtuelle Adressierung und die Mechanismen des Cache-Speichers in Single- und Multiprozessor-Systemen. Kapitel 3 beschreibt die Wechselwirkungen zwischen dem Memory Management und dem implementierten Schutz wie Segment-Schutz, Page-Schutz und Privileg-Ebenen. Kapitel 4 erklärt die Mechanismen des Multitasking sowohl in segment- als auch in pageorientierten Systemen. Kapitel 5 zeigt detailliert die Funktionsabläufe bei der Interrupt-Verarbeitung. Kapitel 6 fasst alle möglichen Ausnahmesituationen zusammen und beschreibt deren Behandlung Kapitel 7 erklärt die Bus-Transfer-Mechanismen und zeigt den Zusammenhang zwischen Schutz und I/0-Zugriffen. Kapitel 8 enthält eine komplette Einführung in die Architektur, das Zahlensystem und die Numerik-Mechanismen der Floating Point-Einh'eit. Kapitel 9 erklärt die wichtigsten Sprachelemente des System Builders BLD386 und zeigt den Entwurf statischer Grundsysteme im Protected Mode. Kapitel 10 zeigt, wie Real Mode-Programme (z.b. DOS-Programme) als virtuelle Tasks in der geschützten Protected-Mode-Umgebung zum Ablauf gebracht werden. Kapitel 11 beschreibt, auf welche Weise der DEBUG-Prozeß unterstützt wird.

Alle dargestellten Themen werden von Programmierbeispielen begleitet, die dem Leser Beispiele für die Entwicklung eigener Systemsoftware geben, oder ihn bei der Interpretation bereits vorhandener Systemsoftware unterstützen. Hinweis: Im Text taucht manchmal der Prozessorname 80486 auf. Er ist ein Synonym für die Prozessorfamilie 80386..PentiumX, denn alle beschriebenen und dargestellten Strukturen und Mechanismen sind software-transparent und gelten für alle Mitglieder der Familie. Klaus-Dieter Thies DSc