РЕЕНТЕРАБЕЛЬНОСТЬ КОДА. Когда одна и та же программа(выполняемый файл) запущена в нескольких экземплярах, то в оперативную
память загружается только одна копия выполняемого ассемблерного
кода на всех. Каждый выполняемый процесс использует один и тот
же текст программы, просто у каждого процесса имеется свой собственный указатель на текущий оператор.
РАЗДЕЛЯЕМЫЕ БИБЛИОТЕКИ. (В Windows есть похожее понятие DLL -
динамически подгружаемая библиотека). Некоторое количество часто выполняемых функций (например printf, да и много других)
оформляется в виде специальным образом подготовленной библиотеки (SHARED LIBRARY). При компиляции программы, использующей
разделяемые библиотеки, эти функции не линкуются внутрь кода
программы. Они "выдергиваются" из библиотеки на стадии
выполнения программы. Этим мы экономим место на диске и в
оперативной памяти: в программах отсутствует код разделяемых
функций, а в оперативной памяти эта функция присутствует в
одном экземпляре на всех.
SWAPING. Каждый Unix-процесс функционирует в своем собственном
32-х битном виртуальном адресном пространстве, не пересекающемся с другими. Адресное пространство процесса может быть большим, чем физическая оперативная память. Виртуальная память поддерживается с помощью PAGING'а - разрешения виртуальных адресов
в физические "на лету", с подкачкой отсутствующих страниц
памяти со swap-области на жестком диске.
На самом деле SWAPING'а как такового в Unix'е нет, вместо него
применяется гораздо более гибкий PAGING. (swaping - по определению, это ПОЛНАЯ выгрузка программы на swap-область с целью