Page 74 - 6571
P. 74

ЛЕКЦІЯ 9

                            ТЕХНІКА УСУНЕННЯ ВЗАЄМНОГО ВТРУЧАННЯ



                        9.1 Неперетинні множини змінних


                        Процеси  в  паралельній  програмі  виконуються  спільно  для

                  отримання загального результату. Ключова вимога для отриман-
                  ня правильного результату полягає в тому, що процеси не повин-
                  ні впливати один на одного. Множина процесів вільна від взаєм-
                  ного  впливу,  якщо  в  одному  процесі  немає  дій  присвоєння,  які

                  втручаються в критичні твердження іншого процесу.
                        Розглянемо три основні методи усунення взаємного впливу,
                  які можна використовувати для розробки коректних паралельних

                  програм:  неперетинні  множини  змінних,  глобальні  інваріанти  і
                  синхронізація. Всі вони включають запис тверджень і дій присво-
                  єння в формі, яка забезпечує істинність формулам (1).
                        Нагадаємо, що множина запису процесу – це множина змін-

                  них, яким він присвоює значення (і, можливо, зчитує їх), а мно-
                  жина зчитування процесу – це множина змінних, які процес зчи-
                  тує,  але  не  змінює.  Множина  посилань  процесу  –  це  множина

                  змінних, які зустрічаються у твердженнях, що доказують корект-
                  ність даного процесу. Множина посилань процесу часто (але не
                  завжди)  збігається  із  об’єднанням  множин  зчитування  і  запису.

                  По відношенню до поняття взаємного втручання критичні змінні
                  – це змінні в твердженнях.
                        Якщо  множина  запису  одного  процесу  не  перетинається  з

                  множиною посилань іншого процесу і навпаки, то ці два процеси
                  не можуть впливати один на одного. Формально це відбувається
                  тому, що в аксіомі присвоєння використовується текстуальна під-
                  становка, яка не впливає на предикат, який не містить посилань

                  на цільову змінну присвоєння. Локальні змінні в різних процесах,
                  навіть якщо і мають однакові імена, все одно є різними змінними,
                  тому  перед  застосуванням  аксіоми  присвоєння  їх  можна  перей-

                  менувати.
                        В якості прикладу розглянемо наступну програму.

                        co x = x+1; // y = y+1; oc

                        Якщо початкові значення змінних x та y рівні 0, то згідно ак-
                  сіоми присвоєння, теоремами виступають наступні твердження:

                                                              73
   69   70   71   72   73   74   75   76   77   78   79