Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
202
Добавлен:
02.05.2014
Размер:
2.83 Mб
Скачать

8. Основные функции ядра

  1. Планирования заданий в системах без мультипрограммирования.

В системах без мультипрограммирования для каждого задания порождается один процесс. Значит разница между понятиями задание и процесс отсутствует.

Как только процессор был выделен для обслуживания процесса, он остается в его распоряжении до окончания работы этого процесса.

    1. Планирование заданий с простой очередностью.

Данное планирование носит название планирования по принципу FIFO "первым пришел, первым обслужен" (First In, First Out).

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

Среднее время ожидания для одного задания зависит от загрузки системы и не зависит от запрашиваемого времени обслуживания.

    1. Планирование заданий с преимущественным выбором коротких заданий.

Shorrtest Job First или SJF.

Задания упорядочиваются в очереди ожидания по их времени обслуживания. Время обслуживания предполагается известным заранее. Короткие задания ставяться вперед.

При таком способе планирования привелигированное обслуживание резервируется для более коротких заданий.

Недостатки:

  • риск отстранения выполнения длинных заданий при повышенной норме прибытия коротких заданий;

  • необходимо заранее точно знать время обслуживания.

    1. "Следующий - с большим ответным отношением".

Highest Response Ratio Next или HRN

Способ устраняет недостатки метода SJF.

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

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

    1. Планирование заданий с учетом ожидаемых поступлений.

Используется информация о будующем поведении системы. Если известно, что с минуты на минуту поступят два коротких задания, стоит ли начинать длинное задание?

Недостатки:

      1. В системе, алгоритм планирования которой не обеспечивал немедленного выполнения длинных заданий, были найдены задания, пролежавшие в системе более 3 лет.

      2. Трудность прелвидения.

      3. Время выполнения задания, используемое в алгоритмах планирования, обычно является предварительной и весьма приблизительной оценкой.

      4. Необходимость учитывания других ресурсов кроме процессора.

    1. Оценка эффективности выполнения:

  • Время обращения задания.

  • Время выполнения задания.

  • Взвешенное время обращения - отношение времени обращения к действительному времени выполнения задания.

  1. Планирования заданий в системах с мультипрограммированием.

При мультипрограммировании основной функцией планировщика заданий является выборка заданий на выполнение.

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

Процессорное время - сумма квантов времени ЦПУ, затраченного на выполнение данного задания.

    1. Без учета ввода-вывода.

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

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

5

-

-

-

-

-

-

-

х

4

-

-

-

-

-

-

х

-

3

-

-

-

-

х

-

-

-

2

-

-

х

-

-

-

-

-

1

-

-

-

-

-

-

-

-

- выполнение или готовность

х - время поступление

 

Рисунок -1. Мультипрограммное выполнение пяти заданий - без совмещения по вводу-выводу.

Мультипрограммирование снижает производительность с точки зрения среднего времени обращения.

Среднее взвешенное время обращения улучшается.

Наихудший вариант - поступление заданий одновременно. Наилучший вариант - последовательное поступление следующего задания после завершения предыдущего.

    1. С учетом ввода-вывода.

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

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

    1. С учетом требования к памяти и без учета ввода вывода.

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

Конфликты по памяти также увеличивают среднее время ожидания.

    1. С учетом требований к памяти внешним устройствам без учета ввода вывода.

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

    1. Обобщение результатов.

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

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

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

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

  1. Уровни систем планирования.

    1. Двухуровневая система планирования.

    1. Трехуровневая система планирования.

  1. Планировщик процессов.

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

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

В ОС процессы могут находится в стадии ожидания (привести пример). Следует отметить, что в стадии ожидания окажется процесс, а не процессор. Это означает, что процессор может продолжать обслуживание других процессов, игнорируя наличие данного процесса.

    1. Функции.

Планировщик процессов должен выполнять следующие функции:

      1. Регистрация информации о состоянии процессов.

      2. Решать, какому из процессов, когда и на сколь длительное время предоставлять процессор.

      3. Выделение процессоров процессам.

      4. Освобождение процессоров от использующих их процессов.

    1. . Учет информации о состоянии процессов.

Эту функцию выполняет регулировщик процессов.

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

Примерная информация таблицы:

  • идентификатор процесса;

  • текущее состояние;

  • приоритет;

  • область сохранения регистров;

  • указатель цепочки (адрес следующего PCB в том же состоянии) и др.

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

