- •1. Что такое критическая область? Условия избегания состязания для эффективной работы процессов.
- •Строгое чередование
- •Что такое примитивы взаимодействия процессов, и для чего они применяются? в чем заключается проблема переполненного буфера?
- •Что такое семафор? Для чего применяются операции up и down?
- •8. Решение проблемы переполнения буфера с помощью семафоров (producer-consumer).
- •10. Образ процесса, регистры процесса.
- •12. Основные атрибуты процесса.
- •13. Что такое контекст и дескриптор процесса? Из каких частей состоит контекст процесса в unix-системах? Контекст и дескриптор процесса
- •14. Назвать состояния процесса в unix-системах.
- •15. Этапы жизненного цикла процесса в unix-системах.
- •16. В каких случаях происходит переключение контекста
- •17. Приоритеты процессов
- •18. Синхронизация процессов.
- •Критерии планирования и требования к алгоритмам
- •24. Методы разделения процессов на группы в интерактивных системах.
- •25. Какие существуют системы реального времени? Необходимое условие для планирования процессов в системе реального времени
- •26. Статический алгоритм планирования процессов (rms) в системах реального времени.
- •27. Динамический алгоритм планирования процессов (edf) в системах реального времени
- •28. Понятие взаимоблокировки процессов. Что такое ресурс? Типы ресурсов, последовательность событий, необходимых для использования ресурса
- •34. Способы выхода из взаимоблокировки:
Критерии планирования и требования к алгоритмам
Для каждого уровня планирования процессов можно предложить много различных алгоритмов. Выбор конкретного алгоритма определяется классом задач, решаемых вычислительной системой, и целями, которых мы хотим достичь, используя планирование. К числу таких целей можно отнести следующие:
Справедливость – гарантировать каждому заданию или процессу определенную часть времени использования процессора в компьютерной системе, стараясь не допустить возникновения ситуации, когда процесс одного пользователя постоянно занимает процессор, в то время как процесс другого пользователя фактически не начинал выполняться.
Эффективность – постараться занять процессор на все 100% рабочего времени, не позволяя ему простаивать в ожидании процессов, готовых к исполнению. В реальных вычислительных системах загрузка процессора колеблется от 40 до 90%.
Сокращение полного времени выполнения ( turnaround time ) – обеспечить минимальное время между стартом процесса или постановкой задания в очередь для загрузки и его завершением.
Сокращение времени ожидания ( waiting time ) – сократить время, которое проводят процессы в состоянии готовность и задания в очереди для загрузки.
Сокращение времени отклика ( response time ) – минимизировать время, которое требуется процессу в интерактивных системах для ответа на запрос пользователя.
Независимо от поставленных целей планирования желательно также, чтобы алгоритмы обладали следующими свойствами.
Были предсказуемыми. Одно и то же задание должно выполняться приблизительно за одно и то же время. Применение алгоритма планирования не должно приводить, к примеру, к извлечению квадратного корня из 4 за сотые доли секунды при одном запуске и за несколько суток – при втором запуске.
Были связаны с минимальными накладными расходами. Если на каждые 100 миллисекунд, выделенные процессу для использования процессора, будет приходиться 200 миллисекунд на определение того, какой именно процесс получит процессор в свое распоряжение, и на переключение контекста, то такой алгоритм, очевидно, применять не стоит.
Равномерно загружали ресурсы вычислительной системы, отдавая предпочтение тем процессам, которые будут занимать малоиспользуемые ресурсы.
Обладали масштабируемостью, т. е. не сразу теряли работоспособность при увеличении нагрузки. Например, рост количества процессов в системе в два раза не должен приводить к увеличению полного времени выполнения процессов на порядок.
20. Задачи алгоритмов планирования процессов для данных систем состоят в следующем:
необходима организация окончания работы к назначенному сроку и предотвращение потери данных;
должна присутствовать предсказуемость, т. е. предотвращение каких-либо сбоев системы.
Задачи алгоритмов планирования для всех систем планирования процессов следующие:
справедливость, т. е. каждому процессу необходимо выделить справедливую долю процессорного времени;
контроль над выполнением принятого способа планирования процессов;
баланс, т. е. поддержка занятости всех частей компьютерной системы (например, чтобы были заняты процессор и устройства ввода/вывода)
21-22-23. В чем заключаются алгоритмы планирования в системах пакетной обработки: первый пришел – первым обслужен и кратчайшая задача – первая?
Системы пакетной обработки – это системы, которые могут использовать неприоритетные и приоритетные алгоритмы планирования процессов (например, для расчетных программ).
Задачи алгоритмов планирования процессов для таких систем заключаются в следующем:
должна быть максимальная пропускная способность, т. е. количество задач в единицу времени;
должно быть минимальным оборотное время, т. е. минимальное время на ожидание обслуживания и обработку задач;
должно быть максимальное использование процессора, т. е. необходимое условие состоит в постоянной занятости процессора.
FIFO- При использовании этого алгоритма центральный процессор выделяется процессам в порядке поступления их запросов. По сути, используется одна очередь процессов, находящихся в состоянии готовности. Оно не прерывается по причине слишком продолжительного выполнения. По мере поступления других заданий они помещаются в конец очереди. При блокировке выполняемого процесса следующим запускается первый процесс, стоящий в очереди. Когда заблокированный процесс переходит в состояние готовности, он, подобно только что поступившему заданию, помещается в конец очереди. Сильной стороной этого алгоритма является простота его понимания и такая же простота его программирования и справедливость, процессы ставятся в очередь по мере их поступления, создавая связный список. недостатками. Недостаток заключается в том, что процесс, ограниченный возможностями процессора, может затормозить более быстрые процессы, ограниченные устройствами ввода/вывода.
Наименьшее оставшееся время выполнения.
Этот принцип является аналогом принципа планирования Кратчайшая задача – первая, но отличие заключается в том, что, если приходит новый процесс, то его полное время выполнения сравнивается с оставшимся временем выполнения текущего процесса: если время выполнения нового процесса меньше, чем оставшееся время выполнения текущего процесса, то текущий процесс приостанавливается и выполняется новый процесс; иначе – продолжает выполняться текущий процесс.
Принцип трехуровневого планирования процессов
Планировщик доступа выбирает задачи оптимальным образом (например, процессы, ограниченные процессором и вводом/выводом).
Планировщик памяти выгружает и загружает некоторые процессы на диск, если процессов в оперативной памяти слишком много. Количество процессов, находящихся в памяти, называется степенью многозадачности.
Планировщик процесса предоставляет процессор тому или иному процессу в зависимости от принятой стратегии, т. е. от используемого принципа планирования процессов FIFO, Кратчайшая …
Циклическое планирование процессов
Каждому процессу назначается определенный интервал времени, называемый его квантом, в течение которого ему предоставляется возможность выполнения. Если процесс к завершению кванта времени все еще выполняется, то ресурс центрального процессора у него отбирается и передается другому процессу. Единственное, что представляет интерес в циклическом планировании, — это продолжительность кванта времени. Переключение с одного процесса на другой требует определенного количества времени для выполнения задач администрирования — сохранения и загрузки регистров и карт памяти, обновления различных таблиц и списков, сброса на диск и перезагрузки кэша памяти и т. д.
Достоинства - не представляет сложности в реализации.
Недостаток - сложность подбора времени кванта.
Приоритетное планирование процессов. Основная идея проста: каждому процессу присваивается значение приоритетности, и запускается тот процесс, который находится в состоянии готовности и имеет наивысший приоритет. Чтобы предотвратить бесконечное выполнение высокоприоритетных процессов, планировщик должен понижать уровень приоритета текущего выполняемого процесса с каждым сигналом таймера (то есть с каждым его прерыванием). Если это действие приведет к тому, что его приоритет упадет ниже приоритета следующего по этому показателю процесса, произойдет переключение процессов. Можно выбрать и другую альтернативу: каждому процессу может быть выделен максимальный квант допустимого времени выполнения. Когда квант времени будет исчерпан, шанс запуска будет предоставлен другому процессу, имеющему наивысший приоритет.
