» »

Pomnilnik v Windows: 2. del

Pomnilnik v Windows: 2. del

TechNet - V drugem delu svojega bloga si je Mark Russinovich ogledal navidezni pomnilnik, ki je nadomestek fizičnega za aplikacije, saj s slednjim gospodari izključno operacijski sistem. Za vas pa se je s temi stvarmi v slovenščini pobliže seznanil Slo-Tech.

Vsak proces v okolju Windows se izvaja v svojem lastnem navideznem pomnilniku, z imenom naslovni prostor (address space), ki ga vidi kot pravi fizični pomnilnik. Iz istih razlogov, kot so bili navedeni v prvem delu sestavka, lahko 32-bitni sistem naslovi 4 GB navideznega pomnilnika. 2 GB od tega pripadata aplikacijam na tak način, da vsaka vidi celotna 2 GB zase, operacijski sistem pa določa, koliko in kdaj se uporabljenega navideznega pomnilnika dejansko zapiše v RAM. Če to iz kakršnega koli razloga ni dovolj, je že Windows NT SP3 uvedel stikalo /3GB, XP in 2003 pa /userva, ki programom v prvem primeru dodeli 3 GB naslovni prostor, v drugem pa dinamično med 2 in 3. Da programi delujejo pravilno v tem razširjenjem področju, morajo biti temu prilagojeni in prevedeni z zastavico large address space aware, da pravilno uporabljajo zadnji bit pri naslavljanju (high bit), ki je pod 2 GB vedno nič. V nasprotnem primeru si sproti brišejo podatke in ne delujejo pravilno.

Na 64-bitnih sistemih je dostopnega mnogo več pomnilnika, vendar lahko 32-bitne aplikacije uporabljajo le 4 GB. 64-bitni kazalci podpirajo teoretično 16 heksabajtov (264), ki ga Windows razdelijo takole. Na platformi x64 se programom dodeli 8 TB, na IA64 pa 7 TB, ostalo pa se porabi za sistem. Shema izgleda takole.

Naslednji pomemben pojem je zagotovljen pomnilnik (committed memory), kar ni enako rezerviranemu. Rezervirani pomnilnik še ne more shraniti podatkov, aplikacije pa ga uporabljajo zato, da si zagotovijo kontinuirani naslovni prostor. Zagotovljeni pomnilnik, po drugi strani, je dejansko zapolnjeni, saj operacijski sistem garantira, da lahko program vanj zapisuje podatke - do zgornje meje, ki se imenuje zagotovljena meja (commit limit). Količina zagotovljenega pomnilnika za vse aktivne procese se imenuje current commit charge in ne more preseči vsote fizičnega pomnilnika in ostranjevalne datoteke. V Windows 2000 in XP se ta ista zadeva imenuje Uporaba OD (PF Usage) in jo najdemo v Upravitelju opravil.

Poenostavljeno to pomeni, da se bo 32-bitni program sesul, bodisi ko bo dosegel zgornjo mejo svojega naslovnega prostora (2 GB) bodisi že prej, če imate veliko požrešnih programov in malo pomnilnika in odstanjevalne datoteke, tako da je zagotovoljena meja sistema nizka. V takih primerih se začnejo pojavljati čudne napake, Windows pa navadno opozorijo, da pomnilnika zmanjkuje in da bo potrebno zapreti nekaj programov.

Ves pomnilnik, ki ga porabijo programi, ne šteje k zagotovljenemu. Rezervirani pomnilnik, ki še ne uporabljen, ne sodi zraven. Prav tako mapiranje datotek z diska, ker jih Windows vedno lahko pokliče od tam. Štejeta pa dve vrsti: privatni in ostranjevalni (private in pagefile-backed). Prvi je lasten vsakemu procesu, podpira avtomatsko obnavljivo kopico (garbage collector heap), nativno kopico (native heap) in jezikovne alokatorje (language allocator) ter se ne more deliti, Windows pa ga prikazuje v Upravitelju opravil za vsak proces posebej. Drugega je težje določiti, saj si ga procesi lahko delijo.

Glavno vprašanje in edina stvar, na katero uporabnik lahko vpliva, je pametna nastavitev ostranjevalne datoteke. Kako velika naj bo? Klasični nasveti od 1,2- do 2-kratnika fizičnega RAM-a so (preživeta) klasika vseh računalniških revij. Praktični nasvet je, zaženite vse programe, ki bi jih lahko uporabljali, hkrati, in v Upravitelju opravil poglejte postavko Zagotovljen pomnilnik - največ (Peak Commit Charge). To je vrednost, ki jo morata skupaj dosegati RAM in ostranjevalna datoteka. Za dobro vago lahko vse skupaj pomnožite z recimo 2, da ste na varnem. Če imate veliko RAM-a, bo rezultat, da ostranjevalne datoteke pravzaprav ne potrebujete. Tudi v takem primeru je smiselno nastaviti ostranjevalno datoteko na tako velikost, da gre vanjo memory dump, ki ga Windows zapiše ob zloglasnem modrem zaslonu. Pa srečno.

35 komentarjev

Matevžk ::

Ostranjevalna datoteka. Ker hrani strani.
lp, Matevžk

Kenpachi ::

Ostranjevanje - paging
Stran - page

Odstranjevanje - removing
Odstraniti - to remove.

E: No, Matevžk me je prehitel.
Zaraki Kenpachi.

Zgodovina sprememb…

  • spremenil: Kenpachi ()

axee ::

Kdaj je priporočljivo sploh izključit page file? 4gB ali več?

McHusch ::

lapsus

Matevžk ::

@Kenpachi: Jaz hitreje, ti lepše. :)
@axee: Odvisno od načina uporabe računalnika; preberi zadnji odstavek članka ...
lp, Matevžk

Ashrack ::

ravno v pravem casu se je ta clanek pojavil. Saj ravno sedaj preucujem Windowsov t.i. Virtual SPace
....

opeter ::

Ne razumem besede "ostranjevanje"... a ni to odstranjevalna datoteka?
Vedno so to pisali v slovenskih rač. revijah.
Hrabri mišek (od 2015 nova serija!) -> http://tinyurl.com/na7r54l
18. november 2011 - Umrl je Mark Hall, "oče" Hrabrega miška
RTVSLO: http://tinyurl.com/74r9n7j

Matevžk ::

Navidezni pomnilnik je razdeljen na strani. Ostranjevalna (page) ali izmenjevalna (swap) datoteka hrani strani, ki jih trenutno izvajajoči se programi ne potrebujejo v glavnem pomnilniku.
Primer vira, ki mu gre še vedno bolj zaupati kot pa slovenskim wannabe revijam. :)
lp, Matevžk

MrStein ::

(/userva) ... v drugem pa dinamično med 2 in 3.

Nič ni dinamično. Precej fiksno je.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Senitel ::

Dinamično do te mere, da če kernel potrebuje več kot 1GB naslovnega prostora (ker imaš recimo 1GB grafično) ostane za aplikacijo manj kot 3GB.

MrStein ::

Če napišeš /userva=2900, potem je to to. Nič ni dinamično.
Dinamično je, če se kaj spreminja. To je fiksno.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

BigWhale ::

Kaj hudica je "tomatsko obnavljivo kopico" ?

MrStein ::

Kopica, katero lahko napolniš s paradižniki ? :D
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

RejZoR ::

Ostranjevalna datoteka je najbolj debilen izraz ever. Nekatere stvari enostavno niso mišljene za prevajanje pa lahko še tko hočete ohranit naš slovenski jezik.
RejZoR's Flock of Sheep @ www.rejzor.tk

Matevžk ::

Potem pa izmenjevalna; to je res lepši izraz. Vsekakor bi bilo pa najbolj debilno ever temu praviti pejđ fajl (ali bognedaj odstranjevalna datoteka).
lp, Matevžk

squngy ::

če se ne motim je izmenjevalna že neka druga datoteka XD (kdor prej pride...)

Izi ::

Pravilen slovenski izraz za Swap file je Izmenjevalna datoteka.
Izraz Ostranjevalna datoteka se je pojavila med prevajanjem Windows XP v Slovenščino.
Priznani izraz Izmenjevalna datoteka pa se je uporabljal že dosti pred XP-ji.
Ker kreten se je spomnil besedo ostranjevalna, ki mimogrede v Slovenščini sploh ne obstaja, ni znano.
Gre za podobno neumnost kot "protiupogibanje" za glajenju robov in še nekaj je takih cvetk.
Možno da gre za enega in istega kretena, ki se izmišlja te nemogoče besede.

