Jump to content

Управление памятью (операционные системы)

В системах операционных управление памятью компьютера — это функция, отвечающая за управление основной памятью . [1] : 105–208 

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

Это отличается от управления памятью приложения , которое заключается в том, как процесс управляет памятью, назначенной ему операционной системой.

Методы управления памятью [ править ]

Одно непрерывное распределение [ править ]

Одиночное распределение — это самый простой метод управления памятью. Вся память компьютера, обычно за исключением небольшой части, зарезервированной для операционной системы, доступна одному приложению. MS-DOS — пример системы, распределяющей память таким образом. выполняющая Встроенная система, одно приложение, также может использовать этот метод.

Система, использующая единое непрерывное распределение, может по-прежнему выполнять многозадачную работу содержимое , меняя памяти для переключения между пользователями. Ранние версии операционной системы MUSIC использовали этот метод.

Разделенное распределение [ править ]

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

Секционированное распределение обычно требует некоторой аппаратной поддержки, чтобы задания не мешали друг другу или операционной системе. IBM System/360 использует метод блокировки и ключа . В других системах используются базовые и граничные регистры, которые содержат пределы раздела и отмечают недопустимый доступ. Регистр UNIVAC 1108 ограничений хранения имеет отдельные базовые/привязанные наборы для инструкций и данных. Система использует чередование памяти для размещения так называемых i-банка и d-банка в отдельных модулях памяти. [2]

Разделы могут быть либо статическими , определяемыми при начальной загрузке программы (IPL) или во время загрузки , либо оператором компьютера , либо динамическими , то есть автоматически создаваемыми для конкретного задания. Операционная система IBM System/360 Мультипрограммирование с фиксированным числом задач (MFT) является примером статического секционирования, а мультипрограммирование с переменным числом задач (MVT) — примером динамического. MVT и его преемники используют термин «регион», чтобы отличать динамические разделы от статических в других системах. [3]

Разделы могут перемещаться с использованием аппаратно типизированной памяти , например Burroughs Corporation B5500 , или базовых и граничных регистров, таких как PDP-10 или GE-635 . Перемещаемые разделы можно сжимать , чтобы обеспечить более крупные фрагменты непрерывной физической памяти. Сжатие перемещает «используемые» области памяти, чтобы устранить «дыры» или неиспользуемые области памяти, вызванные завершением процесса, и создать более крупные смежные свободные области. [4]

Некоторые системы позволяют заменять разделы на вторичное хранилище, чтобы освободить дополнительную память. Ранние версии IBM Time Sharing Option (TSO) меняли пользователей между разделами с разделением времени . [5] [а]

Управление страничной памятью [ править ]

Страничное распределение делит основную память компьютера на блоки фиксированного размера, называемые страничными фреймами программы , а виртуальное адресное пространство — на страницы одинакового размера. Аппаратный блок управления памятью сопоставляет страницы с кадрами. Физическая память может быть выделена постранично, при этом адресное пространство будет непрерывным.

Обычно при управлении страничной памятью каждое задание выполняется в собственном адресном пространстве. Однако существуют некоторые операционные системы с единым адресным пространством , которые запускают все процессы в одном адресном пространстве, например IBM i , которая запускает все процессы в большом адресном пространстве, и IBM OS/VS2 (SVS) , которая запускает все задания в одном адресном пространстве. единое виртуальное адресное пространство размером 16 МБ.

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

Сегментированное управление памятью [ править ]

Сегментированная память — единственный метод управления памятью, который не предоставляет пользовательской программе «линейное и непрерывное адресное пространство». [1] : 165  Сегменты — это области памяти, которые обычно соответствуют логической группировке информации, такой как процедура кода или массив данных. Сегменты требуют аппаратной поддержки в виде таблицы сегментов , которая обычно содержит физический адрес сегмента в памяти, его размер и другие данные, такие как биты защиты доступа и статус (заменено, выгружено и т. д.).

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

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

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

Архитектура Intel IA-32 (x86) позволяет процессу иметь до 16 383 сегментов емкостью до 4 ГБ каждый. компьютера Сегменты IA-32 представляют собой подразделения линейного адресного пространства , виртуального адресного пространства, обеспечиваемого аппаратным обеспечением подкачки. [6]

