====== Paměť obsazená procesem ====== Při zjišťování informací o tom kolik zabírá konkrétní proces paměti, získáme několik odlišných hodnot. Konkrétně ''VIRT'', ''RES'', ''SHR'', ''SWAP'', ''CODE'' a ''DATA'', což může být matoucí, ale vzhledem k tomu, že pokaždé řešíme trochu odlišný problém, hledáme pokaždé odlišné informace. Proto je třeba pochopit význam jednotlivých hodnot, které jsou níže detailněji popsány. Přesto nejčastěji hledáme hodnotu ''RES+SWAP-SHR''. ==== VIRT – Virtual image ==== Jde o kompletní paměť mapovanou procesem. Tato hodnota zahrnuje kód, data, sdílené knihovny, swapované stránky i soubory mapované do paměti. Jedná se o zavádějící hodnotu, protože například mapované soubory nejsou ihned uloženy do paměti, ale natahují se až ve chvíli, kdy jsou některé jejich části skutečně potřeba. Hodnota tedy zahrnuje i data, která v paměti aktuálně ani nejsou. ==== RES – Resident size ==== Hodnota, kterou proces skutečně zabírá ve fyzické paměti RAM. Ale POZOR, v této hodnotě není zahrnuta paměť, která může být swapována, a naopak je v ní zahrnuta sdílená paměť ''SHR''. ==== SHR – Shared memory ==== Jedná se o část paměti, která může být potencionálně sdílena s jinými procesy. Například paměť s binárním kódem (především knihovny) je jen pro čtení, takže do ní nelze zapisovat a není problém ji tedy sdílet. Prakticky každý proces potřebuje systémovou knihovnu glibc, ta je mu tedy mapována, ale nekopíruje se, zůstává tedy v paměti jen jednou. ==== SWAP – Swapped size ==== Velikost dat odložených do swapu. ==== CODE – Code size ==== Fyzická paměť pro executable code, označovaná jako ’text resident set’ neboli ''TRS''. ==== DATA – Data+Stack size ==== Fyzická paměť pro vše kromě executable code, označovaná jako ’data resident set’ neboli ''DRS''.