/ Forside / Teknologi / Hardware / Mac / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Mac
#NavnPoint
UlrikB 4810
kipros 1675
Klaudi 1010
myg 920
pifo 907
Stouenberg 838
molokyle 830
Bille1948 815
rotw 760
10  EXTERMINA.. 750
Forskel på swap og virtuel hukommelse
Fra : Henrik Münster


Dato : 24-02-07 00:42

En Mac kan jo lave swap-filer på harddisken, hvis der ikke er plads nok
til alle data i RAM. Hvis jeg ser i den widget, der hedder iStat Nano
eller Pro, har min MacBook for tiden 2 GB swap. Det er det højeste, jeg
kan få den til at vise både her og på min gamle TiBook. Når jeg ser i
Aktivitetsovervågning, som programmet hedder på dansk, har min MacBook
13,17 GB virtuel hukommelse. Er det ikke egentlig det samme? Er virtuel
hukommelse ikke, at man bruger plads på harddisken, når der ikke er
mere rigtig RAM?
--
Venlig hilsen
Henrik Münster
Esbjerg


 
 
Peter Rongsted (24-02-2007)
Kommentar
Fra : Peter Rongsted


Dato : 24-02-07 04:25

On Sat, 24 Feb 2007 00:42:22 +0100, Henrik Münster
<henrik@muenster.dk> wrote:

>En Mac kan jo lave swap-filer på harddisken, hvis der ikke er plads nok
>til alle data i RAM. Hvis jeg ser i den widget, der hedder iStat Nano
>eller Pro, har min MacBook for tiden 2 GB swap. Det er det højeste, jeg
>kan få den til at vise både her og på min gamle TiBook. Når jeg ser i
>Aktivitetsovervågning, som programmet hedder på dansk, har min MacBook
>13,17 GB virtuel hukommelse. Er det ikke egentlig det samme? Er virtuel
>hukommelse ikke, at man bruger plads på harddisken, når der ikke er
>mere rigtig RAM?

Det er ikke helt det samme.

De første systemer til multitasking havde et stort fælles adresserum
til alle de kørende programmer. Hvis et program ikke havde noget at
lave, kunne man gemme det på harddisken indtil der var noget for det
at lave. Swapping

Problemet med det fælles adresserum var at et prorgam med fejl (og det
er der jo i alle programmer) kunne kommer til at overskrive andre
programmer og deres data.

Derfor indførte man virtuel hukommelse. Virtuel hukommelse er en
teknik, hvor man får det til at se ud, som om et program, har adgang
til et stort sammenhængende adresseområde. Den tildelte hukommelse ses
som et stort sammenhængende område uafhængigt af andre programmer. Det
starter med adresse 0 og går til højeste adresse - for tiden er det
for det meste 2^32 eller 4 GB. Da der ikke altid er så meget
hukommelse i maskinen er hukommelsen virtuel (tylsyneladende). For at
kunne styre det er den virtuelle hukommelsen delt ind i et antal sider
(pages).

Den virkelige (fysiske) hukommelse er delt op i et antal rammer
(frames) på samme størrelse som siderne i den virtuelle hukommelse
(eller nok nærmere omvendt). Når et program kører er det ikke alle
dele af programmel som er aktive hele tiden. De dele, som er aktive,
skal naturligvis være i den fysiske hukommelse. derfor tildelses de
aktive sider til nogle fysiske rammer. De ikke aktive sider kan gemmes
på en harddisk i en pagefile.

Når et program skal bruge en side, som ikke er tildelt en fysisk ramme
byttes den ud men en side, der ikke har været brugt i et stykke tid.
Processen med at bytte rundt på en aktiv og en inaktiv side kaldes
paging. Da det ligner swapping klades pagefilen også til tider en swap
file.

Virtuel hukommelse er altså, at et program har adgang til et stort
adresseopråde, som er uafhængigt af alle de andre programmer. Da vi
ikke altid har adgang til så meget fysisk hukommelse, så lægger vi
noget at hukommelsen ud på harddisken. Derfor blandes de to begreber
ofte sammen.

Peter

Henrik Münster (24-02-2007)
Kommentar
Fra : Henrik Münster


Dato : 24-02-07 11:40

On 2007-02-24 04:24:47 +0100, Peter Rongsted <nulldev@rongsted.dk> said:

> Virtuel hukommelse er altså, at et program har adgang til et stort
> adresseopråde, som er uafhængigt af alle de andre programmer. Da vi
> ikke altid har adgang til så meget fysisk hukommelse, så lægger vi
> noget at hukommelsen ud på harddisken. Derfor blandes de to begreber
> ofte sammen.

Tak for den udførlige forklaring. Der er bare en ting, jeg ikke helt
har forstået. Fordi et program har adgang til og altså kan se et stort
adresseområde, betyder det så, at dette område rent faktisk tages på
harddisken? Efter Aktivitetesovervågning er der ofte 15 GB virtuel
hukommelse, og det er jo ret meget. Så meget synes jeg bestemt ikke,
der forsvinder på min harddisk, efterhånden som jeg åbner programmer.
Derimod passer det meget godt med, at der forsvinder op til 2 GB,
efterhånden som iStat rapporterer, at swapfilerne vokser til 2 GB.
Større har jeg aldrig set dem.
--
Venlig hilsen
Henrik Münster
Esbjerg


Niels Jørgen Kruse (24-02-2007)
Kommentar
Fra : Niels Jørgen Kruse


Dato : 24-02-07 13:31

Henrik Münster <henrik@muenster.dk> wrote:

> On 2007-02-24 04:24:47 +0100, Peter Rongsted <nulldev@rongsted.dk> said:
>
> > Virtuel hukommelse er altså, at et program har adgang til et stort
> > adresseopråde, som er uafhængigt af alle de andre programmer. Da vi
> > ikke altid har adgang til så meget fysisk hukommelse, så lægger vi
> > noget at hukommelsen ud på harddisken. Derfor blandes de to begreber
> > ofte sammen.
>
> Tak for den udførlige forklaring. Der er bare en ting, jeg ikke helt
> har forstået. Fordi et program har adgang til og altså kan se et stort
> adresseområde, betyder det så, at dette område rent faktisk tages på
> harddisken? Efter Aktivitetesovervågning er der ofte 15 GB virtuel
> hukommelse, og det er jo ret meget. Så meget synes jeg bestemt ikke,
> der forsvinder på min harddisk, efterhånden som jeg åbner programmer.
> Derimod passer det meget godt med, at der forsvinder op til 2 GB,
> efterhånden som iStat rapporterer, at swapfilerne vokser til 2 GB.
> Større har jeg aldrig set dem.

En del af den fysiske hukommelse optræder i det virtuelle adresseområde
for flere programmer. Det tager ikke plads på disken flere gange.

--
Mvh./Regards, Niels Jørgen Kruse, Vanløse, Denmark

Henrik Münster (24-02-2007)
Kommentar
Fra : Henrik Münster


Dato : 24-02-07 14:01

On 2007-02-24 13:31:18 +0100, nospam@ab-katrinedal.dk (Niels Jørgen
Kruse) said:

> En del af den fysiske hukommelse optræder i det virtuelle adresseområde
> for flere programmer. Det tager ikke plads på disken flere gange.

Ih ha, jeg er efterhånden forvirret på et meget højt plan
Når flere programmer tror, de har den samme del af den fysiske RAM, så
optager det da netop plads på harddisken flere gange. Nemlig en gang
for hvert program, der tror, det har netop den del af den fysiske RAM.
Om ikke andet, så trænger den her MacBook vist SÅ meget til 2 GB RAM.
Jeg skal bare lige have den byttet til en, der ikke rumler.
--
Venlig hilsen
Henrik Münster
Esbjerg


Thorbjørn Ravn Ander~ (24-02-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 24-02-07 15:41

Henrik Münster <henrik@muenster.dk> writes:

> Ih ha, jeg er efterhånden forvirret på et meget højt plan
> Når flere programmer tror, de har den samme del af den fysiske RAM, så
> optager det da netop plads på harddisken flere gange. Nemlig en gang
> for hvert program, der tror, det har netop den del af den fysiske
> RAM. Om ikke andet, så trænger den her MacBook vist SÅ meget til 2 GB
> RAM. Jeg skal bare lige have den byttet til en, der ikke rumler.

Rumler? Tror den den er et gamepad til fjernsynet?

Whatever, tillad mig at prøve at forklare.

Man fandt hurtigt ud af at mange programmer skulle bruge de samme
programbiblioteker når de kørte. I den helt simple udgave hvor alle
programmer er 100% selvstående, er disse programbiblioteker indlejret
i hver eneste program der kan udføres.

Det fylder naturligvis og er sjældent nødvendigt[1].

Derfor hittede man på at lave dynamisk linkning - altså at
der markeres i de enkelte programmer at de skal bruge et givent
programbibliotek, og at dette programbibliotek så gøres tilgængeligt
af operativsystemet når programmet startes.

Næste logiske skridt er så at disse programbibliotekers kode kun
opbevares eet sted i hukommelsen og at programmerne så deles om denne
kode - det er transparent så de alle sammen har deres "egen kopi" men
operativsystemet ved bedre.

Det er vitterligt fascinerende at følge hvilke optimeringer der er
mulige når man har den fornødne hardware. Bare se de seneste tiltag
med at køre Win XP inden i OS X - prøv at forestille dig hvor solide
vægge maskinen skal understøtte for at dette ikke går galt?

:)

