- •1. Два подхода к формированию понятия «архитектура компьютера»
- •Вопрос 2. Архитектура фон неймана: принципы, проблемы и способы их решения
- •7. Графический процессор
- •Вопрос 3. Типы команд и техника (методы) адресации
- •Вопрос 4. Иерархия памяти: регистровая, кэш, оперативная главная и вспомогательная
- •Вопрос 5. Организация кэш-памяти.
- •Вопрос 8. Семантический разрыв между архитектурными решениями компьютеров и его программным окружением
- •Вопрос 9. Компьютеры в режиме управления технологическим процессом
- •Вопрос 10. Cisc- и risc-архитектуры
- •Вопрос 11. Компьютеры со стековой архитектурой
- •Вопрос 12: нейрокомпьютеры
- •14. Процессоры с микропрограммным управлением.
- •Вопрос 15. Методы повышения эффективности функционирования компьютеров
- •16. Многоядерный процессор
- •Вопрос 21. Ортогональная память. Вс с комбинированной структурой.
- •Вопрос 17. Организация системы прерываний.
- •Вопрос 18. Vliw-архитектура.
- •19. Конвейеризация. Predication и speculation. Конвейерные системы.
- •Вопрос 20. Матричные компьютеры.
- •Вопрос 23. Топологии локальных сетей
- •Вопрос 24. Архитектура программного обеспечения.
- •Вопрос 31. Классификация ошибок. Программные методы контроля ошибок
- •Вопрос 32. Управление процессами в многопроцессорных и однопроцессорных компьютерах
- •Вопрос 33. Информационные модели систем параллельногодействия: мультипроцессоры и мультикомпьютеры.
- •Вопрос 35. Программное обеспечение для мультикомпьютеров.
- •Вопрос 37. Алгоритмы выбора маршрутов для доставки сообщений.
- •Вопрос 39. Основные подходы к проектированию языков параллельного программирования
- •40. Языки параллельного программирования.
- •Вопрос 41. Преобразование последовательных программ в последовательно-параллельные
- •Вопрос 42. Планирование в мультисистемах.
- •25. Кодирование данных с симметричным представлением цифр.
- •26. Кодирование данных в системах с отрицательным основанием.
- •30 Алгоритм деления в системе с отрицательным основанием.
- •27 Кодирование данных с помощью вычетов.
- •13. Искусственные нейронные сети. Обучение сетей.
Вопрос 39. Основные подходы к проектированию языков параллельного программирования
Программирование задач для таких вычислительных установок получило название параллельного программирования, а соответствующие языки называют языками параллельного программирования. Под параллельным программированием будем понимать
создание объектов - параллельных программ, каждая из которых есть организованная
совокупность модулей с возможностями одновременного выполнения и взаимодействия.
Рассмотрим основные пути, по которым идут при создании ЯПП.
Можно выделить два подхода к проектированию ЯПП. При так называемом параллельно-последовательном подходе ЯПП должен иметь средства для явного указания параллельных ветвей и порядка следования участков параллельности. При выполнении программы управление переходит от одного участка параллельности к другому, каждый раз ветвясь на требуемое чисто независимых управлений. Переход между участками программы осуществляется только тогда, когда все независимые управления достигнут конца своих ветвей.
При асинхронном подходе параллельные ветви явно не задаются, и лишь в некоторые моменты времени при выполнении программы выясняется возможность (готовность) выполнения отдельного фрагмента задачи независимо от других фрагментов.
Язык программирования - это формальный язык связи человека с компьютером, предназначенный для описания данных и алгоритмов их обработки. В отличие от языка общения между людьми он не должен допускать двусмысленностей и неопределенностей. Вот некоторые требования к ЯП:
ясность, простота и согласованность понятий языка с простыми и регулярными правилами их конструирования;
ясность структуры программы, написанной на ЯП. с возможностями их модификации:
естественность в приложениях: иметь для реализации задачи подходящие структуры данных, операции, управляющие структуры и естественный синтаксис;
легкость расширения за счет моделирования простыми средствами сложных структур, имеющихся в конкретных задачах;
богатое внешнее обеспечение: средства тестирования, отладки, редактирования, хранения;
эффективность создания, трансляции, тестирования, выполнения и использования программ.
КОС обладает всеми свойствами, присущими объектно-ориентированному подходу:
инкапсуляция объектных компонент скрывает от пользователя сложности их реализации, делая видимым лишь предоставляемый интерфейс;
наследование позволяет совершенствовать компоненты, не нарушая целостности объектной оболочки;
Что касается языков параллельного программирования, то к ним могут быть предъявлены дополнительные требования. В частности. ЯПП должен:
иметь средства максимального выражения в про1рамме присущего данной задаче
естественного параллелизма: быть независимым от структуры конкретного компьютера, в частности от числа процессоров, доступных для программ, от времени выполнения отдельных ветвей программы и т. д.; обладать простотой диспетчеризации параллельных программ, записанных на нем; обеспечить простоту записи (преобразования) программ на ЯПП по заданным последовательным алгоритмам.