Абсолютная загрузка
Загрузка программы
Понятие программы
Управление программами
Управление ресурсами ОС
Программа - это данные, предназначенные для управления компонентами вычислительной системы с целью реализации определенного алгоритма.
Один из основных принципов машины фон Неймана, положенный в основу большинства современных компьютеров, это то, что и программы, и данные хранятся в одной и той же памяти.
С точки зрения программиста программа представляет собой активный компонент. Она реализовывает заданный алгоритм.
С точки зрения процессора, программа - это данные, которые процессор читает и интерпретирует.
С другой стороны программа – это данные, с точки зрения компилятора, который на входе получает одни данные - программу на языке высокого уровня, а на выходе выдает другие данные - программу в машинных кодах.
Как правило, все программы содержат в теле не только управляющие команды но и данные (константы, адреса переходов и т.д.)
Чтобы рассмотреть, каким образом происходит загрузка программы, пока представим оперативную память достаточно большой и непрерывной последовательностью запоминающих ячеек.
Еще одно допущение для рассмотрения загрузки заключается в том, что программа написана в машинных кодах.
Первый, самый простой, вариант состоит в том, что мы всегда будем загружать программу с одного и того же адреса. Это возможно в следующих случаях:
- Система может предоставить каждой программе свое адресное пространство.
- Система может исполнять в каждый момент только одну программу. Так ведет себя CP/M, так же устроено большинство загрузочных мониторов для самодельных компьютеров.
Такой программный модуль называется абсолютным загрузочным модулем. Он представляет собой копию содержимого виртуального пространства программы в момент ее запуска. Точнее, наоборот, начальное содержимое адресного пространства формируется путем простого копирования модуля в память.