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

Работа по теме: Пример предоставленной теории по Арх ЭВМ ПИ. Глава: Мультипрограммирование, многопользовательский режим работы и режим разделения времени. ВУЗ: ПГГПУ.
article placeholder

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

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

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

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

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

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

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

Очевидно,
что диалоговый режим работы может быть
реализован и без мультипрограммирования.
Наглядное тому доказательство —
многочисленные дисковые операционные
системы, начиная от СР-М и кончая PC-DOS
7.0, которые долгие годы устанавливались
на персональные компьютеры и обеспечивали
только одно-программный режим. Однако
эти однопрограммные диалоговые системы
появи- лись гораздо позже мультипрограммных.
Как это ни кажется странным, им
предшествовали многочисленные и
разнообразные операционные системы,
позволяющие одновременно работать с
компьютером большому количеству
пользователей и параллельно решать
множество задач. Основная причина тому
— стоимость компьютера. Только с
удешевлением компьютеров появилась
возможность иметь свой персональный
компьютер, и первое время считалось,
что однопрограммного режима работы
вполне достаточно. Главным для персональных
компьютеров до сих пор считается удобство
работы, причем именно в диалоговом
режиме, простота интерфейса и его
интуитивная понятность.

Совмещение
диалогового режима работы с компьютером
и режима мультипрограммирования привело
к появлению мулътитерминалъных, или
многопользовательских, систем.
Организовать параллельное выполнение
нескольких задач можно разными способами
(более подробно об этом см. в главе 2).
Если это осуществляется таким образом,
что на каждую задачу поочередно выделяется
некий квант времени, после чего процессор
передается другой задаче, готовой к
продолжению вычислений, то такой режим
принято называть режимом разделения
времени (time sharing). Системы разделения
времени активно развивались в 60-70 годы,
и сам термин означал именно мультитерминальную
и мультипрограммную систему.

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

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

Команда
обращения к операционной системе
передает ей управление, переводя
процессор в привилегированный режим
работы, если такой существует. Большинство
компьютеров имеют два (и более) режима
работы: привилегированный (режим
супервизора) и пользовательский. Кроме
того, могут быть режимы для эмуляции
какой-нибудь другой ЭВМ или для организации
виртуальной машины, защищенной от
остальных вычислений, осуществляемых
на этом же компьютере, и т. д. Мы уже
говорили об этом, затрагивая вопрос
организации прерываний.

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

  • ресурс
    свободен и в системе нет запросов от
    задач более высокого приоритета к этому
    же ресурсу;

  • текущий
    запрос и ранее выданные запросы допускают
    совместное использование ресурсов;

  • ресурс
    используется задачей низшего приоритета
    и может быть временно отобран (разделяемый
    ресурс).

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

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

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

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

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

Урок
№23 Типы вычислительных систем

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

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

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

По
назначению

вычислительные системы делят на
универсальные и специализированные.
Универсальные ВС предназначаются для
ре­шения самых различных задач.
Специализированные системы ориен­тированы
на решение узкого класса задач.
Специализация ВС может устанавливаться
различными средствами:

• во-первых,
сама структура системы (количество
параллельно ра­ботающих элементов,
связи между ними и т.д.) может быть
ориен­тирована на определенные виды
обработки информации: матрич­ные
вычисления, решение алгебраических,
дифференциальных и интегральных
уравнений и т.п. Практика разработки ВС
типа су­перЭВМ показала, что, чем выше
их производительность, тем уже класс
эффективно решаемых ими задач;

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

По
типу вычислительные системы

можно разделить на многома­шинные и
многопроцессорные ВС. Исторически
многомашинные вы­числительные системы
(ММС) появились первыми. Уже при
использо­вании ЭВМ первых поколений
возникали задачи повышения
произво­дительности, надежности и
достоверности вычислений

Многопроцессорные
системы (МПС) строятся при комплексировании
нескольких процессоров (рис. 11.2, б). В
качестве общего ресур­са они имеют
общую оперативную память (ООП). Параллельная
ра­бота процессоров и использование
ООП обеспечивается под управ­лением
единой операционной системы. По сравнению
с ММС здесь достигается наивысшая
оперативность взаимодействия
вычислителей-процессоров. Многие
исследователи [27] считают, что использование
МПС является основным магистральным
путем развития вычисли­тельной техники
новых поколений.

По
типу ЭВМ

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

По
степени территориальной разобщенности

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

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

По
методам управления

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

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

По
принципу закрепления вычислительных
функций

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

По
режиму работы ВС

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

Урок
№24 Особенности вычислительных систем

Большое
разнообразие структур ВС затрудняет
их изучение. По­этому вычислительные
системы классифицируют с учетом их
обоб­щенных характеристик. С этой
целью вводится понятие «архитекту­ра
системы».

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

Эта
классификация архитектур была предложена
М. Флинном (М. Flynn) в начале 60-х гг. В ее
основу заложено два возможных вида
параллелизма: независимость потоков
заданий (команд), существу­ющих в
системе, и независимость (несвязанность)
данных, обраба­тываемых в каждом
потоке. Классификация до настоящего
времени еще не потеряла своего значения.
Однако подчеркнем, что, как и лю­бая
классификация, она носит временный и
условный характер. Сво­им долголетием
она обязана тому, что оказалась
справедливой для ВС, в которых ЭВМ и
процессоры реализуют программные
последо­вательные методы вычислений.
С появлением систем, ориентирован­ных
на потоки данных и использование
ассоциативной обработки, данная
классификация может быть некорректной.

Согласно
этой классификации существует четыре
основных ар­хитектуры ВС, представленных
на рис. 11.3:

• одиночный
поток команд — одиночный поток данных
(ОКОД), в английском варианте — Single
Instruction Single Data (SISD) — оди­ночный поток
инструкций — одиночный поток данных;

• одиночный
поток команд — множественный поток
данных (ОКМД), или Single Instruction Multiple Data
(SIMD) — одиночный поток инструкций —
одиночный поток данных;

• множественный
поток команд — одиночный поток данных
(МКОД), или Multiple Instruction Single Data (MISD) —
множественный по­ток инструкций —
одиночный поток данных;

• множественный
поток команд — множественный поток
данных (МКМД), или Multiple Instruction Multiple Data
(MIMD) — множе­ственный поток инструкций
— множественный поток данных (MIMD).

