process size는 늘어나지 않는데, 왜 swap space는 자꾸 줄어들까 ?

이러한 현상은 다음의 두가지 원인에 의해서 일어날 수 있다.

㉠ default로 /tmp filesystem이 swap device에 mount되어있고, 더 많은 것들을 /tmp
   에 넣으면 더 작은 양의 swap space가 남게 된다.
   swap device는 efficient temporary filesystem을 제공하기 위하여 사용되어진다.
   RAM disk와는 다르게 tmpfs는 커지거나 작아질수 있기 때문에, 
   memory의 일정량을 allocate해야만하는 단점없이 fast RAM based filesystem의 
   장점을 얻을 수 있다.

㉡ ps command의 output중 SZ column은 virtual memory system에 있는 process의 
   real size를 나타내고 있지 않다는 것을 유념해야만 한다.

   특별한 점이라면, memory allocation은 SVR4하의 lazy fashion에서 이루어진다는
   점이다. 
   ( RAM이나 anonymous memory-another name for swap-는 process가 필요로 할때라야
     allocation이 된다. )
   만일 ps로 100페이지의 프로세스가 보였다고 한다면, 이는 현재 사용되고 있는 
   process인지의 여부에 관계없이 reserve되어 있는 것이 보일 뿐이다.
   ps의 결과를 보는 시점에는 memory의 반이 필요하였고, 시간이 갈수록 그 사용량이
   늘어난다고 해도 ps 결과치의 양은 변하지 않는다.
 
   만일 프로그램이 run time까지 memory가 allocate하는데 얼마나 필요한지를 알지 
   못한다면 (대부분의 경우에는 사용자의 input에 의해 어디에 memory가 있는지를
   알수 있지만) ps(1)의 SZ column을 살펴보아야 할 것이다.
   왜냐하면 이것은 process가 reserve하는데 필요한 memory의 총량을 계산할 수 
   없기 때문이다.