Вопрос: Примерами алгоритмов с динамическими приоритетами являются
Варианты ответов:
- Алгоритм SJF и алгоритм гарантированного планирования
- Алгоритм FCFS и алгоритм гарантированного планирования
Правильный ответ: a. Алгоритм SJF и алгоритм гарантированного планирования
Объяснение:
Давайте разберем каждый из упомянутых алгоритмов планирования процессов с точки зрения использования статических или динамических приоритетов.
1. Алгоритм FCFS (First-Come, First-Served - "Первым пришел, первым обслужен"):
- Принцип: Процессы выполняются в том порядке, в котором они поступают в очередь готовности.
- Приоритеты: Этот алгоритм не использует приоритеты вообще. Порядок выполнения определяется исключительно временем прибытия. Если рассматривать его с точки зрения приоритетов, то можно сказать, что все процессы имеют одинаковый "приоритет", который не меняется. Это не динамический приоритет.
2. Алгоритм SJF (Shortest Job First - "Кратчайшая работа первой"):
- Принцип: Выбирается процесс с наименьшим ожидаемым временем выполнения.
- Приоритеты: Хотя SJF не использует явное понятие "приоритета" в виде числового значения, он фактически назначает более высокий приоритет более коротким задачам. Если рассматривать его в вытесняющей версии (Preemptive SJF или Shortest Remaining Time First - SRTF), то приоритет процесса может меняться: если в очередь поступает новый процесс, который короче текущего оставшегося времени выполнения, то текущий процесс вытесняется. Это делает SJF алгоритмом с динамическим поведением, так как решение о выполнении зависит от текущего состояния (оставшегося времени выполнения) и может меняться.
3. Алгоритм гарантированного планирования (Guaranteed Scheduling):
- Принцип: Этот алгоритм стремится гарантировать каждому процессу определенную долю процессорного времени. Например, если есть \(n\) пользователей, каждому может быть гарантировано \(1/n\) процессорного времени.
- Приоритеты: Для достижения этой гарантии система постоянно отслеживает, сколько процессорного времени каждый процесс уже получил и сколько ему "положено". Если процесс получил меньше своей доли, его приоритет динамически повышается, чтобы он мог наверстать упущенное. Если процесс получил больше своей доли, его приоритет динамически понижается. Таким образом, приоритеты постоянно изменяются, чтобы поддерживать заданные гарантии. Это яркий пример алгоритма с динамическими приоритетами.
Вывод:
- Алгоритм FCFS не использует динамические приоритеты.
- Алгоритм SJF (особенно в вытесняющей форме) демонстрирует динамическое поведение, где "приоритет" (определяемый оставшимся временем) может меняться.
- Алгоритм гарантированного планирования явно использует динамические приоритеты для достижения своих целей.
Исходя из этого, вариант "a" является правильным, так как SJF и алгоритм гарантированного планирования являются примерами алгоритмов, где приоритеты или их эквиваленты изменяются по ходу исполнения процессов.
