systemy Flashcards

1
Q

Zasoby systemu
co to?

A

to wszystkie jego elementy,
które mogą być wykorzystane przez
system lub aplikację użytkownika (np.
pamięć, procesory, urządzenia
peryferyjne, pliki, zmienne,…).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Tworzenie maszyny wirtualnej
na czym polega?

A

polega na
takiej zmianie właściwości maszyny
fizycznej, aby były one przydatniejsze dla
użytkownika.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

ELEMENTY MASZYNY WIRTUALNEJ VM
wymień

A

 Wejście-wyjście
 Pamięć operacyjna
 System plików
 Ochrona zasobów i system błędów
 Współdziałanie programów
 Sterowanie programami

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

WEJŚCIE-WYJŚCIE
lista zadań

A

 Stworzenie urządzeń wirtualnych
 Uproszczenie dostępu do urządzeń we-wy
 Uwolnienie użytkownika od bezpośredniego
programowania urządzeń we-wy
 Ograniczenie (uniemożliwienie)
bezpośredniego dostępu do urządzeń wewy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

PAMIĘĆ OPERACYJNA
lista zadań

A

 Stworzenie pamięci wirtualnej
 Zwiększenie pojemności pamięci
 Podział między użytkowników
 Ochrona pamięci
 Umożliwienie współdzielenia pamięci

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

SYSTEM PLIKÓW
lista zadań

A

 Tworzy strukturę gromadzenia plików
 Umożliwia dostęp do pamięci masowej poprzez
nazwy symboliczne bez dokładnej znajomości
miejsca położenia pliku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

OCHRONA ZASOBÓW I SYSTEM BŁĘDÓW
lista zadań

A

 Ochrona przed skutkami błędów
 Ochrona przed złośliwością lub złymi zamiarami
pozostałych użytkowników
 Obsługa błędów sprzętu
 Obsługa błędów użytkownika

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

WSPÓŁDZIAŁANIE PROGRAMÓW
lista

A

 Współpraca w celu wykonania jednego zadania
 Wyniki uzyskane z działania jednego programu
służą drugiemu
 Komunikacja między działającymi programami
 Synchronizacja działania programów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

STEROWANIE PROGRAMAMI
w jaki sposób

A

Element odpowiedzialny za porozumiewanie się
operatora z maszyną tzw. interface użytkownika.
Występuje jako:
język poleceń
system graficzny
system głosowy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

RODZAJE SYSTEMÓW OPERACYJNYCH
lista

A

 Systemy dla indywidualnego użytkownika
 Sterowanie procesami
 Systemy przepytywania plików
 Przetwarzanie transakcji
 Systemy ogólnego przeznaczenia

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

SYSTEMY DLA INDYWIDUALNEGO
UŻYTKOWNIKA
zalety, podział

A

 wygoda i prostota
 jednozadaniowe: CP/M, MS DOS
 wielozadaniowe: OS/2, Windows NT, 2000, XP,
Vista

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

SYSTEM STEROWANIA PROCESAMI
inna nazwa, cechy, zastosowania, podział

A

 systemy czasu rzeczywistego
 Cechy: sprzężenie zwrotne, niezawodność,
bezpieczne wyłączenie po awarii
 Zastosowania: produkcja, kontrola,
monitorowanie
 Podział: rygorystyczne, łagodne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

SYSTEMY PRZEPYTYWANIA PLIKÓW
do czego/kiedy? zastosowania

A

 przeglądanie i modyfikacja dużych baz danych
 Zastosowania: systemy w urzędach, policyjne,
dla lekarzy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

SYSTEMY PRZETWARZANIA TRANSAKCJI
kiedy?

A

 bardzo częste zmiany w bazie danych
 Konieczność utrzymania integralności danych
 Zastosowania: system rezerwacji miejsc,
system rozliczeń bankowych

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

SYSTEMY OGÓLNEGO PRZEZNACZENIA
kiedy?

A

 duża różnorodność zadań
 duża liczba programów użytkowych
 konieczność obsługi wielu urządzeń
peryferyjnych
 W oparciu o nie buduje się systemy
przepytywania plików i przetwarzania transakcji

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

PODZIAŁ SYSTEMÓW OPERACYJNYCH
Że względu na liczbę stanowisk i na interakcję z użytkownikiem

A

 Systemy wsadowe
zdalne wprowadzanie prac
 Systemy wielodostępne
interaktywne

 jednostanowiskowe
 rozproszone (koordynacja zadań i przepływu
informacji)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

STRUKTURA SYSTEMU:
podział

A

 jednolita
 warstwowa
 klient-serwer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

JEDNOLITA STRUKTURA SYSTEMU
co to?

A

 zespół wzajemnie wywołujących się procedur -
trudności w konserwacji

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

WARSTWOWA STRUKTURA SYSTEMU
co to?

A

 podział systemu na moduły o określonych
zadaniach (odwołania tylko do niższej warstwy)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

STRUKTURA SYSTEMU TYPU KLIENT-SERWER
jak to działa?

A

 moduły komunikują się poprzez wysyłanie
komunikatów od klienta do serwera
 przekazywaniem komunikatów zajmuje się
mikrojądro (np. Windows NT)
 łatwa rozbudowa i konserwacja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

SYSTEM VMS

A

 różne systemy
 wirtualne procesory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

WIRTUALNA MASZYNA JAVY

A

 tworzona dla każdego systemu oddzielnie
 pkod – pseudokod, kod binarny, kod bajtowy –
niezależny od systemu
 kompilator JIT (ang. Just-in-time compilation)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

WIRTUALIZACJA - RODZAJE

A

 Wirtualizacja serwerów
 Wirtualizacja aplikacji
 Wirtualizacja prezentacji
 Wirtualizacja stacji roboczych
 Wirtualizacja pamięci masowych
 Wirtualizacja stanu użytkownika
 Wirtualizacja sieci

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

WIRTUALIZACJA SERWERÓW
co umożliwia?

A

 umożliwia aplikacjom działanie na
wielu systemach operacyjnych
uruchomionych na tym samym
fizycznym serwerze
 możliwość pełnego wykorzystania
mocy obliczeniowej i zasobów
serwera, stawiając kolejne maszyny
wirtualne na jednym fizycznym
serwerze – zamiast kupować kolejne
serwery fizyczne
 szybsze dostarczenie usług
 uproszczenie i przyśpieszenie
konserwacji serwerów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
WIRTUALIZACJA APLIKACJI co umożliwia?
 zapewnia izolację aplikacji, rozwiązuje problem zgodności różnych aplikacji, umożliwiając im działanie razem, mimo że mogą wymagać tych samych zasobów w różnych wersjach (np. różne wersje bibliotek DLL)  usprawnia proces testowania aplikacji, nie trzeba sprawdzać, jak aplikacje współpracują ze sobą, gdy jedną z nich aktualizujemy  aplikacje mogą być przechowywanie centralnie i strumieniowane do komputera PC w oparciu o aktualnie zalogowanego użytkownika  całkowite usunięcie aplikacji ze stacji roboczej pozwala na zmniejszenie ilości obrazów systemów operacyjnych
26
WIRTUALIZACJA PREZENTACJI co umożliwia?
 dostarczanie aplikacji lub całego pulpitu poprzez strumieniowanie obrazu do odbiorcy  kod aplikacji oraz przetwarzanie danych odbywa się po stronie serwera  umożliwia elastyczną pracę niezależnie od lokalizacji  daje dostęp do aplikacji i całych pulpitów ze stron WWW, lokalnych komputów w domu lub przez Internet  upraszcza proces wdrażania aplikacji - wdrożenie jest realizowane na serwerach działających w farmie, a nie na wszystkich stacjach roboczych
27
WIRTUALIZACJA STACJI ROBOCZYCH podział
 Wirtualizacja stacji roboczych (utrzymywana na kliencie)  umożliwia uruchomienie maszyn wirtualnych na jednym komputerze PC obok systemu operacyjnego hosta  może być centralnie zarządzana, a obrazy maszyn wirtualnych mogą być dostarczane również centralnie  zapewnia zgodność aplikacji z systemem operacyjnym - aplikacje są zainstalowane w maszynie wirtualnej i tam wykonuje się ich kod  dostarczenie aplikacji odbywa się najczęściej w trybie seamless, czyli bez dodatkowej otoczki pulpitu – jedynie widok samej aplikacji  Wirtualizacja stacji roboczych (utrzymywana na serwerze)  przenosi środowisko pracy, oparte na stacjach roboczych, do centrum przetwarzania danych, gdzie stacja robocza jest uruchomiona w postaci maszyny wirtualnej, a dostęp do niej zapewniony jest drogą sieciową  połączenie może być zrealizowane z dowolnego komputera PC, laptopa lub cienkiego klienta  nie jest jedną technologią – to połączenie wirtualizacji serwerów z wirtualizacją prezentacji.
28
WIRTUALIZACJA PAMIĘCI MASOWYCH na czym polega?
 daje niezależność lokalizacyjną dla danych przez abstrakcję fizycznej lokalizacji danych  odwrotnie, niż w przypadku wirtualizacji serwerów, wirtualizacja pamięci masowych umożliwia, by wiele macierzy było widocznych jako jedno wirtualne urządzenie
29
WIRTUALIZACJA STANU UŻYTKOWNIKA na czym polega?
 polega na oddzieleniu danych użytkownika od komputera PC i przechowywaniu ich centralnie (np. w centrum przetwarzania danych)  umożliwia podjęcia ich na dowolnym komputerze PC  użytkownik ma dostarczone swoje pliki bez długiego czasu ściągania lub ręcznego kopiowania, niezależnie od miejsca logowania  upraszcza to tworzenie kopii zapasowych danych użytkownika
30
WIRTUALIZACJA SIECI na czym polega? podział
 Zewnętrzna wirtualizacja sieci  technologia VLAN (802.1Q), czyli logiczny podział segmentów sieci na fizycznym sprzęcie sieciowym osiągany przez znakowanie ramek  Wewnętrzna wirtualizacja sieci  tworzenie wirtualnych przełączników i portów na poziomie hiperwizora - wirtualne przełączniki dostarczają komunikację sieciową dla maszyn wirtualnych oraz łączą je z zewnętrzną fizyczną siecią
31
KANAŁ
 transmisja odbywa się z urządzenia do/z pamięci z pominięciem procesora  procesor przechodzi w stan wysokiej impedancji i zwalnia magistralę systemową  transmisja przez kanał kończy się przerwaniem
32
KOLEJKA ROZKAZÓW
Większość nowoczesnych procesorów posiada wbudowaną kolejkę rozkazów i nie musi odwoływać się do pamięci by pobrać następny rozkaz.
33
MONITOR WSADOWY podział
JEDNOSTRUMIENIOWY  planowanie wykonywania prac z dysku WIELOSTRUMIENIOWY  wieloprogramowanie – wczytywanie i uruchamianie wielu prac w tym samym czasie przełączanie WIELOSTRUMIENIOWY WYKORZYSTUJĄCY WIELE PROCESORÓW  każda praca może być wykonywana na kilku procesorach  należy pamiętać o zachowaniu i przywróceniu stanu zadania przełączanie
34
SZCZEGÓŁOWE ZADANIA SYSTEMU OPERACYJNEGO lista
 planowanie prac  szeregowanie prac  sterowanie pracami lub interpretowanie języka poleceń  sterowanie zasobami  ochrona zasobów  ewidencjonowanie zasobów komputerowych (lista zasobów)  obsługa błędów  obsługa wejścia-wyjścia  obsługa przerwań  umożliwienie wielodostępności  udostępnianie dobrego sposobu komunikacji z operatorem
35
WŁAŚCIWOŚCI SYSTEMU OPERACYJNEGO:
 współbieżność  wspólne korzystanie z zasobów  pamięć długookresowa  niedeterminizm
36
WSPÓŁBIEŻNOŚĆ co to? Co wchodzi w skład?
wykonywanie kilku czynności jednocześnie  przełączanie między czynnościami  wzajemna ochrona  synchronizacja
37
PAMIĘĆ DŁUGOOKRESOWA co robi?
 z niej uruchamia się system operacyjny  przechowuje programy i dane  dzięki niej nie trzeba wprowadzać oprogramowania i danych przy każdym włączeniu systemu
38
NIEDETERMINIZM
 w sensie reakcji na różne zdarzenia w różnej kolejności  różny ciąg przełączeń pomiędzy zadaniami
39
POŻĄDANE CECHY SYSTEMU OPERACYJNEGO
 wydajność  niezawodność  pielęgnowalność  mały rozmiar
40
WYDAJNOŚĆ SO lista
 średni czas między pracami wsadowymi  długość cyklu przetwarzania prac wsadowych  niewykorzystany czas procesora centralnego  wykorzystanie zasobów  czas reagowania  przepustowość informacyjna
41
PIELĘGNOWALNOŚĆ SO
 rozszerzanie systemu  usuwanie błędów  budowa modułowa z określoną komunikacją międzymodułową  dobra dokumentacja - użytkownika - instalatora/administratora - programisty - wewnętrzna
42
MAŁY ROZMIAR SO
 duży system operacyjny zajmuje pamięć  jest trudniejszy w opanowaniu  posiada potencjalnie większą liczbę błędów
43
PROCESOR czym jest? jaki może być?
Procesor jest elementem (jednostką) wykonującym rozkazy. Procesor może być:  sprzętowy - wykonuje ciąg operacji wybranych z listy rozkazów procesora. Pobiera rozkazy z pamięci operacyjnej i kolejno je wykonuje.  sprzętowo-programowy - jest wynikiem połączenia procesora sprzętowego z oprogramowaniem. Rozkazy interpretowane są przez oprogramowanie.
44
PROGRAM co to? formy
Program jest to statyczny zestaw instrukcji wykonywany przez jednostkę centralną (procesor) realizujący określone zadanie. Zestawy instrukcji mogą być w formie:  źródłowej (tekstowej) – zrozumiałej dla programisty  binarnej (wynikowej) zrozumiałej dla maszyny
45
PROCES co to? z czego sie sklada? co moze miec przydzielone?
Proces (zadanie) jest to dynamiczny ciąg działań wykonywanych za pośrednictwem programu lub sprzętu.  Proces można nazwać „wykonywanym programem”.  W danej chwili na jednym procesorze tylko jeden proces jest aktywny.  W skład procesu wchodzą: kod programu, licznik rozkazów, sekcja danych oraz stos.  Procesowi mogą być przydzielone: procesor, pamięć, dostęp do urządzeń we/wy oraz pliki.
46
STANY PROCESU
 Nowy – proces został utworzony.  Wykonywany (aktywny, bieżący) – instrukcje procesu są aktualnie wykonywane  Wykonywalny (gotowy) – proces czeka na przydział procesora  Oczekujący (niewykonywalny) – proces czeka na wystąpienie jakiegoś zdarzenia.  Zakończony – proces zakończył działanie.
47
WĄTEK co to? co współdzieli? różnice między wątkiem a procesem
Wątek to proces lekki – wątki jednego zadania współdzielą kod i dane.  Podstawowa cecha różniąca wątek od procesu: każdy proces posiada własną przestrzeń adresową, natomiast wątki posiadają wspólną sekcję danych oraz kod, ale różne stosy i liczniki rozkazów.  Wątek jest podstawową jednostką wykorzystania procesora.  Proces tradycyjny (nazywany ciężkim) jest równoważny zadaniu z jednym wątkiem.
48
WĄTKI I PROCESY W SYSTEMIE SOLARIS - BUDOWA jakie wątki?
 Wątek jądrowy złożony jest z danych i stosu. Przełączanie wątków jądrowych jest stosunkowo szybkie.  Proces lekki (LWP) zawiera blok kontrolny procesu z danymi rejestrowymi, informacjami rozliczeniowymi i informacjami dotyczącymi pamięci. Przełączanie procesów jest dość wolne.  Wątek poziomu użytkownika wymaga tylko stosu i licznika rozkazów nie są mu potrzebne zasoby jądra, więc ich przełączanie jest szybkie. Bez względu na ilość wątków poziomu użytkownika dla jądra widoczne będą tylko procesy lekkie zadania.
49
WĄTKI I PROCESY W SYSTEMIE SOLARIS - PODSUMOWANIE
 Dowolne zadanie może mieć wiele wątków poziomu użytkownika.  Wątki te mogą być planowane i przełączane bez interwencji jądra.  Wszystkie wątki poziomu użytkownika są od jądra niezależne.  Zablokowanie jednego z wątków użytkownika i podjęcie działania przez inny wątek nie wymaga przełączania kontekstu,  Każdy proces LWP jest przyłączony do jednego wątku jądrowego,  W zadaniu może być wiele procesów LWP, lecz są one używane tylko do komunikacji z jądrem.  Gdy jeden proces lekki w zadaniu zostanie zablokowany, inne mogą kontynuować działanie w ramach zadania
50
RODZAJE WSPÓŁBIEŻNOŚCI
 Współbieżność pełna.  Współbieżność pozorna.  Współbieżność koleżeńska  Współbieżność z wywłaszczeniem
51
WSPÓŁBIEŻNOŚĆ PEŁNA
 Każdy proces jest wykonywany do końca przez jeden procesor  Liczba procesów jest mniejsza bądź równa liczbie procesorów
52
WSPÓŁBIEŻNOŚĆ POZORNA
 Występuje wówczas, gdy liczba procesów przewyższa liczbę procesorów, czyli liczba czynności jest większa od liczby wykonawców.  System będzie dokonywał przełączeń pomiędzy procesami  Konieczne jest zapamiętanie stanu procesu przy przełączaniu.
53
WSPÓŁBIEŻNOŚĆ KOLEŻEŃSKA
 Dany proces sam zwraca sterowanie do systemu operacyjnego, aby mógł on wykonać zadanie kolejne.  Proces może zatem sam zarządzać czasem procesora.
54
WSPÓŁBIEŻNOŚĆ Z WYWŁASZCZENIEM
 Procesy same nie zwracają sterowania.  System wywłaszcza proces z procesora.  System operacyjny przekazuje sterowanie kolejnemu procesowi bez względu na proces poprzedni.
55
PROCESY o co współzawodniczą? po co współdziałają?
Procesy:  współdziałają w celu wykonania zadania zleconego przez użytkownika  współzawodniczą o zasoby systemu
56
KATEGORIE RODZAJÓW KOMUNIKACJI:
 wzajemne wyłączanie  synchronizacja  zakleszczenie
57
WZAJEMNE WYŁĄCZNIE
Polega na zapewnieniu, aby tylko jeden proces naraz mógł korzystać z zasobów niepodzielnych.
58
ZASOBY DZIELI SIĘ NA:
ZASOBY PODZIELNE  kilka procesów może korzystać z nich współbieżnie  zabranie zasobu przez jakiś proces inny odbywa się bez żadnej szkody.  Do zasobów podzielnych należą:  jednostki centralne  pliki przeznaczone wyłącznie do odczytu  pamięć wyłącznie do odczytu (kod lub stałe) ZASOBY NIEPODZIELNE  mogą być wykorzystywane tylko przez jeden proces  Do zasobów niepodzielnych należą:  większość urządzeń zewnętrznych  pliki otwarte do zapisu  pamięć przeznaczona do zapisu
59
NIEPODZIELNOŚĆ ZASOBÓW WYNIKA Z
 natury fizycznej danego zasobu, która nie pozwala na jego współdzielenie. Typowym przykładem jest drukarka.  tego, że czynności jednego procesu mogą zakłócać wykonywanie innego procesu.
60
SYNCHRONIZACJA
Procesy z założenia działają asynchronicznie.  Aby uzyskać zadowalającą współpracę, wyznacza się pewne punkty, w których procesy muszą synchronizować swoje działanie. Poza te punkty jeden proces nie może przejść do czasu, aż drugi proces mu nie zezwoli
61
ZAKLESZCZENIE (BLOKADA)
Jeżeli kilka procesów współzawodniczy o zasoby niepodzielne, to może się zdarzyć, że każdy z nich będzie chciał skorzystać z zasobów, których używają inne procesy. Co prowadzi do tego, że żaden nie będzie mógł dalej działać. Taka sytuacja nazywa się zakleszczeniem.
62
SEMAFORY
SEMAFOR – jest to nieujemna liczba całkowita, na której – z wyjątkiem nadawania wartości początkowych – mogą działać jedynie niepodzielne operacje czekaj i sygnalizuj. Zmiany wartości semafora muszą być wykonywane za pomocą operacji czekaj i sygnalizuj w sposób niepodzielny. Oznacza to, że gdy jeden proces modyfikuje wartość semafora, to inny proces nie może jednocześnie wartości tej zmieniać.
63
sekcja krytyczna
Fragment kodu, w którym proces odwołuje się do zasobów niepodzielnych
64
KONSTRUKCJE SYNCHRONIZACYJNE
 Monitor składa się z: - danych - procedur dostępu - programu inicjującego  region krytyczny
65
PRZEKAZYWANIE KOMUNIKATÓW
W skład narzędzi komunikacji międzyprocesowej wchodzą dwie podstawowe operacje:  nadaj (komunikat)  odbierz (komunikat).  Długość komunikatu może być stała lub zmienna.  Komunikaty mogą być kierowane do jednego procesu lub do wielu (rozgłoszeniowe).  Można żądać potwierdzenia otrzymania komunikatu.  Obie powyższe operacje mogą mieć różne postacie. operacja blokująca - czeka, aż proces odbierający przyjmie komunikat. operacja nieblokująca - po prostu umieszcza komunikat w pewnego rodzaju kolejce i pozwala, aby nadawca działał w dalszym ciągu.
66
Komunikacja bezpośrednia
Komunikacja bezpośrednia - każdy proces, który chce się komunikować, musi jawnie nazwać odbiorcę lub nadawcę uczestniczącego w tej wymianie informacji.
67
Komunikacja pośrednia
Komunikacja pośrednia - komunikaty są nadawane i odbierane za pośrednictwem skrzynek pocztowych, nazywanych także portami. Możliwość komunikacji między dwoma procesami istnieje tylko wtedy, gdy mają one jakąś wspólną skrzynkę pocztową.
68
Buforowanie komunikatów czym jest bufor? pojemności
Buforowanie komunikatów - bufor ma pewną pojemność określającą liczbę komunikatów, które mogą w nim czasowo przebywać.  Pojemność zerowa: Maksymalna długość kolejki wynosi 0, czyli łącze nie dopuszcza, by czekał w nim jakikolwiek komunikat. W tym przypadku nadawca musi czekać, aż odbiorca odbierze komunikat. Oba procesy muszą być zsynchronizowane.  Pojemność ograniczona: Kolejka ma skończoną długość n, może w niej zatem pozostawać co najwyżej n komunikatów.  Pojemność nieograniczona: Kolejka ma potencjalnie nieskończoną długość; może w niej oczekiwać dowolna liczba komunikatów. Nadawca nigdy nie jest opóźniany.
69
JĄDRO SYSTEMU co to?
Jądro systemu stanowi główny interfejs między sprzętem (surową maszyną), a systemem operacyjnym.
70
PODSTAWOWE UDOGODNIENIA SPRZĘTOWE do czego? skład, skład składu
Potrzebne w surowej maszynie do stworzenia środowiska, na którym można uruchomić bezpieczny i nowoczesny system operacyjny  mechanizm przerwań  obsługa zdarzeń zewnętrznych  przełączanie procesów  ochrona pamięci operacyjnej  wbudowana do sprzętu adresującego pamięć  procesy nie mogą zmienić przydzielonego im obszaru pamięci  procesy nie mogą odwoływać się do pamięci przydzielonej innym procesom  zegar czasu rzeczywistego Zegar czasu rzeczywistego - zegar sprzętowy generuje przerwania w ustalonych odstępach czasu. Jego przerwania są podstawą  planowania  rozliczania zasobów  przełączania procesów  zbiór rozkazów uprzywilejowanych  działają tylko w trybie nadzorcy Procesor musi posiadać co najmniej 2 tryby pracy:  nadzorcy – systemu operacyjnego, uprzywilejowany  użytkownika - nieuprzywilejowany
70
Części systemu, które mogą mieć kod w assemblerze
peryferia, jądro
70
Zadaniem jądra jest stworzenie środowiska, w którym będą występować procesy; mieści ono w sobie na co pozwala?
 obsługę przerwań  przełączanie procesorów od procesu do procesu  realizację mechanizmów służących do komunikacji między procesami
70
DESKRYPTOR PROCESU inne nazwy, co zawiera?
Każdy proces jest reprezentowany w systemie przez strukturę nazywaną deskryptorem procesu lub:  blokiem kontrolnym procesu  wektorem stanu Jest on strukturą zawierającą wszystkie istotne informacje o procesie np.:  identyfikator procesu (nazwę procesu)  identyfikator stanu procesu  pulę informacji o procesie, które powinny być zapamiętane wtedy, gdy procesor wstrzymuje jego wykonywanie.
71
Jądro systemu składa się z trzech programów:
 programu wstępnej obsługi przerwań  programu zwanego dyspozytorem  operacji czekaj i sygnalizuj (dwóch procedur, które realizują operacje służące do komunikacji między procesami)
71
Środowisko ulotne inne nazwy, co zawiera (dokładnie) i po co?
Środowisko ulotne (kontekst, deskryptor sprzętowy) procesu definiuje się jako zbiór danych, które muszą być zapamiętane podczas wstrzymywania procesu, a odtworzone podczas wznawiania, aby proces działał poprawnie. Do tych informacji należą:  wartości wszystkich rejestrów procesora  wartości rejestrów stosowanych do adresowania pamięci operacyjnej
71
Jądro systemu zawiera również strukturę danych nazwaną tablicą główną. Zawiera ona szereg danych opisujących:
 system operacyjny  jego bieżący stan  informacje o sprzęcie  informacje o procesach  … itd.
71
WSTĘPNA OBSŁUGA PRZERWAŃ od czego zależna? zadania
Wstępna obsługa przerwań jest zależna od sprzętu, zadaniem jej jest:  określić źródło przerwania  zainicjować obsługę przerwania.
72
WSTĘPNA OBSŁUGA PRZERWAŃ ze względu na ilość przerwań
jedno: W systemie z tylko jednym przerwaniem należy wykonać ciąg testów, nazywany łańcuchem przeskoków. Oczywistą korzyść przyniesie takie ułożenie łańcucha, by najczęstsze źródła przerwań znalazły się na jego początku. wiele: W systemach umożliwiających obsługę wielu przerwań oddzielnie wstępna obsługa przerwań jest zbędna.  źródło przerwania jest określane sprzętowo na podstawie sygnału przerwania  obsługa przerwania jest inicjowana przez procesor wiele, za mało linii: W systemach, w których ilość linii przerwań jest mniejsza od ilości urządzeń zgłaszających przerwanie, wstępna obsługa przerwań jest grupowana tylko dla przerwań wspólnych dla kilku urządzeń.
73
WSTĘPNA OBSŁUGA PRZERWAŃ jak może zmienić stan procesu?
W wyniku przerwania może nastąpić zmiana stanu procesu:  z wykonywanego na wykonywalny  z wykonywalnego na wykonywany  z niewykonywalnego na wykonywany albo wykonywalny
74
DYSPOZYTOR co robi?, inna nazwa
 Zadaniem dyspozytora jest przydzielanie procesora centralnego do procesów.  Dyspozytor dokonuje przełączeń procesów.  Dyspozytor jest nazywany planistą niskiego poziomu.
75
DYSPOZYTOR przechodzenie gdy
Do dyspozytora przechodzi się w przypadku:  przerwania zewnętrznego zmieniającego stan jakiegoś procesu  po odwołaniu do systemu wstrzymującym wykonywanie bieżącego procesu  po wykryciu błędu w bieżącym procesie.
76
Działanie dyspozytora: jak dziala
 Jeżeli bieżący proces można kontynuować i ma najwyższy priorytet, to wznów go. Jeżeli nie, to...  Zapamiętaj środowisko ulotne bieżącego procesu.  Odtwórz środowisko ulotne pierwszego procesu do wykonania z kolejki procesora.  Podejmij wykonywanie tego procesu (przekaż mu sterowanie).
77
KOLEJKA PROCESORA co to? rodzaje
Jest to lista zawierająca wszystkie procesy wykonywane i wykonywalne, które można w każdej chwili wznowić. Są trzy podstawowe rodzaje kolejek:  kolejka priorytetowa - procesy są uporządkowane zgodnie z priorytetami.  kolejka rotacyjna - pierwszy proces po wykonaniu przechodzi na koniec kolejki.  kolejka wielopoziomowa ze sprzężeniem zwrotnym:  procesy o najwyższym priorytecie są często wybierane, ale na krótki czas,  procesy o najniższym priorytecie są rzadko wybierane, ale na długi czas,  priorytet procesu wzrasta, gdy proces nie wykorzystuje przydzielonego mu czasu,  priorytet procesu maleje, gdy procesowi brakuje czasu.
78
Aby proces stał się wykonywalny należy:
 zmienić stan w deskryptorze procesu  dołączyć deskryptor procesu do kolejki procesora na pozycji wskazywanej przez priorytet procesu.
79
GŁODZENIE PROCESÓW co to? rozwiązanie
 Jest to niemożność wykonania procesu wykonywalnego z powodu długiego oczekiwania na przydział procesora.  Dotyczy procesów o niskim priorytecie w mocno obciążonym systemie komputerowym z powodu stałego napływu procesów o wyższych priorytetach.  Rozwiązaniem jest podwyższanie priorytetów procesów, które długo oczekują na wykonanie.
80
PODWYŻSZANIE PRIORYTETÓW PROCESÓW INTERAKCYJNYCH na czym polega?
 Przyznawany procesowi początkowy priorytet (podstawowy) jest traktowany jako punkt startowy.  Każdy proces, który podejmie jakieś działanie, otrzymuje tymczasowo wyższy priorytet.  Za każdym razem, gdy dyspozytor będzie wybierać dany proces, priorytet tego procesu będzie zmniejszany aż do uzyskania priorytetu podstawowego.  Podwyższanie priorytetów jest wykorzystywane do osiągnięcia dobrej pracy interakcyjnej kosztem tych procesów, które wykonują mało pracy interakcyjnej lub w ogóle nie są interakcyjne
81
BUDOWA STRUKTURY SEMAFORA
 Semafory mogą być nazwane lub nie.  Kolejka semafora to lista procesów niewykonywalnych, które wykonały operację czekaj na semaforze = 0.  Organizacja kolejki zawiera opis organizacji kolejki lub wskaźnik do programu dołączającego procesy do kolejki i usuwające je z niej.  Bit użycia mówi, czy w danej chwili są wykonywane operacje na semaforze (jest w użyciu). Służy do zapewnienia niepodzielności operacji czekaj i sygnalizuj.
82
NIEPODZIELNOŚĆ OPERACJI semafora
 W dowolnej chwili tylko jeden proces może wykonywać operacje czekaj i sygnalizuj na tym samym semaforze.  Mechanizm ten jest realizowany przez operacje zajmij i uwolnij.
83
OPERACJE ZAJMIJ I UWOLNIJ na czym polega
 Operacja zajmij:  Pewne miejsce w pamięci jest przeznaczane na sygnalizator (bit użycia).  Sprawdza wartość sygnalizatora i ustawia ją na zero (rozkaz „sprawdź i ustaw” (BTR)).  Jeśli wartość sygnalizatora była różna od zera, proces może być wykonywany; w przeciwnym wypadku rozkaz „sprawdź i ustaw” jest wykonywany w pętli aż do zmiany wartości sygnalizatora przez inny proces.  W innej metodzie występuje zamiana wartości sygnalizatora z komórką pamięci, w której wcześniej umieszczono zero (rozkaz swap (XCHG)).  Operacja uwolnij:  Nadaje sygnalizatorowi wartość różną od zera.
84
AKTYWNE CZEKANIE kiedy? co to?
 Jest wykonywane wewnątrz operacji zajmij.  Jest pętlą, w której podejmowane są próby wykonania operacji aż do chwili zmiany wartości sygnalizatora.
85
Zbiór rozkazów uprzywilejowanych: lista
 włączanie i wyłączanie przerwań  przełączanie procesora między procesami  obsługa rejestrów pamięci wirtualnej  operacje wejścia-wyjścia  sterowanie procesorem
86
Przełączenie z trybu użytkownika do trybu nadzorcy: kiedy?
 odwołanie do nadzorcy(systemu) - w celu wykonania rozkazu uprzywilejowanego lub funkcji systemowej  przerwanie  błąd w procesie użytkownika  próba wykonania rozkazu uprzywilejowanego
87
TWORZENIE ADRESÓW
Kompilacja  adres umieszczenia kodu jest znany w trakcie kompilacj Ładowanie  adres jest znany w trakcie ładowania Wykonanie  adres może się zmieniać w trakcie wykonywania procesu
88
PAMIĘĆ WIRTUALNA co zapewnia?
zapewnia odwzorowanie przestrzeni adresów na przestrzeń pamięci logiczne na fizyczne logiczną strukture
89
Pamięć wirtualna może być implementowana w formie:
 Rejestru bazowego i granicznego  Stronicowania  Segmentacji  Segmentacji ze stronicowaniem
90
REJESTR BAZOWY I GRANICZNY na czym polega? co jest ładowane gdzie?
 A = f(a) = RB + a  Gdy proces ładowany jest do pamięci, wtedy najmniejszy adres zajęty przez proces jest umieszczany w rejestrze bazowym i wszystkie adresy w programie traktowane są jako adresy względne w odniesieniu do adresu bazowego.  Odwzorowanie polega zatem na dodawaniu adresu użytego przez proces do adresu bazowego.  Przemieszczanie można uzyskać przez przepisanie bloku pamięci i wpisanie nowego adresu do rejestru bazowego. Ochronę pamięci zapewnia rejestr graniczny
91
FRAGMENTACJA zewnętrzna co to? kiedy? co się robi kiedy występuje?
 W miarę ładowania i usuwania procesów z pamięci operacyjnej pamięć ulega „rozdrobnieniu”. Zjawisko to nazywane jest to fragmentacją zewnętrzną.  W pamięci powstają „dziury”, po zwolnionych blokach, które nie zostały w pełni zapełnione przez bloki innych procesów.  Upakowanie pamięci jest stosowane, gdy pojawia znaczna fragmentacja zewnętrzna pamięci.  Bloki pamięci przenoszone są tak, aby pozostało w niej najmniej „dziur” lub nie było ich wcale
92
STRONICOWANIE na co dzielona przestrzeń adresów? na co dzielona przestrzeń pamięci? gdzie strony? jaka tablica? jaka fragmentacja?
Przestrzeń adresów jest dzielona na równe strony (2n najczęściej 4 KB) Przestrzeń pamięci dzielona jest na ramki stron Strony z przestrzeni adresów umieszczane są w ramkach stron przestrzeni pamięci. Tablica deskryptorów stron fragmentacja wewnętrzna, brak zewnętrznej
93
STRONICOWANIE Pamięć wirtualna widziana przez system składa się z: Korzystanie z pamięci wirtualnej:
 pamięci operacyjnej  pamięci pomocniczej (obszaru wymiany) w postaci:  pliku wymiany  partycji wymiany Korzystanie z pamięci wirtualnej:  odesłanie strony z pamięci operacyjnej do pomocniczej  i pobranie jej z powrotem z pamięci pomocniczej do operacyjnej w inne miejsce Korzystanie z pamięci wirtualnej - wymiana:  odesłanie strony z pamięci operacyjnej do pomocniczej  pobranie innej z pamięci pomocniczej do operacyjnej w jej miejsce
94
STRONICOWANIE Zadania:
 Wykonywanie operacji odwzorowywania adresów, czyli określania, do której ramki odnosi się adres generowany przez proces.  Przesyłanie stron z pamięci pomocniczej do pamięci głównej oraz odsyłanie nieużywanych już stron z powrotem do pamięci pomocniczej.
95
Pamięć asocjacyjna inna nazwa? czym adresowana? do czego? w co wbudowana?
 bardzo szybka pamięć wbudowana w procesor  adresowana zawartością  służąca do przechowywania ostatnio używanych deskryptorów stron (lub segmentów) nazwy TLB, skojarzeniowa
96
PAMIĘĆ PODRĘCZNA składa się z poziomów inne nazwy? co przechowuje? na co pozwala? w co wbudowana?
 Nazywana również notatnikową lub cache  Przechowuje ostatnio używane fragmenty pamięci operacyjnej (kilkadziesiąt bajtów) i ich adresy  Procesor nie musi odwoływać się do pamięci operacyjnej, jeśli właściwy fragment jest w pamięci notatnikowej  Bardzo szybka  Najczęściej wbudowana do wnętrza procesora Może składać się z kilku poziomów:  poziom 1 – do kilkudziesięciu kilobajtów  może występować w architekturze Harvard
97
STRONICOWANIE tablice
Haszowana tablica stron – najczęściej dla systemów 64-bitowych. Z powiązanej listy występującej w tablicy wybiera się element dopasowany do strony p. Odmianą haszowanej tablicy stron jest tablica stron grupowanych - Każdy wpis odnosi się do np. kilkunastu stron Odwrócona tablica stron - jedna tablica dla całego systemu - UltraSARC, PowerPC. Często jest haszowana.
98
Strony dzielone na czym to polega?
część stron może być dzielona przez kilka procesów np. strony zawierające kod (wznawialny - czysty) programu lub stałe.
99
Stronicowanie na żądanie na czym polega? przebieg?
– do pamięci sprowadzanie są tylko niektóre strony procesu (leniwa wymiana), pozostałe są pobierane tylko wówczas, gdy są potrzebne. Przebieg:  błąd braku strony  sprowadzenie brakującej strony do wolnej ramki  uaktualnienie tablicy stron  wznowienie procesu
100
SEGMENTACJA na czym polega?
Segmentacja polega na podziale pamięci przydzielonej procesowi na niezależne fragmenty zwane segmentami. Odzwierciedla ona organizację logiczną pamięci. Segmenty mogą występować w kilku tablicach deskryptorów segmentów, stają się wówczas segmentami dzielonymi.
101
SEGMENTACJA Mogą występować dwie tablice deskryptorów segmentów: jakie? dla kogo?
globalna dla systemu operacyjnego lokalna dla każdego procesu informacja o niej znajduje się w tablicy globalnej
102
SEGMENTACJA A STRONICOWANIE cele, rozmiar, w jaki się odbywa, co zapewnia
 Celem segmentacji jest logiczny podział pamięci, natomiast stronicowania fizyczny.  Strony mają ustalony rozmiar, segmenty mogą być dowolne.  Stronicowanie odbywa się w sposób sprzętowy i przekroczenie zakresu strony powoduje przejście do następnej, w segmentacji podział adresu jest logiczny i nie powoduje przejścia do następnego segmentu.  Segmentacja zapewnia poziomy ochrony kodu i danych.
103
SEGMENTACJA ZE STONICOWANIEM na czym polega? co eliminuje?
 Segmentacja ze stronicowaniem to połączenie cech dwóch metod implementacji pamięci wirtualnej (segmentacji i stronicowania).  Polega ona na stronicowaniu segmentów. Pozwala to wyeliminować fragmentację zewnętrzną przy uproszczeniu przydziału:  każda pusta ramka może być użyta na potrzebną stronę.  W takiej organizacji pamięci każdy segment może posiadać własną tablicę stron. Przy czym nie musi ona być pełna, a zawiera tyle stron ile jest potrzebne segmentowi.
104
Strategie przydziału pamięci dzieli się na:
 Przydział ciągły – podzielenie pamięci na obszary. Jeden obszar może zajmować dokładnie jeden proces.  Stopień wieloprogramowości ograniczony przez liczbę obszarów.  Przydział ciągły nie jest dobrym rozwiązaniem ze względu na fragmentację wynikającą z pozostałych po procesach dziur. =======================================  strategie rozmieszczenia służą do określania miejsca w pamięci głównej, do którego mają być załadowane dane lub kod, to znaczy do wybierania podzbioru niezajętych obszarów  strategie wymiany  służą do określenia bloków, które można usunąć z pamięci operacyjnej, aby powstały w niej wolne obszary  strategie pobierania  służą do określania momentu, w którym bloki mają być załadowane do pamięci operacyjnej z obszaru wymiany
105
STRATEGIE PRZYDZIAŁU PAMIĘCI  Przydział ciągły na czym polega? jaki stopień wileoprogramowości? jaka fragmentacja?
 Przydział ciągły – podzielenie pamięci na obszary. Jeden obszar może zajmować dokładnie jeden proces.  Stopień wieloprogramowości ograniczony przez liczbę obszarów.  Przydział ciągły nie jest dobrym rozwiązaniem ze względu na fragmentację wynikającą z pozostałych po procesach dziur.
106
ROZMIESZCZENIE BEZ STRONICOWANIA co robi system? strategie rozmieszczania
 System prowadzi ewidencję dziur, wiadomo ile jest dziur i jakie są duże  Wyróżniamy następujące strategie rozmieszczenia:  najlepsze dopasowanie  dziury są uporządkowane rosnąco pod względem rozmiaru  system szuka bloku najmniejszego spełniającego warunek rozmiaru  najgorsze dopasowanie  dziury są uporządkowane malejąco pod względem rozmiaru  system umieszcza proces w pierwszej dziurze na liście  pierwsze dopasowanie  dziury są uporządkowane rosnąco pod względem ich adresów bazowych  system przydziela pierwszą z możliwych dziur  algorytm bliźniaków  Rozmiar dziur jest zawsze = 2n  Gdy potrzebna ilość pamięci jest mniejsza niż połowa dziury, system dzieli wybraną dziurę na dwie równe części do momentu aż dziura będzie odpowiednia. Blok umieszczany w powstałej dziurze.  Jeśli nie ma wystarczająco dużej dziury system łączy dwie takie same sąsiadujące dziury w jedną dwa razy większą.
107
ROZMIESZCZENIE ZE STRONICOWANIEM co występuje? jaka fragmentacja?
 Nie ma potrzeby przechowywania listy dziur  Występuje lista wolnych stron  Nie powoduje fragmentacji zewnętrznej  Występuje fragmentacja wewnętrzna
108
WYMIANA ZE STRONICOWANIEM czego żąda proces? jaka strona jest odsyłana i w jakim przypadku?
Proces żąda dostępu do strony w obszarze wymiany. W przypadku braku wolnych ramek na dysk jest odsyłana strona:  najdawniej używana  w deskryptorze strony musi być zapisany czas odwołania do strony  stosowanie tego algorytmu jest obciążone kosztami zapisywania czasu odwołań do wszystkich stron  najmniej używana  w tym algorytmie należy odnotowywać częstość użycia strony  wadą tej metody jest fakt, że ostatnio załadowana strona może być nierozważnie wymieniona  można zabronić wymiany stron załadowanych podczas określonego przedziału czasu  najdawniej załadowana  algorytm ten wymaga zapisu ciągu stron ładowanych do pamięci, co pozwala wskazać najdawniej załadowane strony  pomija się w nim fakt, że najwięcej odniesień może być do strony, która najdłużej znajduje się w pamięci
109
WYMIANA BEZ STRONICOWANIA
Wymieniane segmenty posiadają różny rozmiar, zależy od tego sposób wymiany  jeżeli do pamięci ma być załadowany mały segment wystarczy odesłać tylko mały segment  jeśli segment jest duży, to trzeba odesłać duży segment lub kilka mniejszych  może wystąpić konieczność upakowania pamięci
110
WYMIANA BEZ STRONICOWANIA jak działa? jaki algorytm można zastosowac?
 Najprostszy algorytm polega na zastąpieniu jednego segmentu oraz sąsiedniej dziury, których łączny obszar wystarczy do pomieszczenia nowego segmentu  Gdy takich segmentów jest kilka można zastosować algorytm najdawniej załadowanych, bądź najmniej używanych segmentów
111
Pobieranie na żądanie: jaki błąd i co później?
 wystąpienie błędu braku bloku (segmentu lub strony) generuje żądanie pobrania bloku, a strategie rozmieszczania służą do przydziału pamięci dla nowego bloku  w systemach bez stronicowania przesyła się bloki najczęściej na żądanie
112
Pobieranie przewidujące:
 system może pobierać nowe bloki w oparciu o:  znajomość konstrukcji programu  wnioskowanie z dotychczasowego działania procesu
113
ZASADA LOKALNOŚCI
 Wiele programów wykazuje cechę zwaną działaniem w kontekście.  Oznacza to, że w dowolnie małych przedziałach czasu program działa wewnątrz konkretnego modułu logicznego.  Wykonuje on rozkazy należące do jednej procedury lub pobiera dane z jednego obszaru.  Odniesienia do pamięci wydają się grupować wewnątrz małych obszarów przestrzeni adresów  lokalność odniesień jest jeszcze większa w przypadku częstego występowania pętli  Do zmiany tych obszarów dochodzi tylko okresowo.  Procesy chwilowo wykonują się lokalnie
114
SZAMOTANIE co to? jak ograniczyc?
Szamotanie to duża aktywność stronicowania, system spędza więcej czasu na stronicowaniu (wymianie) niż na wykonaniu procesów  Gdy proces nie ma wystarczającej ilości ramek, szybko może nastąpić brak strony.  Stronę brakującą system sprowadza do pamięci operacyjnej, wymieniając z inną stroną.  Może dojść do sytuacji, w której wymieniona strona (już nieobecna w pamięci) jest potrzebna dla aktywnego procesu, następuje ponowne jej sprowadzenie do pamięci.  W rezultacie w systemie będą następowały po sobie kolejne braki stron i ich wymiany.  Procesy będą wskazywać braki stron, system dokona wymiany stron, po czym sprowadzi je z powrotem.  Efekt szamotania można ograniczyć za pomocą lokalnego algorytmu zastępowania  Przy zastępowaniu lokalnym, gdy jakiś proces zaczyna się szamotać wówczas nie wolno mu zabierać ramek innego procesu i doprowadzać go także do szamotania  Aby zapobiec szamotaniu należy dać procesowi tyle ramek, ile potrzebuje.
115
Metodą mierzenia szamotania jest mierzenie częstości braków stron:
 ustala się górną i dolną granicę pożądanego poziomu braków stron  jeśli proces przekracza górną granicę, to dostaje dodatkową ramkę  jeśli częstość występowania braków stron spada poniżej dolnej granicy to usuwa się ramkę procesu
116
SZAMOTANIE – MODEL STREFOWY
W trakcie wykonywania proces przechodzi z jednej strefy do innej.  Strefa to zbiór stron pozostających we wspólnym użyciu.  Program składa się z wielu stref, które mogą na siebie zachodzić.  Procesowi przydziela tyle ramek, aby mógł w nich zmieścić swoją bieżącą strefę.  Gdy przydzielone jest mniej ramek, niż wynosi rozmiar bieżącej strefy, wówczas proces zaczyna się szamotać.
117
SZAMOTANIE – MODEL ZBIORU ROBOCZEGO
 Opiera się na założeniu, że program ma charakterystykę strefową.  Parametr delta definiuje okno zbioru roboczego.  Za zbiór roboczy przyjmuje się zbiór stron, do których nastąpiło delta ostatnich odwołań.  Jeśli zbiór roboczy procesu znajduje się w pamięci, wówczas proces wykonuje się bez szamotania.  Strona aktywnie używana znajduje się w zbiorze roboczym.  Gdy strona przestanie być używana, wypada ze zbioru roboczego po delta jednostkach czasu liczonych od ostatniego odwołania do niej.
118
Dokładność zbioru roboczego zależy od wyboru parametru delta:
 Jeśli jest za mały – nie obejmie całego zbioru  Jeśli za duży, to może zachodzić na kilka stref programu  W skrajnym przypadku, gdy delta jest nieskończenie duże, zbiorem roboczym staje się zbiór stron, z którymi proces kontaktował się w trakcie działania.
119
URZĄDZENIA WEJŚCIA-WYJŚCIA najczęściej posiadają rejestry
 stanu  sterowania  danych wejściowych  danych wyjściowych
120
REALIZACJE OPERACJI WEJŚCIA-WYJŚCIA
 Programowe wejście-wyjście - odpytywanie  procesor zleca obsługę i odpytuje urządzenie do jej zakończenia  Operacje wejścia-wyjścia sterowanie przerwaniami  kolejne dane są transmitowane w kolejnych przerwaniach  Bezpośredni dostęp do pamięci (DMA)  procesor zleca wykonanie transmisji kończącej się przerwaniem
