Vad är segmentregister? Varför är minnet segmenterat? Hur görs minnessegmentering?


Bästa svaret

Ett segment är en sammanhängande bit av minnet. I ett segmenterat minnesschema finns hela processens minne i segment. De första virtuella minnessystemen (Burroughs B5000, Mulitcs) baserades på segment med variabel storlek som kopieras in och ut ur RAM.

Ett program refererar till varje segment som en förskjutning till ett segmentregister. Segmentregistrets faktiska innehåll styrs av systemet. Systemet vet när ett segment refereras när segmentregistret används och använder detta för att hantera virtuellt minne.

Detta står i kontrast till sidas virtuellt minne, används överallt idag, där kvantiteterna av virtuellt minne är bitar av fast storlek. Personsökning är mer komplicerat och kräver mer hårdvarustöd.

MITs Multics har haft en enorm inverkan på modern databehandling (inklusive många idéer integrerade i Unix och Linux). Fred Pollack gick med i Intel 286-projektet från MIT. Han såg 8086-segmentregistren (faktiskt basregister) och lobbade framgångsrikt för att göra dessa riktiga segmentregister som i Multics. (Fred blev senare en Intel Fellow.)

286: s 64KB-segment led av samma problem som Multics-segmenten: de var för små. Alltför ofta behövs flera segment för att komma åt minnesstrukturer, vilket innebär att man läser in segmentregister och ofta involverar operativsystemet. På grund av inverkan på prestanda användes sällan segmentering och segmentregister användes som basregister i 8086-kompatibilitetsläge.

32-bitars Intel 386 lade till virtuellt minne (YEA!) Under segmentschemat (meh ). 64-bitars Intel-arkitekturmodell gör helt bort segmentregister, även om den fortfarande har kompatibilitetslägen ända tillbaka till 8086.

Svar

1. Vad är segmentregister?

-> Som vi alla vet finns det register i processorn. vi skapar segment i minnet (segmentering). För att få utgångsläget för dessa segment lagrar vi adressen till dessa segment i segmentregistret. i korta segmentregister lagrar startplatsen för segment som finns i minnet, dvs segmentadress.

iv id = ”5aaa35589c” 3.

3. hur görs minnesegmentering?

-> minnessegmentering görs med 16 bitars adresser. först ger vi segmentadress (start av segment), efter att ha gett segmentadress ger vi offsetadress () för att komma åt platser i det segmentet.

vi ger segmentadress bara en gång efter det ger vi offsetadress.

vi ger segmentadress och offset adress båda 16 bitar adresser som programmerare. efter att ha gett denna adress är det processorns plikt att dölja både denna adress till fysisk adress (verklig adress).

fysisk adress = segment adress * 10 + offset adress

= 1000 * 10 + 2345

= 12345H

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *