Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Дисциплины диспетчеризации
Дескриптор задачи (потока). Для каждой задачи (потока) операционная система поддерживает структуру (блок данных), называемую дескриптором задачи (потока). Когда создается задача (поток), операционная система создает для нее дескриптор. Программной единице, с которой не связан никакой дескриптор не будет выделяться время центрального процессора. Когда задача принудительно вытесняется или блокируется, операционная система сохраняет в ее дескрипторе информацию о состоянии задачи. Это состояние задачи называют контекстом, сюда включают состояние процессора (указатель команд, регистр сегмента команд, регистр флагов), состояние внутренних регистров процессора. В дескрипторе задачи содержится информация о состоянии самой задачи, адрес точки входа и другая важная информация. Примерное содержание структуры «дескриптор задачи»: - идентификатор задачи; - адрес точки входа; - состояние задачи; - приоритет; - область для сохранения контекста; - величина кванта времени; - время, оставшееся до тайм-аута; - события, которых ожидает задача.
Диспетчеризация задач. Выбор задачи на выполнение на центральном процессоре можно назвать диспетчеризацией. Операционная система управляет множеством задач, поддерживая в интересах диспетчеризации структуры данных, называемые дескрипторами. Имеются разные способы диспетчеризации, главное, чтобы выбор задачи на выполнение осуществлялся максимально быстро. Политика, от которой зависит, какая задача будет выбрана в каждом конкретном случае, определяется алгоритмом (дисциплиной) диспетчеризации. Алгоритм (дисциплину) диспетчеризации можно также определить, как правило, в соответствии с которым формируется очередь готовых к выполнению задач.
Дисциплины диспетчеризации. Существует большое количество дисциплин диспетчеризации, применяемых в различных вычислительных системах, имеющих разную специфику. Рассмотрим некоторые подходы построения алгоритмов диспетчеризации. Различают два класса дисциплин: бесприоритетные и приоритетные. Бесприоритетные дисциплины реализуют подход, при котором выбор задачи производится в некотором заранее заданном порядке, приоритет задачи (привилегированность задачи при использовании ресурсов вычислительной системы) не учитывается. Возможна бесприоритетная дисциплина, основанная на выделении каждой задаче определенного кванта времени. Каждая задача в системе получает по очереди квант времени. После окончания кванта времени задача снимается с процессора и переводится в конец очереди, готовых к выполнению задач, а процессорное время предоставляется следующей в очереди задаче. Подобную дисциплину диспетчеризации называют карусельной, она подходит для вычислительных систем, в которых все задачи имеют равные права (например, многотерминальные системы). В карусельной дисциплине реализуется вытесняющая многозадачность. Приоритетные дисциплины учитывают приоритет задач, предоставляют отдельным задачам преимущественное право попасть в активное состояние (состояние выполнения на центральном процессоре). Обсудим некоторые варианты приоритетных дисциплин диспетчеризации. Например, дисциплина диспетчеризации с фиксированными приоритетами, использующая одну очередь задач. Заметим, что, при любых дисциплинах диспетчеризации очередь задач фактически представляет собой очередь, обсуждавшихся ранее, дескрипторов задач. В принципе, такая очередь может быть организована, как таблица (массив структур), каждая строчка которой представляет собой дескриптор некоторой задачи, либо как список структур (дескрипторов задач), каждый элемент, которого имеет ссылку на элемент, следующий за ним в очереди. Выбор задачи на исполнение в дисциплине с фиксированными приоритетами организован следующим образом. Все задачи расставлены по приоритетам в таблице (очереди дескрипторов задач). Диспетчер задач, получив управление, начинает просматривать таблицу с самого начала в поисках первой готовой к счету задачи. Процессор в первую очередь будет предоставляться задаче с самым высоким приоритетом и в случае, если ей в данный момент не требуется процессорное время или она блокирована, ожидая некоторого события, диспетчер предоставит время другой задаче. В принципе, такой алгоритм возможен, когда во время разработки вычислительной системы заранее известны все задачи, их количество и длительность выполнения и вследствие этого им можно присвоить постоянные приоритеты. Как правило, в операционных системах дисциплины диспетчеризации основаны на разделении времени (квантовании) с учетом приоритетов задач. В многопользовательской среде природа прикладных процессов операционной системе неизвестна, поведение задачи может меняться с течением времени в зависимости от того чем она занята (обработкой данных или их вводом-выводом). Пользователь не должен ждать, когда закончится некоторая длительная операция. Поэтому задачам выделяются для выполнения кванты времени, но при этом организуется несколько очередей готовых к выполнению задач. Каждой из этих очередей присвоен определенный приоритет. Когда операционная система переводит задачу в состояние готовности, она добавляет ее в конец, соответствующей очереди. Возможны разные способы формирования таких очередей. Допустим, высокоприоритетная очередь может формироваться из задач, выполняющих операции ввода-вывода. Такие задачи часто блокируются, не исчерпав своего кванта времени. Низкоприоритетную очередь логично формировать из задач, требующих длительных вычислений. Другая схема формирования высоко и низкоприоритетных очередей заключается в следующем. Высокоприоритетная очередь формируется из задач, которые операционная система переводит из состояния ожидания (блокирована) в состояние готовности к счету. Если квант времени задачи истек, операционная система переводит задачу в состояние готовности и ставит в низкоприоритетную очередь Существуют дисциплины, в которых поддерживается большее количество очередей. Возможен следующий вариант с несколькими очередями: - высокоприоритетная очередь для задач, которые были заблокированы в ожидании событий, связанных с распределением ресурсов, критичных для производительности системы (например, подкачка в оперативную память нужной страницы); - очередь со средним приоритетом для задач, заблокированных в ожидании ресурсов менее критичных для производительности; - низкоприоритетные очереди для задач, исчерпавших свои кванты времени, очереди назначаются процессам, не выполняющим ввод-вывод.
Вопросы для самопроверки 1. Назовите основные методы переключения задач. 2. Что такое вытесняющая многозадачность. 3.Дескриптор задачи, его назначение и основные элементы . 4. Кратко поясните алгоритмы основных дисциплин диспетчеризации. 5. Какие компоненты или явления обусловили возможность мультипрограммного режима работы вычислительной системы. 6. Поясните конкурентный способ выполнения программ. 7. Назовите критерии эффективности вычислительной системы. 8. Определите понятия процесса и ресурса и их связь друг с другом. 9. Перечислите основные ресурсы вычислительной системы. 10. Поясните термины «планирование» и «диспетчеризация». ГЛОССАРИЙ 1. ЭЛЕМЕНТНАЯ БАЗА – Технология, используемая для производства элементарных ячеек ЭВМ 2. КОНТРОЛЛЕР – Электронное устройство, управляющее работой внешнего устройства 3. ГРАФ – Графическая диаграмма состояния процесса.
|
Последнее изменение этой страницы: 2019-03-22; Просмотров: 575; Нарушение авторского права страницы