Что такое функционирование в «Реальном масштабе времени»


Download 1.86 Mb.
Pdf ko'rish
bet10/72
Sana19.04.2023
Hajmi1.86 Mb.
#1362511
TuriУчебное пособие
1   ...   6   7   8   9   10   11   12   13   ...   72
Bog'liq
Луканов А.С. Системы реального времени 2020

Состояния
1)
не существует,
2)
не обслуживается,
3)
готов,
4)
выполняется,
5)
ожидает ресурс,
6)
ожидает назначенное время,
7)
ожидает события.
Переходы: 
1.
Переход 1-2 создание процесса;
2.
Переход 2-1 уничтожение процесса;
3.
Переход 2-3 активизация процесса диспетчером;
4.
Переход 3-2 деактивизация процесса;
5.
Переход 3-4 загрузка 
на 
выполнение 
процесса
диспетчером; 
6.
Переход 4-3 требование обслуживания от процессора
другим процессом (preemption – приоритетное переключение); 
7.
Переход 4-2 завершение процесса;
8.
Переход 4-5 блокировка процесса до освобождения
требуемого ресурса; 
9.
Переход 4-6 блокировка процесса до истечения заданного
времени; 
10.
Переход 4-7 блокировка процесса до прихода события;
11.
Переход 2-6 активизация процесса приводит к ожиданию
временной задержки; 
12.
Переход 2-7 активизация процесса приводит к ожиданию
события; 
13.
Переход 2-5 активизация процесса приводит к ожиданию
освобождения ресурса; 
14.
Переход 5-3 активизация процесса из-за освобождения
ожидавшегося ресурса; 
15.
Переход 6-3 активизация процесса по истечении
заданного времени; 


24 
16.
Переход 7-3 активизация процесса из-за прихода
ожидавшегося события. 
Таким образом, каждый процесс имеет свой жизненный цикл, 
состоящий из 4 стадий: 
1)
создание,
2)
загрузка,
3)
выполнение,
4)
завершение.
§9. 
Планирование задач 
Важной частью любой ОС РВ является планировщик задач. 
Несмотря на то что в разных источниках он может называться по-
разному (диспетчер задач, супервизор и т. п.), его функции 
остаются теми же: определить, какая из задач должна выполняться 
в системе в каждый конкретный момент времени. Самым простым 
методом планирования, не требующим никакого специального ПО 
и планировщика как такового, является использование цикли-
ческого алгоритма в стиле round robin
void main (void) 

for(;;){ 
task0(); 
task1(); 
task2(); 
/* 
и т. д. */ 


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


25 
1. Подпрограммы не должны содержать циклов ожидания, в
стиле 
while (TRUE) { 
if(switch_up()){ 
lamp_off(); 
break; 
}

2. Подпрограммы должны выполнять свою работу как можно
быстрее, чтобы дать возможность работать следующей 
подпрограмме. 
3. При необходимости подпрограмма может сохранять свое
окружение и текущие результаты, чтобы в следующем цикле 
возобновить работу с того же места. 
Можно отметить следующие преимущества циклического 
алгоритма. 
1. Простота использования и прозрачность для понимания.
2. Если исключить из рассмотрения прерывания, система
полностью детерминирована. Задачи всегда вызываются в одной и 
той же последовательности, что позволяет достаточно просто 
произвести анализ «наихудшего случая» и вычислить 
максимальную задержку. 
3. Минимальные размеры кода и данных. Кроме того, в
отличие от алгоритмов с вытеснением, для всех задач необходим 
только один стек.
4. Отсутствуют ошибки, обусловленные «гонками».
К недостаткам циклического алгоритма можно отнести 
отсутствие приоритетности и очередей. К тому же задачи 
вызываются независимо от того, должны ли они в данный момент 
что-либо делать или нет, а на прикладного программиста ложится 
максимальная ответственность за работоспособность системы. 


26 
Перейдем теперь к другому широко используемому 
алгоритму планирования. Речь пойдет о режиме
Download 1.86 Mb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   ...   72




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling