ZADANIE 14 (10)








Projekt zadania laboratoryjnego





Projekt zadania laboratoryjnego


Autor: Michał Pakuła


Słowo wstępu


Obecnie w jądrze Linuxa zaimplementowane są trzy tryby szeregowania procesów:


1. SCHED_OTHER
2. SCHED_FIFO
3. SCHED_RR.


Mimo, że istnieją różnice w szeregowaniu procesów znajdujących się w różnych
trybach, to łączy je jedna cecha wspólna - generalnie system stara się, by użytkownik
miał wrażenie, iż wszystkie procesy są wykonywane równocześnie (równolegle).
Wrażenie to osiągane jest między innymi przez wyznaczenie dość krótkich kwantów
czasu, jakie są przyznawane poszczególnym procesom oraz przez stosowanie wywłaszczania.


Zarys ogólny


Proponowane zadanie będzie, jak się już chyba łatwo domyślić, związane z
modyfikacją trybów szeregowania procesów. Chodzi mianowicie o to, by zaimplementować w
jądrze Linuxa nowy tryb szeregowania ? szeregowanie wsadowe (dalej określane jako
SCHED_BATCH). Prócz samej implementacji tego trybu należy oczywiście udostępnić
możliwość tworzenia procesów szeregowanych w tym właśnie trybie.


Szczegóły


Jako szeregowanie wsadowe rozumiany jest tutaj specjalny tryb szeregowania procesów:
nie muszą one być faktycznie uruchomione w momencie utworzenia, nie wymagamy od nich
szybkiego czasu reakcji czy rozsądnej czasowo interakcji z użytkownikiem. Jako
standardowe przykłady procesów, które mogą wykonywać się w takim trybie można
podać żmudne procesy obliczeniowe (potrzebujące dużo czasu i mocy procesora) oraz
różnego rodzaju procesy administracyjne, dokonujące np. okresowych przeglądów
systemu, sprawdzania haseł itp. Gdyby procesy takie były uruchamiane w trakcie
codziennej pracy użytkowników systemu komputerowego, nie przyniosłoby to specjalnych
korzyści ani tym użytkownikom, ani wspomnianym procesom. Dlatego standardowo zadania
takie wykonuje się w okresach, kiedy system jest mało obciążony, czyli np. w godzinach
nocnych lub w weekendy. Obecnie w Linuxie istnieją takie usługi jak cron i at, które
pozwalają określić moment rozpoczęcia wykonania danego procesu, jednak są one
zaimplementowane na poziomie użytkownika (a nie jądra systemu) i faktycznie nie
realizują specjalnego trybu szeregowania. Przedstawiany projekt to propozycja
zrealizowania przetwarzania wsadowego na poziomie jądra systemu operacyjnego. Miałoby
ono działać w taki sposób, że o określonej godzinie (każdego dnia) algorytm
szeregujący ?przełączałby się? na tryb szeregowania wsadowego i obsługiwał zadania
uruchomione w tym trybie. Po pewnym (określonym) czasie system przywracałby standardowy
sposób szeregowania. Co ważne ? zadania wsadowe wykonywałyby się faktycznie tylko w
trakcie obsługi szeregowania wsadowego, natomiast w trakcie zwykłej pracy systemu w
ogóle by nie były wybierane do szeregowania. Dzięki temu w systemie istniałoby
wyraźne rozgraniczenie: (na przykład) od godz. 7.00 do 22.00 mamy czas przeznaczony dla
zwykłych użytkowników, natomiast w pozostałych godzinach użytkownicy nie pracują a
wykonują się wyłącznie zadania wsadowe. Oczywiście nie jest to najbardziej elastyczne
rozwiązanie, niemniej jednak wydaje się, że w większości przypadków użytkowanie
(lokalnego) systemu komputerowego przebiega w podobny sposób, zatem wprowadzenie
proponowanych zmian nie powinno zakłócić jego pracy.

Ważnym elementem jest określenie metody szeregowania procesów w trybie wsadowym.
Ponieważ w trybie tym będą wykonywane głównie zadania czasochłonne (np.
skomplikowane procesy obliczeniowe) i nie wymaga się szybkiej reakcji na poczynania
użytkownika (bo go w ogóle w tym czasie nie powinno być), dość naturalne wydaje się
przyjęcie prostego sposobu szeregowania typu FIFO z długim kwantem czasu. Takie
rozwiązanie pozwoli na poczynienie dodatkowych oszczędności czasowych wynikających z
rzadszego przełączania kontekstu i faktu, że nie przegląda się za każdym razem
całej listy procesów.


Elementy do modyfikacji


Zadanie określone zostało dość ogólnie, toteż jest wiele możliwości jego
modyfikacji. Najważniejsze elementy, które można zmodyfikować to:


sposób przekazywania parametrów szeregowania (określenia momentów przełączania
się funkcji szeregującej z trybu zwykłego do wsadowego)
sposób traktowania zadań nie-wsadowych w trakcie trybu wsadowego
reprezentacja procesów wsadowych
algorytm szeregowania procesów wsadowych i jego parametry.


W części "Dla prowadzących laboratorium" przedstawiona jest moja
propozycja wyboru powyższych opcji, niemniej jednak wydaje się, że pozostawienie
wolnego wyboru studentom, którzy będą (ewentualnie) rozwiązywać to zadanie może być
dla nich dobrym ćwiczeniem (a dla sprawdzających dodatkowym kryterium oceniania).




Wyszukiwarka

Podobne podstrony:
zadania 1 5 10
ZADANIE (10)
CAD ZADANIA 4 6 10
ZADANIE (10)
cw3 zadanie 10
ZADANIE (10)
stat zadania1 10
zadania 10
ZADANIE (10)
ZADANIE (10)
Analiza Zadania 10
ZADANIE (10)
ZADANIE (10)
ZADANIE (10)
ZADANIE (10)
Zadanie20 10 11
Zadanie20 10 11

więcej podobnych podstron