TEORIA


1. SFORMUŁOWANIE PROBLEMU.
2. KLASYFIKACJA PROCESORÓW.
2.1. Procesory równoległe.
2.2. Procesory dedykowane.
3. PODSTAWOWE DEFINICJE.
3.1. Parametry charakteryzyjące zadanie
- wektor czasów wykonania
- moment przybycia
- termin zakończenia wykonywania
- waga (priorytet)
3.2. Pozostałe definicje.
- zadania podzielne
- zadania niepodzielne
- ograniczenia kolejnościowe
- uszeregowanie
- uszeregowanie optymalne
4. ALGORYTMY DLA PROCESORÓW DEDYKOWANYCH.
4.1. Przepływowy system obsługi (Flow Shop).
4.2. Otwarty system obsługi (Open Shop).
4.3. Ogólny system obsługi (Job Shop).
5. LITERATURA.


1. SFORMUŁOWANIE PROBLEMU.

Deterministyczne problemy szeregowania zadań (programów) na procesorach (maszynach) polegają na wykonywaniu danego zbioru zadań (których wszystkie parametry są z góry znane) przez określony zbiór procesorów w taki sposób, aby określone kryterium oceny wykonania zbioru zadań było ekstremalizowane. Procesory mogą być przy tym albo równoległe tzn. spełniające te same funkcje, albo dedykowane tzn. różniące się wykonywanymi funkcjami.

Interpretacja problemu szeregowania zadań jest bardzo szeroka i istotna. Zadania i maszyny mogą być interpretowane np. jako: detale i obrabiarki, statki i doki, zajęcia lekcyjne i nauczyciele, pacjenci i wyposażenie szpitala lub miasta i komiwojażerowie. Pomimo iż mówimy o procesorach i zadaniach interpretacja nie powinna być czysto komputerowa.

- Spis treści -

2. KLASYFIKACJA PROCESORÓW.

Rozpatrujemy zbiór n zadań Z = {Z1, Z2, ..., Zn} i zbiór m procesorów P = {P1, P2, ..., Pn}.

2.1. Procesory równoległe.

Ogólnie ujmując procesory równoległe to procesory wykonujące te same zadania. Wyróżniamy wśród nich trzy typy w zależności od prędkości pracy:

- Spis treści -

2.2. Procesory dedykowane.

W przypadku procesorów dedykowanych wyróżnia się trzy systemy obsługi zadań:

W przypadku procesorów dedykowanych zadanie Zj należące do zbioru Z dzieli się na operacje O1 j , O2 j , ...,Ok j , z których każda może żądać innego procesora. Przy tym dla systemu przepływowego liczba operacji przypadających na zadanie jest równa liczbie procesorów m, a kolejność ich wykonywania jest taka, że operacja O1j jest wykonywana na procesorze P1, operacja O2j - na procesorze P2 itd. Ponadto wykonanie operacji Oi-1,  j musi poprzedzać wykonanie operacji Oi j, i = 2, 3, ..., m. W przypadku systemu otwartego na wykonanie jednego zadania składa się także m operacji, identyczne jest również ich przyporządkowanie do procesorów. Kolejność wykonania operacji jest natomiast dowolna i nieokreślona. W przypadku systemu ogólnego zarówno liczba operacji przypadających na zadanie jak i przyporządkowanie ich do procesorów i kolejność wykonywania są dowolne, lecz muszą być z góry określone.

- Spis treści -

3. PODSTAWOWE DEFINICJE.
 
3.1. Parametry charakteryzujące zadanie

Zadanie Zj Î Z jest scharakteryzowane przez następujące dane:

- Spis treści -

3.2. Pozostałe definicje.

W przypadku zadań niepodzielnych mówimy o uszeregowaniu niepodzielnym, w przypadku zadań podzielnych - o uszeregowaniu podzielnym.

- Spis treści -

4. ALGORYTMY DOKŁADNE DLA PROCESORÓW DEDYKOWANYCH.
 
4.1. Przepływowy system obsługi (Flow Shop).

Ponizszy algorytm znajduje optymalne uszeregowanie w przypadku dwóch procesorów i dowolnych czasów wykonywania operacji niepodzielnych. Jest to algorytm o złożoności O(nlogn)

Algorytm Johnsona: Szeregowanie na dwóch procesorach operacji niepodzielnych o dowolnych czasach wykonywania w przepływowym systemie obsługi, w celu minimalizacji Cmax.

1. Wybierz zadania, dla których t1jŁt2j. Przydzielaj operacje tych zadań do odpowiednich procesów w kolejności nie malejących wartości t1j.
2. Operacje pozostałych zadań przydzielaj do odpowiednich procesorów w kolejności nie rosnących wartości t2j.

