Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Брой распознанный текст.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.18 Mб
Скачать

Информатика. Часть III

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

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

Мюнхен, июль 1994 г.

Манфред Брой

1. Процессы, коммуникация и координация в распределенных системах

В этой главе мы обсудим основные понятия, относящиеся к моделирова­нию, описанию и программированию паратлелыю работающих распреде­ленных систем. Под системой мы понимаем определенную архитектуру взаимодействующих компонент, отграниченных от их окружения. Если активности компонент могут иметь место одновременно, мы говорим о параллельно работающих системах (короче - параллельных системах. - Пер.) или также о параиельно протекающих (параыельных) процессах. Если такие системы построены из отдельных, удаленных друг от друга ' в пространстве компонент, то говорят также о распределенных системах. Объединение ЭВМ в сеть, использование ЭВМ, обладающих нескольки­ми активными компонентами (несколькими процессорами), и соедине­ние вычислительных машин с техническими системами (управление процессами) приводят к распределенным вычислительным системам в форме параллельно работающих ЭВМ и сетей ЭВМ. Использование распределенных вычислительных систем (РВС) и программирование для них требует определенной методики для описания и анализа распреде­ленных, параллельно работающих систем.

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

Часто одна ЭВМ используется одновременно многими пользователя­ми, и при этом взаимосвязанно протекают различные активности. Ти­пичным образом ЭВМ объединяются в вычислительные сети. Обе эти ситуации приводят к параыельиым процессам. Структура больших про­граммных систем может быть адекватно предстаатена и истолкована в виде взаимодействующих, параллельно работающих частей систем (частичных систем, подсистем).

Дтя описания, разработки и анализа РВС на первом гитане стоит ряд аспектов их поведения, которые могут быть охвачены следующими тер­минами

:распределение означает пространственное расположение (или же раз­деление) отдельных компонент системы;

параьшгизм относится к временным отношениям между действиями ком­понент системы, которые могут протекать одновременно (параллельно);

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

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

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

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

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