Diskussion:Segmentierung (Speicherverwaltung)

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 30. Dezember 2019 um 10:11 Uhr durch imported>Moritzgedig(279278) (Neuer Abschnitt →‎Geschichtsvergessenheit).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Beispiele anderer Prozessoren

Der Artikel ist insgesamt etwas Intel-lastig. Bei den Beispielen wäre es nett wenn noch Zusammenfassungen über die Segmentierung bei anderen Prozessorfamilien hinzukämen. Hat vieleicht jemand Ahnung? --Essen-thomas 01:24, 22. Feb 2006 (CET)

Ich denke damals hat es nur sehr wenige andere Prozessorhersteller gegeben zB Motorola. Die haben ja wirklich eigene Standards gesetzt zB Binäre Zahlendarstellung. Aber Intel hat sich mit ihrer x86-Plattform und damit auch mit ihrem Zahlenstandart am Markt durchgesetzt. Die heutige AMD jedenfalls hat zu dieser Zeit Chipsätze für Intel hergestellt. Und baut heute Prozessoren, die auf der X86-Plattform aufsetzen und deshalb auch diese Segmentierung verwenden.

Wenn wir von Segmentierung sprechen reden wir entweder a) von der Segmentierung im Real Mode oder b) von der Segmentierung im Protected Mode. Ob Intel oder AMD ist egal, wichtig bzw. maßgebend ist die Prozessor Architektur, hier Intel Architecture. --T0ast3r 14:44, 30. Sep. 2007 (CEST)



Hier können Segmente zwischen einem Byte und 64KiB (ab dem 80386er bis zu 4 Gigabytes) lang sein und an beliebigen Byte-Positionen im physikalischen oder linearen Adressraum beginnen. Dieser Satz ist falsch, Segmente können nicht im linearen Adressraum beginnen, Segmente legen die Struktur des linearen Adressraums erst fest. --80.134.135.28 01:55, 29. Mär. 2008 (CET)

Nicht falsch, nur unglücklich ausgedrückt. Durch die Segmentverwaltung werden aus den virtuellen Adressen (bestehend aus Segmentnummer und Offset) lineare Adressen gebildet. Die linearen Adressen bilden den linearen Adressraum. Dieser ist beim 286er (und beim 386er bei deaktiviertem Paging) identisch zum physischen Adressraum, das heißt: lineare und physische Adressen sind dort identisch.
Die Anfangsadressen der Segmente beziehen sich auf eben diesen linearen Adressraum. Somit ist die Formulierung schon korrekt so. Wenn du es umformulieren willst, so dass es immernoch korrekt aber besser verständlich ist, nur Mut! --RokerHRO 20:57, 29. Mär. 2008 (CET)

Frage

Warum kann man mit Segmentierung mehr Speicher adressieren, das verstehe ich nicht.

Statt eines einzigen linearen Adressraumes von 64 KiByte (16-Bit-Zeiger) oder 4 GiByte (32-Bit-Zeiger) hast du eben n>1 Segmente mit jeweils 64 KiB bzw. 4 GiB. Nimmt man die (bsi x86 16bittige) Segmentnummer stets mit zur Länge der Zeiger hinzu (so genannte "far"-Zeiger mit dann 32 oder 48 Bit Länge), ist der damit adressierbare Speicherbereich natürlich nicht größer, als wenn man gleich lineare 32- oder 48-Bit-Zeiger nehmen würde. Bei x86 ist es sogar weniger, da nicht alle Bits im Segmentselektor frei nutzbar sind.
Der Vorteil der Segmentierung ist (neben segmentbasiertem Speicherschutz und anderem), dass man eben – so lange man mit einem einzigen Segment auskommt – kürzere Zeiger benutzen kann, die nur so lang sind, wie die Wortbreite der CPU. Dies spart Speicher im Programmcode und beschleunigt die Abarbeitung der Maschinenbefehle.
Alle Klarheiten beseitigt? ;-) --RokerHRO 13:05, 5. Aug. 2008 (CEST)
Also ist kann man nur mehr Speicher adressieren, weil man viele verschiedene 64KiB Segmente adressieren kann?
Was heißt "nur"? Das ist bzw. war ja der Zweck, weswegen Segmentierung eingeführt wurde. --RokerHRO 23:45, 20. Jan. 2009 (CET)

Physikalisch - physisch

Das englische Wort physical hat recht unterschiedliche Bedeutungen: Es heisst einmal körperlich: Physical Education ist einfach Turnunterricht, aber sicher nicht Physikunterricht, physical examination ist keine Physikklausur sondern eine ärztliche Untersuchung oder eine Musterung. Im Deutschen unterscheiden wir zwischen physisch und physikalisch, hier wäre physisch angebracht. Aehnliche falsche Freunde finden wir oft: Was man bei uns oft die Webseite nennt, müsste eigentlich der Website heissen (von lat. situs, der Ort), Silikon findet man im Busen mancher Schönheiten aber niemals in Halbleiterchips. --83.181.117.166 22:18, 20. Jan. 2009 (CET)

Stimmt, hab es soeben gefixt. Wurde wohl beim letzten Review übersehen. Danke. --RokerHRO 23:51, 20. Jan. 2009 (CET)

Geschichtsvergessenheit

Ich halte den Artikel für völlig falsch.
Was hier los ist: Historisch rückblickend wurde anhand von einer Architektur das Beschrieben was nach 10 bis 20 Jahren daraus geworden ist. Als der intel 8086 Ende der 70'ger (1978) entwickelt wurde machte sich noch niemand Gedanken über: Speicherverwaltung, Betriebssystem, Schutzmechanismen, virtueller Speicherverwaltung, verschiedene Attribute (Programm-, Daten- und Stack-Segmente), Privilegierungsebenen.
Das ist völlige Geschichtsvergessenheit. Diese "Attribute" sind ein glücklicher Umstand der Zwänge. Sie ergeben sich direkt aus den Offset-Registern: CS: Codesegment, DS: Datensegment, SS: Stacksegment, (ES: Extrasegment).
"Die Segmentierung war früher eine besonders wichtige Möglichkeit, mehr Speicher zu adressieren, als es durch die vorhandenen Adressleitungen bzw. die Größe (Anzahl Bits) von Prozessor-Registern allein möglich war." Eine? DAS ist der ursprüngliche Grund!
Die Home-Computer hatten nicht einmal Betriebssysteme. Da gab es ein BIOS, einen LOADER oder DOS, einen BASIC Interpreter und das war es. Kein Multitasking, Keine Nutzer, keine Rechte.
Real-Mode, Protected-Mode, Extended-Mode waren nötig um Rückwärts kompatibel zu sein. Da hat man die Not zur Tugend gemacht und die eh nötige Segmentierung gleich noch zu etwas gutem gebraucht. "Microsoft Windows 95 [...] war das erste Betriebssystem der Windows-Reihe von Microsoft, das den 32-Bit-Betrieb des Prozessors weitreichend unterstützte". Nur Microsoft Windows NT war ein 32 bit OS welches die Segmentierung unnötig gemacht hätte.
--Moritzgedig (Diskussion) 11:11, 30. Dez. 2019 (CET)