Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы СисПО.doc
Скачиваний:
14
Добавлен:
27.09.2019
Размер:
2.93 Mб
Скачать
  1. Мультипроцессорная обработка: сущность и характеристика

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

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

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

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

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

Симметричные и несимметричные многопроцессорные системы.

В свою очередь они рассматриваются по 2м аспектам:

  1. С точки зрения архитектуры

  2. С точки зрения организации вычислительного процесса

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

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

Масштабирование по горизонтали (кластеры)

Отдельное устройство называют кластерами, а всю систему кластерной

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

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

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

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

  1. Понятия «процесс» и «поток», операции над процессами в мультипрограммных системах

Понятие процесс и поток

Понятие процесс и поток в теории ОС напрямую связаны с мультипрограммированием. Эти понятия определяют внутренние единицы работы, между которыми будут разделяться ресурсы ВМ. В настоящее время в большинстве ОС определены 2 типа единицы работы:

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

  2. Более мелких работ носит название потока, реже трейд, нить

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

Чтобы программный код выполнить необходимо:

  1. Загрузить в ОП

  2. Выделить место для его хранение данных

  3. Предоставить доступ к устройствам ввода-вывода и др.

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

Процессорное время, как важнейший ресурс распределяется в ОС между потоками.

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

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

  2. Создание для одного приложения нескольких процессов для каждой из параллельных работ.

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

  1. Введение новой единицы работы

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

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

Достоинства многопоточной обработки:

  1. Меньшие накладные расходы

  2. Потоки в адресном пространстве изолируются друг от друга в меньшей степени

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

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

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

Операции над процессом

Подсистема управления над процессами выполняет следующие операции:

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

При создании процесса ОС использует 2 основных типа информационных структур: дескриптор процесса и контекст процесса.

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

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

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

  2. запуск процесса

  3. блокировка процесса

  4. приостановка процесса

  5. возобновление процесса

  6. изменение приоритета процесса (работа с очередями)

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