Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
переклад - відредаговано.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
5.67 Mб
Скачать

4.3 Від чотирьох копій в три нові програми

Спершу ми обговорюватимемо локальну проблему планування.

Нехай програми Р Р’і Р’’ будуть ідентичними програмами, за винятком того, що довжина кожної роботи в P″ - подвоєна у відповідності до роботи в Р’, і довжина кожної Роботи Р рівна нулю. Розглянемо виконання Р’’, де розміщення А - оптимальний локальний графік. Нехай Q буде програмою, де ми об'єднали усі процеси, що виконуються на тому ж процесорі в одному процесі. рис. 8 показує , як P2″і P3″ об'єднані в процес Q2″ . Нехай Q′буде програмою, яка ідентична до Q″ з винятком того, що довжина кожного Робочого часу ділиться на два. Нехай Q буде програмою, яка ідентична до Q″і за винятком того, що робочий час - нульовий

Рис 8. Перетворення P” в Q”

З теореми 2, ми знаємо, що 2Ts(Q′, A)≤ Ts(Q,A)+ Ts(Q″, A). І ми використовуємо

таке ж розміщення «А» для обох P″ і Q″Проте, відколи є менше процесів в Q″ми нехтуємо розміщенням неіснуючих процесів в Q″. Це означає, що кожен процес в Q″ розподіляється для власного процесора. Із визначення Q″ ми знаємо що Ts(P″, A) = Ts(Q″, A) . Від того як оптимального порядок, в якому процеси розподілені до того ж процесора (тобто оптимальний локальний графік), можливо, не є тим же для P′ і P″ ми знаємо що Ts(P′, A)≤ Ts(Q′, A) .

Роглянемо зараз програму R , так як число процесів в R рівне числу процесів в Р, і так як R виконує нульову Роботу (тобто R містить тільки синхронізації, подібні до Р). Число синхронізацій між процесами Ri

і Rj в програмі R – подвійне значення синхронізацій між процесами Pi і Pj в програмі Р . Це означає, що завжди є ряд синхронізацій між будь-якою парою процесів в R . Всі синхронізації в R повинні виконуватися

в порядку (Рис. 9). Ми знаємо, що завжди можливо сформувати таку послідовність яка є рядом синхронізацій між будь-якою парою процесів. Послідовне виконання синхронізацій очевидно представляє "найбільш погано працюючу» програму, і локальне планування не впливає на тривалість виконання послідовності програм. Отже ми знаємо, що 2Ts(P,A)≤ Ts(R,A) і 2Ts(Q,A)≤ Ts(R,A) .

Тому: 4Ts(P′, A)≤4Ts(Q′, A)≤2Ts(Q,A)+ 2Ts(Q″, A)≤ Ts(R,A)+ 2Ts(P″, A).

Рис 9, Перетворення програми Р в програму R

Ми довели наступне:

Теорема 3: Для будь-якого розміщення А: 4Ts(P′, A)≤ Ts(R,A)+ 2Ts(P″, A).

Це означає, що довжина чотирьох копій P′ користування розміщенням А є менша ніж відповідна сума довжин програми R і двох копій P″ що використовують же розміщення А. Перетворення продовження змінює робочий час але не число синхронізацій. Отже перетворення продовження безпосередньо не зберігає міру деталізації. Проте, в порівнянні Теореми 3, обидві альтернативи мають ту ж деталізацію.

Ми бачитимемо, що Теорема 3 грає важливу роль в наступній частині , де ми виокремимо програму в двох частинах.

4.4 Перетворення програмP в програму з «товстою» і «тонкою» частинами

У цій секції ми описуємо, як перетворити м копій програми P′ в програму з однією частиною, що складається тільки з сигналів синхронізації (тонка частина), і інша частина, що складається з усієї обробки (товста частина). Перейміть на себе довільну програму P′. Спершу ми створюємо м копій P′, де m = 2х

для деякого (крупно) цілого числа (з Леми 1 ми знаємо, що коефіцієнт Ts(P, k, t)/Td(P, q) не змінюється)., Ми комбінуємо «м» копій в групах чотири і перетворюємо кожногу групу до двох програм P″ і однієї програми R . З теореми 3 ми знаємо що 4Ts(P′, A)≤ Ts(R,A)+ 2Ts(P″, A) для будь-якого розміщення А. перетворення закінчується з 2 x – 1 програмами P″ і 2 x – 2 програмами R . Знову ми комбінуємо 2 x – 1 програми P″у групах по чотири і використовуємо ту ж техніку. Цього разу перетворення закінчується

з 2 x – 2 програмами P″ (порівнявши із подвійним виконанням до P″ ) і 2 x – 3 програмами R, які ми додаємо попереднім 2 x – 2 програмам цього типу. Ми повторюємо це техніка до там – дві дуже «товсті» програми з усім виконанням і програми R . Частина, що складається з двох дуже товстих програм, з велокою кількістью виконань і дуже слабкою синхронізацією, так званою товстою частиною. 2x – 1 – 1 Копії R, що містять (майже усю) синхронізацію, зоветься тонкою частиною. Відмітьте, що вибираючи досить великий m = 2x, ми можемо нехтувати часом завершення

з синхронізації в товстій частині. Ми користуватимемося цим фактом в наступній частині. міра деталізації z зберігає перетворення.

Перетворення для m = 8 ілюструється в рис. 10. Програма S″ представляє програму що складається з двох частин : тонка (трьох програм R) і товста (двох програм P'''). Це перетворення дозволяє оптимізувати статичний розподіл часу завершення тільки для зростання, тобто. mTs(P′, k, t) Ts(S, k, t)≤ T= s(S′, k, t)≤ Ts(S″, k, t)

Але в динамічному розподілі, де вартість синхронізації дорівнює нулю, час завершення справжній впродовж перетворення.

Тому, .

Від цього покажчика і далі, ми обговорюватимемо тонку частину програм P″ (програмні

секції з тільки синхронізацією) і окремо товста частина програми (програмна секція з тривалістю виконання).