Мегаобучалка Главная | О нас | Обратная связь


Управление загрузкой процессора в мультипрограммных ОС



2019-07-03 391 Обсуждений (0)
Управление загрузкой процессора в мультипрограммных ОС 0.00 из 5.00 0 оценок




Мультипрограммирование, или многозадачность (multitasking) – это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Мультипрограммирование призвано повысить эффективность использования вычислительной системы, однако эффективность может пониматься по–разному. Наиболее характерными критериями эффективности ВС являются:

· пропускная способность – количество задач, выполняемых вычислительной системой в единицу времени;

· удобство работы пользователей, заключающееся, в частности, в том, что они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине;

· реактивность системы – способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.

 

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

Каждый процесс обязательно создает первичный поток (primary thread) выполнения. Он делает это автоматически. В свою очередь первичный поток может создать еще один или несколько потоков, которые размещаются в одном и том же адресном пространстве, принадлежащем процессу. Когда потоки создаются, родительский процесс начинает выполняться не последовательно, а параллельно. Так реализуется потоковая многозадачность.

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

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

· выполнения, если в данный момент ему выделен центральный процессор;

· готовности, если он может сразу же использовать центральный процессор, предоставленный в его распоряжение;

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

 

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

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

Планирование процессов и потоков. Процесс – это программа, имеющая права собственности на ресурсы. У каждого процесса есть свое множество ресурсов. Если множества ресурсов нескольких процессов пересекаются, то возникает вопрос об использовании разделяемых ресурсов (в частности процессора).

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

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

Планирование процессов включает в себя решение двух задач:

· определение момента времени для смены текущего активного процесса;

· выбор для выполнения процесса из очереди готовых к выполнению процессов.

 

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

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

· обращение к внешнему устройству для сохранения результатов;

· завершение процесса;

· зафиксированный факт зацикливания процесса.

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

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

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

· обращение с запросом на работу с внешним устройством;

· завершение процесса;

· исчерпание выделенного данному процессу кванта времени.

 

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

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

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

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

В OС Windows существует шесть классов приоритетов для процессов. По умолчанию процесс получает класс приоритета NORMAL_PRIORITY__CLASS. Программист может задать класс при-оритета создаваемому процессу с помощью одного из параметров функции CreateProcess. Кроме того, существует возможность динамически во время выполнения процесса, изменять класс приоритета процесса с помощью функции SetPriorityClass. Выяснить класс приоритета какого–либо процесса можно с помощью функции GetPriorityClass. Процессы, осуществляющие мониторинг системы, а также хранители экрана должны иметь низший класс (IDLE_ PRIORITY_CLASS), чтобы не мешать другим полезным процессам.

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

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



2019-07-03 391 Обсуждений (0)
Управление загрузкой процессора в мультипрограммных ОС 0.00 из 5.00 0 оценок









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

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (391)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)