Некоторые разработчики Linux ядра выступают с инициативой изменения политики помещения кода приложений в swap в сторону уменьшения нагрузки на swap, т.е. помещать в него только в крайнем случае.Andrew Morton выступает с противоположной позиции, по его мнению неактивные приложения вполне могут быть перемещены в swap, чтобы не мешать работе активных процессов и выделить побольше памяти под буферизацию.
Оппоненты приводят контраргумент - необходимость дополнительного времени для восстановления активного состояния приложения помещенного в swap.
В 2.6 ядре степенью жесткости помещения приложения в раздел подкачки можно варьировать через /proc/sys/vm/swappiness, поместив туда число от 0 до 100, чем больше число тем более агрессивна политика помещения приложения в swap.URL: http://kerneltrap.org/node/view/3000
Новость: http://www.opennet.me/opennews/art.shtml?num=3778
Лично я не вижу тут особой проблемы и темы для дискуссий. По идее, всю работу с файлами надо организовать через мапирование файлов в адресное пространство - если сама программа работает через read/write, то мапированием должна заниматься файловая система. А дальше вытеснение из памятьи происходит на общих основаниях.Хотя, конечно, есть некоторая разница:
- первыми на диск должны вытесняться данные, записанные в файл (их всё равно придётся записывать на диск, так лучше сделать это в момент, когда память понадобилась кому-то другому);
- затем из памяти следует выкидывать неизменные данные, уже записанные на диск (в первую очередь, код программ) - тут память можно освободить без обращения к диску;
- и наконец, в последнюю очередь следует записывать в swap данные работающих процессов.
Маленькое уточнение: кесли код программы используется несколькими процессами, то надо крепко подумать, прежде чем выкидывать его из памяти.
Ну ввели параметр. Пусть каждый крутит себе как хочет. Че спорить?