--
Thorbjørn Ravn Andersen "... plus ... Tubular Bells!"

Axel Hammerschmidt (24-02-2007)
Kommentar
Fra : Axel Hammerschmidt


Dato : 24-02-07 16:15

Thorbjørn Ravn Andersen <nospam0000@gmail.com> wrote:

<snip>

> Det er vitterligt fascinerende at følge hvilke optimeringer der er
> mulige når man har den fornødne hardware. Bare se de seneste tiltag
> med at køre Win XP inden i OS X - prøv at forestille dig hvor solide
> vægge maskinen skal understøtte for at dette ikke går galt?

Jeg troede det var noget CPU ordnede - altså hardwaren. Intels
processorer har f.eks haft virtuel 8086 mode siden deres 80386 kom frem.

Thorbjørn Ravn Ander~ (24-02-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 24-02-07 22:44

hlexa@hotmail.com (Axel Hammerschmidt) writes:

> Jeg troede det var noget CPU ordnede - altså hardwaren. Intels
> processorer har f.eks haft virtuel 8086 mode siden deres 80386 kom frem.

Mnja, mnjoh.

CPU'en skal understøtte at når det program der kører laver noget det
ikke må, så skal det forhindes i det. Det gør de allerfleste moderne
CPU'er.

Kunsten er så at fange alle de ting et operativsystem kan hitte på, og
så tilføje noget kode der holder styr på alt det der bliver gjort,
således at verden ser ud som det skal for det indeni.

I de nyeste CPU'er er der tilføjet noget der gør det mere effektivt at
afvikle flere operativsystemer som processer. Det bliver ganske
spændende.

vmware har jo været i mange år på PC-markedet - det er først efter at
der er kommet konkurrence (så vidt jeg kan se at MS købte VPC og
gjorde det "gratis") at de har valgt at gå ind og sætte sig med deres
gratisversioner.

De emulerer jo simpelthen en PC med en given hardwarebestykning - de
deler ikke de fysiske enheder, men lægger et lag ovenpå.

--
Thorbjørn Ravn Andersen "... plus ... Tubular Bells!"

Axel Hammerschmidt (25-02-2007)
Kommentar
Fra : Axel Hammerschmidt


Dato : 25-02-07 00:31

Thorbjørn Ravn Andersen <nospam0000@gmail.com> wrote:

> hlexa@hotmail.com (Axel Hammerschmidt) writes:
>
> > Jeg troede det var noget CPU ordnede - altså hardwaren. Intels
> > processorer har f.eks haft virtuel 8086 mode siden deres 80386 kom frem.
>
> Mnja, mnjoh.

<snip>

Og Blue Pill?

<http://www.geek.com/news/geeknews/2006Aug/gee20060807037843.htm>

Thorbjørn Ravn Ander~ (25-02-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 25-02-07 00:48

hlexa@hotmail.com (Axel Hammerschmidt) writes:

> Og Blue Pill?
>
> <http://www.geek.com/news/geeknews/2006Aug/gee20060807037843.htm>

Jeg kender det ikke, og det er ikke verdens mest tekniske eksempel.

Uanset hvad, hvis XP kører inden i OS X er det XP der bliver knækket,
ikke OS X.
--
Thorbjørn Ravn Andersen "... plus ... Tubular Bells!"

Morten Lind (24-02-2007)
Kommentar
Fra : Morten Lind


Dato : 24-02-07 20:03

Thorbjørn Ravn Andersen <nospam0000@gmail.com> wrote:

> prøv at forestille dig hvor solide
> vægge maskinen skal understøtte for at dette ikke går galt?

Uhada ja, og med den slendrian, danske "håndværkere" lægger for dagen i
dag og gennem de seneste femten år, tør man da endog ikke tænke på
det))

M.
--
[dit mod er blot din evne til at undertrykke din angst(ML)]