121
Urządzenia wirtualne jak nazywane? po co? jak się odwołać?
 nazywane strumieniami, plikami, zbiorami danych  poprzez nie następuje komunikacja z urządzeniami fizycznymi  odwołując się do urządzenia najpierw należy uzyskać dostęp do niego od systemu, a po zakończeniu użytkowania należy je zwolnić.  Programy działają na wirtualnych urządzeniach (strumieniach) zamiast na rzeczywistych.
122
PODPROGRAMY OBSŁUGI URZĄDZEŃ cecha, zadania
 Programy te muszą być wielowejściowe, tzn. wiele procesów może się do nich odwoływać.  Ich podstawowe zadania to:  tworzenie bloków zamówień wejścia – wyjścia,  informowanie procesu obsługi, że został dla niego przygotowany blok zamówień.
123
Proces użytkownika zgłasza zamówienia do systemu korzystając z funkcji: jak przebiega? jaki problem ją opisuje?
 Procedura OPWEWY jest wielowejściowa (może być wywołana przez kilka procesów naraz). Przebiega ona w następujących krokach:  odszukanie urządzenia w deskryptorze procesu  sprawdzenie parametrów wywołania procedury z opisem urządzenia  zainicjowanie obsługi urządzenia  utworzenie bloku zamówień wejścia-wyjścia (BZWEWY) i dodanie go do kolejki zamówień urządzenia  wysłanie sygnału do procesu obsługi urządzenia informującego o nowym zamówieniu  sygnalizuj (zamówienie niezałatwione) PRODUCENT-KONSUMENT
124
PROCESY OBSŁUGI URZĄDZEŃ czym się zajmuje?
 Obsługą zamówień umieszczonych w kolejce urządzenia oraz powiadamianiem procesów nadawców o wykonaniu operacji we/wy zajmuje się proces obsługi urządzeń.  Każde urządzenie posiada osobny proces, jednak podobieństwa pozwalają użyć wspólnych programów.  Różnice spowodowane są odmiennymi cechami konkretnych urządzeń.
125
PODPROGRAM OBSŁUGI PRZERWANIA dla urządzeń
Transmisja przez kanał kończy się przerwaniem: POP: lokalizacja deskryptora urządzenia sygnalizuj(operacja wykonana)
126
OBSŁUGA WEJŚCIA-WYJŚCIA może odbywać się na dwa sposoby:
może odbywać się na dwa sposoby:  proces zamawiający może wykonywać się równolegle z operacją we/wy  sam musi zadbać o własne wstrzymanie przed odwołaniem się do informacji pochodzącej z wywołanej operacji; musi on wykryć zakończenie operacji we/wy  procedura we/wy, będąca częścią systemu operacyjnego, wstrzymuje proces do zakończenia operacji we/wy  semafor zamówienie załatwione, będący semaforem lokalnym powoduje niezbędne opóźnienie; programista aplikacji nie ponosi odpowiedzialności za wykrycie zakończenia operacji we/wy, ale traci możliwość szybszego wykonywania procesu.
127
BUFOROWANIE WEJŚCIA-WYJŚCIA można podzielić na:
Buforowanie można podzielić na:  buforowanie wejścia  buforowanie wyjścia  buforowanie podwójne + dwa bufory pracują na zmianę  buforowanie wielokrotne + usuwa zatory w dostępie do urządzeń we/wy
128
URZĄDZENIA PLIKOWE dostęp
URZĄDZENIA PLIKOWE  Założenie, iż do zapisu ze strumienia wystarczy jedynie identyfikator urządzenia docelowego, nie jest spełnione w przypadku urządzeń o dostępie swobodnym  dysk twardy, płyta optyczna.  W takiej sytuacji, niezbędne jest również podanie obszaru, gdzie dany strumień się znajduje lub skąd ma zostać pobrany.  W tego rodzaju nośnikach każdy obszar nazywany jest plikiem  posiada on dowolny rozmiar oraz opisującą go jednoznaczną nazwę.
129
SPOOLER zadania Działanie spoolera:
równomierne rozłożenie zamówień i przeciwdziałanie powstawaniu wąskich gardeł. Działanie spoolera:  sprawdzenie czy jest coś w kolejce  wybranie pliku i otwarcie go  wykonywanie transmisji do urządzenia do czasu napotkania końca pliku  zasygnalizowanie zakończenia przetwarzania pliku Czyni zasób niepodzielny podzielnym.  Nie można go stosować w systemach czasu rzeczywistego (operacje we/wy muszą w tym przypadku być wykonywane natychmiast).
130
MACIERZE DYSKOWE – RAID0
 Przestrzeń dyskowa podzielona jest na paski.  Paski są umieszczane cyklicznie na kolejnych dyskach.  Zwiększenie szybkości dostępu do dysku  Brak zabezpieczenia danych na wypadek awarii dysku
131
MACIERZE DYSKOWE – RAID1
 Przestrzeń dyskowa podzielona jest na paski.  Paski są kopiowane na kolejnych dyskach (kopia lustrzana). mirroring lub duplexing  Zwiększenie szybkości odczytu dostępu do dysku.  Zabezpieczenie danych na wypadek awarii dowolnego dysku.  Połowa pojemności dostępna dla systemu.
132
MACIERZE DYSKOWE – RAID2
 Paski są bardzo małe.  Stosuje się kod nadmiarowy (korygujący) (f) pozwalający skorygować jeden błąd i wykryć drugi.
133
MACIERZE DYSKOWE – RAID3
 Parzystość z przeplotem bitów.  Paski są bardzo małe.  Błędy wykrywają same dyski na podstawie sum CRC.  Stosuje się parzystość pozwalającą skorygować błąd na jednym dysku.
134
MACIERZE DYSKOWE – RAID4
 Parzystość z przeplotem bloków.  Paski są wielkości bloków.  Błędy wykrywają same dyski na podstawie sum CRC.  Stosuje się parzystość pozwalającą skorygować błąd na jednym dysku.
135
MACIERZE DYSKOWE – RAID5
 Parzystość rozproszona z przeplotem bloków.  Paski są wielkości bloków.  Błędy wykrywają same dyski na podstawie sum CRC.  Stosuje się parzystość pozwalającą skorygować błąd na jednym dysku.
136
MACIERZE DYSKOWE – RAID6
 Parzystość rozproszona z przeplotem bloków i podwójną nadmiarowością.  Paski są wielkości bloków.  Błędy wykrywają same dyski na podstawie sum CRC.  Stosuje się dwie funkcje pozwalające skorygować błąd na dwu dyskach.
137
RAID 0+1 RAID 1+0 RAID 5+0 RAID 5+1
pierwsze pracuje w drugim RAID 0+1 Lustrzanie pracują dwa zestawy dysków w RAID0 (dwa RAID0 w RAID1) RAID 1+0 Dwa zestawy dysków lustrzanych pracują w RAID0 (dwa RAID1 w RAID0)  RAID 5+0 - Dwa zestawy RAID5 pracują w RAID0  RAID 5+1 - Dwa zestawy RAID5 pracują w RAID1
138
ADRESACJA SEKTORÓW podział
 Adresacja trójwymiarowa: CHS  Adresacja liniowa: LBA
139
Plik jest zbiorem danych traktowanych jak pewna całość; czym jest? gdzie zapisywany? jaki format? metody dostępu
 jest jednostką logiczną dostępu do danych,  system wykonuje na nim pewne operacje,  zapisywany jest w blokach nośnika (512- 4096).  Format pliku może być:  dokładnie określony  pliki baz danych  swobodny  pliki tekstowe METODY DOSTĘPU  dostęp sekwencyjny  dostęp bezpośredni (swobodny)  dostęp indeksowy  wymaga dodatkowego pliku indeksu
140
KATALOGI PLIKÓW co to i co zawiera? podział
to tabele zawierające wpisy z informacjami o plikach:  nazwa pliku  adres pliku w pamięci pomocniczej  typ pliku (tekstowy, binarny)  atrybuty - kontrola dostępu  inf. administracyjne - np. data i czas  jednopoziomowy  główny, użytkownika  wielopoziomowy
141
Pliki w systemie wielodostępnym mogą być współużytkowane. Trzeba wprowadzić metody ochrony danych przed niepowołanym dostępem:
 lista kontroli dostępu  dowiązania  maska ochrony pliku Maska ochrony pliku może określać prawa dostępu dla różnych klas użytkowników:  O- właściciel (owner)  G- członkowie grupy lub partnerzy (group)  W- inni (world) Typowe prawa dostępu:  R- prawo czytania (read)  W- prawo pisania (write)  E/X- prawo wykonywania (execute)  D- prawo kasowania (delete)
142
MASKA OCHRONY PLIKU
Właściciel może określić maskę ochrony System rozpoznaje użytkownika po kodzie identyfikacji użytkownika, sprawdza, czy jest on właścicielem oraz czy należy do określonej grupy następnie nadaje mu prawa do pliku.
143
LISTA KONTROLI DOSTĘPU do czego dołączona? co zawiera? porównanie względem maski gdzie występuje?
 jest dołączona do pliku lub katalogu i zawiera pełną informację o tym, którzy użytkownicy mają dostęp (i jaki) do określonego pliku.  jest bardziej elastyczna niż maska ochrony pliku,  występuje w systemach VMS oraz Windows NT+,  powoduje wolniejsze otwieranie pliku, gdyż trzeba sprawdzić wszystkie pozycje na liście.
