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

44. Диспетчер. Виртуальная память. Диспетчер.

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

Развитие технологии ОС сводилось к поиску того, как сделать процессор занятым большую часть времени и, таким образом, выполнять больший объем работы. Многозадачные ОС загружают в память несколько программ и поддер­живают высокий уровень загрузки процессора, переключаясь между ними. Рас­пределение всей доступной памяти между процессами и в то же время защита кода и данных одного процесса от других и составляет задачу управления па­мятью, а в случае Windows NT, управления виртуальной памятью (virtual me­mory management).

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

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

Виртуальная память стала стандартным методом управления памятью для всех ОС, кроме простейших.

Компонент исполнительной системы NT, отвечающий за виртуальную па­мять, диспетчер виртуальной памяти (virtual memory manager) — это базовая система управления памятью в Windows NT. Любые возможности управления памятью, предоставляемые подсистемами среды, основаны на средствах диспет­чера виртуальной памяти. Цели, поставленные перед разработчиками диспетчера виртуальной памяти:

• Сделать его максимально переносимым.

• Добиться, чтобы он работал надежно и эффективно для приложений любых размеров и не требовал настройки пользователем или адми­нистратором.

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

• Обеспечить процессам возможность выделения и управления собствен­ной памятью.

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

• Достичь баланса между удовлетворением требований мультипроцессор­ной обработки и скоростью доступа к памяти. (Например, защита струк­тур данных с использованием нескольких уровней блокировки может повысить степень параллелизма в диспетчере виртуальной памяти, но каждая блокировка связана с дополнительными накладными расходами).

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