Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.497


Таненбаум Э.- Архитектура компьютера. стр.497

С кортежами можно выполнять 4 операции. Первая из них, out, вводит кортеж в пространство кортежей. Например:

outCabc". 2, 5);

Эта операция вводит кортеж ("abc", 2, 5) в пространство кортежей. Поля операции out обычно содержат константы, переменные или выражения, например:

outCmatrix-l". i, j. 3.14);

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

Вторая операция, in, извлекает кортеж из пространства кортежей. Обращение к кортежам производится по содержанию, а не по имени или адресу. Поля операции in могут содержать выражения или формальные параметры. Например:

inC'abc". 2, ? i);

Эта операция просматривает пространство кортежей в поисках кортежа, состоящего из символьной строки "abc", целого числа 2 и третьего поля, которое может содержать любое целое число (предполагается, что i — целое). Найденный кортеж извлекается из пространства кортежей, а переменной i присваивается значение третьего поля. Поиск совпадения и извлечение являются атомарными действиями. Поэтому когда два процесса одновременно выполняют одну и ту же операцию in, а в пространстве кортежей более нет совпадающих кортежей, успешной оказывается только одна из операций. Пространство кортежей может содержать несколько копий одного кортежа.

Алгоритм поиска совпадения, который используется в операции in, довольно прост. Поля операции in, называемые шаблоном, сравниваются с соответствующими полями каждого кортежа в пространстве кортежей. Совпадение имеет место, если удовлетворены следующие три условия:

♦ шаблон и кортеж имеют одинаковое количество полей;

♦ типы соответствующих полей совпадают;

♦ каждая константа или переменная в шаблоне совпадает с соответствующим полем в кортеже.

Формальные параметры, указываемые знаком вопроса, за которым следует имя переменной или типа, в поиске совпадения не участвуют (за исключением проверки типа), хотя тем параметрам, которые содержат имя переменной, после нахождения совпадения присваиваются значения.

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

Третья операция, read, напоминает in, только она не удаляет кортеж из пространства кортежей. Четвертая операция, eval на основе своих параметров строит новый кортеж, который копируется в пространство кортежей. Этот механизм можно использовать для выполнения любых вычислений. Именно так создаются параллельные процессы в системе Linda.

Основной программной парадигмой в Linda является модель тиражируемых рабочих (replicated worker model). В основе модели лежит понятие пакета заданий (task bag), которые должны быть выполнены. Основной процесс начинается с выполнения цикла, содержащего операцию


⇐ Предыдущая страница| |Следующая страница ⇒

.