Your AI powered learning assistant

Операционные системы, урок 8: Планирование выполнения задач. Диспетчеризация.

Вступление

00:00:00

Сегодняшняя лекция - восьмая в курсе по операционным системам. Это будет относительно короткая лекция, потому что мы не планировали широко освещать эту тему.

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

00:00:18

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

Виды планирования

00:01:54

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

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

Краткосрочное

00:07:18

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

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

Приоритеты

00:13:18

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

Проблема приоритетов: голодание

00:14:16

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

Пример

00:16:55

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

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

Round robin

00:20:45

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

Shortest Remaining Time

00:23:00

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