Архитектура
ОКОД

охватывает все однопроцессорные и
одно­машинные варианты систем, т.е. с
одним вычислителем. Все ЭВМ классической
структуры попадают в этот класс. Здесь
параллелизм вычислений обеспечивается
путем совмещения выполнения операций
отдельными блоками АЛУ, а также
параллельной работы устройств ввода-вывода
информации и процессора. Закономерности
организа­ции вычислительного процесса
в этих структурах достаточно хоро­шо
изучены.

Архитектура
ОКМД

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

По
этой схеме строились системы: первая
суперЭВМ — ILLIAC-IV, отечественные
параллельные системы — ПС-2000, ПС-3000.
Идея векторной обработки широко
использовалась в таких известных
су­перЭВМ, как Cyber-205 и Gray-I, II, III. Узким
местом подобных сис­тем является
необходимость изменения коммутации
между процессо­рами, когда связь между
ними отличается от матричной. Кроме
того, задачи, допускающие широкий
матричный параллелизм, составляют
достаточно узкий класс задач. Структуры
ВС этого типа, по суще­ству, являются
структурами специализированных суперЭВМ.

Третий
тип архитектуры МКОД

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

В
ВС этого типа конвейер должны образовывать
группы процес­соров. Однако при
переходе на системный уровень очень
трудно вы­явить подобный регулярный
характер в универсальных вычислени­ях.
Кроме того, на практике нельзя обеспечить
и «большую длину» такого конвейера, при
которой достигается наивысший эффект.
Вме­сте с тем конвейерная схема нашла
применение в так называемых скалярных
процессорах суперЭВМ, в которых они
применяются как специальные процессоры
для поддержки векторной обработки.

Архитектура
МКМД

предполагает, что все процессоры систе­мы
работают по своим программам с собственным
потоком команд. В простейшем случае они
могут быть автономны и независимы. Такая
схема использования ВС часто применяется
на многих круп­ных вычислительных
центрах для увеличения пропускной
способно­сти центра. Больший интерес
представляет возможность согласован­ной
работы ЭВМ (процессоров), когда каждый
элемент делает часть общей задачи. Общая
теоретическая база такого вида работ
прак­тически отсутствует. Но можно
привести примеры большой эффективности
этой модели вычислений. Подобные системы
могут быть многомашинными и
многопроцессорными. Например,
отече­ственный проект машины
динамической архитектуры (МДА) — ЕС-2704,
ЕС-2127 — позволял одновременно использовать
сотни про­цессоров.

Урок№25
Комплексирование (совместимость) в
вычислительных системах

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

• подключаемая
друг к другу аппаратура должна иметь
единые стандартные, унифицированные
средства соединения: кабели, чис­ло
проводов в них, единое назначение
проводов, разъемы, заглуш­ки, адаптеры,
платы и т.д.;

• параметры
электрических сигналов, которыми
обмениваются тех­нические устройства,
тоже должны соответствовать друг другу:
амплитуды импульсов, полярность,
длительность и т.д.;

• алгоритмы
взаимодействия (последовательности
сигналов по от­дельным проводам) не
должны вступать в противоречие друг с
другом.

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

Если
обменивающиеся устройства идентичны
друг другу, то про­блем обычно не
возникает. Если взаимодействующие
устройства от­носятся к одному и тому
же семейству ЭВМ, но стыкуются разные
модели (например, ПК на базе i286 и Pentium),
то в таких моделях совместимость
обеспечивается «снизу вверх», т.е. ранее
созданные программы могут выполняться
на более поздних моделях, но не на­оборот.
Если стыкуемая аппаратура имеет
совершенно разную сис­тему команд,
то следует обмениваться исходными
модулями программ с последующей их
трансляцией.

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

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

Уровни
и средства комплексирования

1)
прямого управления (процессор —
процессор);

2)
общей оперативной памяти;

3)
комплексируемых каналов ввода-вывода;

4)
устройств управления внешними устройствами
(УВУ);

5)
общих внешних устройств.

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

Уровень
прямого управления

служит для передачи коротких одно­байтовых
приказов-сообщений. Последовательность
взаимодействия процессоров сводится
к следующему. Процессор-инициатор обмена
по интерфейсу прямого управления (ИПУ)
передает в блок прямого управления
байт-сообщение и подает команду «Прямая
запись». У другого процессора эта команда
вызывает прерывание, относящееся к
классу внешних. В ответ он вырабатывает
команду «Прямое чте­ние» и записывает
передаваемый байт в свою память. Затем
приня­тая информация расшифровывается
и по ней принимается решение. После
завершения передачи прерывания снимаются,
и оба процессо­ра продолжают вычисления
по собственным программам. Видно, что
уровень прямого управления не может
использоваться для передачи больших
массивов данных, однако оперативное
взаимодействие от­дельными сигналами
широко используется в управлении
вычисления­ми. У ПЭВМ типа IBM PC этому
уровню соответствует комплексирование
процессоров, подключаемых к системной
шине.

Уровень
общей оперативной памяти

(ООП) является наиболее предпочтительным
для оперативного взаимодействия
процессоров. Однако в этом случае ООП
эффективно работает только при неболь­шом
числе обслуживаемых абонентов. Этот
уровень широко исполь­зуется в
многопроцессорных серверах вычислительных
сетей.

Уровень
комплексируемых каналов ввода-вывода
предназначается для передачи больших
объектов информации между блоками
оперативной памяти, сопрягаемых ЭВМ.
Обмен данными между ЭВМ осуществляется
с помощью адаптера «канал-канал» (АКК)
и команд «Чтение» и «Запись». Адаптер
— это устройство, согласующее скорости
работы сопрягаемых каналов. Обычно
сопрягаются селекторные каналы (СК)
машин как наи­более быстродействующие,
но можно сопрягать мультиплексные
каналы (МК), а также селекторный и
мультиплексный. Скорость обмена данны­ми
определяется скоростью самого медленного
канала. Скорость переда­чи данных по
этому уровню составляет несколько
Мбайтов/с. В ПЭВМ данному уровню
взаимодействия соответствует подключение
периферий­ной аппаратуры через
контроллеры и адаптеры.

Уровень
устройств управления внешними устройствами

