[ zorrome @ 09.12.2006. 10:46 ] @
| U tekstovima o programiranju kad se spominje memorija, adresa memorije, stack, heap itd. na koju se memoriju to odnosti, da li na RAM, na Cache procesora, registre procesora?
Isto tako kad se spominju prekidi (IRQ) u OS-ovima i memorijske adrese na koje se to adrese odnosi? |
[ del-boy @ 09.12.2006. 14:33 ] @
Teško da će 512KB ili 1MB keša procesora biti dovoljni za stack ili heap bilo kog malo većeg programa. Dakle koristi se RAM memorija. O registrima da i ne govorim, jer oni mogu da prime najmanje memorije (ali im se najbrže pristupa).
Ako se doboro sećam, što se prekida tiče, postoji tabela prekida koja se smešta u sam početak RAM memorije kada se računar upali. U tabeli se nalaze samo adrese obrađivača prekida (programa koji reaguju ako se dogodi određeni prekid), a obrađivači negde u memoriji. Tako da se i u ovom slučaju radi o RAM memoriji!
[ SuPeR_MaSteR @ 15.12.2006. 18:41 ] @
Sadrzaj programskog brojaca (adrese) se pamti u ROM memoriji dok, pri javljanju prekida njegov sadrzaj se smesta u stack memoriju odakle se ponovo uzima posle obrade interrupt-a.
[ del-boy @ 15.12.2006. 19:37 ] @
ROM = Read Only Memory
Ukoliko bi programski brojač bio u ROM memoriji ne bi mogao da se menja, zar ne? A to i jeste uloga programskog brojača, da uvek sadrži adresu sledeće inskrukcije koja će se izvršiti.
Za programski brojač je odvojen jedan registar u samom procesoru. Tačno je da se on smešta na stack (koje se nalazi u RAM -u) ako se desi prekid ili izuzetak, ali to nije tema ovde. Isto dako se programski brojac smesta na stek i sveki put kad pozoveš potprogram.
[ codebreaker @ 16.12.2006. 23:45 ] @
pa kad se spominje stack (push i pop) onda je to stack memorija. kada otvarash mem. lokaciju (new, malloc) onda je to operativna mem.
[ SuPeR_MaSteR @ 17.12.2006. 02:15 ] @
del-boy lose sam se izrazio. Ali pri startu racunara, programski brojac pokazuje na boot sekvence,tj u ROM memoriji (BIOS) ?
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.