Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 140

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 140 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 1402019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 140)

Например, оператор АЫСХ 11вс1 (Ьпс(ех) Х1ТН 11вс2 (1пг(ех+1) указывает, что элемент массива 11вс1 с номером 1пс)ех должен быть размещен в памяти того же процессора, что и элемент массива 11вк2 с номером 1пс(ех+1 для всех значений переменной 1пс(ех. Ссылки на два массива в операторе АЫЯН появляются вместе в некотором операторе программы. Размещение их в одной и той же памяти (т.е. в одном и том же процессоре) гарантирует, что ссылки на них будут максимально близкими друг к другу. Рассмотрим следующий фрагмент кода: КЕАЬ 11вс 1 (1000), 11ак 2 (1000) 1ИТЕЯЕК 11ас 3 (500), 11вг 4 (501) !НРРЯ РКОСЕЯ50КЯ ргос (10) 12.8. Параллельность на уровне операторов ! НРГ$ 01ЯТНХВОТЕ (ВЬОСК) ОНТО ргося:: 11яс 1, 11як 2 !НРГд Аь1ОИ 11вс 3 (1пс)ех) И1ТН 11яс 4 (1пс(ех+1) 11вс 1 (1пс(ех) = 11яс 2 (1пс(ех) 11вс 3 (1пс(ех) = 11вс 4 (1пс)ех+1) При каждом выполнении приведенных выше операторов присваивания два указанных элемента массива будут помещены в память одного и того же процессора.

Операторы спецификации в языке НРР в действительности только предоставляют компилятору информацию, которую он может использовать, а может и не использовать, для оптимизации генерируемого им кода. Что именно сделает компилятор, зависит от уровня его сложности н конкретной архитектуры используемой машины. Оператор ГОРДЕЕ указывает набор операторов, которые могут выполняться параллельно. Например, ГОРАЬЬ (1пс(ех 1:1000) 11яс 1 (1пс)ех) = 11ят 2 (1пс)ех) означает присваивание элементов массива 11вс 2 соответствующим элементам массива 11яг 1. В принципе, это означает, что правые части )000 операторов присваивания могут быть вычислены до того, как будет выполнено хотя бы одно присванванне. Это позволяет параллельно выполнять все операторы присваивания. В этой главе описана только часть возможностей языка НРГ. Однако этого должно быть достаточно лля того, чтобы дать читателю общее представление о том, какого рода расширения языка полезны лля программирования на компьютерах, возможно, имеющих большое количество процессоров.

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

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

Мониторы есть в нескольких языках про(раммирования. Синхронизация взаимодействия в языках с мониторами обеспечивается некоторымн видами семафоров. Язык Аг(а предусматривает лля обеспечения параллельности сложные, но эффективные конструкции, основанные на модели передачи сообщений. Здесь основными параллельными модулями являются задачи, взаимодействующие между собой с помощью механизма Глава 1 2. Параллельность шне вопросы параллельности подробно обсуждены в работах Апдгежз апд 5сйпе!дег (1983), Но(г ег а).

(1978) и Веп-Ап' (1982). Концепция монитора н ее реалнзацня в языке Сопсштепг Рааса) разработаны н описаны в работе ВппсЬ Напзеп (1977). Впервые разработка модели передачи сообщений для управления параллельными модулямн обсуждалась в работах Ноаге (1978) и ВппсЬ Напзеп (1977). Подробное обсуждение разработки модели задач в языке Ада можно найти в работе 1сЬЬ!аЬ ег а1. (1979).

Язык Ада 95 детально описан в руководстве пользователя ААКМ (1995). Язык Н!8Ь-Рег)оппапсе РОКТКАХ описан в спецификации АСМ (1993Ь). ° а-...гс 1. 2. Назовите три уровня параллельности в программах. Какой уровень программной параллельности лучше всего поддерживается 51МО- компьютерами? Какой уровень программной параллельности лучше всего поддерживается М(МО- компьютерамн? Что представляет собой поток управления в программе? Дайте определение следующих понятий: задача, отдельная задача, синхрониза- ция, синхронизация конкуренции н синхронизация взаииодействия, живучесть н взаинная блокировка. Какие задачи не требуют никакой синхронизации? 4.

5. Вопросы рандеву, представляюшего собой синхронную передачу сообшеннй. Рандеву — это действие, выполняемое задачей, получаюшей сообщение, посланное другой задачей. Язык Ада содержит как простые, так н сложные методы управления рандеву между задачами. Язык Ада 95 содержит дополнительные возможности для поддержки параллельности, в первую очередь, защищенные объекты и асинхронную передачу сообшений. Язык )ача поддерживает параллельное выполнение модулей довольно простым, но эффективным способом. Любой класс, который либо является производным от класса ТЬхеад, либо реализует интерфейс КцппаЬ1е, может замешать наследуемый метод хоп, что приводит к параллельному выполнению кода этого метода с другими такими же методами н методом жауп.

Синхронизацня взаимодействия указывается с помошью определения методов с синхронизированным доступом к совместно используемым данным. Небольшие разделы кода также могут быть синхронизированы. Синхронизация взаимодействия осушествляется с помошью методов иазс н поезду. Язык Н18Ь-Реггоппапсе ГОКТКАХ содержит операторы для определения того, каким именно образом следует распределить данные между модулями памяти, связанными со многими процессорами. В него также входят операторы для указания наборов операторов, которые должны выполняться параллельно.

12. 13. 14. 15. 16. 17. 18. 19. 20. Что делает метод а1еер языка 1ача? Что делает метод уйе1д языка 1ача? 21. 22. 23. 24. 25. 26. 3. 4. 542 Глава 1 2. Параллельность 7. 8. 9. 10. 1!. Назовите вопросы разработки полдержкн параллельности в языке.

Опишите, как действуют операции на1С и ге1еаве над семафорами. Что такое бинарный семафор? Что такое семафор-счетчик? Назовите основные проблемы использования семафоров для синхронизации? Какие преимушества имеют мониторы по сравнению с семафорами? Дайте определение понятий: оператор ассере„оператор епкку, актар, сер- вер, расширенный оператор ессерт„открытый оператор ассерТ закры- тый оператор ассерс н завершенная задача. Какая параллельность является более обшей: параллельность, обеспечиваемая мо- ниторами, нлн параллельность, обеспечиваемая передачей сообщений? Как создаются задачи в языке Ада: статически нли динамически? Для каких целей предназначен расширенный оператор ассерс? Каким обраюм для задач в языке Ада обеспечивается синхронизация взаимодействия? В чем заключается преимушество защищенных объектов в языке Ада 95 над зада- чами при обеспечении доступа к совместно используемым данным? Опишите асинхронный оператор ве1еск в языке Ада 95.

Что именно программный модуль на языке !ача может запускать параллельно с методом жедп в прнклалной программе? Какие две конструкции языка 1ача могут быть синхронизированы? Какие методы языка 1ача используются лля поддержки синхронизации взаимодей- ствия? Объясните, зачем язык Зача содержит интерфейс йцппаЬ1е. Для чего предназначены операторы спецификации в языке Н18В-РегГоппапсе РО КТВД? Для чего служит оператор ГОРА!.1. в языке Н!8й-РегГоппапсе РОКТВАХ? Объясните четко н ясно, почему синхронизация взаимодействия не является про- блемой в среде программирования, имеющей симметричный модуль управления, но не поддерживающей параллельность. Что лучше предпринять системе прн обнаружении взаимной блокировки? Напишите задачу на языке Ада, реализуюшую универсальные семафоры.

Напишите задачу на языке Ада для управления совместно используемым буфером, таким же, как н в описанном в главе примере, но с применением задачи, реали- зующей семафоры нз упражнения 3. 5. Ожилание занятости — это метод, при котором задача ожидает определенного события, непрерывно проверяя, не произошло ли оно. Какая главная проблема связана с этим подходом? б. Прелположим, что в примере "производитель-потребитель" из раздела 12.3 мы неправильно заменили выражение ге1еаве (асеева) в процессе-производителе на выражение найс ( ассе аз ) .

Что может произойти при выполнении системы в результате этой ошибки? 7. По любой книге, посвященной программированию на языке ассемблера машины ЧАХ, определите, какие машинные команды поддерживают создание семафоров. 8. По любой книге, посвященной программированию иа языке ассемблера компьютеров, использующих процессор !и!е! Реп!!цш, определите, какие машинные команды полдерживают создание семафоров. 9.

Характеристики

Тип файла
DJVU-файл
Размер
9,5 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6374
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее