Выделение памяти
При распределении всей свободной памяти память делится на два блока, т.е. на две смежные части, которые определяются начальным адресом. Первый блок предназначен для подпрограмм ядра операционной системы и его структур данных — так называемой памяти ядра из английской памяти ядра . Вторая затем выделяется по запросу другим процессам — так называемая память приложения из памяти английского приложения . Память ядра используется всеми процессами, потому что процедуры ядра, включая его структуры данных, используются всеми процессами для выполнения служб операционной системы. Память приложения является частной по своей природе, поэтому доступ к ней имеет только владелец.
Принцип действия
Если память свободна, т.е. если он не выделен, он выделяется для всего процесса независимо от требуемого размера и не должен превышать размер блока. Если память занята другим процессом, запрос на выделение памяти отклоняется. Этот отказ может иметь фатальные последствия для процесса запроса памяти. Фактически память выделяется только при запуске процесса, и процесс использует ее на протяжении всего своего жизненного цикла. Выпуск происходит в конце жизненного цикла процесса.
Защита памяти
Защита памяти реализована здесь только в случае защиты памяти ядра с помощью так называемого базового регистра. На практике использовать адреса ниже базовых невозможно. База блока памяти приложения хранится в регистре, поэтому память ядра находится перед этим блоком. Следовательно, процесс не может даже обращаться к памяти ядра. Реестр настраивается с помощью привилегированной инструкции, которую можно вызвать только в режиме ядра.
Использовать
Эта стратегия управления памятью использовалась одновременно в системах с несколькими задачами. Когда этот принцип единого блока в памяти был расширен возможностью сохранения области памяти во вторичной памяти или запоминающей памяти, например на жестком диске. Однако восстановление процесса с жесткого диска происходит очень медленно, и поэтому эту стратегию практически невозможно использовать в современных системах. Как это, наверное, понятно, проблема с недостаточным использованием памяти приложения. На практике это означает, что небольшой процесс занимает всю память приложения.
Оперативная память ИСИС-2
сначала ОС, затем переменные и буферы, а затем программа
Оперативная память CP / M
сначала 100 часов для ОС, затем память для программы, а затем переменные и буферы