Реферат: Разработка операционных систем
0
1
2
3
4
5
n-1
1. Пуст. in=out . Очевидно, что буфер пуст в том случае, если выполняется это условие.
2. Буфер будет полностью заполнен, если выполняется условие
(in+1) mod n = out
Процесс - производитель должен выполнять процедуру записи в буфер типа
Repeat
...
продуцируется очередной элемент в Next p
...
while (in+1) mod n = out do no_op;
buffer (in):=next p;
in:=(in+1) mod n;
until false
где Next p - локальная переменная процесса - производителя, в которой хранится очередной продуцируемый элемент
no_op - пустой оператор
Процесс - потребитель должен выполнять процедуру чтения из буфера типа
Repeat
while in = out do no_op;
next p := buffer (out);
out:=(out+1) mod n;
...
потребляется очередной элемент из Next
...
until false
2. Планирование процессора.
Краткосрочный планировщик выбирает процессы из очереди готовых процессов и передает их на выполнение в CPU. Существуют различные алгоритмы или стратегии решения этой задачи, отличающиеся отношением к критериям планирования.
2.1. Критерии планирования процессора.
Используются следующие критерии, позволяющие сравнивать алгоритмы краткосрочных планировщиков: