Pamet (OT)

Jakub Slajs xslajsj
Středa Březen 17 14:31:20 CET 2004


Zdravim,

koukam ze se nam tu mnozi "programatorske" dotazy. Dovolil bych si jenom
dve male poznamky.

> OP, OC, C++ maji prece znacne odchylky od pojeti objektivniho modelu. Ciste
> objektovy model je implementovan az v dalsich jazycich - Java, ....

Uz to sem pisu podruhe - Java neni ciste objektova ;-) Pouziva primitivni
datove typy (int, float atd. - nejsou objekty) a reference (trida,
interface, pole). Ciste objektovy je napr. Smalltalk.

> To je proste. Kazdy proces ve 32-bitovych Windows ma pridelen VIRTUALNI
> pametovy prostor 4GB, ve kterem si prakticky muze delat co chce, tj, treba
> alokovat pamet na adrese 2GB. Pri pristupu do pameti jsou potom tyto
> virtualni adresy mapovany na adresy skutecne. Cela problematika je dost
> komplexni, nez aby se dala vysvetlit tady v konferenci. Pokud Vas to zajima
> blize, podivejte se do libovolne knizky o programovani pod 32-bitovymi Win.

Tady bych chtel pouze poznamenat ze se nejedna o specifikum Windows. Tomuto
typu adresovani se rika strankovani a musi mit podporu v procesoru.

Jde o to ze virtualni pametovy prostor procesu (4GB) je rozdelen do stranek
(zpravidla 4kB - lisi se podle typu procesoru). Vlastni fyzicka pamet je pak
rozdelena na ramce stejne velikosti. Strankovaci mechanismus opet zavisi na typu
procesoru. Napr. 386 ma linearni adresu (32-bitu) slozenou ze tri casti:
adresar: (hornich 10 bitu) - index do tabulky adresar, odtud se vybira 20-bitova
  baze tabulky stranek
tabulka: (dalsich 10 bitu) - index do tabulky stranek, odtud se vezme 20 hornich
  bitu fyzicke adresy
offset: (nejnizsich 12 bitu) - 12 nejnizsich bitu fyzicke adresy (addr v ramci)

K prekladu adres je nutny dvoji pristup do pameti (tabulky jsou v RAM), proto se
posledni prelozene baze ukladaji do pameti cache (TLB). Nektere typy procesoru
pouzivaji i triurovnove strankovani.

Dalsi vyhodou strankovani je podpora swappovani. Pokud se proces pokusi pristoupit
na stranku ktera neni fyzicky v pameti, tak procesor vygeneruje preruseni a je
na operacnim systemu aby uvolnil nejaky ramec a prislusnou stranku natahl z disku.

S pozdravem,

Jakub Slajs





Další informace o konferenci Hw-list