- •1. Анализ современных тенденций развития вычислительных систем. Основные области и особенности применения многопроцессорных вс.
- •2. Классификация многопроцессорных систем. Вс с разделяемой общей памятью. Типовые схемы коммуникационных структур. Примеры.
- •3. Классификация многопроцессорных систем. Вс с разделяемой общей памятью. Машины smp иNuma. Примеры.
- •4. Классификация многопроцессорных систем. Вс с распределенной областью памяти. Примеры.
- •5. Классификация многопроцессорных систем. Матричные системы.
- •6. Классификация многопроцессорных систем. Системы с нетрадиционной структурой. Вс, управляемые потоком данных.
- •7. Классификация многопроцессорных систем. Системы с нетрадиционной структурой. Систолические машины.
- •8. Обобщенная архитектура параллельных систем.
- •9. Использование традиционных микропроцессоров для построения многопроцессорных систем. Микропроцессоры с нетрадиционной архитектурой. Архитектура транспьютера т-805.
- •10. Программная модель parix: статические и динамические возможности. Система индексации процессоров в малтикластереMc-3de. Идентификация процессоров
- •11. Средства и правила создания параллельных программ на одном процессоре. Работа встроенного планировщика.
- •12. Программная модель parix: статические и динамические возможности.
- •13. Основные средства взаимодействия процессов в среде parix. Синхронное и асинхронное взаимодействие процессов. Каналы
- •Int BreakLink (LinkCb_t *Link)
- •Int SendLink (LinkCb_t *Link, void *Buf, int Size), int RecvLink (LinkCb_t *Link, void *Buf, int Size)
- •14. Средства и правила создания параллельных программ на многопроцессорной структуре в средеParix. Пример программы.
- •15. Физические, виртуальные и локальные линки. Средства и правила создания линков между произвольными процессами в среде parix. Виртуальные и библиотечные топологии.
- •Int BreakLink (LinkCb_t *Link)
- •Int SendLink (LinkCb_t *Link, void *Buf, int Size), int RecvLink (LinkCb_t *Link, void *Buf, int Size)
- •Int MakeXxx (int RequestId,
- •Int FreeTop (int TopId),
- •Int AddTop_Data (int TopId, void *Data)
- •Void *GetTopData (int TopId, int *Error)
- •16.Принципы и алгоритм работы планировщика процессов в т-805
- •17. Машинные ресурсы. Проблема ограниченности машинных ресурсов. Единицы работы и управления в вычислительных средах.
- •18. Концепция процесса. Понятия алгоритма и процесса. Объективная потребность введения понятия «процесс».
- •19. Основные проблемы параллельного программирования
- •20. Основные направления решения проблем создания программного продукта с параллельной обработкой информации
- •21. Проблемы планирования, диспетчеризации и масштабирования в параллельном программировании
- •22. Краткая характеристика языка оболочки unix. Основные команды работы с файловой системой. Виды файлов
- •23. Многопользовательская защита информации в среде unix. Категории пользователей и атрибуты доступа к файлам
- •24. Управление доступом к файлам
- •25. Порождение процессов на уровне оболочки и их взаимодействие
- •26. Удаленный доступ и особенности работы в среде parix
- •27. Особенности структуры транспьютерного кластера. Проблема масштабирования
- •28. Глобальное планирование в транспьютерном кластере
- •29. Особенности взаимодействия асинхронных процессов. Информационные и логические связи. Основные механизмы взаимодействия процессов
- •30. Понятие синхропримитива. Синхропримитивы низкого уровня
- •31. Системные средства реализации взаимодействия процессов в среде unix
- •32. Взаимодействие процессов через программный канал. Понятие конвейера команд в ос unix
- •33. Именованный программный канал и взаимодействие процессов в unix. Пример
- •34. Типовые задачи взаимодействия асинхронных процессов. Спецификация дисциплины межпроцессного взаимодействия с использованием сетей Петри
- •35. Задача «о читателях и писателях». Требования адекватности спецификации и предметной интерпретации. Задача «о производителе и потребителе»
- •36. Задача «о курильщиках сигарет». Особенности задачи, используемые синхропримитивы.
- •37. Спецификация асинхронных интерфейсов взаимодействия процессов.
30. Понятие синхропримитива. Синхропримитивы низкого уровня
Синхропримитив – механизм реализации конкретного протокола взаимодействующих асинхронных процессов. Низкого уровня: семафор, сигналы, буфер фифо. Семафоры традиционно использовались для синхронизации процессов, обращающихся к разделяемым данным. Каждый процесс должен исключать для всех других процессов возможность одновременно с ним обращаться к этим данным (взаимоисключение). Когда процесс обращается к разделяемым данным, говорят, что он находится в своем критическом участке. Для решения задачи синхронизации необходимо, в случае если один процесс находится в критическом участке, исключить возможность вхождения для других процессов в их критические участки. Хотя бы для тех, которые обращаются к тем же самым разделяемым данным. Когда процесс выходит из своего критического участка, то одному из остальных процессов, ожидающих входа в свои критические участки, должно быть разрешено продолжить работу. Процессы должны как можно быстрее проходить свои критические участки и не должны в этот период блокироваться. Если процесс, находящийся в своем критическом участке, завершается (возможно, аварийно), то необходимо, чтобы некоторый другой процесс мог отменить режим взаимоисключения, предоставляя другим процессам возможность продолжить выполнение и войти в свои критические участки. Семафор- это защищенная переменная, значение которой можно опрашивать и менять только при помощи специальных операцийwaitиsignalи операции инициализацииinit. Двоичные семафоры могут принимать только значения 0 и 1. Семафоры со счетчиками могут принимать неотрицательные целые значения. Операцияwait(s)над семафоромsсостоит в следующем: еслиs > 0тоs:=s-1иначе (ожидать наs) а операцияsignal(s)заключается в том, что: если (имеются процессы, которые ожидают наs) то (разрешить одному из них продолжить работу) иначеs:=s+1Операции являются неделимыми. Критические участки процессов обрамляются операциямиwait(s)иsignal(s).Сигналы асинхронно меняют ход выполнения задачи. Любая задача или процедура обслуживания прерываний может "выставить" (или послать) сигнал определенной задаче. Задача, получившая сигнал, немедленно изменяет ход выполнения: вызывается специальный "обработчик сигналов", связанный с данной задачей. Обработчик сигнала - это пользовательская процедура, связанная с конкретным сигналом и выполняющая некоторые действия всякий раз, когда поступает этот сигнал. Механизм сигналов лучше всего применять для обработки ошибок и исключительных ситуаций, нежели как общее средство коммуникации между задачами.Именованному программному каналу (FIFO)обязательно соответствует элемент некоторого каталога и даже собственный i-узел. Другими словами, именованный программный канал выглядит как обычный файл, но не содержащий никаких данных до тех пор, пока некоторый процесс не выполнит в него запись. После того, как некоторый другой процесс прочитает записанные в канал байты, этот файл снова становится пустым. В отличие от неименованных программных каналов, именованные программные каналы могут использоваться для связи любых процессов (т.е. не обязательно процессов, входящих в одну иерархию родства). Интерфейс именованного программного канала практически полностью совпадает с интерфейсом обычного файла (включая системные вызовыopenиclose), хотя, конечно, необходимо учитывать, что поведение канала отличается от поведения файла.