Многоуровневое распределение основной памяти
Как уже отмечалось, в операционных системах широко используется многоуровневое распределение основной памяти, при котором выделенный участок памяти на верхнем уровне подлежит дальнейшему распределению на нижнем. Рассмотрим три уровня распределения основной памяти:
- уровень заданий, на котором осуществляется выделение разделов основной памяти для выполнения заданий (пунктов заданий). Размер выделяемых участков на этом уровне колеблется от десятков килобайт до мегабайт.
- уровень задач, на котором осуществляется выделение участков памяти для подпулов, связанных с задачами. В подпулы помещаются запросы одного класса. Использование подпулов позволяет уменьшить проблемы фрагментации основной памяти. Каждая задача имеет один или несколько подпулов. Подпул может находиться или в монопольном использовании задачи, или в совместном использовании нескольких задач. Размер выделяемых участков на этом уровне (размер подпула) кратен 2 Кбайт. Минимальный размер подпула 2 Кбайт. Максимальный размер не фиксируется.
- уровень запросов, самый нижний. Запрос на выделение участка памяти выражается макрокомандой GETMAIN; на освобождение участка памяти — макрокомандой FREEMAIN. Участки памяти выделяются для загрузочных модулей, буферов, рабочих областей и т. д. Минимальный размер запроса — 8 байт (определяется размером FQE).