home   contents  previous      next        up

Каналы транспьютера

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

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

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

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


home   contents  previous      next        up