87 - 7.1.7 Stapelverarbeitung: Auslastungssteigerung durch Multiplexverfahren [ID:19245]
50 von 235 angezeigt

Kommen wir nur zum Mehrprogrammbetrieb und hier im wesentlichen Multiplexverfahren. Damit

starten wir dann besondere Schutzvorkehrungen, die für diese Betriebsart wichtig sind. Wir

betrachten den Aspekt, Kurzaspekte des dynamischen Ladens bei Multiprogrammbetrieb oder Mehrprogramm

Betrieb eben schon große Anforderungen an die Speicherarbeitung steckt und enden dann kurz

mit der Simultanverarbeitung. Es war eine wichtige Maßnahme zur weiteren Leistungssteigerung innerhalb

des Rechensystems, nämlich mehr als ein Programm zugleich im Hauptspeicher liegen zu haben,

wobei dann diese Programme eben ausführbereit sind. Wir haben ja schon beim Einprogrammbetrieb

am Ende gesehen, dass da noch ein so ein Problempunkt existierte, nämlich wenn innerhalb

des Programms man an einer logischen Stelle kam, wo die weitere Ausführung des Programms gar keinen

Sinn mehr macht, weil es etwa auf Eingabeldaten warten muss und wenn man dann keine weiteren

Ausführungsstränge im System verfügbar hat, ja dann muss man tatsächlich warten und dann liegt

die CPU eben brach. Und hier geht es eben genau bei Mehrprogrammbetrieb, denn darum dieses Brach

liegen so gut es geht denn zu vermeiden. Das ist also eine weitere Maßnahme, um die Leistung im

Rechensystem zu steigern, die sich in zwei Dimensionen aufspannt im Raum Vermöge-Mehrprogrammbetrieb

eben so eine Leistungssteigerung zu erzielen, indem wir dann wirklich mehr als ein Programm,

das ausführbereit wäre im Hauptspeicher zu haben und dann tatsächlich auch noch eine zeitlich

basierte Maßnahme zu ergreifen, indem man dann nämlich durch Zeit-Multiplexing-Verfahren

die Simultanverarbeitung ermöglicht. Aber wir machen das mal schrittweise zunächst mal den

reinen Mehrprogrammbetrieb. Das heißt die Multiplex-Vorgänge der CPU zwischen mehreren

Programmen zu unterstützen und damit denn tatsächlich auch eine wirkliche Nebenläufigkeit

zwischen verschiedenen Anwendungsprozessen letztendlich zu erreichen. Das hat man im

Wesentlichen durch Interrupts, denn durch asynchrone Programmunterbrechung, denn schon

gut erreichen können, wobei denn diese Interrupts anfangs als sehr befremdlich angesehen worden sind,

weil man sich dann schon irgendwie so ein Stück weit gefragt hat, warum, was es dann für einen Sinn

machen würde, denn ein Programm, was sich noch in Ausführung befindet, den einfach wegzuschalten,

um ein anderes Programm denn laufen zu lassen. Aber da kommen wir denn später noch dazu,

um das ein bisschen besser zu verdeutlichen. Es waren auch andere Aspekte wichtig, nämlich,

dass denn diese Programme, die ausführbereit im Hauptspeicher lagen, anders voneinander geschützt

werden mussten, als es bisher mit dem Gata-Modell praktisch war. War Adressraumschutz also gefragt

und dann musste man eben zusehen, dass man in der Lage ist, mit dem sehr knappen Hauptspeicher

so vernünftig umgehen zu können, dass man mehr als ein Programm, was ausführbereit war,

denn laufen zu lassen. Also hier ging es dann darum, halt Überlagerungstechniken zu ersinnen,

wo man denn unabhängige Programmteile letztendlich identifizieren konnte, die denn nicht zur selben

Zeit praktisch immer permanent im Hauptspeicher liegen müssen. Und das geht dann auf Segmentierung

so ein Stück weit zurück, wobei hier Segmentierung jetzt nicht zwingend im Sinne von Schutz

verstanden werden müsste, sondern einfach auch ein Segment als so eine Aufteilungseinheit zu

begreifen. Aber letztendlich sind es beide Aspekte Schutz wie auch Aufteilungseinheit,

die mit dem Segment denn da verbunden sind. Segment eines Programms. Nun, beides sind denn

Maßnahmen, die ein Betriebssystem auch heute noch letztendlich ergreift, um letztendlich ein

Stück weit auch zu einer besseren Strukturierung der Maschinenprogramme denn beitragen zu können,

die man nämlich erlaubt, dass denn diese Maschinenprogramme eben als nicht sequenzielle

Programme ablaufbar sind. Das ist an sich eine logische Konsequenz, wenn man so an bestimmte

Datenstrukturen und Datenkomplexe denn denkt, wo man sieht, dass da einzelne Datenbestandteile

sind, die durchaus von der Logik hier gleichzeitig verarbeitet werden könnten, dann wäre es nur

folgerichtig, wenn man sozusagen auch algorithmische Strukturen konstruieren kann auf basis geeigneter

Sprachen, die dann nachher dazu führen, dass Programme tatsächlich auch parallel ablaufen

konnten. Also diese Zeit, wo man denn mehr Programmbetrieb oder Simultanverarbeitung

Mitte der 60er Jahre denn eingeführt hat, war auch genau jene Zeit, wo so die ersten

parallelen Programmiersprachen so entstanden. Ein wichtiger Punkt hier, um diese Leistungssteigerung

ein bisschen zu verdeutlichen, ist eben aktives Warten. Das möchte ich mal kurz erläutern,

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:24:42 Min

Aufnahmedatum

2020-07-06

Hochgeladen am

2020-07-06 23:36:27

Sprache

de-DE

Tags

module programmstruktur Variablen Datentypen Preprozessor Gültigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen