-
2.2.1. Unterschiede
Beim Natürlichen Mischen (natural merge) werden bereits vorhandene sortiere Teilsequenzen berücksichtigt. Die Länge aller gemischten Teilsequenzen im k-ten Durchlauf ist gleich k², unabhängig davon, ob bereits längere Teilsequenzen geordnet sind und gemischt werden könnten.
Eine Teilsequenz wird Lauf genannt, wenn sie folgende Bedingungen erfüllt:
a[n] a[i] i = Beginn der Sequenz
a[j] > a[j+1] j = Ende der Sequenz
2.2.2. ...
mehr
-
2.3.1. Beschreibung
Der Aufwand für sequentielles Sortieren ist proportional zur Zahl der benötigten Durchläufe, da bei jedem Durchgang die benötigten Daten kopiert werden müssen. Ein Weg um diese Anzahl zu verringern ist die Verwendung von mehreren Files bzw. Bändern. Dafür müssen jedoch m Blöcke gleichzeitig im Arbeitsspeicher Platz haben und m * 2 Bänder/Files zur Verfügung stehen.
2.3.2. Algorithmus:
1. Schritt: Man liest Blöcke aus m Date ...
mehr
-
2.4.1. Beschreibung
Ein Problem beim M-Wege-Mischen ist, daß man 2*m Bänder benötigt. Um diesen Nachteil aufzuheben wurden verschiedene Algorithmen entwickelt. Die bekannteste Methode ist das Mehrphasen Sortieren (polyphase sort).
Die grundlegende Idee besteht darin, daß zu Beginn ein Band, das Ausgabeband, leer bleibt. Auf die restlichen Bänder werden die zu sortierenden Daten vorsortiert verteilt und danach auf das Ausgabeband gemischt. Sind ...
mehr
-
Viele Computersysteme verfügen über eine große virtuelle Speicherkapazität, die man beim Implementieren einer Methode für das Sortieren sehr großer Dateien verwenden kann. Es können alle Daten direkt adressiert werden und es liegt in der Verantwortung des Systems, daß die Daten bei Bedarf in den Hauptspeicher kommen. Somit sollte die Strategie der Anwendung einer einfachen internen Sortiermethode für das Sortieren von auf Platten befindlichen Dat ...
mehr
-
In dieser Arbeit soll Internet-Neulingen kurz und bündig ein Überblick über das Internet vermittelt werden. Zuerst wird beschrieben, was das Internet ist und wie es sich im Laufe der Zeit geschichtlich entwickelt hat. Also eine Zusammenfassung von 1969 als das ARPANET entstand, aus dem sich das Internet immer weiter entwickelt hat, bis zum Jahre 1993, in dem das World Wide Web entwickelt wurde. Nach dem historischen Abriß werden die einzelnen Die ...
mehr
-
Das Internet ist das größte Computernetz der Welt und die einzige real existierende Da-tenautobahn. Es ist der Name für eine Gruppe von weltweit verteilten Informations- und Kommunikationssystemen. Die Größe und Komplexität dieser Systeme liegt außerhalb menschlicher Vorstellungskraft - es ist mehr als ein Computernetz - es ist ein soziales Gebilde mit einer eigenen Kultur. Technisch gesprochen ist ein Internet ein Netz von Rechnern, die nach ein ...
mehr
-
1969 konstruierte das amerikanische Verteidigungsministerium ein Computernetz mit dem Namen ARPANET (Advanced Research Projects Agency-NET), das 4 Computer miteinander verband. Es sollte ein Netz geschaffen werden, in welchem der Ausfall eines Rechners nicht gleich das ganze Netz lahmlegt. 1972 wurde es öffentlich präsentiert und viele Universitäten und Forschungseinrichtungen schlossen sich an das Netz an. Eine zweite Generation dieser Netzwerks ...
mehr
-
Man kann elektronische Post (E-Mail) verschicken und empfangen, sich an Diskussionsforen (den Newsgroups) beteiligen, über FTP aus fernen Computern Daten, Texte, Programme , ja sogar Bilder und Musikstücke abrufen oder mit dem Telnet vom eigenen Computer aus auf Großrechner arbeiten und in Datenbanken und Bibliotheken recherchieren, oder auch einfach nur zum Spaß durch die bunte Welt des World Wide Web surfen bzw. dort nach Texten und Dokumenten ...
mehr
-
Die Entwicklung der heutigen Intel Architecture kann über den 8085 und den 8080 zum 4004 (dem ersten Mikroprozessor, den Intel entwickelte) zurückverfolgt werden. Der erste Prozessor der Intel Architecture ist jedoch der 8086, dem schnell der für billige Systeme preisgünstigere 8088 folgte.
1.1. 8086/8088
Der 8086 besitzt 16-Bit Register und einen 16-Bit breiten externen Bus, mit 20 Adress-Bits kann er einen Speicher von 1 mByte anspre ...
mehr
-
Zunächst möchte ich die Register des i386 vorstellen, die im Real Mode benutzt werden können. Natürlich hat der Prozessor viele interne Register zur Speicherung von Zwischenergebnissen usw., die jedoch dem Programmierer nicht zugänglich und daher nur von geringer Bedeutung sind.
Die Vielzweckregister dienen als schnelle interne Datenspeicher der CPU. Die Execution Unit liest Werte aus einem oder mehreren von diesen Registern, führt sie der ...
mehr
-
Bereits der 8086 teilte den zur Verfügung stehenden Speicher in die Segmente auf. Das machen auch die neueren Prozessoren, bis hin zum Pentium II MMX. Da der 8086 aber insgesamt nur 20 Adreßleitungen gegenüber den 32 des i386 aufweist, kann er maximal 220Byte=1mByte Speicher adressieren. Damit besteht sein physikalischer Adreßraum aus 1mByte Speicher. Jedes der Vielzweckregister im 16-Bit-Prozessor 8086 (zur damaligen Zeit der 8-Bit-Chips diese ...
mehr
-
Die Vielzweckregister sind ab dem i386 32 Bit breit, können aber aus Kompatibilitätsgründen mit den 16-Bit Vorgängern auch als 16- oder 8-Bit-Register angesprochen werden. Der i386 weist sieben Vielzweckregister, EAX bis EBP, sechs Segmentregister, CS bis GS, einen Befehlszähler EIP, einen Stack-Zeiger ESP sowie das Flagregister EFlags auf. All diese sind 32 Bit, nur die Segmentregister 16 Bit breit. Durch die maximale Größe der Vielzweckregist ...
mehr
-
Bedingten Sprüngen geht nahezu immer ein logischer Vergleich zweier Größen (eine Prüfung einer Bedingung) voraus, wie schon das Wort bedingt impliziert. Von großer Bedeutung in diesem Zusammenhang ist das Flag-Register, da bestimmte Flags in Abhängigkeit vom Ergebnis des Vergleichs gesetzt (Flag gleich 1) oder gelöscht (Flag gleich 0) werden. Auch setzen und löschen manche Befehle bestimmte Flags. Bei den 16-Bit Prozessoren waren nur die untere ...
mehr
-
Der i386 besitzt vier eigentliche Steuerregister sowie vier Speicherverwaltungsregister für den Protected Mode. Die Steuer-Register sind jeweils 32 Bit breit.
Das bereits im 80286 implementierte Maschinenstatuswort (MSW) für die Unterstützung des 16-Bit Protected Mode beim 80286 ist im niederwertigen Wort des Steuerregisters CR0 aufgegangen. Die Bedeutung der Bits TS, EM, MP und PE ist daher dieselbe wie beim 80286. Aus Kompatibilitätsgründ ...
mehr
-
Zur Programmausführung holt der Prozessor Befehle aus dem Speicher (Befehls-Prefetching) und führt diese dann aus. Grundlage für dieses automatische Lesen bilden Codesegment und Befehlszeiger. Das Codesegment gibt dabei das Segment an, aus dem der nächste Befehl gelesen werden soll. Der Befehlszeiger ist der Offset des nächsten zu lesenden Befehls. Das Paar Codesegment:Befehlszeiger bildet somit die Adresse des nächsten auszuführenden Befehls i ...
mehr
-
Eine besondere Bedeutung besitzt das Stacksegment SS sowie der zugehörige Stack-Pointer oder Stapelzeiger ESP. Jedes Programm besitzt normalerweise ein eigenes Stacksegment, auf dem mit PUSH der Wert eines Registers oder eines Speicherwortes abgelegt werden kann. Mit PUSHF können die Flags und ab dem 80186 mit PUSHA alle Vielzweckregister auf dem Stack gespeichert werden. Umgekehrt werden mit POP, POPF bzw. POPA (ab 80186) die entsprechenden Da ...
mehr
-
Neben dem Code- und Stacksegment hat auch das Datensegmentregister DS eine besondere Bedeutung. Es ist immer dann wichtig, wenn ein Befehl Daten aus dem Speicher liest oder in ihm abspeichert, d.h. wenn Speicheroperanden betroffen sind. Der Offset des Speicheroperanden wird üblicherweise in einem der Vielzweckregister bereitgehalten, und das Paar DS:Offset verweist auf den anzusprechenden Wert. Das Datensegmentregister DS wird standardmäßig als ...
mehr
-
Befehle, wie MOV, CALL, JNZ... werden als mnemonische Codes oder Mnemonics bezeichnet. Sie dienen nur dazu, dem Programmierer eine Gedächtnisstütze zu liefern, da die Mnemonics die Operation des entsprechenden Befehls in verkürzter Form angeben. Ein Assembler versteht diesen mnemonischen Code und führt eine entsprechende Codierung in einen Maschinenbefehl aus. Maschinenbefehle sind - wie könnte es anders sein - eine Folge von Nullen und Einsen ...
mehr
-
Soll ein Register (hier beispielsweise der Akkumulator eax) über MOV eax, mit einem Wert geladen werden, dann stehen drei Möglichkeiten zur Verfügung:
. Unmittelbarer Operand (Immediate): MOV eax,6a02h
Das Akkumulatorregister eax wird mit dem Wert 6a02h geladen. Dieser Wert wird zur Programmierzeit fest vorgegeben und ist Bestandteil des Programmcodes, d.h. er erscheint als Bestandteil des Befehlsstromes, der aus dem Speicher geladen wird. ...
mehr
-
Daß der Prozessor unentwegt Befehle ausführt ist wohl unschwer zu erkennen. Auch, wenn er scheinbar darauf wartet, daß ein Befehl (z.B. dir) eingegeben wird, bedeutet das nicht, daß er wirklich angehalten wird. Vielmehr läuft im Hintergrund eine Routine ab, die überprüft, ob bereits Zeichen eingegeben worden sind. Nur bei Computern mit Power-Management wird die CPU wirklich stillgelegt, um beim ersten Tastendruck sofort wieder aktiviert zu werd ...
mehr