Многоуровневое распределение основной памяти

Как уже отмечалось, в операционных системах широко используется многоуровневое распределение основной памяти, при котором выделенный участок памяти на верхнем уровне подлежит дальнейшему распределению на нижнем. Рассмотрим три уровня распределения основной памяти:

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