Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem kde zakázat, aby při nedostatku RAM se používal HDD?

Program ma (nebo ocekava, ze brzo bude mit) nejaka data, ktera si chce chvili podrzet. Pozada OS o prideleni pameti. Kdyz pamet dostane pridelenou, tak prima muze si do ni zapisovat po libosti. Kdyz ji pridelenou nedostane, tak je na nem, jak zareaguje.

1) muze proste zkolabovat (blbe napsany program)
2) muze zkusit psat do nejake nepridelene pameti a byt za ten pokus sestrelen OS (blbe napsany program)
3) muze ulozit co ma rozdelane, vypsat, ze nedostal pamet a ciste se ukoncit
4) muze usoudit, ze tu pamet ted nutne nepotrebuje (treba pro cache) a poradit si i tak. Pripadne uvolnit nejakou uz ne tak potrebnou pamet a pozadat znovu.

OS na zacatku vlastni vsechnu volnou pamet a prideluje ji na pozadani programum. Kdyz pamet zacne dochazet, muze vzit kus pridelene pameti a ulozit data z nej na disk (do swapu), tim ziska kus volne pameti. Jakmile vsak prislusny program chce neco delat s tou pameti, co je na disku, tak OS musi nekde najit kus volne pameti a zase tam ta data nahrat. To muze vyzadovat, aby nejdriv na disk ulozil jina data, aby tu volnou pamet ziskal.

Samozrejme prace s diskem je mnohem pomalejsi, nez prace s pameti, takze OS se snazi vyhnout situaci, kdy by musel program cekat, protoze OS shani nejakou pamet, a tak preventivne odklada kusy dlouho nepouzivanych dat na disk, aby mel porad nejakou volnou pamet pri ruce.

(Samozrejme tam jsou takove triky, ze ulozi data na disk, zaznamena si to a pokud je program potrebuje driv, nez tu pamet da nekomu jinemu, tak je nemusi nacitat, protoze jeste v te pameti jsou a tak podobne).

Dale taky OS muze sam pouzit kus pameti (buffery) k tomu, aby si pamatoval, co se cetlo z disku (protoze je sance, ze se to bude cist za chvili znovu), co se psalo na disk (protoze je sance, ze to za chvili nekdo bude cist) a pripadne i iniciativne cist z disku napred, (protoze kdyz prectu zacatek souboru, je znacna sance, ze budu chtit precist i ten zbytek). Timto zpusobem se velice zrychli prace s diskem, protoze ve chvili kdy prijde pozadavek na cteni tak uz data jsou v pameti a jen se prekopiruji. Kdyz OS zacne dochazet volna pamet, tak samozrejme tyto buffery zahodi a ziska tim rychle a snadno dalsi pamet pro pridelovani programum (za cenu zpomaleni prace s diskem)

Nicmene muze i tak nastat situace, ze dojde i misto na disku urcene pro tyto machinace (swap), potom proste program uz zadnou pamet nedostane a nastane situace popsana ze zacatku.

(tohle je velice zjednoduseny nahled na to, co se opravdu v pocitaci deje)

Swap se tedy chova jako rozsireni RAM v pocitaci, za cenu zpomaleni prace.

Jinak jsou duvody, proc swap nepovolovat - kuprikladu kdyz ten "disk" je SD karta a nechci ji nicit neustalym zapisovanim, kdyz nemam zadny "disk" a jedu jen prez sit, kdyz potrebuju zajistit, aby programy jely plynule a nebyly prerusovany swapovanim na pomaly disk (za cenu toho, ze jich spustim min a budu mit min mista na buffery, ale nekdy je pozadavek na plynulost dulezitejsi) - tech moznosti je spousta, ovsem vetsina zacatecniku se do situace, kdy je lepsi swap nemit bezne nedostane.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny