В. Столлингс - Операционные системы (1114679), страница 95
Текст из файла (страница 95)
— срелнее количество элементов, ожидающих обслуживания з В ряде литературных источников этот термин применяетея к среднему ни ожидания в очереди до момента обслуживания. среднее время ожидания (включая как э~е е лужннания, ~но прн пот тупленттн в систему (со Бревнам ожидания, равным нулто))- среднее количество элементов, нзходятцнхся э системе (ожидающих и обо ж знаемых).
а щих и лу- среднее время нахождения э системе (затрзченное яз ожидаттяе и обслуживание),, Если предположить, что емкость очереди не ограничена, то системой не будет потерян ни один элемент; будет только отложено обслуживание элементов, При таком условии скорость поступления элементов в систему будет равна стсорости их выхода из системы.
При увеличении потока элементов в системе возрастает загруженность сервера, и при р = 1 достигается насыщение. Таким образом, теоретическая максимальная скорость поступления равна днако р приближении к насыщению очередь становится очень большой (и растет неограниченно при р = 1). Практические требования, такие, как требования ко времени отклика или ограничения на размер буферов, обычно ограничивают скорость поступления в систему с одним сервером 70 — 90% от теоретического максимума. Обычно делаются следующие предположения. я Источник элементов.
Как правило, предполагается неограниченный источник. Зто означает, что скорость поступления не изменяется со временем. При конечном источнике его емкость со временем снижается за счет обработанных элементов и, как правило„пропорционально снижается скорость поступления элементов в систему. Размер очереди. Обычно предполагается, что очередь не ограничена, т.е. линия ожидания может неограниченно увеличиваться. Если очередь конечна, в системе могут наблюдаться потери элементов. На практике очередь конечна, но в большинстве случаев зто не приводит к существенным отличиям в анализе.
Стратегия диспетчеризации. Когда сервер освобождается, а очередь — не пуста, принимается решение о том, какой элемент из очереди будет передан серверу для обслуживания. Простейшим подходом является стратегия "пе вым нош р м вошел — первым вышел". При использовании термина очередь подразумевается именно такая стратегия. другая возможность — стратегия '*последним вошел — первым вышел*'.
На практике можно встретить стратегии основ н , основанные на времени обслуживания. Например, маршрутизатор может об а обрабатывать сначала как короткие пакеты (для генерации большего количества пакетов), так и длинные (для минимизации времени обработки по отношен ошению ко времени передачи). К сожалению, очень сложно аналитически смоделировать стратегию, основанную на времени обслуживания.
и) кчлаВ 9 а 9. Планирование в системах с одним процессором П~~~ и к 1 с~ юную~ а) середь с несколькими серверами 6) Несколько оеередеи с сереерами ~ос. 9.21. Сисшсмж с нсснольР.ими сс~йыяйми Часть 4. Плани .ф Очередь со многими серверами На рис. 9.21 представлено обобщение рассмотренной нами простейшей мо- дели с несколькими серверами, совместно использующими одну очередь. Если в и момент поступления элемента доступен хотя бы один сервер, поступивший эле- мент тут же передается этому серверу.
Предполагается, что все серверы иден- тичны, так что если доступны несколько серверов, то не имеет значения, какой:::., ':,: именно из них обслужит поступивший элемент. Если все серверы заняты, эле. мент попадает в очередь. Когда какой-либо из серверов освобождается, а оче- '!: редь — не пуста, из нее в соответствии с той или иной стратегией выбирается., элемент, передающийся освободившемуся серверу. Все параметры системы, показанные на рис.
9.20, без изменений переносят, -. ся на многосерверную систему, за исключением загруженности сервера. Если 1Ф нас имеется И идентичных серверов и р — загруженность каждого сервера, под загруженностью системы мы можем понимать величину Фр; иногда для эта ' 4 величины используется термин интенсивность трафика (1гаХйс 1пФепвйу). Так :3 образом„максимальная теоретическая загруженность равна Фх100%, а теоре ческая максимальная скорость поступления Ф Л Т, Ключевые характеристики системы с несколькими серверами обычно те же, ": и в случае системы с одним сервером, так что, как правило, предполагается н бесконечного источника элементов, очереди неограниченного размера, совместно, пользуемой всеми серверами.
Если не указано иное, предполагается, что при элемента для обслуживания используется стратегия "первым вошел — первым шел*'. Выбор сервера в случае их идентичности значения не имеет. На рис. 9.21,б показан еще один вариант системы с несколькими серве ми, в котором каждому серверу соответствует единственная очередь. клава 9. Планирование в системах с одним процессором Многопроцес- сорное планирование и планирование реального времени 10.1. Многопроцессорное планирование 10.2.
Планирование реального времени 10.3. Планирование в Е1пнх 10.4. Планирование в ПХ1Х ЯУВ4 10Л. Планирование %'1пйоиз 2000 10.6. Резюме, ключевые термины и контрольные вопросы 10.7. Рекомендуемая литература 10.8. Задачи вии п ропе ц ссов целесообразнее использовать распределенную систему, но при >лее частом взаимодействии накладные расходы по передаче информации яо ти могут привести к снижению производительности, и в этом случае более зф„ ективным ре ым решением будет использование многопроцессорной системы.
Средняя зернистость В главе 4, "Потоки, симметричная мультипроцессорная обработка и микро дра, рас ,сказывалось что единое приложение может быть эффективно реализо. Ъ иде множества потоков в пределах одного процесса. В этом случае пр. -,",'„'~, :Ъ,''з: ! «нциальная параллельность приложения должна быть явно указана программа гом. Обычно между потоками одного приложения требуется более в гепень координации и взаимодействия, чем между различными процесса приводит к среднему уровню синхронизации.
В то время как параллельность независимых процессов, а также проц большим и очень большим зерном может поддерживаться как многозадачн :мой с одним процессором, так и многопроцессорной системой с миним влиянием стратегии планирования, при работе многопоточных приложен ирование становится важной задачей, требующей пересмотра с учетом нов званий. В силу частого взаимодействия потоков одного приложения пр ешение о планировании одного потока может существенно повлиять на про ительность приложения в целом. Позже мы вернемся к этому вопросу. Малая зернистость Малая зернистость представляет более сложное использование во хей параллельных вычислений, чем использование потоков.
Это специал анная область, в которой используется множество различных методов (еплохой обзор по данной тематике вы найдете в 1А1 МА891. 3опросы разработки Планирование в многопроцессорной системе включает три вз анных вопроса: е назначение процессов процессорам; ° использование многозадачности на отдельном процессоре; ° диспетчеризация процесса. При рассмотрении этих вопросов не следует забывать о том, что :ый рассматриваемый подход зависит, вообще говоря, от степени зер :риложения и количества доступных процессоров. Назначение процессов процессорам В предположении единообразия архитектуры многопроцессор о ной сис ом смысле, что ни один процессор физически не отличается от дру гих ,оступа к основной памяти или устройствам ввода-вывода) просте йший п 'ланированию состоит в рассмотрении процессоров как единого ресурса 'енин процессов процессорам по требованию. При таком подходе возник опрос: должно ли такое назначение быть статическим или динамич инамически Если процесс назначается одному процессору постоянно — от момента актива ции и до его завершения, — то для каждого процессора следует поддерживать отдельную краткосрочную очередь.
Такой подход способствует уменьшению накладных расходов планирования процессов (поскольку назначение процесса процессору вы полняется только один раз). Кроме того, использование выделенных процессоров обеспечивает возможность применения стратегии. известной как групповое (атер), или бригадное (дал~), планирование (о нем мы поговорим позже). Недостатком статического распределения является то, что когда один процесс загружен работой, другой может простаивать. Для предотвращения такой ситуации можно использовать очередь, об|цую для всех процессоров.
Все процессы попадают в одну глобальную очередь и передаются для выполнения любому свободному процессору. Таким образом, при этом подходе в течение жизни процесс может в разное время выполняться на разных процессорах. В сильносвязанных системах с общей памятью информация контекста всех процессов доступна всем процессорам и, следовательно, стоимость планирования процесса не зависит от того, какой из процессов оказывается выбранным. Независимо от выбранного типа распределения, используются два основных подхода к назначению процессов процессорам: ведущий,'ведомый процессоры и равноправные процессоры.
В случае использования архитектуры "ведущий/ведомый"' ключевые функции операционной системы всегда выполняются на одном специально выделенном процессоре; все остальные процессоры могут выполнять только пользовательские приложения. Ведущий процессор отвечает за планирование заданий. Когда активный процесс на ведомом процессоре требует определенного обслуживания (например, осуществляет вызов ввода-вывода), он должен послать запрос ведущему процессору и ожидать завершения сервиса. Такой подход достаточно прост и требует внесения небольших дополнений в однопроцессорную многозадачную операционную систему.
упрощается при таком подходе и разрешение конфликтов, поскольку один процессор управляет всей памятью и ресурсами ввода-вывода. Однако у такого подхода имеются два недостатка. "(1) сбой ведущего процессора приводит к неработоспособности всей системы в целом, и (2) ведущий процессор превращается в узкое место системы, определяющее ее производительность в целом. При использовании архитектуры равноправных процессоров операционная система может выполняться на любом из процессоров, и каждый процессор самостоятельно планирует свою работу, беря процессы для выполнения из общего пула. Такой подход усложняет операционную систему, которая должна гарантировать, что никакие два процессора не выберут одновременно один и тот же процесс для выполнения и что не будет никаких потерь из очереди.