Avatar billede jens123 Nybegynder
19. december 2001 - 19:03 Der er 2 kommentarer og
1 løsning

resevering af plads i ram.

Hvordan kan det være at jeg kan resevere med array heldt op til 2 000 000 000 byte når jeg kun har
256 000 000 byte ram.

Hvis jeg nu reservere så meget plads, kan jeg så risikere at et andet program begynder at bruge af dem, selvom mit program stadigvæk køre. Hvis ja kan det forhindres.

Kan det lade sig gøre at bestemme hvor meget man vil resevere når programmet er startet.
Avatar billede hreiff Nybegynder
20. december 2001 - 07:20 #1
Sandsynligvis fordi du bruger din harddisk via windows\' swapfile.
Avatar billede borrisholt Novice
20. december 2001 - 08:00 #2
Hvis du har reserveret fx 200 mb ram eller 2000 mb ram ja så er det dit.

Den del af din hukommelse du ikke bruger bliver rullet ud på et baggrunds lager, som hedder en Pagefil. IKKE en swap fil. Der er en verden til forskel. SELV Windows 95/98/ME som er 16 bit nede i kernen bruger denne metode. Grundet der yderest mangelfulde Memory Håndtering er det ikke så effektivt som du ser det i Window NT/2000/XP.

Det går i al sin enkelhed ud på at den deler din process op i flere pages. Her findes så flere algoritmer til at håndtere hvilke pages der skal rulles ud på baggrunds lageret : LIFO (Last In First Out), FIFO (First in First Out), Virtual Round Robbin og en 2 -3 stykker mere. Det vil føre forvidt at begynde at skrive om fordele og udlemper her. Hvis du finder dig en bog om System Arkitektur, skal du læse afsnittene omkring Virtual Lager, og Hukkomelses håndtering.

Så til dit spm om andere kan tage dit hukommelse : NEJ

Hvis du vi reservere noget hukommelse han du bare ekklære dig en mega stort array og bytes, og når så selv lægge diverse strukturer der op i. Hvorfor det skulle gøre kan jeg ikke lige se. Du skal således håndtere ALT omkring Hukommelses Håndtering selv, du får INGEN hjælp af dit OS.

Så lad være lad Windows hpndtere din RAM, det er den bedere til.

Jens B
Avatar billede pellelil Nybegynder
20. december 2001 - 10:29 #3
For lige at supplere Borrisholt\'s svar kan jeg oplyse at HVER process har råderet over et 4 GB adresse område. og ligeledes som beskrevet ovenstående så holder windows selv styr på hvornår den skal bruge fysisk hukommelse og hvornår den bliver nødt til at swappe (overføre data mellem den fysiske hukommelse og harddisken).

Dermed ikke sagt at du bare skal bruge løs af hukommelsen. Jo mindre du bruger jo mindre er der behov for at swappe og jo hurtigere vil dit system køre...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester