47 48 49

background image

47. Algorytmy szeregowania zadań

Algorytm szergowania tzw. planista lub z ang. scheduler odpowiada
za przydzielenie

dostępu do procesora dla poszczególnych
procesów, dodatkowo musi uwzględniać priorytety, gotowość do

działania oraz
przeciwdziałać zagłodeniu procesu (czyli

niedopuścić żeby dany proces nigdy nie był wykonany)
W systemach operacyjnych czasu rzeczywistego najważniejsze aby dany

proces skończył
się przed zaplanowanym dla nie go czasem.

Rozróżniamy dwa rodzaje planistów: krótkoterminowy który wybiera
procesy spośród

gotowych do wykonania (musi być bardzo szybki)
oraz długoterminowy który wybiera zadania z pamięci masowej i

ładuje do pamięci
operacyjnej.

Obecne systemy oparte są o wielozadaniowość z wywłaszczeniem
* FIFO - algorytm powszechnie stosowany, jeden z prostszych w

realizacji, dający
dobre

efekty w systemach ogólnego przeznaczenia; zadanie wykonuje się aż
nie zostanie

wywłaszczone przez siebie lub inne zadanie o wyższym priorytecie;
* Planowanie rotacyjne (round-robin) - każde z zadań otrzymuje

kwant czasu; po
spożytkowaniu swojego kwantu zostaje wywłaszczone i ustawione na

końcu kolejki;
* Planowanie sporadyczne - zadania otrzymują tak zwany "budżet

czasu"; ten algorytm
pomaga pogodzić wykluczające się reguły dotyczące szeregowania

zadań okresowych i
nieokresowych; wciąż nie jest implementowany przez wiele systemów,

jednak znalazł
się w

standardzie POSIX;
Mniej powszechne

Trzy wymienione wyżej algorytmy są stosowane najczęściej. Jednak
lista algorytmów

szeregowania jest bardzo długa i znajdują się na niej między innymi
jeszcze takie

algorytmy
jak:

* FCFS (first come, first start) - Bardzo podobny do kolejki FIFO -
Pierwszy

przyjdzie,
pierwszy wykonany. Algorytm ten dokonuje najsprawiedliwszego

przydziału czasu
(każdemu

według potrzeb), jednak powoduje bardzo słabą interakcyjność
systemu - pojedynczy

długi
proces całkowicie blokuje system na czas swojego wykonania, gdyż

nie ma priorytetów
zgodnie z którymi mógłby zostać wywłaszczony. Algorytm ten stosuje

się jednak z
powodzeniem w systemach wsadowych, gdzie operator ładuje zadania do

wykonania, a one
wykonują się do skutku.

background image

* SJF (shortest job first) - Najpierw najkrótsze zadanie. Jest
algorytmem

optymalnym ze
względu na najkrótszy średni czas oczekiwania. W wersji z

wywłaszczaniem, stosowana
jest

metoda: najpierw najkrótszy czas pracy pozostałej do wykonania.
Problemem tego

algorytmu
jest głodzenie długich procesów - może się zdarzyć, że cały czas

będą nadchodzić
krótsze

procesy, a wtedy proces dłuższy nigdy nie zostanie wykonany.

48. Model sekcji krytycznej i warunki jego poprawnego funkcjonowania.

* Sekcja krytyczna to ciąg operacji na pewnym zasobie
współdzielonym (zazwyczaj

pamięci) który musi być
wykonany tylko przez jeden proces z potencjalnie wielu innch.

Proces przed
wejściem do SK musi przejść przez sekcje

wejściową, gdy takowy już jest w SK wówczas inne w sekcji
wejściowej nie

mogą jej przejść i są wstrzymywane do chwili
przejścia procesu z SK do sekcji wyjściowej (która powiadamia ich o

opuszczeniu),
wtedy jeden z procesów z sekcji wejściowej zostanie wpuszczony do SK.


* Sekcji krytycznej musi spełniać kilka warunków aby działać

dobrze:
+ wzajemne wykluczenie - tylko jeden proces może przebywać i

wykonywać sekcje
krytyczną

+ warunek postępu - (ograniczona liczba wejść) tylko procesy w
sekcji wejściowej

mogą kandydować do wejścia w sekcje krytyczną
+ ograniczone czekanie - każdy proces aplikujący do sekcji

krytycznej musi kiedyś
do niej wejść (chyba, że sam zrezygnuje)


* Przykładowy algorytm

+ algorytm piekarniczy, każdy z procesów jest numerowny nazwijmy
ten numer p,

dodatkowo wejścia do sekcji krytycznej są także numerowane nazwijmy je k
wejść może proces o najniższym parze numerów (p, k) jeżeli

sekcja jest wolna. A
dlaczego para? Poniważ możliwe, że dwa procesy dostaną ten sam

numer k (a identyfikator p jest zawsze unikalny). Więc dlaczego
numery k skoro

wystarczą p? Nie każdy z procesów p będzie aplikował do sekcji
krytycznej.

* Znane sposoby realizacji sekcji krytycznej:
+ semafory (binarny, liczbowy)

+ mutexy
+ moniotry (wysoko poziomowe mechanizmy jezyków programowania)

49. Stronicowanie i stronicowanie na żądanie – wsparcie sprzętowe, korzyści

wynikające ze stosowania tych technologii.

background image

* Stronicowanie jest jednym ze sposobów rozwiązania problemu
zewnętrznej

fragmentacji polegającym na dopuszczeniu nieciągłości
logicznej przestrzeni adresowej procesu. Zostało użyte przez

polskiego inżyniera
Jacka Karpińskiego w architekturze komputera K-202.

Podstawowa metoda stronicowania:
• Pamięć fizyczna dzielona jest na bloki stałej długości zwane

ramkami.
• Pamięć logiczna dzielona jest na bloki stałej długości zwane

stronami.
• Rozmiary stron i ramek są identyczne.

• Przy wykonywaniu procesu, strony z pamięci pomocniczej
wprowadzane są w dowolne

ramki pamięci operacyjnej.
W systemach komputerowych podział pamięci na mniejsze obszary o

ustalonej lub
zmiennej wielkości przydzielanie tym blokom adresów fizycznych lub

logicznych.
Historia. Stronicowanie pamięci fizycznej wykonywane było z powodu

ograniczenia
przestrzeni adresowej procesora (stronicowanie fizyczne).

* Stronicowanie na żądanie (angielskie demand paging), popularny
algorytm

stronicowania, opóźniający sprowadzanie stron z dysku do chwili,
gdy zabraknie ich w wykonywanym procesie (czyli strona

sprowadzana jest z dysku
do pamięci wtedy gdy jest potrzebna);

rzadko stosowany w postaci czystej


Wyszukiwarka

Podobne podstrony:
HLP - oświecenie - opracowania lektur, 30. Jan Potocki, Rękopis znaleziony w Saragossie. DZIEŃ 43, 4
Jezyk polski 5 Ortografia Zas strony 48 49 id 222219
ei 01 2001 s 48 49
48 49
47 48
48 49
47 48
48 49 607 pol ed01 2007
47 48
48 49
Klasa 5P, 47(48)-Vp, Paweł Witkowski
Klasa 5P, 47(48)-Vp, Paweł Witkowski
47 48
48 49
48 49

więcej podobnych podstron