background image

SYSYTEMY OPERACYJNE

Zarządzanie Pamięcią Operacyjną

04.01.2011

Segmentacja Pamięci Operacyjnej

Segmentacja   to   podział   programu   na   części   logiczne   i   przydzielenie   każdej   części  

(segmentowi) odrębnego miejsca w pamięci operacyjnej

Adresy fizyczne = Adresy bazowe segmentu + OFFSET w danym segmencie

PROCESOR

(Dynamiczne wiązanie adresów)

Realizacja segmentacji pamięci przez procesory rodziny x86

Tryb pracy:

REAL (tryb adresów rzeczywistych)

PROTECTED (tryb pracy chronionej)

praca wielozadaniowa

Skompilowany program

Pamięć Operacyjna

O

F

FS

E

T

(k

om

pi

la

to

r)

STOS

DANE

KOD

(

)

plik.exe

STOS

DANE

KOD

A

dr

es

ba

zo

w

e

S

O

A

dr

esy

 fi

zy

cz

ne

background image

Tryb REAL

CS (CODESEGMANT) – segment kodu

DS (DATA SEGMENT) – segment danych – dane

SS (STACK SEGMENT) – segment stosu

ES (EXTRA SEGMENT) – segment ekstra – dane

Rola rejestrów segmentowych

Pamięć operacyjna  =1MB=20

20

B

Adres fizyczny - 20 bitowy

Wyznaczanie adresu fizycznego

rejestry segmentowe

15

0

15

0

CS
DS

SS
ES

OFFSET

+

Adres fizyczny

ALU

FR

31

15

0

EAX

EBX
ECX

EDX

EBP

ESP

ESI

EDI

AX
BX
CX
DX

BP
SP

SI

DI

AH

BH
CH
DH

AL
BL
CL
DL

Magistrala wewnętrzna

Rejestry robocze

Jednostka adresowa

Jednostka wykonywawcza

Rejestr segmentowy

Adres bazowy segmentu

(z dokładnością do paragrafu)

0000

19

15

0

0

Rejestr segmentowy

0000

19

15

0

0

0000

OFFSET

15

0

19

0

Adres fizyczny

background image

segment kodu

CS:IP – adres logiczny

segment stosu

SS:SP – adres logiczny

segmenty danych

DS: Adres efektywny

OFFSET w segmencie danych

Tryb adresowania

natychmiastowy np.: ADD AX,5

rejestrowy np.: ADD AX,BX

bezpośredni np.: ADD AX, nazwa zmiennej

pośredni rejestrowy np.: ADD AX,[BX]

rejestr adresowy

ES: Adres efektywny

ADD AX,[BX] (domyślnie DS)

ADD AX,[ES:BX]

   prefiks

ES:

ADD AX,[BX]

CS

0000

15

0

IP

15

0

19

0

Adres rozkazu

+