FINAL Systemnahe Programmierung

FINAL Systemnahe Programmierung

Arb eitsb erichte aus der Informatik Technical Rep orts and Working Pap ers Fachho chschule Nordostniedersachsen Volgershall 1, D-21339 Luneburg Phone: xx49.4131.677175 Fax: xx49.4131.677140 F IN A L F achho chschule Nordostniedersachsen IN formatik A rb eitsb erichte L uneburg Systemnahe Programmierung 3.,uberarbeitete Au age 1999 Ulrich Ho mann FINAL, 9. Jahrgang Heft 1, Juli 1999, ISSN 0939-8821 Inhaltsverzeichnis 1 Einleitung .................................................................................................................. 1 2 Das Modell eines Rechners ....................................................................................... 4 2.1 Funktionsweise eines Rechners ........................................................................ 7 2.2 Eine Hardware/Software-Schnittstelle: Der Interruptmechanismus ................. 18 2.3 Aspekte der Gerätesteuerung und des Ein/Ausgabekonzepts ........................... 21 3 Aspekte der Rechnerprogrammierung ...................................................................... 27 3.1 Höhere Programmiersprachen und Assembler-Sprachen in der Systempro- grammierung ........................................................................................................... 35 3.2 Adreßräume und das Prozeßkonzept ................................................................ 36 3.3 Beispiele von Speichermodellen ...................................................................... 44 3.3.1 Beispiel: Der Real Mode des INTEL 80x86 ............................................ 45 3.3.2 Beispiel: Der Protected Mode des INTEL 80x86 .................................... 49 3.3.3 Beispiel: Virtuelle Adressierung mittels Paging ...................................... 52 3.4 Programme in einer höheren Programmiersprache und das Laufzeitlayout ..... 56 4 Datenobjekte .............................................................................................................. 61 4.1 Grundlegende Datentypen eines Rechners ....................................................... 64 4.1.1 Datentyp Zahl ........................................................................................... 68 4.1.2 Datentyp Zeichenkette (String) ................................................................ 77 4.1.3 Datentyp Binärwert .................................................................................. 77 4.1.4 Datentyp Adresse ..................................................................................... 77 4.1.5 Datentyp Instruktion ................................................................................ 79 4.2 Datentypen in höheren Programmiersprachen ................................................. 79 4.2.1 Einfacher Typ ........................................................................................... 80 4.2.2 Stringtyp ................................................................................................... 85 4.2.3 Strukturierter Typ ..................................................................................... 87 4.2.4 Zeigertyp .................................................................................................. 92 4.2.5 Prozedurtyp .............................................................................................. 97 4.2.6 Typkompatibilität ..................................................................................... 98 4.2.7 Vergleichsoperatoren ............................................................................... 100 5 Anweisungen in einer höheren Programmiersprache ................................................ 102 5.1 Wichtige strukturierte Anweisungen ................................................................ 102 5.2 Ein- und Ausgabe ............................................................................................. 105 6 Das Blockkonzept einer höheren Programmiersprache ............................................ 110 6.1 Der Gültigkeitsbereich von Bezeichnern .......................................................... 112 6.2 Bemerkungen zur Lebensdauer von Datenobjekten ......................................... 116 6.3 Bemerkungen zu Speicherklassen .................................................................... 118 7 Das Prozedurkonzept ................................................................................................. 120 7.1 Parameterübergabe ........................................................................................... 122 7.2 Der Stack .......................................................................................................... 132 7.3 Rekursive Prozeduren: Das Prinzip .................................................................. 138 7.4 Beispiele rekursiver Prozeduren ....................................................................... 140 7.5 Das Prinzip der Implementierung ..................................................................... 152 7.6 Mehrfachverwendbarkeit von Prozeduren ........................................................ 169 8 Modularisierung ........................................................................................................ 174 8.1 Automatisches Einfügen von Quellcode .......................................................... 174 8.2 Aufruf externer Prozeduren .............................................................................. 175 8.3 Laufzeitbibliotheken ......................................................................................... 175 8.4 Das Unit-Konzept in PASCAL ......................................................................... 176 8.5 Dynamische Bindebibliotheken ........................................................................ 180 9 Einführung in die objektorientierte Programmierung ............................................... 184 9.1 Konzepte der objektorientierten Programmierung ........................................... 184 9.2 Realisierung der Konzepte in PASCAL ........................................................... 186 9.3 Weiterführende Konzepte in Object Pascal in Hinblick auf die OOP .............. 209 10 Anwendungsorientierte Datenstrukturen in der systemnahen Programmierung ..... 210 10.1 Lineare Datenstrukturen ................................................................................. 216 10.1.1 Liste ........................................................................................................ 216 10.1.2 FIFO-Warteschlange .............................................................................. 222 10.1.3 Stack ....................................................................................................... 226 10.1.4 Beschränkter Puffer ............................................................................... 228 10.1.5 Hashtabelle ............................................................................................. 232 10.1.6 Menge und Teilmengensystem einer Grundmenge ............................... 237 10.2 Nichtlineare Datenstrukturen .......................................................................... 247 10.2.1 Prioritätsschlange ................................................................................... 247 10.2.2 Durchlaufen eines Baums ...................................................................... 257 10.2.3 Höhenbalancierter Baum ....................................................................... 266 11 Typische Verfahren in der systemnahen Programmierung: Ein kleiner Betriebs- systemkern .................................................................................................................... 277 11.1 Ein vereinfachtes Prozeßmodell ..................................................................... 283 11.2 Anwenderschnittstellen des Multitaskings ..................................................... 285 11.3 Prozeßverwaltung, Prozeßwechsel und Scheduling ....................................... 293 11.3.1 Die Unit Basics ...................................................................................... 294 11.3.2 Der Task Controll Block (TCB) eines Prozesses ................................... 297 11.3.3 Abläufe der Multitasking-Kontrolle ...................................................... 304 11.3.4 Alternative Schedulingstrategien ........................................................... 310 11.4 Prozeßsynchronisation .................................................................................... 313 11.4.1 Semaphore .............................................................................................. 320 11.4.2 Ereignisvariablen ................................................................................... 339 11.5 Nachrichtenaustausch zwischen Prozessen (Interprozeßkommunikation) ..... 344 11.5.1 Modellierung der Interprozeßkommunikation ....................................... 346 11.5.2 Ein Beispiel zum Nachrichtenaustausch ................................................ 354 12 Weiterführende Konzepte ....................................................................................... 357 12.1 Client-Server-Architektur ............................................................................... 357 12.1.1 Remote Procedure Call .......................................................................... 359 12.1.2 Simulation einer Client-Server-Architektur ........................................... 362 12.2 Das Monitorkonzept ....................................................................................... 366 13 Anhang ...................................................................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    413 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us