Прежде всего обратите внимание, что «страницы» - это просто области адресного пространства. Регион, который является «нестраничным» (я предполагаю, что вы имеете в виду, что его нельзя перенести на диск), по-прежнему логически разделен на страницы, но ОС может реализовать другую политику на этих страницах.
Самый распространенный размер страницы - 4096 байт. Многие архитектуры поддерживают одновременное использование нескольких форматов страниц (например, страниц по 4K, а также страниц по 1 МБ). Однако операционные системы часто придерживаются только одного размера страницы, так как в большинстве случаев затраты на управление несколькими размерами страниц намного выше, чем те преимущества, которые это дает. Исключения существуют, но я не думаю, что вам нужно о них беспокоиться.
Каждая виртуальная страница имеет определенные права доступа, например, читаемая, записываемая, исполняемая (зависит от аппаратной поддержки). ОС может использовать это для обеспечения безопасности, когерентности кэша (для общей памяти) и выгрузки страниц из физической памяти.
Области .text
, .bss
и .data
не должны быть известны ОС (хотя большинство ОС знают о них по соображениям безопасности и производительности).
ОС может фактически не выделять память для страницы стека / кучи до тех пор, пока эта страница не будет открыта в первый раз. ОС может предоставлять системные вызовы для запроса большего количества страниц пространства кучи / стека. Некоторые ОС предоставляют функции совместно используемой памяти или совместно используемой библиотеки, что приводит к появлению большего количества областей в адресном пространстве. Зависит от ОС.