Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
7
PAGE 4
СП
П
СМ
НР
ТЕМА 2.
Режимы обработки данных. Способы параллельной обработки. Параллелизм.
Режимы обработки данных.
Режим обработки данных - способ выполнения заданий (задач), характеризующийся порядком распределения ресурсов системы между заданиями. Обеспечивается управляющими программами ОС, которые выделяют память и другие ресурсы.
Рассмотрим основные режимы обработки данных и их влияние на характеристики СОД.
Оперативная и пакетная обработка данных.
Эти два режима используются для обслуживания пользователей, а не технических объектов.
Оперативная обработка характеризуется:
В рамках оперативной различают ещё два подтипа - режим "запрос-ответ" и диалоговый. "Запрос-ответ" - справочная служба на основе ЭВМ, банковские операции. Диалоговый предполагает активное участие пользователя в управлении процессом. Он самый интенсивный.
Пакетная обработка данных характеризуется:
Используется чаще всего для обработки больших массивов статистических или технических данных.
Обработка в реальном масштабе времени (РМВ).
Используется в основном в системах управления реальными (в первую очередь техническими) объектами.
Важный фактор - наличие предельно допустимого времени на получение ответа по какой-то задаче.
РМВ - режим, при котором организация обработки данных подчиняется темпу процессов вне СОД.
Режим телеобработки данных.
Самая важная отличительная черта - наличие линий связи и необходимости подключения и отключения от них. Пользователю нужно доступиться к системе, а системе - к данным. После этого идёт работа в режимах "запрос-ответ", диалоговом или пакетном.
Мультипрограммная обработка.
Это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы: ОП, ВЗУ, УВВ, ПУ. Задачи реализуются на разных устройствах, способных функционировать параллельно.
Наиболее реальная ситуация - совмещается по времени работа процессора по одной программе с работой УВВ по другим.
Мультипрограммирование призвано повысить эффективность использования системных ресурсов, однако эффективность можно понимать по-разному. Наиболее характерными критериями эффективности ВС являются:
При использовании мультипрограммирования 1-й и 2-й критерии имеют положительную динамику, 3-й - скорее отрицательную.
Самым эффективным способом повышения надёжности и производительности системы является параллельная обработка данных. Первой попыткой использовать этот способ была мультипрограммная обработка, но и она не справилась с растущими задачами. Качественно новой идеей была
Мультипроцессорная обработка (или мультипроцессорный режим обработки) данных.
Это такой способ организации вычислительного процесса в системах с несколькими процессорами, при котором несколько задач (процессов, потоков) могут одновременно выполняться на разных процессорах системы.
Эта концепция известна с начала 70-х, но до середины 80-х доступных многопроцессорных систем не существовало. Однако к настоящему времени стало обычным включение нескольких процессоров в архитектуру даже ПК (пример - сопроцессор). Более того, многопроцессорность теперь является одним из необходимых требований, предъявляемых к компьютерам, используемым в качестве центрального сервера более-менее крупной сети.
Не путать мультипрограммную и мультипроцессорную обработки!
В мультипрограммных системах параллельная работа разных устройств позволяет одновременно вести обработку разных программ, но при этом в процессоре в каждый момент времени выполняется только одна программа, т.е. несколько задач выполняются попеременно но одном процессоре. Здесь лишь видимость параллелизма.
В мультипроцессорных системах несколько задач выполняются одновременно, т.к. имеется несколько обрабатывающих устройств - процессоров.
Мультипроцессорная организация системы приводит к усложнению всех алгоритмов управления ресурсами. Планировать задачи для нескольких процессоров значительно сложнее, чем для одного. Кроме того, кто именно из процессоров будет это делать? Есть и другие сложности - возникают конфликтные ситуации при обращении к УВВ, ОП, памяти данных и т.д.
Всё это решается ОС путём синхронизации процессов, введения очередей, при помощи системы приоритетов (процессоров или процессов) и планирования ресурсов, но всё предусмотреть непросто.
В наши дни общепринято вводить в ОС функции поддержки мультипроцессорной обработки данных. Такие функции имеются во всех популярных ОС:
Microsoft Windows NT;
IBM OS/2;
Sun Solaris 2.x;
Santa Cruz Operations Open Server 3.x.
Понятия процесс и поток.
Чтобы поддерживать мультипрограммную и мультипроцессорную обработки, ОС должна определить и оформить для себя те внутренние единицы работы, между которыми будут распределяться процессоры и другие ресурсы.
В настоящее время в большинстве ОС определены два типа единиц работы. Более крупная - процесс или задача, требует для своего исполнения несколько более мелких работ, для обозначения которых используют понятие поток.
Способы организации параллельной обработки и Виды параллелизма.
Существуют три основных способа:
Рассмотрим каждый из них отдельно.
Первый путь - не что иное, как известная нам мультипрограммная обработка данных. Она возможна даже в однопроцессорных ЭВМ. Широко используется.
Второй путь - одновременное решение различных задач или частей одной задачи - возможен только при наличии нескольких обрабатывающих устройств. Этот путь нам тоже известен, мы кратко рассматривали мультипроцессорную обработку данных.
Но мультипроцессорный режим - всего лишь режим. Он должен быть обеспечен средствами ОС, а они, в свою очередь, строятся на идеях параллелизма, точнее, на элементах параллелизма, присущих задачам.
Можно выделить несколько видов параллелизма:
1. Естественный параллелизм независимых задач. Он заключается в том, что в систему поступает непрерывный поток не связанных между собой задач, т.е. решение любой задачи не зависит от результатов решения других задач. В этом случае использование нескольких процессоров однозначно повышает производительность.
2. Параллелизм независимых ветвей. Имеет очень широкое реальное распространение. Заключается в том, что при решении большой задачи могут быть выделены отдельные независимые части - ветви программы, которые при наличии нескольких процессоров могут выполняться параллельно и независимо друг от друга.
Двумя независимыми ветвями будем считать части, для которых выполняются следующие условия:
На самом деле задача обнаружения и реализации параллелизма независимых ветвей - очень сложная и объёмная. Фактически - это математическая задача сетевого планирования. С ней вы столкнётесь в курсе "ОПУП" на классическом примере "Утро на даче". Особенная сложность - неизвестность длительности исполнения каждой из множества ветвей. На практике невозможно избежать простоев в работе процессоров, мы лишь минимизируем их.
3. Параллелизм объектов или данных. Имеет место тогда, когда по одной и той же программе обрабатывается некая совокупность данных, поступающая в систему одновременно. Примеры: данные от РЛС - все сигналы обрабатываются по одной и той же программе, задачи векторной алгебры, в которых выполняются одинаковые операции над парами чисел двух аналогичных объектов.
Забегая вперёд можно сказать, что этот вид параллелизма служит базой для построения матричных систем.
Третий путь параллельной обработки - конвейерная обработка информации.
Его реализация возможна даже в системе с одним процессором, разделённым на несколько последовательно включенных операционных блоков, каждый из которых ориентирован на некоторые строго определённые части операции.
Формулу работы конвейерного процессора можно описать так: "Когда i-й операционный блок выполняет i-ю часть j-ой операции, (i-1)-й операционный блок выполняет (i-1)-ю часть (j+1)-ой операции, а (i+1)-й операционный блок выполняет (i+1)-ю часть (j-1)-ой операции"
Работу конвейера можно легко продемонстрировать на примере операции сложения двух чисел с плавающей запятой. Она выполняется за 4-ре шага:
Этап |
1 |
2 |
3 |
4 |
5 |
6 |
... |
i |
.. |
n |
n+1 |
n+2 |
n+3 |
СП |
a1b1 |
a2b2 |
a3b3 |
a4b4 |
a5b5 |
a6b6 |
... |
aibi |
.. |
anbn |
|||
ВП |
a1b1 |
a2b2 |
a3b3 |
a4b4 |
a5b5 |
... |
a(i-1)b(i-1) |
.. |
a(n-1)b(n-1) |
anbn |
|||
СМ |
a1b1 |
a2b2 |
a3b3 |
a4b4 |
... |
.. |
anbn |
||||||
НР |
c1 |
c2 |
c3 |
... |
c(i-3) |
.. |
c(n-3) |
c(n-2) |
c(n-1) |
cn |
Т.о., если такты одинаковые по длине, первый результат будет получен только в четвёртом такте, но затем в каждом такте мы будем получать результат! Наш выигрыш тем больше, чем длиннее цепочка данных и чем большее количество операционных блоков.
Только что мы рассмотрели конвейер арифметических операций. Но ведь по такому же принципу мы можем организовать и конвейер команд, которые уже давно используется практически во всех ЭВМ.
Цикл команды разбивается на ряд этапов, которые могут выполняться независимо друг от друга:
Этап |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
ФА |
К1 |
К2 |
К3 |
К4 |
К5 |
К6 |
К7 |
ВК |
К1 |
К2 |
К3 |
К4 |
К5 |
К6 |
|
РКО |
К1 |
К2 |
К3 |
К4 |
К5 |
||
ФАО |
К1 |
К2 |
К3 |
К4 |
|||
ВО |
К1 |
К2 |
К3 |
||||
АЛО |
К1 |
К2 |
Т.о. в конвейере арифметических операций мы параллельно обрабатываем m пар операндов, а в конвейере команд совмещаем во времени l операций.
К сожалению, выиграть в l раз практически невозможно из-за операций условных переходов, нарушающих работу конвейера. В ОС существуют специальные средства, позволяющие определить переходы как можно раньше и уменьшить их влияние.
В вычислительных системах используют и конвейер арифметических операций, и конвейер команд, причём по несколько штук, работающих параллельно.