предполагает использование встроенного
в УВУ двухканального переключателя и
команд «Зарезервировать» и «Освободить».
Двухканальный переключатель позволяет
подключать УВУ одной машины к селек­торным
каналам различных ЭВМ. По команде
«Зарезервировать» канал-инициатор
обмена имеет доступ через УВУ к любым
накопи­телям на дисках НМД или на
магнитных лентах НМЛ. На рис. 11.4
схематически показано, что они управляются
одним УВУ. На самом деле УВУ магнитных
дисков и лент — совершенно различные
устройства. Обмен канала с накопителями
продолжается до полного завер­шения
работ и получения команды «Освободить».
Лишь после этого УВУ может подключиться
к конкурирующему каналу. Только такая
дисциплина обслуживания требований
позволяет избежать конфлик­тных
ситуаций. Этот уровень целесообразно
использовать в вычис­лительных сетях
при построении больших банков данных.

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

Пять
уровней комплексирования получили
название логических потому, что они
объединяют на каждом уровне разнотипную
аппаратуру, имеющую сходные методы
управления. Каждое из устройств может
иметь логическое имя, используемое в
прикладных програм­мах. Этим достигается
независимость программ пользователей
от конкретной физической конфигурации
системы. Связь логической структуры
программы и конкретной физической
структуры ВС обес­печивается
операционной системой по указаниям-директивам
пользо­вателя, при генерации ОС и по
указаниям диспетчера-оператора
вы­числительного центра. Различные
уровни комплексирования позво­ляют
создавать самые различные структуры
ВС.

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

Уровни
1, 3, 4, 5 обеспечивают построение
разнообразных машинных комплексов.
Особенно часто используется третий в
комбинации с четвертым. Целесообразно
их дополнять и первым уровнем.

Пятый
уровень комплексирования используется
в редких специальных случаях, когда в
качестве внешнего объекта используется
какое-то дорогое уникальное устройство.
В противном случае этот уровень
малоэффективен. Любое внешнее устройство
— это недостаточно надежное устройство
точной механики, а значит, выгоднее
ис­пользовать четвертый уровень
комплексирования, когда можно сразу
управлять не одним, а несколькими
внешними устройствами, вклю­чая и
резервные.

Урок№26
Классификация многопроцессорных ВС

Многомашинные
вычислительны системы (ММС)

обеспечивают:
повышения производительности, надежности
и достоверности вычислений.

Положения
электронного ключа (ЭК):

  • Положения
    1 и 3 электронного ключа (ЭК) обеспечивало
    режим повышенной надежности. При этом
    одна из машин выполняла вычисления, а
    другая находилась в «горячем» или
    «холодном» резерве, т.е. в готовности
    заменить основную ЭВМ.

  • Положение
    2 электронного ключа соответствовало
    случаю, когда обе машины обеспечивали
    параллельный режим вычислений.

Здесь
возможны две ситуации:

    • режим
      повышенной достоверности (обе машины
      решают одну и ту же задачу и периодически
      сверяют результаты решения)

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

Каждая
из ЭВМ сохраняет возможность автономной
работы и управляется собственной ОС.
Любая другая подключаемая ЭВМ комплекса
рассматривается как специальное
периферийное оборудование.

[править]

Многопроцессорные
вычислительные системы (МПС)

строятся
при комплексировании нескольких
процессоров. Общая оперативная память
(ООП) в МПС используется в качестве
общего ресурса. Параллельная работа
процессоров и использование ООП
обеспечивается под управлением единой
общей операционной системы. По сравнению
с ММС здесь достигается наивысшая
оперативность взаимодействия вычислителей
— процессоров.

Недостатки
МПС:

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

  2. Проблема
    коммутации абонентов и доступа их к
    ООП, т,к, помимо процессоров к ООП
    подключаются все каналы (процессоры
    ввода-вывода), средства измерения
    времени и т.д.Это решается
    аппаратно-программными средствами.

  3. МПС
    эффективны при небольшом числе
    комплексируемых процессоров (2,4 до 10).
    В отечественных системах Эльбрус
    обеспечивалась возможность работы до
    десяти процессоров, до 32 модулей памяти,
    до 4 процессоров ввода-вывода и до 16
    процессоров связи. Все связи в системе
    обеспечивались коммутаторами.

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

Многомашинные
и многопроцессорные системы могут быть
однородными и неоднородными.

  1. Однородные
    системы содержат однотипные ЭВМ или
    процессоры.

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

Многопроцессорные
системы и ММС могут иметь одноуровневую
или иерархическую (многоуровневую)
структуру.

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

В
качестве машин-сателлитов используют
малые или микро-ЭВМ.

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

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

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

• «ведущий
— ведомый»;

• симметричная
или однородная обработка во всех
процессорах;

• раздельная
независимая работа процессоров по
обработке зада­ний.

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

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

Системы
типа «ведущий — ведомый» отличаются
довольно про­стым аппаратным и
программным обеспечением. Они должны
полу­чить распространение в
МРР-структурах, но следует иметь в виду,
что длительное время планирования может
быть причиной простоев ведомых
вычислителей.

Урок
№27 Кластеры

Вычислительные
системы как мощные средства обработки
зада­ний пользователей широко
используются не только автономно, но и
в сетях ЭВМ в качестве серверов.

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

В
сетях первых поколений серверы строились
на основе больших и очень дорогих ЭВМ
(mainframe), выпускаемых целым рядом компа­ний:
Digital Equipment, Tandem, влившихся в корпорацию
Compaq, IBM, Hewlett-Packard. Все они работали под
управлением ОС Unix и способны были
объединяться для совместной работы.

Как
и во всякой развивающейся технологии,
сложные универсаль­ные серверы
различных фирм-изготовителей должны
были уступить место стандартным массовым
решениям. Успехи микроэлектроники,
повсеместное применение ПЭВМ, широкое
распространение Internet/ Intranet-технологий
позволили перейти к более простым и
дешевым системам, например, на основе
платформы Wintel. Опыт создания сер­веров
на основе SMP- и МРР-структур показал, что
они не обеспечи­вают хорошей адаптации
к конкретным условиям функционирова­ния,
остаются дорогими и сложными в
эксплуатации.

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

Целями
построения кластеров могут служить:


улучшение
масштабируемости (способность к
наращиванию мощ­ности);


повышение
надежности и готовности системы в целом;


увеличение
суммарной производительности;


эффективное
перераспределение нагрузок между
компьютерами кластера;


эффективное
управление и контроль работы системы
и т.п.

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

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

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

Коэффициент
готовности систем рассчитывается по
формуле

Кг=Тр/(Тр+То),

где:
Тp — полезное время работы системы;

То
— время отказа и восстановления системы,
в течение которого она не могла выполнять
свои функции.

Большинство
современных серверов имеет 99%-ную
готовность. Это означает, что около
четырех дней в году они не работают.
Под­черкнем, что готовность 99,9%,
достигаемая обычно спаркой серверов —
основного и резервного, означает годовой
простой около 500 мин., 99,999% — 5 мин., а
99,9999% — 30 с.

Появление
критически важных приложений в областях
бизнеса, финансов, телекоммуникаций,
здравоохранения и др. требует обеспечения
коэффициента готовности не менее чем
«заветные пять девя­ток» и даже выше.

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

Совокупные
вычислительные мощности кластеров
могут быть сравнимы с мощностями суперЭВМ
и даже превышать их при неизмеримо
меньшей стоимости. Такие технологии
применительно к отдельным классам задач
хорошо отработаны. Например, существует
задача анализа сигналов, принимаемых
радиотелескопами, с целью поиска
внеземных цивилизаций; имеется проект
distributed.net, реализующий алгоритм
дешифрирования, и др. Круг подобных
за­дач не очень широк, но число
одновременно привлекаемых компьютеров
для этих целей может быть громадным —
десятки, сотни и даже тысячи.

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

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

Эффективное
управление и контроль работы системы
подразу­мевает возможность работы
отдельно с каждым узлом, вручную или
программно отключать его для модернизации
либо ремонта с после­дующим возвращением
его в работающий кластер. Эти операции
скрыты от пользователей, они просто не
замечают их. Кластерное ПО, интегрированное
в операционные системы серверов,
позволяет рабо­тать с узлами как с
единым пулом ресурсов (Single System Image, SSI),
внося необходимые общие изменения с
помощью одной операции для всех узлов.

Какие
же средства имеются для построения
кластеров?

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

Кластеры
объединяют несколько серверов под
единым управле­нием. Все новые серверы,
как Правило, являются многопроцессорны­ми
и относятся к SMP-структурам, что
обеспечивает многоступенча­тую
возможность переключения нагрузки
отказавшего элемента как внутри кластера,
так и внутри сервера. Существуют серверы
с раз­личным количеством процессоров
(от 2 до 16). Правда, фирма Sun работает над
созданием 64-процессорной SMP-модели
сервера. IBM предполагает с появлением
микропроцессора 1А-64 Merced (новое название
его — Itanium) выпустить SMP-систему,
рассчитанную на 16 процессоров. Напротив,
фирма Dell считает, что применение более
восьми процессоров в SMP-структуре
нецелесообразно из-за трудно­стей
преодоления конфликтов при обращении
их к общей оператив­ной памяти.

Большой
интерес к построению кластеров стала
проявлять фирма Microsoft. В связи с широкой
популярностью операционной системы
Windows NT, предназначенной для управления
сетями крупных пред­приятий, появились
различные варианты кластерного
обеспечения. Сама фирма Microsoft предлагает
бесплатную версию своего клас­терного
ПО, встроенного в Windows NT и поддерживающего
Microsoft Cluster Server (MSCS). Этот кластерный
продукт, известный под на­званием
Wolfpack («волчья стая»), еще достаточно
слаб, но уверенно прогрессирует. В
настоящее время он обеспечивает
разделение нагруз­ки между двумя
узлами-серверами и то только путем
замены одного сервера другим, а не путем
ее перераспределения.

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

Унификация
инженерно-технических решений предполагает
соот­ветственно и стандартизацию
аппаратных и программных процедур
обмена данными между серверами. Для
передачи управляющей ин­формации в
кластере используются специальные
магистрали, имею­щие более высокие
скорости обмена данными. В качестве
такого стан­дарта предлагается
интеллектуальный ввод-вывод (Intellident
Input/ Output — I2O). Спецификация I2O определяет
унифицированный ин­терфейс между
операционной системой и устройствами
ввода-выво­да, освобождая процессоры
и их системные шины от обслуживания
периферии.

Как
и у любой новой технологии, у кластеризации
имеются свои недостатки:

• задержки
разработки и принятия общих стандартов;

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

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

• сложности
с управлением конфигурацией, настройкой,
разверты­ванием, оповещениями серверов
о сбоях и т.п.

Урок
№28 Процессоры с массовым параллелизмом

Успехи
микроинтегральной технологии и появление
БИС и СБИС позволяют расширить границы
и этого направления. Возможно пост­роение
систем с десятками, сотнями и даже
тысячами процессорных элементов, с
размещением их в непосредственной
близости друг от друга. Если каждый
процессор системы имеет собственную
память, то он также будет сохранять
известную автономию в вычислениях.
Считается, что именно такие системы
займут доминирующее поло­жение в мире
компьютеров в ближайшие десять —
пятнадцать лет. Подобные ВС получили
название систем с массовым параллелизмом
(Mass-Parallel Processing, MPP).

Все
процессорные элементы в таких системах
должны быть связа­ны единой коммутационной
средой. Нетрудно видеть, что здесь
воз­никают проблемы, аналогичные
ОКМД-системам, но на новой тех­нологической
основе.

Передача
данных в МРР-системах предполагает
обмен не отдель­ными данными под
централизованным управлением, а
подготовлен­ными процессами (программами
вместе с данными). Этот принцип построения
вычислений уже не соответствует принципам
программного управления классической
ЭВМ. Передача данных процесса по его
готовности больше соответствует
принципам построения «пото­ковых
машин» (машин, управляемых потоками
данных). Подобный подход позволяет
строить системы с громадной
производительностью и реализовывать
проекты с любыми видами параллелизма,
например перейти к «систолическим
вычислениям» с произвольным параллелиз­мом.
Однако для этого необходимо решить
целый ряд проблем, свя­занных с
описанием и программированием коммутаций
процессов и управления ими. Математическая
база этой науки в настоящее время
практически отсутствует.


