- •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. Спецификация асинхронных интерфейсов взаимодействия процессов.
18. Концепция процесса. Понятия алгоритма и процесса. Объективная потребность введения понятия «процесс».
Алгоритм – это совокупность (последовательность) директив. Алгоритм есть триада:
средства (С, Паскаль…) и методы описания алгорита (схемы, алгоритмические языки, содержательное описание);
механизмы выполнения алгоритма (человек, машина…);
реализация (процесс) - реализация порождает процесс.
Языки описания алгоритмов: высокого уровня (машинно-независимые) и низкого уровня (принцип «один в один»: один оператор языка – одна машинная команда).
Алгоритмы могут быть линейными, ветвящимися, циклическики, а процесс – это протокол выполнения алгоритма; обязательное линеен.
Определить концепцию процесса – значит выразить его через формальные модели, которые и породят процесс. (Красюк ни когда не говорил до конца)
Процесс это (из моего конспекта лекции 16.02.2004):
последовательная смена состояний, стадий развития;
совокупность последовательности действий для достижения определённого результата;
последовательная смена состояний, тесная связь закономерно следующих друг за другом стадий развития, представляющих непрерывное единое движение;
ход развития какого-либо явления; последовательная закономерная смена состояний в развитии чего-нибудь.
Состояние – совокупность значений некоторых системных параметров либо характеристик.
Действие – изменение неких условий внутри системы, приводящих к изменению одного или нескольких системных параметров, определяющих состояние.
Если время выполнения действия стремится к нули, то это событие.
Объективная потребность введения понятия процесс – смотри вопрос 17.
19. Основные проблемы параллельного программирования
20. Основные направления решения проблем создания программного продукта с параллельной обработкой информации
Этот вопрос похоже идет лесом… Надо спрашивать Красюка…
21. Проблемы планирования, диспетчеризации и масштабирования в параллельном программировании
По материалу http://subscribe.ru/archive/comp.soft.othos.osmaker/200501/06010534.text.
Многозадачная операционная выполняет планирование и диспетчеризацию потоков (процессов). Планирование включает определение момента времени для смены текущего потока, а также выбор нового потока для выполнения. Диспетчеризация заключается в реализации найденного в результате планирования решения, то есть в переключении процессора с одного потока на другой. Планирование может выполняться динамически, когда решения принимаются во время работы системы на основе анализа текущей ситуации, или статически, если потоки запускаются на выполнение на основании заранее разработанного расписания. Первый способ характерен для универсальных ОС, а второй – для специализированных ОС, например ОС реального времени. Динамический планировщик ОС может реализовывать различные алгоритмы планирования, которые делятся на такие крупные классы, как вытесняющие и невытесняющие алгоритмы, алгоритмы квантования и приоритетные алгоритмы. Используемый алгоритм планирования зависит от назначения ОС. Применяются также смешанные алгоритмы, объединяющие достоинства нескольких классов.
Проблема масштабируемости – требуется обеспечить работоспособность программы на любом количестве процессорных элементов. В нашем случае статические свойства Parix’а позволяют определять количество процессоров и идентифицировать процессоры в сети. И ещё один аспект масштабируемости – эффективность работы системы в целом должна расти с ростом числа процессоров, или по-крайней мере не снижаться.
А вообще хотелось бы услышать мнение Красюка по данному вопросу…