144
DOWIĄZANIA na czym polegają? podział
DOWIĄZANIA polegają na umożliwieniu odwoływania się do współdzielonego pliku z różnych katalogów DOWIĄZANIA TRWAŁE zostaje dodana struktura i-węzła DOWIĄZANIA SYMBOLICZNE wskazana zostaje nazwa pliku
145
MBR co to? gdzie? co robi?
MBR – MASTER BOOT RECORD  BIOS ładuje MBR pod adres 0000:7c00h  uruchamia kod rozruchowy  kod ten ładuje BS aktywnej partycji – zawierający program ładujący (booloader)  bootloader wczytuje system operacyjny
146
GPT
GUID PARTITION TABLE - GPT  Nagłówek GPT zawiera  liczbę pozycji w tablicy partycji (zwyczajowo 128)  rozmiar pozycji w tablicy partycji  położenie zapasowej kopii opisu tablicy partycji  położenie tablicy partycji  unikatowy identyfikator dysku  sumy kontrolne.  Opis partycji zawiera  typ partycji  unikatowy identyfikator  początkowy i końcowy numer LBA  atrybuty  nazwę  Obsługuje dyski > 2 TB
147
Pamięć pomocnicza podzielona jest na bloki. Występują następujące techniki dynamicznego przydzielania bloków pamięci pomocniczej dla plików:
 system plików zwartych (przydział ciągły)  łańcuch powiązanych bloków (przydział listowy)  mapa plików (tablica przydziału plików)  bloki indeksów (przydział indeksowy)
148
ŁAŃCUCH POWIĄZANYCH BLOKÓW (PRZYDZIAŁ LISTOWY)
 Kilka bajtów każdego bloku w pliku służy jako wskaźnik do następnego bloku. Ostatni blok zawiera wskaźnik pusty (na ogół 0).  Pozycja w katalogu zawiera informacje o pierwszym (ostatnim) bloku pliku.  Dostęp do pliku jest z sekwencyjny, ponieważ do każdego bloku można jedynie dotrzeć posuwając się w dół wzdłuż łańcucha.
149
MAPA PLIKÓW (TABLICA PRZYDZIAŁU PLIKÓW)
 Stan dysku jest zapisywany w mapie plików, nazywanej tablicą przydziału plików, w której każdy blok na dysku jest reprezentowany przez jeden wpis w mapie.  Pozycja pliku w katalogu użytkownika wskazuje na numer pierwszego bloku pliku; element mapy o tym samym numerze wskazuje na kolejny element mapy/blok pliku itd. Ostatni blok w pliku jest reprezentowany przez wskaźnik pusty.  Zajętość obszaru pamięci pomocniczej zależy od rozmiarów elementów mapy (12-32bity) oraz wielkości pamięci pomocniczej.  W elementach mapy plików mogą się znajdować dodatkowe informacje nadmiarowe takie jak:  numer identyfikacyjny pliku, który może się przydać do odtwarzania pliku po uszkodzeniu systemu.  Dostęp do elementów mapy plików jest sekwencyjny, co zwalnia dostęp do pliku.  W celu ułatwienia rozszerzania i kasowania pliku, w pozycjach katalogu użytkownika można umieścić wskaźnik do ostatniego elementu mapy.
150
BLOKI INDEKSÓW (PRZYDZIAŁ INDEKSOWY)
 Wskaźniki dowiązań do każdego pliku są pamiętane w odrębnych blokach indeksów na dysku.  Dla dużego pliku trzeba przeznaczyć kilka bloków indeksów powiązanych w łańcuch, każdy blok indeksów musi mieć wskaźnik do następnego bloku.  Pozycja w katalogu wskazuje na pierwszy blok w łańcuchu bloków indeksów  Największą zaletą bloków indeksów jest to, że dostęp do pliku nie musi być sekwencyjny, ale swobodny (określenie nazwy pliku i odległości w bloku indeksów)  Uszkodzenie bloków indeksów powoduje poważną utratę danych, aby do tego nie dopuścić można przechowywać się kilka kopii bloków indeksów w różnych obszarach dysku;  duża strata miejsca lecz opłacalne ze względu na bezpieczeństwo danych.
151
System musi wiedzieć, które bloki są wolne. W tym celu stosuje jedną z metod:
 wektor bitowy/mapa bitowa  każdy bit mapy informuje o zajętości danego bloku  lista powiązana – jak w przydziale listowym  system wskazuje tylko na pierwszy wolny blok, a ten na następny  grupowanie  pierwszy wolny blok zawiera adresy innych wolnych, z których ostatni zawiera wskazania na kolejne  zliczanie  system pamięta numer pierwszego wolnego bloku i liczbę wolnych następujących po nim
152
SYSTEMY PLIKÓW ZE STRUKTURĄ DZIENNIKA inne nazwy jak działa? co w przypadku awarii? przykłady
 nazywane również: transakcyjnymi systemami plików ze strukturą dziennika lub systemami plików z księgowaniem (kronikowaniem);  wszystkie zmiany zapisuje się najpierw w dzienniku, po ich zatwierdzeniu system aktualizuje struktury systemu plików i usuwa wykonaną transakcję z dziennika;  w przypadku awarii transakcje można dokończyć na podstawie dziennika, tracone są wyłącznie dane nie zatwierdzone;  systemy z księgowaniem:  NTFS, ext3, JFS, XFS, ReiserFS, Reiser4, BeFS
153
OGÓLNA BUDOWA PARTYCJI FAT
 Opis systemu znajduje się w BS  Elementy mapy plików mogą być 12, 16 lub 32 bitowe  Podkatalogi mają postać plików (niewidocznych jako pliki) i mogą znajdować się w dowolnym miejscu i mieć dowolny rozmiar.
154
OGÓLNA BUDOWA PARTYCJI NTFS
 MFT – Master File Table zajmuje 12.5, 25, 37.5 lub 50% partycji  W MFT znajdują się 1 KB wpisy opisujące pliki i katalogi małe pliki jak atrybut
155
zawartosc i struktura mft
zawartosc mft Pierwsze 24 wpisy są zarezerwowane dla systemu na np.: kopię MFT, mapę bitową wolnych bloków, katalog główny, definicję atrybutów i zabezpieczeń STRUKTURA WPISU DO MFT  Ilość atrybutów może być różna.  Rozmiar atrybutów może być różny.
156
SPOSÓB ADRESOWANIA KLASTRÓW W NTFS
 LCN (Logical Cluster Numbers) – numer logiczny klastra na dysku  VCN (Virtual Cluster Numbers) – numer wirtualny klastra w pliku.  Mapowanie klastrów VCN na LCN (1720, 1721, 1722,1723,1724, 1975,1976 i 1977) odbywa się zgodnie z tabelą zawartą we wpisie MFT
157
OGÓLNA BUDOWA PARTYCJI EXT2/EXT3
 Cała partycja podzielona jest na grupy bloków o jednakowym rozmiarze (z wyjątkiem ostatniej)  Wszystkie grupy zawierają identyczny superblok i tablice deskryptorów grup.  Każda grupa posiada własne bitmapy bloków dyskowych (danej grupy) i i- węzłów (tej grupy) oraz tablicę i-węzłów
158
KATALOGI PARTYCJI EXT2/EXT3
 Wpisy zajmują różne ilości miejsca.  Wskazują na następny wpis.  Ostatni w katalogu wskazuje na koniec bloku.
159
SYSTEM NFS (NETWORK FILE SYSTEM)
 Sieciowy system plików umożliwia korzystanie z zasobów plikowych innych komputerów jak z zasobów lokalnych.  Realizowany jako system klient serwer.  Zdalny zasób musi być udostępniony.  Montuje się go w lokalnym katalogu.  Niektóre systemy zezwalają na montowanie kaskadowe.  Protokół montowania służy do nawiązania połączenia między klientem a serwerem. Zwraca uchwyt plikowy.  Protokół NFS dostarcza zbioru wywołań procedur zdalnych do operacji plikowych:  szukanie pliku, czytanie katalogu, manipulowanie dowiązaniami i katalogami, dostęp do atrybutów pliku, czytanie i pisanie, otwieranie i zamykanie pliku.  System przeszukuje ścieżkę dostępu do pliku i odnajduje go we właściwych zasobach (lokalnych lub zdalnych).
160
PROCEDURA OTWIERANIA PLIKU
 wyszukiwanie nazwy pliku  sprawdzenie, czy proces chcący otworzyć plik ma do niego prawo w określonym trybie  sprawdzenie, czy plik jest już otwarty  ustalenie urządzenia, na którym znajduje się plik oraz jego lokalizacji  utworzenie deskryptora pliku  deskryptor centralny  deskryptor lokalny
161
OPERACJA ZAMKNIĘCIA PLIKU
 Usunięcie deskryptora lokalnego.  Zmniejszenie licznika użycia pliku o jeden.  Jeżeli licznik użycia jest równy zero, to następuje usunięcie deskryptora centralnego
162
PLANOWANIE DOSTĘPU DO DYSKU  FCFS  SSTF  SCAN  C-SCAN  LOOK  C-LOOK
FCFS (FIRST-COME, FIRST-SERVED)  Pierwszy przyszedł pierwszy zostanie obsłużony (obsługa w kolejności pojawiania się żądań).  prosta implementacja  akceptowalna przy małym obciążeniu, przy dużym długi czas dostępu SSTF (SHORTEST SEEK TIME FIRST)  Do obsługi wybiera żądanie z najmniejszym czasem przeszukiwania względem bieżącej pozycji głowicy.  przepustowość lepsza niż przy FCFS, średni czas obsługi krótszy dla średniego obciążenia  nie jest optymalny  możliwe zagłodzenie, skrajne ścieżki są dyskryminowane  akceptowalny w systemach wsadowych, ale nie akceptowalny w systemach interakcyjnych SCAN (ALGORYTM WINDY)  Głowica przemieszcza się od brzegu do brzegu dysku obsługując napotkane po drodze żądania.  z chwilą gdy głowica zmienia kierunek ruchu będzie stosunkowo mało żądań do obsłużenia  najczęściej spotykana w praktyce strategia  dobra z punktu widzenia przepustowości i średniego czasu obsługi, choć skrajne ścieżki nadal nieco dyskryminowane C-SCAN  Głowica porusza się w jedną stronę, realizując zlecenia, przenosi się na początek i dopiero wtedy ponownie rozpoczyna realizację zleceń.  większe jest prawdopodobieństwo powstania zleceń na początku dysku niż w miejscu, gdzie głowica właśnie była.  żadne ścieżki nie są dyskryminowane  badania symulacyjne wykazały, że najlepiej połączyć SCAN (przy małym obciążeniu) z C-SCAN (przy dużym obciążeniu) LOOK  Wariant (praktyczny) algorytmu SCAN – głowica przesuwa się do ostatniego żądania w danym kierunku poczym zmienia kierunek ruchu. C-LOOK  Wariant (praktyczny) algorytmu C-SCAN – głowica przesuwa się do ostatniego żądania w kierunku realizacji dostępu, poczym wraca do bieżąco pierwszego żądania.
162
KLASTRY co to? problem rozmiaru
 Klaster (ang. cluster - grono) jest to jednostka alokacji plików wprowadzona, aby umożliwić obsługę dysków o większych pojemnościach.  Problem rozmiaru klastrów W miarę wzrostu rozmiaru klastra wzrasta ilość marnowanego miejsca na dysku. Gdy jest zapisywany plik, nie zajmuje całego klastra, w pozostałym miejscu nie można nic zapisać. Powstaje zjawisko fragmentacji wewnętrznej.
