Языки программирования - концепции и принципы

мощью формального параметра оператора out


С по­ мощью формального параметра оператора out можно указать, что безразлич­но, какой именно компьютер делает данную работу:

out("job", 6, С: Computers);                               -- Работа 6 для любого компьютера

Преимущество модели Linda в чрезвычайной гибкости. Обратите внимание, что процесс может поместить кортеж в кортежную область и завершиться;

только позднее другой процесс найдет этот кортеж. Таким образом, Linda-программа распределена как во времени, так и в пространстве (среди процес-сов, которые могут быть на отдельных ЦП). Сравните это с языками Ada и oссаm, которые требуют, чтобы процессы непосредственно связывались друг с другом. Недостаток модели Linda состоит в дополнительных затратах на поддержку кортежной области, которая требует потенциально неограничен­ной глобальной памяти. Хотя кортежная область и является глобальной, бы-ли разработаны сложные алгоритмы для ее распределения среди многих про­цессоров.

12.9. Упражнения

 

1. Изучите следующую попытку решать проблему взаимного исключения в рамках модели с разделяемой памятью, где В1 и В2 — глобальные бу­левы переменные с начальным значением «ложь»:

task body T1 is



Ada

begin

     loop

          B1 :=True;

          loop

                exit when not B2;

                B1 := False;

                B1 :=True;

          end loop;

          Critical_Section;

          B1 := False;

         Non_Critical_Section;

      end loop;

end T1;

task body T2 is

begin

    loop

        B2 := True;

        loop

             exit when not B1;

             B2 := False;

             B2 := True;

        end loop;

        Critical_Section;

        B2 := False:

        Non_Critical_Section;

     end loop;

end T2;

Каков смысл переменных В1 и В2? Могут ли обе задачи находиться в своих критических областях в какой-нибудь момент времени? Может ли программа блокироваться? Достигнута ли жизнеспособность?


Содержание раздела