Thorbjørn Ravn Ander~ (24-02-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 24-02-07 22:44

info@for-ogefternavn.dk (Morten Lind) writes:

> > prøv at forestille dig hvor solide
> > vægge maskinen skal understøtte for at dette ikke går galt?
>
> Uhada ja, og med den slendrian, danske "håndværkere" lægger for dagen i
> dag og gennem de seneste femten år, tør man da endog ikke tænke på
> det))

Så er det godt at Parallels er lavet af russere :)
--
Thorbjørn Ravn Andersen "... plus ... Tubular Bells!"

Morten Lind (25-02-2007)
Kommentar
Fra : Morten Lind


Dato : 25-02-07 08:06

Thorbjørn Ravn Andersen <nospam0000@gmail.com> wrote:

> info@for-ogefternavn.dk (Morten Lind) writes:
>
> > > prøv at forestille dig hvor solide
> > > vægge maskinen skal understøtte for at dette ikke går galt?
> >
> > Uhada ja, og med den slendrian, danske "håndværkere" lægger for dagen i
> > dag og gennem de seneste femten år, tør man da endog ikke tænke på
> > det))
>
> Så er det godt at Parallels er lavet af russere :)

Hæ, hæ....ja, hvis de er ligeså grundige som de babuskaer, der fejede
Metrostationerne og vaskede kaklerne for 25 år siden, så er det godt

M.
--
[dit mod er blot din evne til at undertrykke din angst(ML)]

Henrik Münster (24-02-2007)
Kommentar
Fra : Henrik Münster


Dato : 24-02-07 20:47

On 2007-02-24 15:40:38 +0100, nospam0000@gmail.com (Thorbjørn Ravn
Andersen) said:

> Henrik Münster <henrik@muenster.dk> writes:
>
>> Ih ha, jeg er efterhånden forvirret på et meget højt plan
>> Når flere programmer tror, de har den samme del af den fysiske RAM, så
>> optager det da netop plads på harddisken flere gange. Nemlig en gang
>> for hvert program, der tror, det har netop den del af den fysiske
>> RAM. Om ikke andet, så trænger den her MacBook vist SÅ meget til 2 GB
>> RAM. Jeg skal bare lige have den byttet til en, der ikke rumler.
>
> Rumler? Tror den den er et gamepad til fjernsynet?

I så fald er man da under konstant beskydning. Jeg tror, det var det
samme, Mich. Ottosen var ude for med sin første MacBook. Der er en
konstant rumlen eller snurren i de flader, hvor man hviler håndleddene.
Det mærkes kun på hårdt underlag. Står maskinen på et skriveunderlag
eller endnu bedre på en iCurve, der jo kan fjedre en del, er der
faktisk intet at mærke. Det er ikke behageligt i længden, og jeg skal
også have den byttet, når Merlin får en ny hjem.

> Derfor hittede man på at lave dynamisk linkning - altså at
> der markeres i de enkelte programmer at de skal bruge et givent
> programbibliotek, og at dette programbibliotek så gøres tilgængeligt
> af operativsystemet når programmet startes.
>
> Næste logiske skridt er så at disse programbibliotekers kode kun
> opbevares eet sted i hukommelsen og at programmerne så deles om denne
> kode - det er transparent så de alle sammen har deres "egen kopi" men
> operativsystemet ved bedre.

Det er godt nok smart. Tak for den udførlige forklaring.
--
Venlig hilsen
Henrik Münster
Esbjerg


Thorbjørn Ravn Ander~ (24-02-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 24-02-07 22:51

nospam0000@gmail.com (Thorbjørn Ravn Andersen) writes:

> Det fylder naturligvis og er sjældent nødvendigt[1].

Hov, glemte den her.

[1] En markant undtagelse er nødssituationsprogrammer. Disse skal
helst kræve mindst muligt er i luften for at virke - oplagte eksempler
er "mount" som gerne skulle virke selv om disken med de delte
programbiblioteker er offline - og er oftest placeret i /usr/sbin i
modsætning til /usr/bin.



--
Thorbjørn Ravn Andersen "... plus ... Tubular Bells!"

Thorbjørn Ravn Ander~ (24-02-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 24-02-07 12:18

Peter Rongsted <nulldev@rongsted.dk> writes:

> Når et program skal bruge en side, som ikke er tildelt en fysisk ramme

Det opdages af en MMU (memory management unit) - der er ikke kode i
selve programmet som holder styr på den slags.

--
Thorbjørn Ravn Andersen "... plus ... Tubular Bells!"

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408868
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste