Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТОГОВЫЙ ВАРИАНТ ШПОРЫ.docx
Скачиваний:
7
Добавлен:
23.09.2019
Размер:
814.05 Кб
Скачать

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

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

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

Все это порождает ряд проблем: высокая стоимость разработки ПО. его ненадежность, большой объем программ, сложность компиляторов и ОС, наличие отступлений от правил построения ЯП.

Для уяснения семантического разрыва можно проанализировать взаимосвязи между каким-нибудь ЯП и архитектурой ЭВМ, скажем с архитектурными решениями наиболее распространенных у нас компьютеров фирмы IBM, и оценить "расстояние" между принципами, положенными в основу ЯП, и соответствующими принципами, положенными в основу архитектуры ЭВМ.

Массивы. Это наиболее часто используемый тип организации данных. PL/I позволяет использовать многомерные массивы, обращение к отдельным элементам массива посредством индексов, операции над целыми массивами, обращение к отдельным подмассивам внутри массива, защиту от выхода за пределы соответствующего массива. В языке АДА. например, имеется возможность соединения массивов.

Структуры. Это второй из часто используемых типов организации данных в виде наборов разнородных элементов данных (в некоторых ЯП называемых записями). И здесь в системе IBM 370 отсутствуют средства, адекватные структурам и операциям над ними.

Строки. В PL/1 используются строковые данные (или просто строка). Допустимые операции: слияние, выделение заданной части (подстроки), поиск строки по заданной подстроке, определение длины текущей строки, проверка присутствия одной строки в другой строке. Подобные возможности в системе команд IBM 370 не предусмотрены. Более того, задача манипулирования строками битов (возможность, предоставляемая PL/1) осложняется еще и тем, что в IBM 370 допускается адресация к группам из 8 бит, т. е. к байтам. И опять- таки все это надо реализовывать через компилятор, что существенно усложняет его работу.

Процедуры. При вызове процедуры требуется сохранить состояние текущей процедуры, динамически назначить память для локальных переменных вызванной процедуры, передать параметры и инициализировать выполнение вызванной процедуры. Что есть в архитектуре IBM 370? Только команда BALR (переход с возвратом). Но вклад этой команды в реализацию операций вызова процедуры настолько мал, что ее отсутствие осталось бы незамеченным. Компилятор мог бы заменить ее двумя командами: LA (загрузка адреса) и BR (переход безусловный).

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

Важно также сравнить имеющийся семантический разрыв с частотой использования соответствующих операций, предоставляемых ЯП.

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

Существенный разрыв существует между архитектурой ЭВМ к принципами построения программного обеспечения.

Семантический разрыв порождает и некорректное использование языка программирования.

Как следствие семантического разрыва- низкая производительность при проектировании программ. Создатель прикладного ПО тратит больше времени на управление памятью и пересылку данных, чем на собственную их обработку. Последние исследования показывают, что каждый 20-й оператор в PL/1-программах - это ввод и вывод информации.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]