Операционная система Multics , вероятно, является самой известной системой, реализующей сегментированную память. компьютера Сегменты Multics представляют собой подразделения физической памяти , содержащие до 256 страниц, каждая страница имеет размер 1 КБ 36-битных слов, в результате чего максимальный размер сегмента составляет 1 МБ (с 9-битными байтами, как используется в Multics). Процесс может иметь до 4046 сегментов. [7]

Развертывание/развертывание [ править ]

Rollout/rollin (RO/RI) — это метод управления памятью операционной системы компьютера, при котором весь общий код и данные работающей программы выгружаются во вспомогательную память (диск или барабан), чтобы освободить основную память для другой задачи. Программы могут быть развернуты «по требованию или... во время ожидания какого-то длительного события». [8] Rollout/rollin обычно использовался в системах разделения времени , [9] где «время обдумывания» пользователя было относительно большим по сравнению со временем, необходимым для замены.

В отличие от виртуального хранилища (подкачки или сегментации), развертывание/развертывание не требует какого-либо специального оборудования для управления памятью; однако, если в системе нет оборудования для перемещения, такого как карта памяти или базовые и граничные регистры, программу необходимо откатить до исходных ячеек памяти. Развертывание/развертывание в значительной степени заменено виртуальной памятью.

Развертывание/развертывание было дополнительной функцией многопрограммирования OS/360 с переменным количеством задач (MVT).

Развертывание/развертывание позволяет временное динамическое расширение конкретного задания за пределы первоначально указанного региона. Когда заданию требуется больше места, развертывание/развертывание пытается получить неназначенное хранилище для использования задания. Если такого неназначенного хранилища нет, другое задание развертывается (т. е. переносится во вспомогательное хранилище), чтобы его регион мог использоваться первым заданием. После освобождения первым заданием это дополнительное хранилище снова становится доступным либо (1) как неназначенное хранилище, если оно было его источником, либо (2) для приема задания, которое должно быть передано обратно в основное хранилище (свернуто). [10]

В OS/360 развертывание/перемещение использовалось только для пакетных заданий, и развертывание не происходило до тех пор, пока не завершится этап задания, заимствовавший регион.

См. также [ править ]

Примечания [ править ]

  1. ^ Известные как регионы TSO

Ссылки [ править ]

  1. Перейти обратно: Перейти обратно: а б Мэдник, Стюарт; Донован, Джон (1974). Операционные системы . Книжная компания МакГроу-Хилл. ISBN  0-07-039455-5 .
  2. ^ Сперри Рэнд (1970). Многопроцессорная система UNIVAC 1108: Описание системы (PDF) . п. 3-3.
  3. ^ Корпорация IBM (1970). Операционная система IBM System/360: концепции и возможности (PDF) . п. 73.
  4. ^ Саманта, Д. (2004). Классические структуры данных . PHI Learning Pvt. ООО с. 94. ИСБН  8120318749 .
  5. ^ Корпорация IBM (1972). Руководство по опциям разделения времени операционной системы IBM System/360 (PDF) . п. 10. (GC28-6698-5)
  6. ^ Корпорация Интел. IA-32 Руководство разработчика программного обеспечения для архитектуры Intel, том 1: Базовая архитектура .
  7. ^ Грин, Пол. «Виртуальная память Multics – Учебное пособие и размышления» . Архивировано из оригинала 5 марта 2001 г. Проверено 9 мая 2012 г.
  8. ^ Уолрат, Боб (2014). Программирование, невозможный вызов . Эльзевир. п. 124. ИСБН  978-0-444-87128-2 . Проверено 24 августа 2018 г.
  9. ^ Международный симпозиум «развертывание/развертывание» по моделированию, измерению и оценке производительности компьютеров . Ассоциация вычислительной техники. 29–31 марта 1976 г. с. 137 . Проверено 24 августа 2018 г.
  10. ^ Корпорация IBM (июнь 1970 г.). Операционная система IBM System/360: .Концепции и возможности (PDF) . п. 55 . Проверено 24 августа 2018 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 915493655532b512905654f80d029b84__1718643900
URL1:https://arc.ask3.ru/arc/aa/91/84/915493655532b512905654f80d029b84.html
Заголовок, (Title) документа по адресу, URL1:
Memory management (operating systems) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)