Joomla портал
seo seo Subscribe
0
seo

В операционной системе MS DOS диспетчером является программа с именем COMMAND.COM. На самом деле действие собствено диспетчера не слишком разнообразно и сама программа очень невелика. То же относится к диспетчеру системы Windows (программа с названием WIN.COM).

3.3. Управление программами.

Предположим, пользователь обращается к операционной системе с требованием запустить определенную программу, передав ей заданные параметры. Разберемся, как это должно происходить.

Прежде всего необходимо разобраться, в каком виде передается информация о программе и ее параметрах. В MS DOS, например, программа задается указанием ее полного имени, включающем все содержащие ее директории, имя программы и его расширение. Параметры могут быть только текстовые, и передаются они в виде слова без пробелов. Первое действие операционной системы заключается в поиске программы на диске. Для этого в таблице размещения файлов отыскивается строка, описывающая файл с указанным именем. В этой строке указан адрес его размещения на диске (номер цилиндра, номер дорожки, номер сектора) и размер. Фактически файл на диске может размещаться несколькими кусками.

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

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

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

По той же схеме операционная система обеспечивает вызов подпрограммы из прикладной программы. Здесь может быть несколько возможностей. Подпрограмма может лежать в одном программном сегменте с программой. В этом случае обращения к операционной системе обычно не требуется, а сохранение содержимого регистров и обеспечение возврата к точке вызова берет на себя сама программа. Вторая ситуация связана с наличием у программы так называемой оверлейной структуры, когда несколько программных модулей работают в одном и том же месте оперативной памяти внутри пространства, отведенного программе (таким образом оперативная память экономится). В этом случае программа вынуждена обратиться к ОС для выполнения операции чтения вызываемого модуля с диска в заданную область памяти. Для этого ОС вызывает соответствующую функцию, которая работает как подподпрограмма ОС. После загрузки модуля обеспечивается вызов подпрограммы так же, как это происходило в первом случае.

seo
8th Май 2011
Теги:
seo

Написать ответ

seo
 
seo
Все права защищены © 2023 Joomla портал
 
 
seo