Способы управления памятью
Часть операционной системы, отвечающая за управление памятью, называется менеджером памяти. В самой простой однозадачной системе в каждый конкретный момент времени работает только одна программа, при этом память разделяется между программой и операционной системой. Как только пользователь набирает команду, операционная система копирует запрашиваемую программу с диска в память и выполняет ее, а после окончания процесса выводит на экран приглашение и ждет новой команды. Получив инструкции, она загружает другую программу в память, записывая ее поверх предыдущей.
Рис. 4.2. Фиксированные разделы памяти с одной входной очередью
Многозадачность вносит проблему переадресации. Во время компоновки программы компоновщик должен знать, с какого адреса будет начинаться программа в памяти. На рис. 4.2 показаны разделы памяти, используемые различными процессами, стоящими на очередь для обработки в пакетном режиме. Допустим, что в данном примере операционная система занимает адресное пространство 0-100К в памяти компьютера.
Предположим, что первая команда программы представляет собой вызов процедуры с абсолютным адресом 100 внутри двоичного файла, создаваемого компоновщиком. Если эта программа загрузится в раздел 1 (по адресу 100К), команда обратится к абсолютному адресу 100, принадлежащему операционной системе. А нужно вызвать процедуру по адресу 100К+100. Если же программа загрузится в раздел 2, команду нужно переадресовать по адресу 200К+100 и т.д. Эта проблема известна как проблема переадресации.
Одним из возможных решений является модификация команд во время загрузки программы в память. В программе, загружаемой в раздел 1, к каждому адресу прибавляется значение 100К, в программе, которая попадет в раздел 2, к адресам добавляется значение 200К и т.д. Чтобы выполнить подобную переадресацию во время загрузки, компоновщик должен включить в двоичную программу список или битовую карту с информацией о том, какие слова в программе являются адресами (их нужно перераспределить), а какие – кодами машинных команд, которые не нужно изменять. Так работает операционная система OS/MFT.
В случае пакетных систем память с фиксированными разделами действует просто и эффективно. Но совершенно другая ситуация имеет место в системах разделения времени и персональных компьютерах, ориентированных на работу с графикой. Оперативной памяти иногда оказывается недостаточно для того, чтобы вместить все текущие активный процессы, и тогда избыток процессов приходится хранить на диске, а для обработки динамически переносить в память.
Существует два основных подхода к управлению памятью, зависящих от доступного аппаратного обеспечения. Самая простая стратегия, называемая подкачкой (swapping), заключается в том, что каждый процесс полностью копируется в память, работает некоторое время и затем полностью же возвращается на диск. Другая стратегия, носящая название виртуальной памяти, позволяет программам работать даже тогда, когда они только частично находятся в оперативной памяти.
В операционной системе Windows существует файл подкачки, в котором временно сохраняются процессы, для которых не хватает места в оперативной памяти компьютера. Имеется возможность настроить режим работы этого файла. Для этого необходимо открыть «Панель управления > Производительность и обслуживание > Система > Дополнительно > Быстродействие (параметры) > Дополнительно > Виртуальная память > Изменить». Если на компьютере с объемом оперативной памяти 512 Мбайт установлена операционная система Windows XP, то, в принципе, можно обойтись без файла подкачки вообще – это только повысит быстродействие системы. Если объем оперативной памяти меньше этой величины, рекомендуется установить одинаковый исходный и максимальный размер файла подкачки. Тем самым, можно снизить фрагментацию диска и избавиться от распространенной проблемы, когда из-за разросшегося файла подкачки на диске не хватает места. Теперь он будет занимать фиксированный размер, и распределить место на диске будет гораздо проще. Вполне приемлемая цифра – размер файла подкачки в 2-4 раза больше объема физической оперативной памяти компьютера.
Дата добавления: 2014-12-13; просмотров: 1246;