Тут задіяно кілька шарів, які впливають на відповідь.
Якщо ви припускаєте сучасну операційну систему віртуальної пам'яті, ви не зможете побачити залишки даних інших процесів на сторінках, які ви виділяєте.
Коли процес спочатку завантажується, таблиця сторінок завантажується, і потенційно кадри реальної пам'яті виділяються на ці сторінки. Як мінімум, таблиця сторінок або її додаткова таблиця міститимуть карту всієї пам'яті, яку процес може виділити. Тут також встановлюється початковий перерва у процесі, згаданий вище.
Хоча malloc (), якщо процес дозволений, може призвести до зміни перерви процесу, додавши більше сторінок до таблиці процесів (додаткової сторінки), щоб задовольнити запит, місце, де один процес може "отримати інший", обробляє дані. нижній реальний шар пам'яті.
В обох цих сценаріях сучасна операційна система, яка використовує пейджинг попиту або лінивий розподіл, ще не виділяє фізичну пам'ять (кадри). Операційна система просто "записує" про те, яка віртуальна пам'ять для цього процесу вважається дійсною. Фактична пам'ять присвоюється лише за потреби.
Фізична пам'ять або кадри виділяються під час процесу, коли віртуальна сторінка реалізована і відображена в таблицю сторінки процесів. Тут існує потенціал експозиції даних. Це відбувається під час помилки сторінки. Експозиція полягає в тому, що попередній процес, можливо, використовував той самий кадр, і його дані були або залишені, або замінені, щоб звільнити місце для поточного запиту фізичної пам'яті. Операційна система повинна бути обережною, щоб переконатися, що дані запитуючих процесів належним чином замінені або кадр очищений (нульовий) перед тим, як відновити процес. Це також згадується вище як "стара, але вирішена" проблема.
Це робить дещо неактуальним, чи пам'ять інших процесів була "звільнена" чи ні. Інші процеси "звільненої" пам'яті все ще знаходяться на сторінках, призначених для цього процесу, і, як правило, не знімаються, поки процес не закінчиться, оскільки вони будуть просто замінені, коли пам'ять знизиться або їх інакше буде виселено. malloc () та free () керують віртуальною пам'яттю, призначеною для процесу на рівні (користувач).
У вашому запитанні ваш процес продовжує вимагати все більшої кількості пам'яті, теоретично витісняючи з пам'яті всі інші процеси. Насправді існують стратегії розподілу кадрів - глобальні та локальні - які також можуть впливати на відповідь. Цілком ймовірно, що процес витіснить власні сторінки з пам'яті, перш ніж йому буде дозволено перевиконати операційну систему та всі інші процеси. Хоча це виходить за рамки вашого початкового питання.
Все це суперечки в такій системі, як MS-DOS. MS-DOS (та інші, простіші системи) не використовують віртуальну пам'ять (самостійно), і ви можете легко підштовхувати та продавати інші дані "обробляти".
Деякі хороші посилання, які можуть бути простішими для розуміння, ніж вихідний код Linux, - це хороша навчальна книга з операційними системами, Концепції операційних систем Silberscatz, Gavin і Gange, або Дизайн операційних систем Ендрю Таненбаума. Також щось на кшталт Nachos від Berkeley або Pintos зі Стенфорда - це невеликі операційні системи, побудовані для навчання та мають у собі ці самі ідеї.