Kakorkoli že Ostranjevalna datoteka je popolnoma napačen izraz, uporabljajo jo samo na Microsoft Slovenija in pa seveda v knjižici za Windows XP jo tudi najdete.
Izraz je bil že pred leti deležen precejšnjih kritik in ne vem zakaj ga vsake toliko časa nekdo privleče na dan pred pozabo.

Zgodovina sprememb…

  • spremenil: Izi ()

Matevžk ::

Si prepričan, da je tako? Meni se zdi, da je ostranjevalna datoteka (že izpred MS-jevih časov) isto kot izmenjevalna datoteka, pri čemer pa implicitno še pove, da na sistemu poteka ostranjevanje, tj. deljenje navideznega pomnilnika na strani (kot nasprotje segmentaciji, kjer se deli na segmente).
lp, Matevžk

Izi ::

OK, bom razložil zakaj je nastal problem.

Tukaj gre za 2 izraza, ki pomenita isto stvar swap file in page file.
Najprej se je uporabljal izraz Swap file v Windowsih, ki niso temeljile na NT.
Swap pomeni menjava in lep slovenski izraz za swap file je bil izmenjevalna datoteka, točno to ta datoteka tudi počne.
Swap file uporabljajo tudi drugi operacijski sistemi naprimer Linux.
Microsoft je z prehodom na NT začel namesto swap file uporabljeti izraz page file.
Gre pa za popolnoma isto zadevo.

Potem pa so bili pametni še pri Microsoft Slovenija in so rekli, da če je Microsoft spremenil preimenovanje iz swap file na page file, moramo pa še mi opustiti uveljavljeni izraz izmenjevalna datoteka in so si izmislili nov izraz ostranjevalna datoteka, ki pa ga v slovenščini sploh ni. Enostavno so skovali novo besedo, ki ne pomeni ničesar.

Kakorkoli že, ve se, da gre za izmenjevalno datoteko oz. swap file, ki obstaja tudi na drugih OS in ne samo na Windows.

Zgodovina sprememb…

  • spremenil: Izi ()

ssitcm ::

Na velikih sistemih (IBM mainframe) z operacijskim sistemom MVS ali zOS se je izraz SWAP uporabljal, kadar je sistem 'umaknil' celoten 'address space' na disk(datoteko), izraz PAGE pa kadar je 'umaknil' posamezne dele (velike 4K) 'address space-a' na disk(datoteko). Danes, ko ima operacijski sistem na voljo veliko realnega spomina (96 GB ali več), se SWAP ne uporablja več.

BigWhale ::

No, swap se pri sleherniku se vedno uporablja. In ja, izmenjevalna datoteka je ze precej dolgo casa povsem uveljavljen izraz. Primeren je pa za prevajanje tako swap file/partition kot page file izraza. Tudi linux izvaja paging in ne swappinga, pa vseeno uporabljajo izraz swap file/partition.

ssitcm ::

BigWhale - če si mislil moj post: SWAP se ne uporablja več !

ssitcm ::

Moram se popraviti:
Swapping is the primary function used by WLM (z/OS component in charge of performance)to exercise control over the distribution of resources and system throughput. One of the reasons for swapping is for example, pageable storage shortages.There are two types of swapping:
 Physical swapping. It is the transferring of all pages in an address space between central storage and auxiliary storage. A physical swapped-in address space is an active one (its programs can be executed) that has pages in central storage and pages in auxiliary storage. A physical swapped-out address space is an inactive one having all pages in auxiliary storage, it can not execute its programs until it is swapped-in.
 Logical swapping. In order to reduce processor and channel subsystem overhead which is faced during a physical swapping needing to access to auxiliary storage, WLM does logical swaps where possible. In a logical swap, LSQA fixed frames and recently referenced frames are kept in central storage in contrast to physical swaps where these frames are moved to auxiliary storage. Address spaces that are swapped for wait state conditions are the best candidates for logical swaps. Since z/OS 1.8 all the swaps are
logical.
Iz zgornjega sledi, da se 'physical' SWAP ne uporablja več.

MrStein ::

