Новости, советы, вдохновение которым вы можете доверять

Компьютерные операционные системы: планирование процессов

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

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

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

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

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

Процесс отправляет запрос на некоторое устройство ввода-вывода и, следовательно, помещается в соответствующую очередь устройств.

Процесс также может генерировать подпроцесс и ждать его завершения, прежде чем продолжить.

Могут возникнуть ситуации, когда процесс принудительно удаляется из центрального процессора и помещается в очередь готовности. Обычно это происходит из-за прерывания.

Из вышеупомянутых ситуаций в первых двух процесс переключается в состояние ожидания, а затем обратно в состояние готовности. Этот цикл продолжается до завершения процесса, после чего печатная плата и ресурсы освобождаются.

ОЧЕРЕДЬ

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

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

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

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

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

Категория: Интернет | Добавил: Dexs (13.03.2023)
Просмотров: 157 | Рейтинг: 0.0/0