linked С этим файлом связано 24 файл(ов). Среди них: Трудовое право.docx, Основы самообразования.docx, Теория организации ПРАКТ.ЗАДАНИЕ.docx, Статистика.docx, Конфликтология.docx, Иформационные технологии в менеджменте.docx, Социальная психология.docx, философия.docx, моя практика.doc, предпринимат ельство.docx, Деловая этика.docx, История России.docx, МСЕД.docx, ИНФОРМАТИКА реферат.docx, инж графика 1.docx, Doc1.docx, ИН.ЯЗ..docx, znakka4estva.ru -Журналистика (116).docx, ИНФОРМАТИКА презентация.pptx, инж графика 2.docx, ИН ЯЗ.docx, Введение в физику 2КР.doc, Введение в физику КР1.docx, Правоведение (лаб. работа).docx и ещё 14 файл(а).
linked Показать все связанные файлы


Подборка по базе: График работы январь 2023г..pdf, Анализ воспитательной работы за 2019-2020 уч.год 10 класс.doc, Практической работы Вставка гиперссылок.doc, Лаб. работы химия.doc, взаимосвязь видов детской деятельности и форм работы с детьми.do, Титульный лист для практической работы (2).docx, Практические работы. без титула.docx, Титульный лист курсовой работы (5) (2)(2).docx, Циклограмма работы классного руководителя на неделю.docx, Вопросы контрольной работы 2.docx


§2.3. Мультипрограммирование, многопользовательский режим работы

и режим разделения времени

Суть

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

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

Рис.1. Пример выполнения двух программ

(задач А и В) в мультипрограммном режиме

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

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

Мультипрограммирование, многопользовательский режим работы

и режим разделения времени

.

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

Историческая справка:

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

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

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

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

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

Мультипрограммирование, многопользовательский режим работы

и режим разделения времени

.

Диалоговый режим работы может быть реализован и без мультипрограммирования.

Наглядное тому доказательство — многочисленные дисковые операционные системы, начиная от СР-М и кончая PC-DOS 7.0, которые долгие годы устанавливались на персональные компьютеры и обеспечивали только однопрограммный режим. Однако эти однопрограммные диалоговые системы появились гораздо позже мультипрограммных. Как это ни кажется странным, им предшествовали многочисленные и разнообразные операционные системы, позволяющие одновременно работать с компьютером большому количеству пользователей и параллельно решать множество задач. Основная причина тому — стоимость компьютера.

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

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

Организовать параллельное выполнение нескольких задач можно разными способами. Если на каждую задачу поочередно выделяется некий квант времени, после чего процессор передается другой задаче, готовой к продолжению вычислений, то такой режим принято называть режимом разделения времени (time sharing). Системы разделения времени активно развивались в 60-70 годы, и сам термин означал именно мультитерминальную и мультипрограммную систему.

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

Мультипрограммирование, многопользовательский режим работы

и режим разделения времени

.

Рассмотрим общую схему выделения ресурсов:

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

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

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

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

Как нам уже известно,

большинство компьютеров имеют два (и более) режима работы: привилегированный (режим супервизора) и пользовательский. Кроме того, могут быть режимы для эмуляции какой-нибудь другой ЭВМ или для организации виртуальной машины, защищенной от остальных вычислений, осуществляемых на этом же компьютере, и т. д. Ресурс может быть выделен вычислительному процессу (задаче), обратившемуся к операционной системе с соответствующим запросом, если:

• ресурс свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;

• текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;

• ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).

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

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

Мультипрограммирование, многопользовательский режим работы

и режим разделения времени

.

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

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

Термин «дисциплина обслуживания» следует понимать как некое правило обслуживания, в том числе и учет каких-либо приоритетов при обслуживании. Например, дисциплина «последний пришедший обслуживается первым» определяет обслуживание в порядке, обратном очередности поступления соответствующих запросов.

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

Например, с файлом можно работать монопольно, а можно и совместно с другими задачами.

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

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

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

2. обслуживать максимально возможное количество процессов и наиболее полно использовать ресурсы.

§2.4. Диаграмма состояний процесса

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

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

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

Однако это справедливо не для всех операционных систем.

Например, в так называемых «микроядерных» операционных системах (см. главу 9) большинство управляющих программных модулей самой операционной системы и даже драйверы имеют статус высокоприоритетных процессов, для выполнения которых необходимо выделить соответствующие ресурсы.

В качестве примера можно привести хорошо известную операционную систему реального времени QNX фирмы Quantum Software Systems. Аналогично и в UNIX-системах, которые хоть и не относятся к микроядерным, выполнение системных программных модулей тоже имеет статус системных процессов, получающих ресурсы для своего исполнения.

Диаграмма состояний процесса

.

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

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

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

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

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

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

Диаграмма состояний процесса

.

Активный процесс может быть в одном из следующих состояний:

выполнения — все затребованные процессом ресурсы выделены (в этом состоянии в каждый момент времени может находиться только один процесс, если речь идет об однопроцессорной вычислительной системе);

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

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

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

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

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

Поэтому пассивного состояния в большинстве систем не существует.

В

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

Диаграмма состояний процесса

.

Рис. 2. Граф состояний процесса

Рассмотрим эти переходы из одного состояния в другое более подробно.

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

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

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

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

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

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

Диаграмма состояний процесса

.

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

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

При наступлении запланированного времени запуска программы.

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

Из состояния выполнения процесс может выйти по одной из следующих причин.

Процесс завершается, при этом он посредством обращения к супервизору передает управление операционной системе и сообщает о своем завершении.

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

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

Диаграмма состояний процесса

.

Из состояния выполнения процесс может выйти по одной из следующих причин (продолжение).

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

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

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

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

Одним из основных видов событий являются прерывания.

§2.5. Реализация понятия последовательного процесса в ОС

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

В общем случае

дескриптор процесса содержит следующую информацию:

идентификатор процесса (Process Identifier, PID);

тип

(или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;

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

переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, выполняется, ожидает устройства ввода-вывода и т. д.);

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

информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных операциях ввода-вывода и др.);

место (или его адрес) для организации общения с другими процессами;

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

• в случае отсутствия системы управления файлами адрес задачи на диске в ее исходном состоянии и адрес на диске, куда она выгружается из оперативной памяти, если ее вытесняет другая задача (последнее справедливо для диск-резидентных задач, которые постоянно находятся во внешней памяти на системном магнитном диске и загружаются в оперативную память только на время выполнения).

Реализация понятия последовательного процесса в операционных системах

