Hva er segmentregistre? Hvorfor er minnet segmentert? Hvordan gjøres minnesegmentering?


Beste svaret

Et segment er en sammenhengende mengde minne. I et segmentert minneskjema er hele prosessens minne i segmenter. De første virtuelle minnesystemene (Burroughs B5000, Mulitcs) var basert på segmenter med variabel størrelse som er kopiert inn og ut av RAM.

Et program refererer til hvert segment som en forskyvning til et segmentregister. Segmentregisterets faktiske innhold styres av systemet. Systemet vet når det refereres til et segment når segmentregistret brukes, og bruker dette til å administrere virtuelt minne.

Dette står i kontrast til sidet virtuelt minne, brukt overalt i dag, der kvantene av virtuelt minne er faste biter av minne. Sidesøking er mer kompleks og krever mer maskinvarestøtte.

MITs Multics har hatt en enorm innvirkning på moderne databehandling (inkludert mange ideer innlemmet i Unix og Linux). Fred Pollack sluttet seg til Intel 286-prosjektet fersk ut av MIT. Han så 8086 «segment» -registrene (faktisk basisregister) og lobbyet vellykket for å lage disse virkelige segmentregistrene som i Multics. (Fred ble senere en Intel Fellow.)

286s 64KB-segmenter led det samme problemet som Multics-segmentene: de var for små. Altfor ofte er det nødvendig med flere segmenter for å få tilgang til minnestrukturer, noe som betyr å laste segmentregistrene på nytt og ofte få operativsystemet involvert. På grunn av innvirkning på ytelse ble segmentering sjelden brukt, og segmentregistre ble brukt som basisregistre i 8086-kompatibilitetsmodus.

32-biters Intel 386 la til sides virtuelt minne (YEA!) Under segmentskjemaet (meh ). 64-biters Intel-arkitekturmodell fjerner segmentregistrene helt, selv om den fremdeles har kompatibilitetsmodi helt tilbake til 8086.

Svar

1. Hva er segmentregister?

-> Som vi alle vet er register til stede i prosessoren. vi lager segmenter i minnet (segmentering). For å få startplasseringen til disse segmentene lagrer vi adressen til disse segmentene i segmentregisteret. i korte segmentregistre lagrer startplasseringen til segmenter som er tilstede i minnet, dvs. segmentadresse.

iv id = «5aaa35589c» 3.

3. hvordan minnesegmentering er gjort?

-> minnesegmentering gjøres ved å bruke 16 bits adresser. først gir vi segmentadresse (start av segment), etter at vi har gitt segmentadresse, gir vi offset-adresse () for å få tilgang til steder i det segmentet.

vi gir segmentadresse bare en gang etter at vi gir offset-adresse.

vi gir segmentadresse og offset-adresse begge 16 bits adresser som programmerer. etter å ha gitt denne adressen er det prosessorens plikt å skjule både denne adressen til fysisk adresse (reell adresse).

fysisk adresse = segmentadresse * 10 + offset-adresse

= 1000 * 10 + 2345

= 12345H

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *