Понятие адресного пространства. Свопинг. - Morozov-5F/operational-system-docs GitHub Wiki

Понятие адресного пространства создает своеобразную абстрактную память, в которой существуют программы.

Адресное пространство — это набор адресов, который может быть использован процессом для обращения к памяти. У каждого процесса имеется свое собственное адресное пространство, независимое от того адресного пространства, которое принадлежит другим процессам (за исключением тех особых обстоятельств, при которых процессам требуется совместное использование их адресных пространств). Понятие адресного пространства имеет весьма универсальный характер и появляется во множестве контекстов: телефонные номера, набор интернет доменов .com, .ru, и т.д.

Свопинг - необходим для преодоления перегрузки памяти. Он заключается в размещении в памяти всего процесса целиком, в запуске его на некоторое время, а затем в сбросе его на диск. Бездействующие процессы большую часть времени хранятся на диске и в нерабочем состоянии не занимают пространство оперативной памяти.

Стоит побеспокоиться о том, какой объем памяти нужно выделить процессу при его создании или загрузке в процессе свопинга. Если создаваемый процесс имеет вполне определенный неизменный объем, то выделение упрощается: операционная система предоставляет процессу строго необходимый объем памяти, ни больше ни меньше. Но если сегмент данных процесса может разрастаться, к примеру, за счет динамического распределения памяти, как во многих языках программирования, то каждая попытка разрастания процесса вызывает проблему.

Источники:

  • Современные операционные системы, Э. Таненбаум, 4-е изд, (стр. 221, 223).
⚠️ **GitHub.com Fallback** ⚠️