.

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

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

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

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

В разных ОС количество описателей регламентируется по-разному:

  • в одних системах — жестко и заранее (на этапе генерации варианта операционной системы или в конфигурационном файле, который используется при загрузке ОС),
  • в других — по мере необходимости система может выделять участки памяти под новые описатели.
  • Рассмотрим несколько примеров:

  • Cистема OS/2 (считалась одной из лучших ОС прошлых лет для ПК-ров).
  • В данной ОС максимально возможное количество описателей задач указывается в конфигурационном файле CONFIG.SYS. Cтрока THREADS=1024 в файле CONFIG.SYS означает, что всего в системе может параллельно существовать и выполняться до 1024 задач, включая вычислительные процессы и их потоки.

.

Реализация понятия последовательного процесса в операционных системах

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

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

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

2. Windows NT/2000/XP/../7. В ныне широко распространенных системах Windows NT/2000/XP/../7 количество описателей нигде в явном виде не задается. Это переменная величина, и она определяется самой операционной системой.

Однако посмотреть на текущее количество таких описателей можно. Если, работая в Windows NT/2000/XP/../7, нажать одновременно комбинацию клавиш Ctrl+Shift+Esc, появится окно Диспетчера задач.

На вкладке Быстродействие этой программы содержится информацию о соответствующем числе задействованных дескрипторов (рис.3). Также на этой вкладке указывается количество дескрипторов для управления потоками (задачами) и число полноценных вычислительных процессов.

Рис.3. Вкладка Быстродействие

окна Диспетчера задач в Windows 7.

.

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

Каждая постоянная задача обладает некоторой собственной областью оперативной памяти (ОЗУ-резидентная задача, или просто резидентная задача) независимо от того, выполняется задача в данный момент или нет. Эта область, в частности, может использоваться для хранения данных, полученных задачей ранее. Данные могут храниться в ней и тогда, когда задача находится в состоянии ожидания или даже в состоянии бездействия.

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

Так, например, в микропроцессорах Intel 80×86 имеется специальный регистр TR (Task Register), указывающий местонахождение специальной информационной структуры — сегмента состояния задачи (Task State Segment, TSS), в котором при переключении с задачи на задачу автоматически сохраняется содержимое регистров процессора.

Реализация понятия последовательного процесса в операционных системах

4.1. Мультипрограммирование

Мультипрограммирование


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

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

http://lcg.tpu.ru/OPSYS_0961/img/3_1.gif

Рисунок 5 – Пример выполнения двух программ в мультипрограммном режиме

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

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

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

Рекомендуемые материалы

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

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.1. Мультипрограммирование в системах пакетной обработки

Мультипрограммирование в системах пакетной обработки


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

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

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

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.2. Мультипрограммирование в системах разделения времени

Мультипрограммирование в системах разделения времени


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

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

Очевидно, что системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая «выгодна» системе. Кроме того, производительность системы снижается из-за возросших накладных расходов вычислительной мощности на более частое переключение процессора с задачи на задачу. Это вполне соответствует тому, что критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя. Вместе с тем мультипрограммное выполнение интерактивных приложений повышает пропускную способность компьютера (пусть и не в такой степени, как пакетные системы). Аппаратура загружается более эффективно, поскольку в то время, пока одно приложение ждет сообщения пользователя, другие приложения могут обрабатываться процессором.

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.3. Мультипрограммирование в системах реального времени

Мультипрограммирование в системах реального времени


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

В ОСРВ «мультипрограммная смесь» представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется по прерываниям (исходя из текущего состояния объекта) или в соответствии с расписанием плановых работ.

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.4. Мультипрограммирование при мультипроцессорной обработке

Мультипрограммирование при мультипроцессорной обработке


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

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

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

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

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

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

В настоящее время функции поддержки симметричной мультипроцессорной обработки данных имеются во всех популярных ОС, таких как MS Windows NT Workstation 4.0, Microsoft Windows Server 2003, Windows XP Professional, QNX Neutrino.

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

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

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

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

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

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

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

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.5. Роль прерываний при мультипрограммировании

Роль прерываний при мультипрограммировании


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

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

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

В зависимости от источника все прерывания делят на два класса:

· аппаратные (внешние и внутренние);

· программные.

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

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

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

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

Механизм обработки прерываний независимо от архитектуры вычислительной системы подразумевает выполнение некоторой последовательности шагов.

Шаг 1. Установление факта прерывания (прием сигнала запроса на прерывание) и идентификация прерывания (в ОС идентификация прерывания иногда осуществляется повторно, на шаге 4).

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

Шаг 3. Управление аппаратно передается на подпрограмму обработки прерывания. В простейшем случае в счетчик команд заносится начальный адрес подпрограммы обработки прерываний, а в соответствующие регистры – информация из слова состояния.

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

Шаг 5. Собственно выполнение программы, связанной с обработкой прерывания. Эта работа может быть выполнена той же подпрограммой, на которую было передано управление на шаге 3, но в ОС достаточно часто она реализуется путем последующего вызова соответствующей подпрограммы.

Шаг 6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).

Шаг 7. Возврат на прерванную программу.

Следует отметить, что шаги 1-3 реализуются аппаратно, а шаги 4-7 – программно.

Главные функции механизма прерываний – это:

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

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

· корректное возвращение к прерванной программе.

На рис. 6 показано, что при возникновении запроса на прерывание естественный ход вычислений нарушается и управление передается на программу обработки возникшего прерывания (обработчик прерываний, процедура обслуживания прерываний, англ. Interrupt Service Routine). При этом средствами аппаратуры сохраняется (как правило, с помощью механизмов стековой памяти) адрес той команды, с которой следует продолжить выполнение прерванной программы.

http://lcg.tpu.ru/OPSYS_0961/img/3_1_5-1.gif

Рисунок 6 – Обобщенная схема обработки прерывания

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

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

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

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

Организация обработки прерывания при участии супервизора представлена на рис. 7

http://lcg.tpu.ru/OPSYS_0961/img/3_1_5-2.gif

Рисунок 7 – Обработка прерывания при участии супервизора

