Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 144

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 144 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 1442019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Так, пока выполняется операция команда 1, коканда 2нолучаетданныеисточника, команда Здекоднруется, а коканда 4 извлекается из памяти. Для выполнения каждой отдельной команды необходимо четыре машинных цикла, но каждый цикл завершает выполнение очередной команды, выполняя, таким образом, команды со скоростью полного цикла 1\П, если только удается всегда держать четыре команды в конвейере. Выполнение этого условия, однако, является весьма сложным делом и, как будет показано далее, ставит перед разработчиком языка непростые задачи.

+ Большая управляющая память. Чтобы избежать частых обращений к оперативной памяти, используется большой набор (часто 100 и более) регистров. Это увеличивает количество элсмевтов данных в управляющей памяти, позволяя реже обращаться за данными в оперативную память. + Быстрое инициирование процедур, Размещение записей активации в оперативной памяти (см. главу 9) часто требует больших затрат времени.

При использовании большого количества управляющих регистров в К1оС- процессоре стск записей активации подпрограмм во время выполнения часто размещается в управляющей памяти, Вызов подпрограммы и возврат из нее часто реализуются в виде соответствующих команд К13С-процессора. Такая идеология процессора должна учитываться разработчиками трансляторов. Например,встандартномС1БС-компьютереоператорЕ = А н В + С + Ов постфиксной записи будет имсть вид ЕАВ + С ь 0 ь = и выполняться следуюгдим образом; 620 Глаза 11.

Распределенная обработка данных 1) добавить А к В, получить сумму; 2) к сумме добавить С; 3) к сумме добавить В; 4) сохранить сумму в Е Но в конвейерной архитектуре команда 2 (к сумме добанить С) не может по- лучить необходимое ей значение суммы (результат сложения А и  — этап 3 н на- шем примере с конвейером), пока предыдущая команда (добавить А к В) не сохра- нит свой результат (этап 4 в конвейере). В итоге процессор вынужден ждать один цикл при выполнении команды 2, пока команда 1 не завершит свое выполнение. Более «сообразительный» транслятор предложил бы другую постфиксную запись, ЕАВ» СО + + -, которая позволила бы вычислять А + В однонременно с С» В и, та- ким образом, избежать задержки.

Бще более «сообразительный» транслятор мог бы чередовать выполнение отдельных операций двух незанисимых операторов, например: Е-А+В»С+В д-Е»6»Н+1 со следующей постфиксной записью АВ + ЕВ + СР » Н! + (!)(3) + (2)(4) + Е(5) Е(б) где номера операндов означают ноя(ера операций в этом постфиксном выражении. В этом случае каждый оператор выполняется без взаимного влияния со стороны другого и процессор работает с максимальной скоростью, возможной на конвейе- ре. Но при этом транслятору языка приходится обеспечивать отсутствие взаимно- говлиянияопсраторов.

Например,еслибывторойопсраторбылй:= Е + Я + Н +!, то операция ЕС+ не могла бы ньшолппться, пока не зансршнлось бы выполнение операции присваивания переменной Е из первого оператора. Что еще хуже, для максимального упрощения структуры процессора вся ответственность за подоб- ные решения часто нозлагастся на транслятор языка; аппаратная часть компьюте- ра просто выбирает соопштствующис, возможно, не корректные значения и про- должает свой цикл выполнения, Команды передачи управления налагаютдополнительные ограничения.

Напри- мер, для быстрого выполнения оператора )1 1( ехрг Епеп Мяц е)зе Мя(, последовательность выполнения на большинстве К1ЯС-компьютеров будет сле- дукппсй: + вычислить выражение ехрг; + поместить зтлс~ н копнейср; + если выражение ехрг ложно, то очистить конвейер и поместить в него зспг» Предполагая, что выражение будет истинно, ИВС-процессор может начать вы- полпеннс ветви 1))еп без остановки процессора на несколько циклон в ожидании того, что конвейер «поймает» необходимую последовательность операций. Но если выражение ложно, важно то, что никакие побочные вычисления, относящиеся к вет- ви С))еп, нс будут сохранены, Разработка программ, в которых большинство ветвей истинно, могло бы ускорить выполнение на машинах с К13С-арх!(тсктурой.

11.3. Развитие аппаратной части компьютера 521 11.3.2. Конструирование систем Увеличение скорости работы аппаратной части компьютера обычно достигается одним из двух способов. Псрвый способ заключается в том, что на гь1БС-компьютерах с конвейерной архитектурой несколько команд, обрабатывающих одни и те жс данные, вьпголняготся одновременно.

Альтернативный подход представляет компьютер со множеством потоков команд и множеством потоков даггггых' (Мп!- г1р!с 1пзггпсйоп Мп11гр1е Паса, М1МГ)), в котором различные инструкции, вьпюлняясь одновременно, обрабатывают различные данные. Мультипроцессоры не являются новейшей разработкой. Два и более ЦП, работающих под управлением одной операционной системы, известны вот уже около лвадцатн лет.

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

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

~Р~ Процессоры Я Модули памяти Рио. 11.5. Системные архитектуры для мультипрацессоров: в — одна шина; б — матричный переключатель; в — омега-сеть В отечеетвен|юй литературе по вь|чнслнтельпой технике такие компьютеры еше называют компъютерами с векторно-кон иейернон архигвктурой. — Прикеч. науч.

лед 522 Глава 11. Распределенная обработка данных Вторая модель — это матричный переключатель, схематически представленный на рис. 11.5, б. В этой модели каждый процессор может быть по отдельности связан с отдельным модулем памяти, Хотя здесь мы можем достичь производительности р х Й мегагерц, но если у нас имеется т модулей памяти, то потребуется р х пг переключателей.

Это значительно увеличивает стоимость подобных систем. Промежуточным, компромиссным решением является так называемая архитектура омега-сегли (см. рис. 11.5, в). Здесь имеется набор переключателей, который позволяет связать по определенному маршруту каждый процессор с каждым модулем памяти. По сравнению с архитектурой матричных переключателей несколько уменьшается скорость из-за необходимости установления сетевого маршрута к данным, но цо сравнению с архитектурой магистральной шины имеется выигрыш в скорости, так как будет возникать несколько меньше случаев взаимного влияния данных. Стоимость такой архитектуры меньше по сравнению с архитектурой матричных переключателей, так как требуется меньшее число переключателей, но выше по сравнению с архитектурой магистральной шины.

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

С использованием мультипроцессорной архитектуры мы можем иметь сотни и даже тысячи взаимосвязанных процессоров. Такие машины мы называем колгиьютерами с лгассовым параллелизмом. И здесь возни каст задача: как разделить программу на достаточно небольшие фрагменты, которые каждьп1 процессор мог бы выполнять независимо без того, чтобы потребности в данных одного процессора постоянно взаимодействовали с потребностями в данных другого процессора. Мы можем посмотреть па проблему параллельной организации вычислений с точки зрения низкоурощгего или еысокоуроеяего подхода. Высокоуровневые подходы зависят от конструкций языка, которые использованы программистом для организации параллельного выполнения. Оператор зпс' из раздела 11.2.1 является одним из методов, который может использовать программист, чтобы указать транслятору планировать выполнение каждого отдельного оператора на отдельном процессоре.

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

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

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

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