- •6. Управление памятью
- •6.1. Требования, технологии управления памятью (Лекция 13)
- •6.1.1. Требования к управлению памятью
- •6.1.1.1. Проблема управления памятью, основные требования
- •6.1.1.2. Типы адресов
- •6.1.2. Технологии управления памятью
- •6.1.2.1. Распределение памяти фиксированными разделами
- •6.1.2.2. Распределение памяти разделами переменной величины
- •6.1.3. Понятие виртуальной памяти. Методы распределения памяти с использованием дискового пространства.
- •Понятие виртуальной памяти
- •6.1.3.2. Страничное распределение виртуального адресного пространства
- •6.1.3.3. Сегментное распределение виртуального адресного пространства
- •Странично-сегментное распределение виртуального адресного пространства
- •Свопинг
- •6.1.4. Принцип кеширования данных
- •6.1.4.1. Иерархия запоминающих устройств. Принцип кеширования
- •6.1.5. Структура таблицы страниц
- •6.1.5.1. Двухуровневая таблица страниц
- •6.1.5.2. Буфер поиска трансляции
- •6.2. Стратегии ос для управления памятью (Лекция 14)
- •6.2.1. Алгоритмы замещения страниц
- •6.2.1.1. Стратегия замещения и алгоритмы
- •6.3. Управление памятью в защищенном режиме процессора Intel Pentium(Лекция 15)
- •6.3.1. Сегменты, дескрипторы сегментов, дескрипторные таблицы
- •6.3.1.1. Сегментная модель памяти, дескриптор сегмента
- •6.3.1.2. Дескрипторные таблицы, селекторы сегментов
6. Управление памятью
6.1. Требования, технологии управления памятью (Лекция 13)
6.1.1. Требования к управлению памятью
6.1.1.1. Проблема управления памятью, основные требования
Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы. Распределению подлежит вся оперативная память, не занятая операционной системой. Обычно ОС располагается в самых младших адресах, однако может занимать и самые старшие адреса. Функциями ОС по управлению памятью являются: отслеживание свободной и занятой памяти, выделение памяти процессам и освобождение памяти при завершении процессов, вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти не достаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти.
Существует пять требований к управлению памятью:
Перемещение;
Защита;
Совместное использование;
Логическая организация;
Физическая организация.
В многозадачной системе доступная память разделяется множеством процессов. Эти процессы могут многократно выгружаться и вновь загружаться в основную память. Требование, чтобы выгруженная из памяти программа была вновть загружена в то место, в котором она находилась до выгрузки, является слишком большим ограничением. Желательно, чтобы программа была перемещена в другую область памяти. В связи с этим возникает необходимость в создании определенных требований к адресации. Процессор и программное обеспечение должны быть способны перевести ссылки в коде программы в реальные физические адреса, соответствующие текущему расположению программы в основной памяти.
Требование защиты также связано с возможностью выполнения одновременно нескольких процессов. Каждый процесс должен быть защищен от нежелательного воздействия других процессов. Поэтому код одного процесса не должен иметь возможности без разрешения обращаться к данным другого процесса. Требования защиты памяти должны быть удовлетворены на уровне аппаратного обеспечения, а не на уровне операционной системы, так как операционная система не в состоянии предвидеть все обращения к памяти, которые выполнит программа.
Механизм защиты должен быть гибким и обеспечивать возможность нескольким процессам обращаться к одной и той же области оперативной памяти. Процессам может потребоваться, например, совместный доступ к одним и тем же структурам данных. Система управления памятью должна обеспечивать управляемый доступ к разделяемым областям памяти.
Большинство программ организовано в виде модулей. Если ОС и аппаратное обеспечение компьютера могут эффективно работать с пользовательскими программами и данными, представленными в виде модулей, это обеспечивает ряд преимуществ.
Память компьютера разделяется, как минимум, на два уровня: основная и вторичная. Вторичная память медленнее и дешевле основной и обычно энергонезависима. Следовательно, вторичная память большой емкости может служить для долговременного хранения программ и данных, а основная память меньшей емкости – для хранения программ и данных, использующихся в текущий момент. В такой структуре основная проблема – организация потоков информации между основной и вторичной памятью. Эта задачу должна выполнять операционная система.