Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory / shpory_OS_2012.docx
Скачиваний:
28
Добавлен:
11.06.2015
Размер:
350.42 Кб
Скачать

12. Типы модулей, функционирующих в вычислительной среде.

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

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

Абсолютный модуль– это полностью готовая к выполнению программа, которая помещается в библиотеку готовых программ где и ждет своей очереди на выполнение. Такая схема работы характерна для режима, осуществляемого в рамках дисковой ОС.

Объектная программа– это результат работы транслятора. Она существует в таком виде, когда содержащиеся в ней адресные константы могут быть построены с учетом изменения абсолютного адреса начала отчета. Это есть суть свойства перемещаемости, т.о. объектная программа обладает свойством перемещаемости.

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

Редактированиемназывается организация связей между объектными или модулями загрузки перед их выполнением.

13. Типы задач в системе, диспетчерский и граничный приоритеты, очередь задач и её структура.

Задача – это независимая единица работы, которая может участвовать в конкурентной борьбе за ресурсы вычислительной системы.

С каждой задачей в системе связан блок управления задачей TCB – Task Control Blok. Каждая задача имеет в системе свой приоритет. Он либо приписывается пользова­телем, либо системой, либо обоими. Кроме этого каждая задача имеет следующие состояния:

- активности

- готовности

- ожидания

Блоки управления задачами в соответствии с приоритетами образуют очередь задач. Когда супервизор выделяет задаче центральный процессор, из очереди задач выбирается первый блок управления задачей, находящийся в состоянии готовности. Обычно для каждого задания в системе существует, по крайней мере, одна задача, которая соответствует активному шагу задания. Но количество задач в системе может увеличиваться еще по двум причинам:

  1. Подпрограммы управляющей программы, которые выполняются в состоянии “задача” для программ супервизора функционируют как задачи.

  2. Программа пользователя может инициировать подзадачу, которая будет выполняться одновременно с породившей ее задачей.

Подпрограмма управляющей программы, которая функционирует, как задача называется системной задачей. Большинство системных задач выполняет функции управления заданиями. В ОС для создания задач существуют специальные макрокоманды. Одной из распространенных команд является ATTACH. Расширение этой макрокоманды представляет собой несколько операторов и заканчивается обращением к супервизору. При выполнении обращения к супервизору инициируется прерывание. Подпрограмма, обрабатывающая прерывания по обращению к супервизору вызывает появление задачи с заданным приоритетом, т.е. ставит ее в очередь.

Задача появляется в системе по следующим причинам.

1)При загрузке ОС создается задача главного планировщика

2)По действию оператора EXECсистемная задача формирует макрокомандуATTACH

3)В системной задаче необходимо выполнить команду ATTACH

4)ATTACHвыполняется в программе пользователя при создании подзадачи.

Вся информация, необходимая для управления задачей, сосредоточена в TCB. Для каждой задачи блокTCBсоздается в момент возникновения и ликвидируется в момент завершения задачи. БлокTCBпредставляет собой таблицу, находящуюся в основной памяти и содержащую адреса управляющих блоков и таблиц, связанных с выполнением задачи, приоритеты задачи, адреса следующихTCB, очереди, адреса порождающей и порожденной задач, ключи защиты, тип задачи, код завершения и т.д.

Все блоки ТСВ последовательно связаны друг с другом в очередь задач.В момент образования задачи ТСВ заносится в очередь задач, а в момент завершения задачи выводится из нее.Место блока ТСВ в очереди задач определяется диспетчерским приоритетом задачи, который выражается числом от 0 до 255. Когда несколько задач одновременно претендуют на один ресурс, конфликты разрешаются, как правило, на основе сравнения диспетчерских приоритетов. В случае равенства приоритетов, конфликт разрешается в пользу задачи, выдавшей запрос первой. В начале очереди находитсяTCBс наивысшим приоритетом. ЦП-м управляет задача, находящаяся в состоянии готовности и имеющая максимальный приоритет – активная задача. Активную задачу определяет диспетчер, который входит в состав супервизора.

Структура и расположение задач в основной памяти зависит от режима мультипрограммирования управляющей программы.

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

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

В MVTс задачами разрешается образование подзадач, поэтому в системе одновременно могут существовать системные задачи, задачи разделов и подзадачи. При образовании подзадачи, для нее строится блокTCBв области системных очередей, определяемых при генерации и присоединяемых к ядру.

Кроме диспетчерских приоритетов для каждой задачи определяется значение граничного приоритета. В качестве граничного приоритетапервоначально устанавливается начальное значение диспетчерского приоритета. Граничный приоритет некоторой задачи определяет максимальное значение диспетчерских приоритетов ее подзадач.Диспетчерский приоритет подзадачи может превысить ее собственный граничный приоритет, но не может быть больше граничного приоритета порождающей задачи, в противном случае подзадаче устанавливается новое значение граничного приоритета, равное максимальному значению диспетчерского приоритета подзадачи. Для организации очереди задач образуется список блоков ТСВ, соответствующий структуре очереди задач. Для организации этого списка имеется четыре поля ТСВ:

1) Поле, содержащие адрес ТСВ основной задачи пользователя;

2) Поле, содержащие адрес ТСВ порождающей задачи для текущей подзадачи;

3) Поле, содержащие адрес ТСВ предыдущей подзадачи (расположенной на одном уровне с текущей подзадачей);

4) Поле, содержащие адрес ТСВ последней порожденной подзадачи для данной задачи.

Соседние файлы в папке shpory