Vzdycky me pri uspavani do swapu zajimalo, co se stane, kdyz uz pred uspanim jsou ve swapu data, ktera neni mozne zahodit... pak se spanek proste nedovoli?
To bohužel ten problém vůbec neřeší, nebo jen částečně. Ať už mám swap jakkoli velký, může se stát, že v něm není místo pro uložení současné paměti.
Řešením by bylo před uspáním vždy vytvořit další swap o velikosti RAM, a po probuzení ho zase zrušit (a mít samozřejmě dost místa na disku). Ovšem nikdy jsem neviděl, že by to tak někde fungovalo…
Ve Windows to funguje tak, že je pro hibernaci na disku separátní soubor. Hibernační soubor se komprimuje s použitím všech jader CPU, jinak by uspávání a probouzení na strojích s větší RAM bylo dost pomalé.
Mimochodem komprimuje se i swap, nejprve do RAM, a když to nestačí, tak na disk. Komprese prostě výhodná, protože naprostá většina aplikací visí na RAM (a následně I/O), nikoliv na CPU, které se většinou flákají.
Pokud někdo popíše jak to funguje na Linuxu, tak se rád přiučím.