Современные операционные системы

Современные операционные системы
Процессы и потоки  Барьеры

Барьеры

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

Барьеры читать полное описание.


Процессы и потоки  Планирование

Планирование

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

Планирование читать полное описание.


Процессы и потоки  Введение в планирование

Введение в планирование

Если вернуться к прежним временам пакетных систем, где ввод данных осуществлялся в форме образов перфокарт, перенесенных на магнитную ленту, то алгоритм планирования был довольно прост: требовалось всего лишь запустить следующее имеющееся на ленте задание. С появлением многозадачных систем алгоритм планирования усложнился, поскольку в этом случае обычно фигурировали сразу несколько пользователей, ожидавших обслуживания. На некоторых универсальных машинах до сих пор сочетаются пакетные задачи с задачами в режиме разделения времени, и планировщику нужно решать, какой должна быть очередная работа: выполнение пакетного задания или обеспечение интерактивного общения с пользователем, сидящим за терминалом. (

Введение в планирование читать полное описание.


Процессы и потоки  Выбор «правильного» процесса

Выбор «правильного» процесса

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

Выбор «правильного» процесса читать полное описание.


Процессы и потоки  Когда планировать?

Когда планировать?

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

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

Когда планировать? читать полное описание.