Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako se RAM raspodeljuje?

[es] :: Kernel i OS programiranje :: Kako se RAM raspodeljuje?

[ Pregleda: 4985 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.static.zrlocal.net.



+5 Profil

icon Kako se RAM raspodeljuje?28.09.2011. u 20:52 - pre 152 meseci
Pozdrav.

Ovo pitanje nije striktno za C vezano pa bih zamolio moderatore da ga smeste gde mu je mesto

Nego, zanima me kako je RAM popunjen. Odnosno na kojim lokacijama se nalazi sistem, a koje su slobodne? U koje lokacije se smesta npr. program koji sam iskodirao?
Ovo mi je palo na pamet jer kada sam preko pokazivaca pokusao da pristupim nekoj lokaciji (npr. 0x0000000) program pukne. Da li ovo znaci da preko pokazivaca mogu da pristupim samo memorijskim lokacijama koje su dodeljene tekucem programu?
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

uerceg
Software Developer
Berlin, Germany

Član broj: 267296
Poruke: 203
*.dynamic.sbb.rs.



+36 Profil

icon Re: Kako se RAM raspodeljuje?28.09.2011. u 21:04 - pre 152 meseci
Punjač (loader) je zadužen za punjenje tvog programa u operativnu memoriju računara. To nije nikada fiksna lokacija. 0x00000000 je početna adresa memorijskog prostora i određeni broj početnih adresa u adresnom prostoru je isključivo rezervisan za operativni sistem. Tvoja aplikacija nema prava da pristupi toj lokaciji i ukoliko se desi u tvom kodu da se pokuša pristupiti bilo kojoj lokaciji koja je rezervisana za sam operativni sistem, program će da pukne, kao što se tebi i desilo.
 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.static.zrlocal.net.



+5 Profil

icon Re: Kako se RAM raspodeljuje?28.09.2011. u 21:31 - pre 152 meseci
Ok, jasno mi je to da su pocetne adrese rezervisane za sistem i da moj program nece imati uvek fiksnu pocetnu adresu.

Kontao sam i ja da nemam prava pristupa nekoj adresi rezervisanoj od strane sistema (da li to sistem odredjuje?)

Jos nesto me zanima, u resource monitoru vidim da postoji deo memorije rezervisan za harver. Zasto je potrebno da se rezervise memorija za hardver?
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

uerceg
Software Developer
Berlin, Germany

Član broj: 267296
Poruke: 203
*.dynamic.sbb.rs.



+36 Profil

icon Re: Kako se RAM raspodeljuje?28.09.2011. u 21:54 - pre 152 meseci
To bi trebalo da operativni sistem zauzme. Samom operativnom sistemu je potrebna određena količina RAM memorije da bi izvršavao neke svoje operacije bez kojih ne može da funkcioniše. On to zauzme, a ostatak je namenjen aplikacijama, između ostalih i tvojim programima koje iskodiraš i poteraš. Pogledaj ovu prezentaciju malo, možda ti bude jasnije: http://www.slideshare.net/guest1415ae65/operating-systems-and-memory-management

Što se tiče Hardware Reserved memorije u Resource Monitor, mislim da je to memorija namenjena grafici na ploči. Koliko znam, nebitno je da li se koristi taj tip grafike ili ne, ali da se on svejedno zauzima. Ne znam koliko ti zauzima MB memorije, ako nije puno, nemoj da te nervira. Meni je 10MB, mada se sećam da sam čitao da je nekom liku baš dosta jelo i on uzeo i diskonektovao sav hardver, sve rasklopio, sastavio ponovo i valjda nije imao ni MB za Hardware Reserved. Ovo ti govorim šta sam pročitao, ne stojim ja iza toga, pošto me nikada tih 10MB nije nerviralo kod mene.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: Kako se RAM raspodeljuje?28.09.2011. u 22:23 - pre 152 meseci
Kao prvo, za user-mode programe (aplikacije) memorija je virtuelna - to znaci da, recimo pointer na 0x10000000 u tvojoj aplikaciji >nije< pointer na 0x10000000 lokaciju u fizickoj memoriji!

Svaki proces dobija svoj virtuelni adresni prostor koji je potpuno odvojen od drugih, za 32-bitne aplikacije je to od 0x00000000 do 0xffffffff gde je obicno sve iznad > 0x80000000 rezervisano za sistemske pozive itd... znaci, svaka 32-bitna aplikacija "vidi" 4 GB virtuelne memorije.

Medjutim, ta virtuelna memorija nije kompletno alocirana (inace bi ti za svaki program trebalo po 4 GB RAM-a) - vec se alocira po potrebi u "stranicama" (pages) koje su 4 kilobajta. Ako pokusas da pristupis adresi koja nije alocirana, dobices gresku (kao recimo 0x00000000).

Svaka stranica (page) se nalazi u tabeli koja OS-u koristi da zna gde se sta nalazi u fizickoj memoriji. OS u svakom momentu moze izbaciti neku stranicu iz fizicke memorije, ubaciti neku drugu, itd... Swap fajl na disku, recimo, sluzi za skladistenje stranica koje trenutno nisu u upotrebi - kada program zahteva stranicu koja je u swap fajlu, OS ce ucitati ponovo tu stranicu u fizicku memoriju.

Samo kernel i drajveri koji trce u nultom prstenu imaju direktan pristup fizickoj memoriji - to je vrlo privilegovana pozicija, zato sto je tako moguce citati sadrzaj svih procesa bez ikakvih sigurnosnih ogranicenja.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

burex
Software developer
Iterro
46°05'N 19°39'E

Član broj: 24964
Poruke: 987
*.dynamic.sbb.rs.



+679 Profil

icon Re: Kako se RAM raspodeljuje?28.09.2011. u 22:28 - pre 152 meseci
Ovo lepo ilustruje paging:

A man is smart. People are stupid.
Prikačeni fajlovi
 
Odgovor na temu

maksvel

Član broj: 107376
Poruke: 2417

Jabber: maksvel
Sajt: maksvel.in.rs


+161 Profil

icon Re: Kako se RAM raspodeljuje?28.09.2011. u 22:28 - pre 152 meseci
Pored mnogih resursa na Internetu, posebno mi se dopao ovaj: http://duartes.org/gustavo/blog/best-of
 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.static.zrlocal.net.



+5 Profil

icon Re: Kako se RAM raspodeljuje?28.09.2011. u 22:52 - pre 152 meseci
Hvala ljudi, sad je mnogo jasnije
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

[es] :: Kernel i OS programiranje :: Kako se RAM raspodeljuje?

[ Pregleda: 4985 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.