Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_Drobin_doc.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.87 Mб
Скачать
  1. Функции операционной системы по управлению памятью. Понятие виртуального адресного пространства.

Функции ОС по управлению памятью:

  • отслеживание свободной и занятой памяти;

  • выделение памяти процессам и освобождение памяти при завершении процессов;

  • вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти не достаточны для размещения в ней всех процессов;

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

  • дефрагментация памяти при ее динамическом выделении и возвращении;

  • защита памяти.

Для идентификации переменных и команд используются:

  • символьные имена (метки),

  • виртуальные адреса,

  • физические адреса.

Программист обращается к памяти с помощью некоторого набора логических имен. Имена переменных и входных точек модулей составляют область имен. Физическая память представляет собой множество ячеек, которые пронумерованы, к каждой ячейке можно обратиться, указав ее порядковый номер (адрес). Количество ячеек физической памяти ограничено и фиксировано.

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

  • посредством системы программирования;

  • посредством операционной системы (с помощью специальных программных модулей управления памятью и использования соответствующих аппаратных средств вычислительной системы).

Между этими этапами обращение к памяти имеет форму виртуального или логического адреса. Множество всех допустимых значений виртуального адреса для некоторой программы определяет ее виртуальное адресное пространство или виртуальную память (р2).

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

Способы структуризации адресного пространства:

  • Плоская структура (m)

  • Сегментная структура (n,m)

  • Сложная структура f(n,m)

  • Задача ОС: отображение индивидуальных виртуальных адресных пространств всех одновременно выполняющихся процессов на общую физическую память

Виртуальное адресное пространство и виртуальная память – это различные механизмы и они не обязательно реализуются в ОС одновременно.

  1. Методы управления памятью. Проблемы фрагментации памяти.

Методы управления памятью делятся на два класса:

1. Методы управления памятью без использования внешней памяти:

  • Распределение памяти фиксированными разделами.

    • С общей очередью

    • С отдельными очередями

Сравнивается объем памяти необходимый процессу с имеющимся объемами разделов. Выбирается подходящий раздел. Загрузка программы в один из разделов, настройка адресов.

  • Распределение памяти разделами переменной величины. Динамические разделы. (память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача.)

  • Перемещаемые разделы.

2. Методы управления памятью с использованием внешней памяти:

  • Сегментное распределение;

  • Страничное распределение;

  • Сегментно-страничное распределение.

К 1. Простое непрерывное распределение – это самая простая схема, согласно которой вся память условно может быть разделена на три части: 

  • область, занимаемая операционной системой;

  • область, в которой размещается исполняемая задача;

  • незанятая ничем (свободная) область памяти.

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

Два вида потерь:

  • потери процессорного времени из-за простоя в связи с вводом/выводом;

  • потери самой оперативной памяти, так как она не всегда используется полностью.

Проблемы фрагментации.

Представим, что диск - это длинная последовательная дорожка, куда можно записывать данные.

Запишем на диск три файла, закрашивая квадратики разными цветами - каждому файлу будет отвечать свой.

Теперь удалим второй файл (желтый цвет).

И когда понадобится записать новый файл (длиной в 3 кубика), его уже нельзя будет поместить между красным и зеленым, он будет записан правее, а слева получится пропуск.

Продолжая, можно получить фрагментацию - есть свободное место на 6 кубиков, но максимальная длина свободного куска - 2 кубика.

Поэтому попытка записать новый файл длины 5 (голубой цвет) приводит к тому, что этот файл не хранится на диске последовательно.

Невозможность считать файл последовательно приводит к замедлению работы с диском.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]