Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_ОС.doc
Скачиваний:
44
Добавлен:
14.02.2015
Размер:
506.88 Кб
Скачать
      1. Построение и запуск задач

Создание исполняемых файлов

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

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

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

Форзац во время выполнения программы обеспечивает ее взаимодей­ствие с ОС. Его конкретным содержанием фактически определяется со­вместимость ОС с точки зрения переносимости исполняемых файлов. В MS DOS роль форзаца играет префиксный сегмент - PSP, объем которого занимает 512 байт.

Кодовый сегмент содержит инструкции для процессора, которыми оп­ределяется ход выполнения программы. В MS DOS адрес начала кодового сегмента, с которого начинается выполнение программы, находится в сег­ментном регистре CS.

Сегмент данных содержит данные, которыми оперирует программа. В процессе выполнения программы их начальные значения преобразуются в конечный результат. В MS DOS адрес начала этого сегмента находится в сегментном регистре DS или ES. Вычисляя по имени статической перемен­ной смещение от этого базового адреса, система определяет физический адрес данного операнда.

Стековый сегмент служит для решения, как правило, системных задач, например, организует сохранение (с последующим восстановлением) зна­чений регистров. В MS DOS адрес начала этого сегмента хранится в сег­ментном регистре DS.

В области свободной памяти выделяется место под соответствующую динамическую переменную.

При загрузке программы сначала осуществляется связывание информации, т. е. на основе виртуальных адресов переменных вычисляются их физические адреса, затем эти адреса заменяют в программных кодах соответствующие имена переменных (разумеется, все эти адреса принадлежат области сегмента данных). Далее из кодового сегмента по очереди считываются команды, которые с помощью форзац-сегмента «допускаются» до ОС и обрабатываются. Например, оператор varl = varl + var2 обрабатывается по следующей, несколько условной, схеме:

  • по соответствующим физическим адресам выбираются значения переменных varl и var2, которые затем доставляются в центр обработки данных (ЦП);

  • значения переменных varl и var2 суммируются, и результат от­ правляется по адресу переменной varl.

В результате этого в сегменте данных значение var2 останется без из­менения, а в varl будет находиться искомая сумма.

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

Контрольные вопросы:

1. Сопоставьте требования к функциям современной операционной системы с функциями какой-либо конкретной системы. Какие еще функции она выполняет?

2 Укажите возможные проблемы безопасности ОС

  1. Какие (какой) из способов построения ОС считаются (-ется) наиболее перспек­тивными и почему?

  2. В чем разница между процессом и потоком?

5 Как происходит вызов подпрограммы? Чем он отличается от вызова макроса?

6. Какие существуют способы одновременной установки двух различных ОС на ЭВМ.

7. Как скопировать файл с дискеты на жесткий диск в ОС (семейства Windows или Unix) только с использованием режима командной строки?

8. Какие Вы можете назвать проекты по повышению надежности ОС? 9 Как оценить безопасность ОС?

10. Какую структуру имеет исполняемый файл?

11. Что означает термин «простая операционная система»?

12 Как происходит создание выполняемой программы?

13.Сравните приведенные иерархические модели простых ОС.