Was wird unter dem Begriff SCHUTZVERLETZUNG versanden?

~ 0 min
2003-06-03 09:57
80386/80486, Pentium

Der 80386 unterstützt sowohl den Real Mode als auch den (16-Bit-)Protected Mode des 80286. Zusätzlich besitzt er eine 32-Bit-Architektur: Seine Register sind 32 Bit breit. Er besitzt 32 Adreßleitungen und kann sowohl im Real Mode als auch im Protected Mode bei geeigneter Programmierung 32-Bit-Segmente ansprechen. Anders gesagt: Der Offset kann jetzt 32 Bit breit und damit ein Segment bis zu 232 = 4096MB groß sein. Die Segmentregister (Selektoren im Protected Mode) sind immer noch 16 Bit breit in der Hoffnung, daß nicht mehr als 65536 Programme der jeweils maximalen Größe von 4GB gleichzeitig laufen werden. Die GDT (Global Descriptor Table), auf die der Selektor zeigt, besitzt übrigens "nur" 8192 Einträge, weshalb der gerade erwähnte Wert von 65536 auf diese 8192 korrigiert werden muß.

Nebenbei: In dieser Tabelle sind die Informationen für den eigentlichen Schutzmechanismus abgespeichert: Versucht ein Programm, auf ein Segment zuzugreifen, das "ihm nicht gehört", so löst dieser Versuch eine Exeption aus, einen speziellen Interrupt (s.u.), der vom Betriebssystem verwaltet werden muß und unter WINDOWS auf die von uns allen so geschätzte Meldung "Das Programm xxx verursacht eine allgemeine Schutzverletzung bei blablabla" führt. Ähnliches gilt für Hardwarezugriffe wie Timer etc. (Der Versuch, unter OS/2 die Register des Timers zu programmieren scheitert, in einer OS/2-DOS-Sitzung dagegen wird so getan als ob...). Darüberhinaus gibt die Tabelle darüber Auskunft, ob sich ein Programm gerade im Hauptspeicher befindet (und somit von der CPU abgearbeitet werden kann) oder gerade in eine SWAP-Datei "ausgelagert" wurde.
Durchschnittliche Bewertung 5 (1 Abstimmung)

Kommentieren nicht möglich

Tags