Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты Дорогов.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
1.35 Mб
Скачать

9 Билет

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

На одном процессоре для организации многозадачного режима выпол­нение каждой задачи разбивается на несколько коротких интервалов (рис.1). Процессор выполняет часть первой задачи, затем второй, третьей и т. д. Вре­менной интервал, выделенный для каждой задачи, составляет, например, 10 миллисекунд.

Внешний эффект разделения процессорного времени между задачами состоит в параллельном выполнении n задач. Когда n задач выполняются в системе параллельно каждая из них в среднем монопольно "располагает" процессором с производительностью 1/n, т. е. работает (развивается) на вир­туальном процессоре, производительность которого в n раз меньше, чем у реального физического процессора. Если вместо одного используется не­сколько процессоров, то это просто другая реализация того же самого логи­ческого принципа. В первом случае процессы разделены во времени, во вто­ром – в пространстве. Если исключить накладные расходы на планирование и межзадачное взаимодействие, то при выполнении n процессов на k одинако­вых процессорах каждому процессу в среднем выделяется виртуальный про­цессор с производительностью, равной k/n части от производительности од­ного физического процессора.

Рисунок 1. - Принцип организации многозадачного режима: а - внешний эффект; б - распределение времени процессора

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

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

Планировщик вызывается обычно после обработки каждого прерыва­ния. Если используется стратегия переключения процессов на основе кванто­вания времени (рис. 1), необходимо иметь внешний по отношению к процес­сору интервальный таймер, вырабатывающий прерывания по истечении кванта времени (time slice), выделенного процессу. При возникновении пре­рывания исполнение текущего процесса приостанавливается и проверяется, должен ли быть прерван текущий процесс и загружен новый. Принудитель­ная приостановка текущего процесса для передачи управления другому про­цессу называется вытеснением (preemption).

Процесс исполняется до тех пор, пока не произойдет одно из следую­щих событий:

- истек выделенный ему квант времени;

- процесс заблокирован, например, ждет завершения операции вво­да/вывода;

- процесс завершился;

- вытеснен другим процессом, имеющим более высокий приоритет, на­пример обработчиком прерываний.

В многозадачной среде процесс может находиться в одном из трех со­стояний (рис. 2).

• Готов (ready). Процесс может начать исполнение, как только освобо­дится процессор.

• Исполнение (running, executing). Процесс исполняется в данный мо­мент, т. е. процессор исполняет его код.

• Ожидание, заблокирован (waiting, locked). Для продолжения работы процессу не хватает какого-либо ресурса, за исключением ЦП, либо он ждет наступления внешнего события.

стратегии выбора: циклический (round-robin) метод - процессы выбираются последовательно один за другим .Более сложный принцип выбора основан на приоритетах (priorities). При каждом переключении планировщик передает управление готовому процессу с наивысшим приоритетом.

TR 16 0

Selector

TI

Регистр задачи (TR) – указывает на информацию, необходимую процессору для определения текущей задачи. Содержит селектор сегмента для TSS

R P L

GDT

TSS (контекст состояния задач)

0

Link

SS

SP

Stack 0

Stack 1

Stack 2

IP

Ax

Bx

Jmp, Call – запуск новых задач

SI

P

D P L

0

0

0

B

1

DI

CS

DS

SS

ES

40

LDTR

Через вентиль

Доступ

CS

IP

24 16

Доступ

Базовый адрес

Поле предела

TR

Поля заполняются, когда

используется Call

Link

Link

Link

task C

task B

task A

При Jpm не заполняются

B=1

B=0

B=0

NT=1

NT=1

NT=0

B = 1 – задача активна

B = 0 – задача не активна

NT = 1 – задача вложена

NT = 0 – первоначальная задача