Powyższy algorytm można także rozszerzyć na specjalny przypadek trzech procesorów, dla którego albo . W tym przypadku czas wykonywania na drugim procesorze nie odgrywa roli, a optymlne uszeregowanie można otrzymać, stosując algorytm Johnsona dla czasów wykonywania (t1j + t2j,   t2j + t3j)

Przykład zastosowania algorytmu Johnsona dla dwóch procesorów (m = 2) i pięciu zadań (n = 5)

- Spis treści -

4.2. Otwarty system obsługi (Open Shop).

Rozpatrujemy problem minimalizacji Cmax dla dwóch procesorów. Znajdujemy optymalne rozwiązanie stosując poniższy algorytm o złożoności O(n).

Algorytm: Szeregowanie na dwóch procesorach operacji niepodzielnych w otwartym systemie obsługi, w celu minimalizacji Cmax.
Przyjmujemy następujące oznaczenia:
aj = t1j, A = {Zj: aj ł bj}
bj = t2j, B = {Zj: aj < bj}

1. Wybierz spośród wszystkich zadań dowolne dwa zadania Zr oraz Zl, dla których są spełnione warunki:


Niech A' = A \ {Zr, Zl},  B' = B \ {Zr, Zl}.
2. Skonstruuj uszeregowanie osobno dla B' È {Zl} oraz dla A' È {Zr} w sposób pokazany na poniższym rysunku, przy czym uszeregowanie zadań w zbiorach A' i B' jest dowolne.

 
 
3. Połączenie uszeregowań w jedno. Rozpatrujemy dwa przypadki.
3a. Przypadek 1: T1 - al ł T2 - br.
Połącz obydwa uszeregowania w jedno, w sposób pokazany na poniższym rysunku. Przesuń zadania ze zbioru B' È {Zl} wykonywane na procesorze P2, maksymalnie w prawo.

 
 
3b. Przypadek 2: T1 - al < T2 - br.
Połącz obydwa uszeregowania w jedno, w sposób pokazany na poniższym rysunku. Przesuń zadania ze zbioru A' È {Zr} wykonywane na procesorze P1, maksymalnie w lewo.

 
 
4.Zmiana kolejnosci wykonywania operacji.
4a. Przypadek 1: T1 - al ł T2 - br.
Zmień kolejność wykonywania operacji na procesorze P2 tak ,by operacja O2r była wykonana jako pierwsza. Jeśli ar Ł T2 - br to uszeregowanie ma postać przedstawioną na rys.1. Jeśli natomiast ar > T2 - br to uszeregowanie ma postac jak na rys.2.

  
 
4b. Przypadek 2: T1 - al < T2 - br.
Zmień kolejność wykonywania operacji na procesorze P1 tak, by operacja O2l była wykonana na końcu. Jeśli bl Ł T1 - al to uszeregowanie ma postać przedstawioną na rys.3. Jeśli natomiast bl > T1 - al to uszeregowanie ma postac jak na rys.4.

  
 

- Spis treści -

4.3. Ogólny system obsługi (Job Shop).

Poniższy algorytm można stosować w przypadku dwóch procesorów i zadań składających się z co najwyżej dwóch operacji. Algorytm znajduje optymalne rozwiązanie. Jego złożoność jest O(nlogn)

Przyjmujemy wstępne oznaczenia:
Ji - zbiór zadań składających się tylko z jednej operacji, która ma być wykonana na procesorze Pi (i = 1, 2)
Jhi - zbiór zadań składających się z dwóch operacji, z których pierwsza ma być wykonana na procesorze Ph, a druga na procesorze Pi (hi = 12,21).

  Algorytm: Szeregowanie na dwóch procesorach w ogólnym systemie obsługi zadań składających się z co najwyżej dwóch niepodzielnych operaji, o dowolnych czasach wykonywania,w celu minimalizacji Cmax.

1. Uporządkuj zbiory Jhi zgodnie z algorytmem Johnsona, a zbiory Ji - dowolnie.
2. Przydziel do procesora P1 zadania w koleności J12, J1, J21, a do procesora P2 - w kolejności J21, J2, J12.

- Spis treści -

5. LITERATURA.
 
[1] J. Błażewicz, W. Cellary, R. Słowiński, J. Węglarz: "Badania operacyjne dla informatyków". ; WNT, Warszawa 1983.
[2] M. M. Sysło, N. Deo, J. S. Kowalik: "Algorytmy optymalizacji dyskretnej." ; PWN , Warszawa 1993.

- Spis treści -