Как видно из представленной схемы, здесь отсутствует возврат в прерванную ранее программу непосредственно из самой подпрограммы обработки прерывания. Для прямого возврата достаточно адрес возврата сохранить в стеке, что и делает аппаратура процессора. При этом стек легко обеспечивает возможность возврата в случае вложенных прерываний, поскольку он всегда реализует дисциплину LCFS. Супервизор прерываний сохраняет в дескрипторе текущей задачи рабочие регистры процессора, определяющие контекст прерываемого вычислительного процесса. Далее он определяет ту подпрограмму, которая должна выполнить действия, связанные с обслуживанием настоящего (текущего) запроса на прерывание. Наконец, перед тем, как передать управление на эту подпрограмму, супервизор прерываний устанавливает необходимый режим обработки прерывания (осуществляется маскирование, определяющее запрет некоторых сигналов прерывания). После выполнения подпрограммы обработки прерывания управление вновь передается ядру ОС. На этот раз уже на тот модуль, который занимается диспетчеризацией задач (см. п. 3). И уже диспетчер задач, в свою очередь, в соответствии с принятой дисциплиной распределения процессорного времени (между выполняющимися вычислительными процессами) восстановит контекст той задачи, которой будет решено выделить процессор.

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

Вместе с этой лекцией читают «7.3. Информационные технологии экспертной деятельности».

На рис. 8 изображен обычный порядок (приоритеты) обработки прерываний в зависимости от типа прерываний.

http://lcg.tpu.ru/OPSYS_0961/img/3_1_5-3.gif

Рисунок 8 – Распределение прерываний по уровням приоритета

Например, если приоритет запрашиваемого прерывания ниже приоритета средства контроля процессора, то в этом случае прерывания не произойдет.

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

Научная и учебная литература

1. Абугалипова, Л.Н. Информационные технологии: приоритетные направления развития / Л.Н. Абугалипова, А.Г. Гусейнов, А.С. Дулесов. – Новосибирск : ЦРНС : Сибпринт, 2015. – 194 с.
2. Гайдамакин, Н.А. Разграничение доступа к информации в компьютерных системах / Н.А. Гайдамакин. – Екатеринбург: Изд-во Уральского Университета, 2013. – 328 с.
3. Гостев, И. Операционные системы / И. Гостев. – М.: Юрайт, 2017. – 164 с.
4. Деванин, П.Н. Модели безопасности компьютерных систем. Управление доступом и информационными потоками: учебное пособие / П.Н. Деванин. – М. : Горячая Линия–Телеком, 2013. – 338 с.
5. Дроздов, С. Н. Операционные системы / С.Н. Дроздов. — Ростов: Феникс, 2016. — 361 с.
6. Иртегов, Д. Введение в операционные системы / Д. Иртегов . – СПб.: БХВ-Петербург, 2015. – 1040 с.
7. Карр Н. Дж. Великий переход. Революция облачных технологий / Н. Дж. Карр. – М. : Манн, Иванов и Фербер, 2013. – 272 с.
8. Кетов, Д. Внутреннее устройство Linux / Д. Кетов. – СПб.: БХВ-Петербург, 2017. – 320 с.
9. Партыка, Т.Л., Попов, И.И. Информационная безопасность / Т.Л. Партыка, И.И. Попов. – М. : Форум, 2013. – 432 с.
10. Таненбаум, Э., Бос,Х. Современные операционные системы / Э. Таненбаум, Х. Бос. – СПб.: Питер, 2017. – 1120 с.
Партыка, Т.Л, Попов, И.И. Операционные системы, среды и оболочки / Т.Л. Партыка, И.И. Попов. – М.: Инфра-М, 2016. – 560 с.

Ресурсы сети Интернет
11. COBIT 5. Задачи информационных и смежных технологий [Электронный ресурс] / «ISACA». – Режим доступа: http://www.isaca.org/ COBIT/Pages/COBIT-5-Russian.pdf (дата обращения: 17.12.2017).
12. DIS 9075, Information technology – Reference Model for Data Management [Электронный ресурс] / «DIS». – Режим доступа: www.nist.ru/hr/ doc/iso/9075-3.htm (дата обращения: 17.12.2017).
13. IBM Smarter Analytics Signature Solution – против мошенничества, убытков и нарушений [Электронный ресурс] / «IBM». – Режим доступа: http://public.dhe.ibm.com/common/ssi/ecm/en/gbs03128usen/GBS03128USEN.PDF (дата обращения: 17.12.2017).
14. ISO/IEC 11072, Information Technology – Computer Graphics – Computer Graphics Reference Model [Электронный ресурс] / « Standards.ru ». – Режим доступа: www.standards.ru/document/3635016.aspx (дата обращения: 17.12.2017).
15. ISO/IEC 7498, Information processing systems – Open Systems Interconnection Basic Reference Model [Электронный ресурс] / « Standards.ru ». – Режим доступа: www.standards.ru/document/4037662.aspx (дата обращения: 17.12.2017).
16. ISO/IEC DIS 14662, Information technology – Open reference model [Электронный ресурс] / «DIS». – Режим доступа: www.open-std.org/open/n3232/xbdtext.pdf (дата обращения: 17.12.2017).
17. SOAP [Электронный ресурс] / «W3C». – Режим доступа: www.w3.org/2002/07/soap-translation/russian/part0.html (дата обращения: 17.12.2017).

Слайд 1Операционные системы
Лекция 2 — 1
Типы ОС. Мультипрограммирование; режим разделения

времени; многопользовательский режим работы; режим работы и ОС реального времени.

Способы реализации мультипрограммирования

Операционные системыЛекция 2 - 1Типы ОС. Мультипрограммирование; режим разделения времени; многопользовательский режим работы; режим работы и ОС


Слайд 2Типы ОС
Системы реального времени – для управления различными технологическими

процессами – система должна обрабатывать данные быстрее, чем они могут

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

Однозадачные (MS-DOS)

Многозадачные (Unix, OS/2, Windows)

Пакетные системы — запуск одной программы из пакета за другой

Системы разделения времени (time-sharing) – процессор переключается между задачами не только на время операций ввода – вывода но и по прошествии определенного времени, что позволяет пользователю интерактивно взаимодействовать с программой

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


Слайд 3Типы ОС
Поддержка многопользовательского режима:
Многопользовательские (Windows NT, Unix) –механизмы защиты

персональных данных каждого пользователя
Однопользовательские (MS-DOS, Windows 3.x)
Многопроцессорная обработка:
Многопроцессорные ОС (Linux,

Solaris, Windows NT)

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