Jep, swapping in paging sta dva različna pojma.
Windows uporablja paging (baje), zato je izraz page file pravilen.
Linux tudi uporablja paging. In ja, ukazi za delo s swap/paging zadevami uporabljajo izraz swap. Jaz tudi lahko uporabim izraz Ferrari za moj avto, pa bo v resnici še vedno Hyundai. ;)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Izi ::

ssitcm, si je v zadnjem postu sam odgovoril.
Swaping in paging je ena in ista zadeva.
Res je, da smo imeli včasih fizično izmenjavo, potem pa smo prešli na logično izmenjavo. Ampak fizična izmenjava se ne uporablja že dolgo dolgo časa, jaz se sploh ne spomnim, da bi se na Windows kdaj uporabljala.
Vedno je šlo za logično izmenjevanje. Zakompliciral je samo Microsoft, ki je v svojih Windows NT preimenoval swapfile v pagefile. Spremenilo pa se ni ničesar.

Lahko rečemo, da imamo celo 3 izraze za eno in isto stvar. Swap file (izmenjevalna datoteka), Page file (ostranjevalna datoteka) in Virtual memory (navidezni pomnilnik) je v bistvu ena in ista zadeva.

MrStein ::

Ne, niso.
Ampak hej, meni je to foh, tebi pa mogoče "rdeči avtomobili" in "modri avtomobili". ;)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Izi ::

Boš pa ti enkrat naredil članek in razložil razliko med "rdeči avtomobili" in "modri avtomobili" :D
Dokler Google in Wikipedia na vseh linkih pravita, da so vsi trije izrazi ena in ista zadeva meni to zadostuje.

MrStein ::

Dokler Linus pravi, da ni, in zraven tudi razloži razliko (prav tako profesor, če imaš kaj osebno proti Linusu), pa bom jaz v prepričanju, da ni.

(vsaj razlika med virtualno memorijo in swapom je očitna že brucu v drugem mesecu...)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Matevžk ::

@MrStein: +1, virtualni pomnilnik se močno razlikuje od izmenjevalnega prostora; to bi vsaj vsak študent računalništva moral vedeti. Tudi swapping in paging sta res dve različni stvári. Swap file in page file bi pa lahko bila eno in isto (vkolikor v sistemu poteka paging - ostranjevanje).
lp, Matevžk

BigWhale ::

BigWhale - če si mislil moj post: SWAP se ne uporablja več !


Hja, v Linuxu se swap se vedno uporablja. Swap file ali pa swap partition... Ce se pa tam potem dela paging, je pa to nekaj cisto drugega... :>

Bi pa rad videl junaka, ki si je izmislil glagol ostranjevanje. V slovenscini na zalost ne mores iz vsakega samostalnika narediti glagola. Pa ce se se tako trudis. :>

Mislim, lahko ga... Samo ne zveni ravno najbolje. :)

Zgodovina sprememb…

  • spremenil: BigWhale ()

BlueRunner ::

Hmmm... mislim, da izraz pri prevajanju Win. 95 ne prihaja iz Atlantisa oziroma od nekih "slovenistov".

Škoda, da nimam pri roki starega učbenika Organizacija in arhitektura računalniških sistemov, ali pa novejšega Arhitektura računalniških sistemov D. Kodeka. Mislim, da je bil tam notri izraz ostranjevanje uporabljen še veliko preden je MS dal posloveniti prvo verzijo svojega operacijskega sistema. Potem mislim, da je tam nekje 92-94 izhajala še revija programer, kjer je bila objavljena serija člankov o programiranju Intel i386 oziroma IA-32 procesorjev, kjer mislim, da se je ravno tako govorilo o ostranjevanju.

Je pa to ena izmed besed, ki tako na hitro in čez palec omogoča ločitev samoukov od formalno izobraženih. Skozi leta sem opazil, da je samouki večinoma ne poznajo, saj se učijo pretežno iz angleške literature, v pogovorih s sodelavci pa uporabljajo angleško terminologijo, ki je vsem enako razumljiva. Formalno izobražene pa se sili uči uporabljati slovenske izraze, če je to le možno. Ergo: hitro se vidi kdo je verjetno šel skozi torturo, kdo zagotovi ni.

