Multitasking
Ein Betriebssystem ist Multitasking, wenn es erlaubt, mehrere Anwendungen gleichzeitig
zu benutzen. Windows 2.0 konnte das noch nicht.
Multiuser
Ein Betriebssystem ist Multiuser, wenn es gestattet, dass mehrere Benutzer sich gleichzeitig
am selben System anmelden. Bsp.: Windows NT, Linux, UNIX...
Multiprocessing
Ein Betriebssystem ist Multiprocessing, wenn es eine wirklich zeitgleiche Bearbeitung mehrerer Prozesse
durch mehrere Prozessoren unterstützt.
Multithreading
Ein Betriebssystem ist Multithreading, wenn es mehrere Steuerflüsse(Threads) gleichzeitig ermöglicht.

In der Zeit der 80386er und 80486er Prozessoren gab es zusätzlich zur CPU einen arithmetischen Coprozessor,
der nur rechnen konnte.
Heutzutage ist beim PC alles auf einem Prozessor - Chip untergebracht.

Ein Prozessor hat mehrere Register, von diesen gibt es verschiedene Sorten oder Gruppen.
a) allgemeine Register
bei Intel Prozessoren heißen die allgemeinen Register A, B, C und D. Diese sind z.B geeignet
für Integer - Zahlen und BCD(Binary Code Decimal), von denen man eine Summe oder Differenz bilden kann.
In der Geschichte, also zur 8086er - Zeit hatten diese Register je 16 Bit.
Damals war
A         Akkumulator | Die Register werden
B         Basisregister  | zwar noch so genannt, sind
C         Counter         | ab Pentium aber austauschbar und
D         Datenregister | haben je 32 Bit.




Register sind Addressen im Prozessor, eigene Speicherbereiche, in denen gerechnet wird.
Register haben Verbindung zur ALU, arithmetic logical unit - arithmetisch logische Einheit.



b) floating point Register(waren früher im Coprozessor)

S|        exp         |        mantisse               |
             Offset

Gleitkommaregister berücksichtigen alle Regeln, die es für das Rechnen mit Gleitkommazahlen gelten,
andere Register würden hier falsch rechnen.


Man kann inzwischen auch unten einen Wert auslesen, da der Befehlssatz erweitert wurde.
Floating Point Register können 80 Bit aufnehmen.

c) Register zur Addressierung
- Segment Register, 16 Bit
entstanden früher, weil der Bus nur 16 Bit breit war. Blieb nur, um weiter ältere Software verwenden zu können,
die noch auf diese Weise arbeitet.
- Pointer Register
- Index Register
Der Hauptprozessor arbeitet in 2 Modi, real mode und protected mode
für den Abgesicherten Modus des Betriebssystems, bei dem (fast) keine Treiber geladen werden.
d) Flagregister
Flagregister finden Verwendung, wenn
- bei einer Subtraktion 0 herauskommt
- das Resultat positiv ist
  usw.
Man kann Flags(das sind meist nur 1 Bit große Schalter) abfragen und dadurch bedingte Sprünge durchführen.
Bsp.: if flag=0, GOTO

e) Interrupt Register
Bei der Ausführung erfährt man, welcher Interrupt stattgefunden hat. Das Interruptmaskenregister kann
niederwertige gegenüber hochrangigen Interrupts außer Kraft setzen(maskieren), um so die komplette
Prozessorleistung für eine bestimmte Aufgabe zu verwenden. Für die Dauer dieser bestimmten Aufgabe hat
man dann aber keine Multitasking Möglichkeit mehr.
f) Befehlszählregister(Instruction Counter)
Ein Jump Befehl(JMP in Assembler, GOTO in C oder Cobol) bewirkt, dass das Befehlsregister neu gefüllt
wird, indem auf einen anderen Listeneintrag unter einer anderen laufenden Nummer des Befehlszählregisters
gesprungen wird.
g) Rechteregister
Dieses und noch einige andere Register sind nur im Betriebssystemmodus aufrufbar. Sie sind also
irrelevant für die Applikationsentwicklung und werden nur für die Systemprogrammierung gebraucht.
h) Debug - Register
hilft beim Debuggen.

Instruktionen

sind

a) Transportbefehle wie move, store oder beim stack push, pop.
b) Datenmanipulationsbefehle wie +, -, *, /, %, fsin(floating point sinus - geht an das Floatingpointregister),
fcos.... c) Kontrollfluss - Befehle: jump - der bedingte Sprung.
d) De / Maskierungsbefehle, s.o.
e) Verwaltungsbefehle, wie protected mode des Betriebssystems

Prozessorarten(2 von sehr vielen):
CISC(Complex Instruction Set Computer)
RISC(Reduced Instruction Set Computer)
Weiter zu C++

Weiter zu SQL

Weiter zu SQL1

weiter zu sql2