Еще один случай относится к так называемой динамической загрузке программ. Здесь подпрограмма находится не в памяти, а на диске. В случае обращения к ней операционная система производит примерно те же действия, что и при загрузке основной программы: поиск на диске по имени, выделение свободной памяти, формирование служебного префикса программы, чтение подпрограммы в память, сохранение содержимого регистров, передача параметров, передача управления подпрограмме. После окончания работы подпрограммы ОС выполняет все обратные действия по закрытию программы и только затем передает управление на вызывающую программу.
В операционной системе MS DOS ряд функций по управлению запуском программ связан с ее конструктивными особенностями. В этой ОС существует ограничение на общий объем используемого адресного пространства оперативной памяти (640Кб). В поздних версиях можно использовать дополнительную память (адреса от 640Кб до 1Мб). Специальные утилиты DOS позволяют разместить в этой дополнительной памяти служебные программы DOS и драйверы устройств и использовать их правильно. Прикладные программы размещаются в основной памяти (адреса до 640Кб).
При этом MS DOS не поддерживает мультизадачный режим и фактически в каждый момент времени в памяти размещена только одна прикладная программа. Для одновременного нахождения в памяти служебных программ (такие программы называются резидентными) придуман специальный механизм. Эти программы размещаются несколько отступая от начала основной памяти, а адреса входа в эти программы располагаются в специальном векторе прерываний, который, в свою очередь, расположен в самом начале основной памяти (начиная с нулевого адреса). Чтобы вызвать такую резидентную программу, надо выполнить программное прерывание с номером, соответствующим номеру программы в векторе прерываний. Для того, чтобы защитить пространство, занятое резидентными программами, в ОС имеется специальный параметр, указывающий размер начала основной памяти, занятый резидентными программами.
Резидентной при необходимости можно сделать и пользовательскую программу, надо только помнить, что резидентные программы отнимают память у других программ.
Операционная система Windows использует такой механизм управления оперативной памятью, который позволяет отказаться от ограничений на ее объем. Windows различает виртуальную и реальную оперативную память. Размер виртуальной памяти 4 Гб. Всем работающим под Windows программам предоставляется пространство в виртуальной памяти. В реальной памяти отображается только часть виртуальной памяти, остальная ее часть хранится на диске. Динамические таблицы содержат соответствие между блоками (страницами) виртуальной памяти и их размещением (адресами в реальной памяти или на диске). Если необходимо выполнить ту страницу программы, которая в настоящий момент находится на диске, то эта страница загружается в реальную оперативную память на какое-либо неиспользуемое в настоящий момент место. Предварительно затираемая страница реальной памяти сохраняется на диске. Эта процедура сохранения и чтения страниц называется своппингом (от англ swapping).
3.4. Операционная система MS DOS.
Дисковая операционная система (DOS) загружается при включении компьютера. Это происходит следующим образом. Сначала начинают работать программы системы BIOS. Базовая система ввода-вывода (BIOS) находится в постоянном запоминающем устройстве (ПЗУ) компьюте¬ра. Эта часть операционной системы является «встроенной» в компью¬тер. Ее назначение состоит в выполнении наиболее простых и универ¬сальных услуг операционной системы, связанных с осуществлением ввода-вывода. Базовая система ввода-вывода содержит тест фун¬кционирования компьютера, проверяющий работу памяти и устройств компьютера при включении его электропитания. Кроме того, базовая система ввода-вывода содержит программу вызова загрузчика операци¬онной системы.
8th Май 2011
|
Теги:
|