Kar se tiče "slovarskosti" besede, oziroma njene neprisotnosti v SSKJ, pa to ni nič takšnega. Če se pravilno spomnim (naj me slovenisti popravijo, če se motim) se SSKJ dopolnjuje periodično, v njega pa se običajno ne vnaša nujno strokovne izraze, ki niso tudi v široki uporabi. Širina uporabe je merjena skozi štetje pojavnosti besed v javnosti (knjigah, periodiki, RTV oddajah, ipd). Ostranjevanje je pač strokoven izraz, ki ni v široki uporabi, zato se jo v SSKJ pač ne najde. Najde pa se jo v strokovni literaturi, terminskih slovarčkih, enciklopedijah in leksikonih (osebno uporabljam pasadenin Leksikon računalništva in informatike). Še en primer takšne besede je npr. saldokont, ki jo uporabljajo računovodje. Tudi te besede ni v SSKJ, pa jo kljub temu pozna vsak računovodja. Pa še se bi jih našlo.

Kadar pa leksikona nimam pri roki, lahko vedno pobrskam po straneh www.islovar.org, kjer lahko tudi kaj poiščem.

Jst ::

Izgubil sem link, Blue, mogoče ti veš, kje je Korpus Sloveskega jezika? Ker tam so pa res vsi izrazi, od ostranjevalne datoteke do saldokontov.

Izi: Virtual Space ni enako pagefile.sys. Swap je pa rahlo preživet izraz v današnjemu x86 času kernelov. Vendar pa verjetno vsi vemo, za kaj se uporablja.

Drugače pa, jaz menda še nikoli nisem uporabil izraz "ostranjevanje," čeprav poznam definicije in pomene izrazov, ki se uporabljajo pri pomnilniku. Prav tako ne uporablajam izraz pomnilnik, ampak RAM, razen kadar je to specifično potrebno.

Nekateri izrazi res niso namenjeni prevajanju v Slovenščino, nastane zmeda, potem tukaj dodajo še različna imena enkih stvari iz Kernel taborov,... tako, da se lahko potem prepiramo, če je ali ni swap=pagefile.sys.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Jst ::

Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

BlueRunner ::

Če iščeš SAZU-jeve zbirke, jih najdeš tukaj: bos.zrc-sazu.si. Lahko ti pa privarčujem čas in rečem, da v njih skoraj zagotovo ne boš našel ostranjevanja. Za IT zaradi tega še vedno uporabljam namenske leksikone oziroma www.islovar.org.

Kar se pa tiče pagefile != swapfile pa je to razlika v tehnični definiciji. Ker sta to dve različni stvari v isti panogi, se uporablja tudi dve različni besedi. V angleščini in v slovenščini. Pogovorno pa se (ne vem zakaj) vedno uporablja izraz 'swap', ne glede na tehnično implementacijo. Sam se držim tega, da upoštevam pričakovanja sogovornika (bralca?): če se pogovarjam z nekom ob pivu, je vse skupaj samo 'swap' in ne kompliciram. Če poskušam nekoga nekaj naučiti, vztrajam na razliki med 'page' in 'swap', potem pa še zelo kompliciram, če dobim nazaj napačen odgovor.

Zgodovina sprememb…

Jst ::

>Sam se držim tega, da upoštevam pričakovanja sogovornika (bralca?):

+1. Kulturni sogovornik.


Moram pa vseeno reči, da je pri meni že prišlo do zmede zaradi slovenskih izrazov. Paged-pool bo ostal paged-pool, Kernel space in user space, da jih naštejem samo nekaj. Da je res za zihr, da ne pride do zmede. Eni izrazi v programiranju so res preveč specifični (tudi na jezik v kateremu razvijaš), da bi kockal s slovenskimi izrazi.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Zakaj imam samo 3GB namesto 4GB rama? (strani: 1 2 )

Oddelek: Operacijski sistemi
8916574 (6659) bobi1992
»

Vista in 2GB po aplikaciji

Oddelek: Operacijski sistemi
191349 (1059) r0b3rt
»

Pomnilnik v Windows: 2. del

Oddelek: Novice / Apple iPhone/iPad/iPod
355311 (3384) Jst
»

Pomnilnik v Windows: 1. del (strani: 1 2 )

Oddelek: Novice / Operacijski sistemi
507477 (5061) Jst
»

Odstranjevalna datoteka

Oddelek: Programska oprema
203280 (2858) Boomer1911

Več podobnih tem