163
PODŁĄCZENIA DYSKÓW
 podłączony do komputera macierzystego - DAS  podłączony do sieci - NAS  Sieć pamięciowa – SAN (storage-area network) jest siecią prywatną stosującą protokoły pamięci, a nie sieciowe.
164
TECHNIKI DZIELENIA OGRANICZONEGO ZBIORU ZASOBÓW jakie?
 wzajemne wyłączanie procesów od zasobów niepodzielnych  zapobieganie zakleszczeniom  zapewnienie dużego wykorzystania zasobów  dostarczenie zasobów w „rozsądnym” czasie
165
MECHANIZMY PRZYDZIAŁU ZASOBÓW metody i dane służące do przydziału zasobów
metody i dane służące do przydziału zasobów  procesory centralne - deskryptor procesora(ID, stan, proces bieżący)  pamięć operacyjna - tablice stron i segmentów, listy bloków, kolejki zamówień na pamięć  urządzenia zewnętrzne - strumienie WE/WY, deskryptor urządzenia, kolejki zamówień  pamięć pomocnicza - pamięć wirtualna, pamięć plików  pliki - otwarte do zapisu stają się zasobami niepodzielnymi
166
WARUNKI KONIECZNE I WYSTARCZAJĄCE POWSTANIA ZAKLESZCZENIA Do zakleszczeń może dochodzić wtedy, kiedy w systemie zachodzą jednocześnie cztery warunki:
 wzajemne wykluczanie (zasoby są niepodzielne)  przetrzymywanie i czekanie (procesy przetrzymują zasoby w czasie oczekiwania na inne)  brak wywłaszczeń (zasobów nie można zawłaszczać, dopóki są użytkowane)  czekanie cykliczne (istnieje łańcuch cykliczny procesów takich, że następny zamawia zasoby zajęte przez poprzednika)
167
GRAF PRZYDZIAŁU ZASOBÓW Jeśli graf przydziału zasobów : co jesli jest kilka grafów?
 nie zawiera cykli, to w systemie nie ma zakleszczonych procesów  zawiera cykl, to doszło do zakleszczenia Jeśli istnieje po kilka egzemplarzy zasobu każdego typu, to cykl w grafie jest warunkiem koniecznym, lecz nie wystarczającym do istnienia zakleszczenia.
168
ZAPOBIEGANIE ZAKLESZCZENIOM przez niespełnienie jednego z warunków:
 zmiana zasobu niepodzielnego w podzielny np. przez zastosowanie spooler’a  procesy zamawiają wszystkie zasoby na początku i wtedy rozpoczynają działanie  jeśli proces nie otrzyma zasobów zwraca już przydzielone i zamawia ponownie  ustalony porządek zamówień uniemożliwia powstanie łańcucha cyklicznego
169
WYKRYWANIE I USUWANIE ZAKLESZCZEŃ W OPARCIU O GRAF STANU co robi?
 usunięcie wszystkich procesów uczestniczących w zakleszczeniu  wznowienie procesów od punktu kontrolnego, jeśli istnieje  usuwanie kolejnych procesów, aż do zaniku zakleszczenia  kolejne zawłaszczanie zasobów
170
UNIKANIE ZAKLESZCZEŃ PRZEZ WYKONYWANIE CZYNNOŚCI WYPRZEDZAJĄCYCH jakich?
- sprawdzanie, czy po przydziale zasobów nastąpi blokada -Algorytm bankiera  roszczenie to maksymalna wielkość zamawianych zasobów w czasie trwania procesu  zamówienie nie może przekroczyć roszczenia  zamówienie jest przyjęte tylko wówczas, gdy po jego realizacji istnieje taki ciąg procesów, że wszystkie procesy dobiegną do końca
171
Planowaniem nazywa się ustalanie, kiedy można wprowadzać nowe procesy do systemu i w jakiej kolejności je wykonywać kto się tym zajmuje?
Planowaniem zajmuje się proces planisty (scheduler) nazywany również planistą wysokiego poziomu, aby odróżnić go od planisty niskiego poziomu – dyspozytora.
172
DYSPOZYTOR Decyzje o przydziale procesora mogą zapadać w następujących czterech sytuacjach:
 proces przeszedł od stanu aktywności do stanu czekania  proces przeszedł od stanu aktywności do stanu gotowości  proces przeszedł od stanu czekania do stanu gotowości  proces kończy działanie.
173
PLANISTA jest wywoływany, gdy:
 pojawiło się zamówienie na zasoby  zasoby zostały zwolnione  proces zakończył działanie  do puli dodano nową pracę/użytkownik uruchomił nowy proces
174
ALGORYTMY PLANOWANIA jakie?
 Algorytm FCFS (First Come, First Served)  pierwszy zgłoszony- pierwszy obsłużony  Algorytm SJF (Shortest Job First)  najpierw najkrótsza praca (zadanie)  Algorytm SRTF (Shortest Remaining Time First)  najpierw najkrótszy pozostały czas / najpierw najkrótsza praca z zawłaszczaniem  Algorytm priorytetowy  Algorytm rotacyjny RR (Round-robin)  Planowanie wielopoziomowe
175
ALGORYTM FCFS planowanie jak działa?
 W tym algorytmie, proces, który pierwszy zamówi procesor, pierwszy otrzyma go. Implementację tego algorytmu łatwo się uzyskuje za pomocą kolejki FIFO.  Niestety algorytm posiada wadę, średni czas oczekiwania może być wysoki.
176
ALGORYTM SJF planowanie
 Algorytm najpierw najkrótszy pozostały czas, działa na podobnej zasadzie jak SJF. Algorytm ten jest w odróżnieniu od poprzednika wywłaszczający.  Bieżący proces jest wywłaszczany przez nowy proces którego następna faza procesora jest krótsza od pozostałej części fazy procesu aktualnego.  Algorytm ten daje minimalny średni czas oczekiwania.  Długość faz procesora jest przewidywana na podstawie jego wcześniejszych faz, nie można jednoznacznie określić jaką długość będzie miała kolejna faza.
177
ALGORYTM PRIORYTETOWY algorytm planowania
 W algorytmie tym każdemu procesowi przydziela się jakiś priorytet, liczbę całkowitą.  Procesor zostaje przydzielony procesowi o najwyższym priorytecie.  Algorytm może być niewywłaszczający albo wywłaszczający.  Może wystąpić głodzenie procesów, polegające na tym, że procesy o niskim priorytecie mogą nigdy nie zostać wykonane. Aby temu zapobiec wprowadza się postarzanie, czyli stopniowe podwyższanie priorytetów procesów długo oczekujących.
178
ALGORYTM ROTACYJNY algorytm planowania
 W algorytm ten wyposażono w wywłaszczanie i kolejkę cykliczną.  Każdemu procesowi przydziela się mały odcinek czasu procesora. Proces wykonywany jest po upływie tego czasu wywłaszczany i przenoszony na koniec kolejki procesów gotowych.  Dla n procesów w kolejce i kwantu czasu q, każdy proces dostaje 1/n czasu procesora, których wartość nie przekracza q. Czas oczekiwania procesu na dostęp do procesora nigdy nie przekracza (n-1)*q jednostek czasu.
179
PLANOWANIE WIELOPOZIOMOWE algorytm planowania
Algorytm ten rozdziela kolejkę procesów gotowych na osobne kolejki. Stosuje się go gdy możliwe jest łatwe zaliczenie procesów do kilku różnych grup:  pierwszoplanowe, drugoplanowe/wsadowe  systemowe, interakcyjne, redagowania interakcyjnego, wsadowe, studenckie.  Poszczególne kolejki mogą używać różnych algorytmów planowania.
180
PLANOWANIE WIELOPOZIOMOWE ZE SPRZĘŻENIEM ZWROTNYM algorytm planowania
 W tym algorytmie możliwe jest przenoszenie procesów między kolejkami.  Proces, który wykorzystuje cały przydzielony czas zostaje przeniesiony do kolejki o niższym priorytecie.  Proces szybko oddający procesor jest przenoszony do kolejki o wyższym priorytecie.
181
KRYTERIA PODEJMOWANIA DECYZJI PRZEZ PLANISTĘ
 procesom mającym wiele zasobów można nadać wysoki priorytet  procesom mającym wiele zasobów przydziela się kolejne  przy przydziale pamięci należy uwzględnić zasady zbioru roboczego  procesom systemowym nadaje się priorytet zależny od pilności zadań jakie wykonują  procesom obsługi urządzeń nadaje się wysoki priorytet  jeśli nie zapobiega się zakleszczeniom powinno się ich unikać  koszt planowania nie powinien przekraczać osiąganych zysków
182
HIERARCHIA PROCESÓW
 najczęściej: planista - system op. - procesy – podprocesy  planista jest przodkiem wszystkich procesów  procesy mogą:  tworzyć podprocesy  przydzielać podprocesom część własnych zasobów  nadawać priorytet własnym podprocesom