Ассиметричные – процессоры не равноправны (master и slave) – загрузку и характер работы определяет главный процессор

Типы ОСПоддержка многопользовательского режима:Многопользовательские (Windows NT, Unix) –механизмы защиты персональных данных каждого пользователяОднопользовательские (MS-DOS, Windows 3.x)Многопроцессорная обработка:Многопроцессорные


Слайд 4Мультипрограммирование
— пока одна программа выполняет операцию ввода-вывода, процессор

не простаивает как при однопрограммном режиме, а выполняет другую программу
При

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

Мультипрограммирование - пока одна программа выполняет операцию ввода-вывода, процессор не простаивает как при однопрограммном режиме, а выполняет


Слайд 5ВС для реализации режима мультипрограммирования:
Программы не должны иметь самостоятельного

доступа к распределению ресурсов, что приводит к появлению привилегированных и

непривилегированных команд

Наличие прерываний:
-Внешних (оповещение ОС о том что произошло асинхронное событие, например завершилась операция ввода-вывода)
-Внутренних (ситуации) возникают когда выполнение программы требует вмешательства ОС, например деление на 0 или попытка нарушения защиты

Параллелизм в архитектуре:
прямой доступ к памяти и организация каналов ввода-вывода

ВС для реализации режима мультипрограммирования:Программы не должны иметь самостоятельного доступа к распределению ресурсов, что приводит к появлению


Слайд 6ОС для реализации режима мультипрограммирования:
Организация интерфейса между прикладным ПО

и ОС реализуется при помощи системных вызовов
Организация очереди из заданий

в памяти требует планирования использования процессора

Переключение с одного задания на другое требует сохранения содержимого регистров и структур данных (контекста)

Поскольку память – ограниченный ресурс, используются стратегии управления памятью

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

Для разрешения конфликтных ситуаций – средства синхронизации

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


Слайд 7Операционные системы
Лекция 2 — 2
Понятие процесса и ядра ОС;

ресурсы ВС, управление процессами; структура контекста процесса; идентификатор и дескриптор

процесса; иерархия процессов.

Операционные системыЛекция 2 - 2Понятие процесса и ядра ОС; ресурсы ВС, управление процессами; структура контекста процесса; идентификатор


Слайд 8Понятие процесса и ресурсы ВС
Процесс характеризует:
Набор исполняемых команд
Выделенная

для исполнения память (адресное пространство)
Адрес и состояние стеков
Используемые файлы
Устройства

ввода-вывода
Значения регистров
Программный счетчик
Значение переменных

Программа и задание – статические объекты

Процесс – динамический объект

Процесс – программа во время исполнения или объект, которому выделяются ресурсы ВС (процессор, память и ….)

Понятие процесса и ресурсы ВСПроцесс характеризует: Набор исполняемых командВыделенная для исполнения память (адресное пространство)Адрес и состояние стековИспользуемые


Слайд 9Программа и процесс

программа
процесс
не существует взаимно-однозначного соответствия
Одна программа — несколько

процессов
Один процесс – исполняет последовательно несколько программ
И даже в случае

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

Программа и процесспрограммапроцессне существует взаимно-однозначного соответствияОдна программа - несколько процессовОдин процесс – исполняет последовательно несколько программИ даже


Слайд 10Состояния процесса

Порождение – создаются условия для первого запуска
Готовность

– у процесса есть все необходимые ресурсы, кроме ЦП
Активное –

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

Основная функция ОС — управление процессами.

ОС должна обеспечить контроль над процессами в любом из возможных состояний.
Текущее состояние процесса описывается в системе с помощью PCB (Process Control Block)

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


Слайд 11Структура PCB
PCB –хранит информацию:
Уникальный идентификатор процесса, пользователь
Состояние в котором

находится процесс
Текущий приоритет
Программный счетчик процесса — IP (адрес команды которая

должна быть выполнена для него следующей)
Содержимое регистров процесса
Адресное пространство (и стеки)
Связанные устройства ввода-вывода (файлы)
Область хранения регистров (для рестарта)

Структура PCBPCB –хранит информацию:Уникальный идентификатор процесса, пользовательСостояние в котором находится процессТекущий приоритетПрограммный счетчик процесса - IP (адрес


Слайд 12

Активное
Завершение работы
Выбран для исполнения
Ожидание события

Готовность
Прерывание по таймеру (Δ t)

Событие

произошло

Порождение

Завершение
Допуск к планированию
Активное
Ожидание

Time — out
Граф состояний процесса

АктивноеЗавершение работыВыбран для исполненияОжидание событияГотовностьПрерывание по таймеру (Δ t)Событие произошлоПорождениеЗавершениеДопуск к планированиюАктивноеОжиданиеTime - outГраф состояний процесса


Слайд 13Управление процессами
Создание / Завершение
Приостановка / Запуск
Блокирование / Разблокирование
Изменение

приоритета процесса
Операции над процессами
На однопроцессорных системах в каждый момент времени

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

Управление процессамиСоздание / ЗавершениеПриостановка / Запуск Блокирование / РазблокированиеИзменение приоритета процессаОперации над процессамиНа однопроцессорных системах в каждый


Слайд 14Завершение работы
Выбран для исполнения
Ожидание события
Прерывание по таймеру (Δ t)

Событие

произошло

Порождение
Допуск к планированию

Time — out
Граф состояний процесса (2)

Готовность

Активное

Ожидание

Завершение

Приостановлен — блокирован

Приостановлен

— готов

Активное

Приостановленное

Завершение работыВыбран для исполненияОжидание событияПрерывание по таймеру (Δ t)Событие произошлоПорождениеДопуск к планированиюTime - outГраф состояний процесса (2)ГотовностьАктивноеОжиданиеЗавершениеПриостановлен


Слайд 15Резюме
Существует несколько типов ОС …….
Основная функция ОС – управление

процессами
Для описания процесса в ОС используется PCB
Основные состояния процесса отображаются

на графе состояний
ОС управляет всеми переходами на этом графе

РезюмеСуществует несколько типов ОС …….Основная функция ОС – управление процессамиДля описания процесса в ОС используется PCBОсновные состояния


Понравилась статья? Поделить с друзьями:
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Мука режим работы тольятти
  • Мультиплексный режим работы
  • Мука кафе владимир режим работы