Тема 6 МОС 2 Управление задачами в ОС.ppt
- Количество слайдов: 43
Материал к курсу «Многопользовательские операционные системы»
Управление задачами в современных ОС
Современные ОС реализуют режим мультипрограммирования Мультипрограммирование призвано повысить эффективность использования вычислительной системы
Показатели эффективности ВС • пропускная способность – количество задач, выполняемых в единицу времени; • удобство работы пользователей, заключающихся, в частности в том, что они могут одновременно работать в интерактивном режиме с несколькими приложениями; • реактивность системы – способность выдерживать заранее заданные интервалы времени между запуском программы и получением конечного результата.
В зависимости от выбора одного их этих показателей эффективности ОС делятся • системы пакетной обработки, • системы разделения времени, • системы реального времени.
Системы пакетной обработки Предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Максимальная пропускная способность компьютера достигается в этом случае минимизацией простоев его устройств, и, прежде всего, процессора. Для достижения этой цели пакет заданий формируется так, чтобы получающаяся мультипрограммная смесь сбалансировано загружала все устройства машины.
Системы разделения времени Пользователям предоставляется возможность интерактивной работы сразу с несколькими приложениями. Для этого каждое приложение должно регулярно получать возможность «общения» с пользователем. Эта проблема решается за счет того, что ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они «добровольно» освободят процессор.
Системы реального времени Предназначены для управления: техническими объектами (спутник, ракета, атомные электростанции, станок, научная установка и др. ); технологическими процессами (гальваническая линия, доменный процесс и т. п. ), системами обслуживания разного рода (резервирование авиабилетов, оплата покупок и счетов) и др.
Критерием эффективности ОС реального времени в этом случае является способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата. Это время называется временем реакции системы, а соответствующее свойство – реактивностью.
Эффект мультипрограммирования Ta+Tb=11 Ta=6 A 2 Tb=5 A 2 2 B B 3 1 t В ы ч и с л е н и я A B 2 1 t Ввод–вывод Ta+Tb= 8 Tb= 6 Ta= 7 A 2 B A A 3 B 2 A 1 2 B 1 В ы ч и с л е н и я Ввод–вывод 1 B t t Готовность (ожидание процессора) 1 t
Мультипрограммирование (многозадачность, multitasking) – это такой способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ. Чтобы поддерживать мультипрограммирование, ОС должна определить для себя внутренние единицы работы, между которыми будет разделяться процессор и другие ресурсы компьютера
Управление задачами В некоторых современных ОС вновь вернулись к такой единице работы как задание (Job), например, в Windows. Задание в Windows представляет собой набор из одного или нескольких процессов, управляемых как единое целое. В частности с каждым заданием ассоциированы квоты и лимиты ресурсов, хранящиеся в соответствующем объекте задания.
ОС выполняет следующие основные функции, связанные с управлением задачами: • создание и удаление задач; • планирование процессов и диспетчеризация задач; • синхронизация задач, обеспечение их средствами коммуникации.
Система управления задачами обеспечивает из похождение через вычислительную установку с предоставлением ему тот или иной ресурса. Это выполняется: • по запросам пользователей; • по запросам задач. Основным ресурсом является ПРОЦЕССОР. Для его использования организуется очередь процессов.
Задачи динамического планирования, т. е. наиболее эффективного распределения ресурсов, возникающие практически при каждом событии, называются диспетчеризацией.
Различают долгосрочное и краткосрочное планирование. При краткосрочном планировании решается, какая из задач, находящихся в очереди готовых к выполнению, должна быть передана на выполнение. В большинстве современных ОС долгосрочный планировщик отсутствует.
Стратегии краткосрочного планирования, диспетчеризация должны определить какие процессы и в каком порядке надо выполнять для того, чтобы достигнуть поставленной цели. Стратегий планирования много. 1) по возможности заканчивать вычисления в том же порядке, в котором он были начаты; 2) отдавать предпочтение более коротким задачам; 3) предоставлять всем пользователям одинаковые услуги, в том числе и одинаковое время ожидания.
Дисциплины диспетчеризации Известно большое количество правил, в соответствии с которыми формируется очередь (список) готовых к выполнению задач. Имеются два больших класса дисциплин обслуживания: • бесприоритетные: • приоритетные.
При бесприоритетном обслуживании выбор задачи производится в некотором порядке без учета их важности и времени обслуживания. Бесприоритетные дисциплины обслуживания делятся на следующие: 1) линейные: • в порядке очереди; • случайный выбор процесса; 2) циклические: • циклический алгоритм; • многоприоритетный циклический алгоритм.
При реализации приоритетных дисциплин обслуживания отдельным задачам предоставляется преимущественное право на исполнение. Приоритетные дисциплины обслуживания делятся на следующие: • с фиксированным приоритетом; • с динамическим приоритетом.
Дисциплины с фиксированным приоритетом делятся: • • с относительным приоритетом; с абсолютным приоритетом; адаптивное обслуживание; приоритет зависит от времени ожидания.
Дисциплины с динамическим приоритетом делятся • приоритет зависит от времени ожидания; • приоритет зависит от времени обслуживания.
По классу диспетчеризации алгоритмы делятся 1. Не вытесняющие (оболочки Windows 1, 2, 3; Net. Ware). 2. Вытесняющие (UNIX/Linux; Windows NT/2000/XP).
Поддерживаются такие два свойства приоритетов: • приоритет, присвоенный задаче, является величиной постоянной; • приоритет задачи может изменяться в процессе ее решения. Диспетчеризация с динамическими приоритетами требует дополнительных расходов на вычисление значений приоритетов, поэтому многие ОС реального времени используют методы диспетчеризации на основе статических (постоянных) приоритетов.
Самой простой в реализации является дисциплина FCFS (first come – first served), задачи обслуживаются в порядке очереди, т. е. в порядке их появления. Задачи, приостановленные для ожидания какого-либо ресурса, после перехода в состояние готовности становятся в эту очередь перед задачами, которые еще не выполнялись.
При дисциплине FCFS образуются две очереди: • новые задачи; • ранее выполнявшиеся, но попавшие в состояние ожидания. Основной недостаток – при увеличении загрузки вычислительной системы растет среднее время ожидания обслуживания, короткие задачи ожидают столько же времени, как и трудоемкие.
Достоинства дисциплины FCFS: - простота реализации; - малые расходы системных ресурсов на формирование очереди задач. Дисциплина FCFS относится к не вытесняющим.
Дисциплина обслуживания SJN (shortest job next) требует, чтобы для каждого задания была известна оценка в потребностях процессорного времени. Пользователи должны были указывать предположительное время выполнения. Диспетчер задач сравнивал указанное время с реальным временем выполнения и, если время выполнения превышало указанное, то помещал это задание в конец очереди.
Если задание было временно заблокировано из-за занятости какоголибо ресурса, то оно помещается в конец очереди готовых к выполнению заданий наравне с вновь поступившими. Задания, которым требуется немного времени для завершения, попадают в конец очереди. Для устранения этого недостатка была предложена дисциплина SRT (shortest remaining time, следующее задание требует меньше всего времени для своего завершения).
Перечисленные три дисциплины обслуживания могут использоваться для пакетных режимов работы, когда не важно время отклика. Для интерактивной работы надо обеспечить приемлемое время реакции системы и равенство в обслуживании, если система мультитерминальная.
Недостаток, когда интерактивные задания не имеют преимущество перед фоновыми решен в дисциплине диспетчеризации RR (round robin – круговая, карусельная). При ней, что каждая задача получает процессорное время порциями (квантами). После окончания выделенного кванта времени задача снимается с исполнения и на выполнение выбирается следующая задача.
При RR снятая задача помещается в конец очереди готовых к выполнению задач. Величина кванта времени выбирается как компромисс между приемлемым временем реакции системы на запросы пользователей и накладными расходами на частоту смены контекста задач.
Вытесняющие и не вытесняющие алгоритмы диспетчеризации. Диспетчеризация без перераспределения процессорного времени, то есть не вытесняющая многозадачность – это такой способ диспетчеризации процессов, при котором активный процесс выполняется до тех пор, пока он сам, по своей инициативе, не отдаст управление диспетчеру задач для выбора из очереди другого, готового к исполнению процесса. Дисциплины обслуживания FCFS, SJN, SRT относятся к не вытесняющим.
Диспетчеризация с перераспределением процессорного времени между задачами, (вытесняющая многозадачность) – это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается диспетчером задач, а не самой активной задачей. Механизм диспетчеризации сосредоточен в ОС. Дисциплина RR относятся к вытесняющим.
Операционная система при вытесняющей многозадачности выполняет функции: 1. определяет момент снятия с выполнения текущей задачи; 2. сохраняет контекст текущей задачи в дескрипторе задачи; 3. выбирает из очереди готовых к выполнению задач следующую; 4. загружает контекст выбранной задачи; 5. запускает выбранную задачу на исполнение.
Модели процессов Простейшая описывает два состояния: 1) выполняется; 2) не выполняется. Однако в таком простом примере подобная реализация не является адекватной: часть процессов готова к выполнению, а часть заблокирована, например, по причине ожидания ввода-вывода. Добавим еще два состояния: новый и завершившийся.
Освобожде ние Вход Готовый к выполнению Новый Выполняющийся Завершающийся в систему Поступление процесса Блокированный Ожидание события Очередь готовых процессов CPU Тайм – аут ( t. КВ ) Ожидание события
Диспетчеризация задач с использованием динамических приоритетов. При выполнении программ может случиться ситуация, когда одна или несколько задач не могут быть выполнены в течение значительного времени из-за высокой нагрузки в вычислительной системе. Введение механизма динамических приоритетов позволяет реализовать быстрое выполнение коротких задач и гарантировать выполнение любых запросов. Эта дисциплина используется в ОС UNIX.
Каждый процесс имеет два приоритета: • текущий приоритет, на основе которого осуществляется планирование; • заказанный относительный приоритет (nice number). Приоритет вычисляется из заказанного nice number (p_nice) и системного, формируемым диспетчером (p_cpu). В назначении приоритета участвуют оба: а* p_nice + b* p_cpu
В разных UNIX/Linux используются разные формулы вычисления p_cpu : p_cpu = p_cpu/2 p_cpu = p_cpu * (2 * load)/(2 * load+1) где load – нагрузка системы (например, количество загруженных процессов)
Приоритеты Windows В Windows установлены уровни приоритетов от 0 (наименьший) до 31 (наибольший). Поток с наибольшим приоритетом получает процессор в свое распоряжение. Уровни приоритетов Windows разделены на два класса: • реального времени (приоритеты от 16 до 31) используются для выполнения основных функций ОС и обычно не применяются для приложений; • переменного приоритета (от 0 до 15) – определяет процессорный приоритет приложения.
Установлены базовые уровни приоритетов: • низкий – запускает приложение с уровнем приоритета 4; • обычный – запускает приложение с уровнем приоритета 7; • высокий – запускает приложение с уровнем приоритета 13; • реального времени – запускает приложение с уровнем приоритета 24.
В систем есть много очередей, обслуживаемых по принципу установленного порядка. Сначала реального времени, а затем переменного приоритета. Обычный процесс получает базовый приоритет при создании и он может уменьшится при большом количестве вычислений или увеличится при освобождении от состояния ожидания ресурса.