Регулировщик вызывается всякий раз, когда меняется состояние ресурса.

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

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

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

    1. Дисциплины обслуживания.

Определяет порядок, в котором процессор обслуживает процессы, а так же длительность квантов времени обслуживания для каждого из процессов.

Квант времени - интервал времени, в течении которого процессор обслуживает данный процесс.

Длительность кванта может зависеть от одного из нижеперечисленных событий или их комбинации:

  • выполнение процесса завершено;

  • процесс перешел в состояние ожидания;

  • процессор потребовался для обслуживания процесса, имеющего более высокий приоритет;

  • завершился заранее выделенный процессу квант времени;

  • произошла ошибка.

Решение о выборе процесса на обслуживание принимается путем просмотра очереди готовых PCB в соответствии с принятой дисциплиной обслуживания.

Способы организации готовых PCB:

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

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

    1. Равномерное циклическое квантование.

Длительность обслуживания каждого процесса ограничена величиной стандартного времени.

    1. Приоритет по характеру использования предшествующего кванта.

Если процесс полностью использовал свой предшествующий квант времени, он помещается в конец очереди. Если он использовал только половину(например блокировка по ввод/вывод), он попадает в середину очереди ("справедливая").

Данная дисциплина хороша для обслуживания процессов с интенсивным вводом выводом.

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

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

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

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

    1. Предпочтительное обслуживание интерактивных процессов.

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

    1. . Автоматические приоритеты.

Ответственность за назначение процессам приоритетов возлагается на саму операционную систему:

  • ОС может повышать приоритеты коротких заданий;

  • автоматическое назначение приоритетов, приводящее к сбалансированной загрузке оборудования (совместное выполнение двух процессов: 1 интенсивно использует ввод/вывод; другой использует его в малой степени).

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

    1. Модель типа вертушки (круговорот) и ее варианта

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

В модели много уровневой вертушки дополнительно уменьшается время обслуживания коротких заданий. Она содержит n очередей ожидания F0,.....,Fn-1. С каждой очередью Fi связан квант Qi, величина которого растет с увеличением i. Задание из очереди Fi обрабатывается только в том случае, если все очереди с меньшими номерами i пусты. Когда квант времени израсходован на задание из очереди Fi, а соответствующее задание еще не окончено , оно помещается в очередь Fi+1, задания из очереди Fn-1 возвращаются в эту же очередь. Новые задания попадают в очередь F0.

    1. Диаграммы работы состояний процессов.

      1. Простой алгоритм обслуживания.

Различаются два типа состояния готовности: низкоприоритетная и высокоприоритетная.

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

  • выбор на обслуживание процесса из очереди высокоприоритетных готовых процессов.

  • если эта очередь пуста, выбрать процесс из очереди низкоприоритетных процессов.

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

      1. Альтернативный алгоритм.

Может использоваться в системах с разделением времени и страничной организацией памяти.

Состояние ожидания может быть трех видов:

  • блокировка по обмену с терминалами;

  • блокировка по обмену с накопителями;

  • блокировка по обмену с внешней страничной памятью.

Готовые процессы подразделяются на три группы:

  • низкоприоритетные процессы с преимущественным счетом;

  • высокоприоритетные процессы с преим. ввод/вывод;

  • среднеприоритеные процессы с преим. ввод/вывод.

Алгоритм обслуживания состоит в выборе процесса из очереди высокоприор. Готовых процессов, если очередь пуста - из более низких очередей по приоритету.

Реализуются несколько частных дисциплин.

  1. Регулировщик процессов.

Функции:

    1. Регистрация информации о состояниях всех процессов находящихся в стадиях : выполнения, готовности или ожидания.

    2. Подключение процессора к процессу. При этом значения регистров устанавливаются в соответствие с текущим состоянием процесса.

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

  1. Реализация основных функций ОС:

    1. Структуры данных для реализации функций управления процессами и ресурсами (дескрипторы процессов, ресурсов, обобщенная очередь).

    2. Стратегии и дисциплины выделения ресурсов (определение, цели и критерии выбора).

    3. Планирование и диспетчеризация процессов, дисциплины планирования.

    4. Управление процессами в современных ОС (Windows NT и Windows 95, OS/2, Novell NetWare).