Opracowanie SO.docx

(107 KB) Pobierz

1.Definicja, zadania, klasyfikacja systemów operacyjnych.

 

1.     Definicja systemów operacyjnych:

System operacyjny (nadzorczy, nadrzędny, sterujący) jest to zorganizowany zespół programów, które pośredniczą

między sprzętem a użytkownikami, dostarczając użytkownikom zestawu środków ułatwiających projektowanie, kodowanie, uruchamianie i eksploatację programów oraz w tym samym czasie sterują przydziałem zasobów dla zapewnienia efektywnego działania.

2.       Zadania systemów operacyjnych:

• Definicja interfejsu użytkownika

• Udostępnianie systemu plików

• Udostępnianie środowiska do wykonywania programów użytkownika

– mechanizm ładowania i uruchamiania programów

– mechanizmy synchronizacji i komunikacji procesów

• Sterowanie urządzeniami wejścia-wyjścia

• Obsługa podstawowej klasy błędów

3.       Klasyfikacja systemów operacyjnych:

a)      Klasyfikacja systemów operacyjnych ze względu na sposób przetwarzania:

Systemy przetwarzania bezpośredniego:

— systemy interakcyjne

– występuje bezpośrednia interakcja pomiędzy użytkownikiem a systemem,

– wykonywanie zadania użytkownika rozpoczyna się zaraz po przedłożeniu.

• Systemy przetwarzania pośredniego:

— systemy wsadowe

– występuje znacząca zwłoka czasowa między przedłożeniem a rozpoczęciem wykonywania zadania,

– niemożliwa jest ingerencja

b)      Klasyfikacja systemów operacyjnych ze względu na liczbę:

Systemy jednozadaniowe — niedopuszczalne jest rozpoczęcie wykonywania następnego zadania użytkownika przed zakończeniem poprzedniego.

• Systemy wielozadaniowe — dopuszczalne jest istnienie jednocześnie wielu zadań (procesów), którym zgodnie z

pewną strategią przydzielany jest procesor.

c)      Klasyfikacja systemów operacyjnych ze względu na liczbę użytkowników:

Systemy dla jednego użytkownika — zasoby przeznaczone są dla jednego użytkownika (np. w przypadku komputerów osobistych), nie ma mechanizmów autoryzacji, a mechanizmy ochrony informacji są ograniczone.

• Systemy wielodostępne — wielu użytkowników może korzystać ze zasobów systemu komputerowego, a

system operacyjny gwarantuje ich ochronę przed nieupoważnioną ingerencją.

 

2. Procesy, wątki, zasoby.

1. Proces:

Proces jest elementarną jednostką pracy (aktywności) zarządzaną przez system operacyjny, która ubiega się o

zasoby systemu komputerowego w celu wykonania programu.

• Proces = wykonujący się program.

• Elementy składowe procesu:

– program — definiuje zachowanie procesu,

– dane — zbiór wartości przetwarzanych oraz wyniki,

– zbiór zasobów tworzących środowisko wykonawcze,

– blok kontrolny procesu (PCB, deskryptor) — opis bieżącego stanu procesu

Stany procesu:

• Nowy (ang. new) — proces jest tworzony.

• Wykonywany (ang. running) — wykonywane są instrukcje programu.

• Oczekujący (ang. waiting) — proces oczekuje na jakieś zdarzenie, np. na zakończenie operacji wejścia-wyjścia,

na przydział dodatkowego zasobu, synchronizuje się z innymi procesami.

• Gotowy (ang. ready) — proces czeka na przydział procesora.

• Zakończony (ang. terminated) — proces zakończył działanie i zwalnia zasoby.

 

2. Zasoby:

Zasobem jest element sprzętowy lub programowy systemu komputerowego, którego brak może

potencjalnie zablokować wykonywanie programu (przetwarzanie)

• Przykłady zasobów: procesor, pamięć, plik (dane) itp.

Klasyfikacja zasobów:

• Ze względu na sposób wykorzystania

– zasoby odzyskiwalne (zwrotne, ang. reusable),

– zasoby nieodzyskiwalne (niezwrotne, zużywalne,).

• Ze względu na sposób odzyskiwania

– zasoby wywłaszczalne,

– zasoby niewywłaszczalne.

• Ze względu na tryb dostępu

– współdzielone

– wyłączne

 

3.       Wątki:

• Wątek (lekki proces, ang. lightweight process — LWP) jest obiektem w obrębie procesu ciężkiego (heavyweight), posiadającym własne sterowanie i współdzielącym z innymi wątkami tego procesu przydzielone (procesowi) zasoby:

– segment kodu i segment danych w pamięci

– tablicę otwartych plików

– tablicę sygnałów

• Wątek posiada własny blok kontrolny w jądrze systemu operacyjnego, obejmujący:

– stan licznika rozkazów,

– stan rejestrów procesora,

– stan rejestrów związanych z organizacją stosu.

• Własności realizacji wątków na poziomie jądra:

– przełączanie kontekstu pomiędzy wątkami przez jądro,

– większy koszt przełączanie kontekstu,

– bardziej sprawiedliwy przydział czasu procesora.

 

3.Szeregowanie procesów. Ogólna koncepcja planowania. Argumenty funkcji planowania. Algorytmy szeregowania (z wywłaszczaniem i bez wywłaszczania). Kryteria oceny algorytmów planowania. Przykłady implementacji planowania przydziału procesora.

1. Szeregowanie procesów:

W środowisku systemu pracuje zwykle więcej procesów gotowych do wykonania niż dostępnych jest procesorów. Stąd istnieje potrzeba decydowania który z procesów ma być wykonywany na którym z procesorów

Decyduje o tym procedura szeregująca (ang. scheduler). Jest to szereg  funkcji zaimplementowanych w jądrze systemu które decydują które procesy ze zbioru procesów gotowych ma być wykonywany i na którym procesorze.

Procedura szeregująca jest aktywowana gdy:

1. Wystąpiło przerwanie zegarowe – proces bieżący wykorzystał przydzielony mu kwant czasu.

2. Wystąpiło przerwanie od urządzenia zewnętrznego – proces zablokowany na operacji wejścia / wyjścia stał się gotowy.

3. Proces bieżący wykonał wywołanie systemowe na skutek którego inny proces stał się gotowy.

4. Proces bieżący dobrowolnie oddał procesor lub zakończył się

5. Proces bieżący naruszył mechanizm ochrony procesora co spowodowało przerwanie wewnętrzne procesora.

Ze względu na wymogi szeregowania wyróżnia się trzy klasy procesów:

· Procesy interaktywne (ang. Interactive)

· Procesy wsadowe lub tła (ang. batch, background)

· Procesy czasu rzeczywistego (ang. Real Time)

 

2. Ogólna koncepcja planowania:

Planowanie opiera się na trzech elementach, z których dwa zasadnicze to tryb decyzji oraz funkcja priorytetu:

• Tryb decyzji — określa okoliczności, w których oceniane i porównywane są priorytety procesów oraz dokonywany jest wybór procesu do wykonania.

Funkcja priorytetu — funkcja wyznaczająca aktualny priorytet procesu na podstawie parametrów procesu i stanu systemu.

Reguła arbitrażu — reguła rozstrzygania konfliktów w dostępie do procesora w przypadku procesów o tym samym priorytecie.

 

3. Argumenty funkcji planowania:

Czas oczekiwania — czas spędzony w kolejce procesów gotowych (czas spędzony w stanie gotowości).

• Czas obsługi — czas, przez który proces był wykonywany (wykorzystywał procesor) od momentu przyjęcia do systemu.

• Rzeczywisty czas przebywania w systemie — czas spędzony w systemie od momentu przyjęcia (czas obsługi + czas

oczekiwania + czas realizacji żądań zasobowych).

• Czasowa linia krytyczna — czas, po którym wartość wyników spada (nawet do zera, np. przy przewidywaniu pogody).

• Priorytet zewnętrzny — składowa priorytetu, która pozwala wyróżnić procesy ze względu na klasy użytkowników lub rodzaj wykonywanych zadań.

• Wymagania odnośnie wielkości przestrzeni adresowej pamięci.

• Obciążenie systemu — liczba procesów przebywających w systemie i ubiegających się (potencjalnie) o przydział

procesora lub innych zasobów, zajętość pamięci

 

4.       Algorytmy szeregowania (z wywłaszczaniem i bez wywłaszczania).

Bez wywłaszczenia:

• FCFS (First Come First Served) — pierwszy zgłoszony, pierwszy obsłużony - FCFS jest naturalnym algorytmem w systemach obsługi masowej, takich jak kasy sklepowe, kasy biletowe, banki, urzędy itp. Procesy otrzymują procesor w kolejności, w jakiej zgłosiły się do systemu.

• LCFS (Last Come First Served) — ostatni zgłoszony - Algorytm LCFS obsługuje procesy w kolejnoci odwrotnej do kolejności zgłoszeń. Algorytm nie wywłaszcza procesów, więc nowo przychodzący proces jest pierwszy w kolejce i czeka na zwolnienie procesora przez bieżąco wykonywany proces pierwszy obsłużony -Algorytm SJF preferuje procesy, które mają najmniejsze wymagania odnośnie czasu procesora, potrzebnego na realizację przetwarzania

• SJF (SJN, SPF, SPN, Shortest Job/Process First/Next)

— najpierw najkrótsze zadanie - Algorytm SJF preferuje procesy, które mają najmniejsze wymagania odnonie

czasu procesora, potrzebnego na realizację przetwarzania.

Algorytmy wywłaszczające:

Planowanie rotacyjne (ang. Round Robin, RR) — po ustalonym kwancie czasu proces wykonywany jest przerywany i trafia do kolejki procesów gotowych. - Typowym algorytmem planowania wywłaszczającego jest algorytm rotacyjny.

Każdy proces wykonywany jest co najwyżej przez pewien okres czasu, po czym następuje przełączenie kontekstu na inny proces. Po jakimś czasie nastąpi wznowienie procesu przerwanego. Proces może przed upływem kwantu czasu zgłosić żądanie zasobowe, zrezygnować dobrowolnie z procesora lub zakończyć się, co skutkuje przydzieleniem nowego kwantu dla następnego procesu.

• SRT (Shortest Remaining Time) — najpierw zadanie, które ma najkrótszy czas do zakończenia - SRT jest wywłaszczającą wersją algorytmu SJF. Zakładając, że znany jest czas następnej fazy procesora dla każdego procesu, sprawdza się, czy jakiś proces gotowy ma mniejsze wymagania odnośnie czasu procesora, niż proces aktualnie wykonywany. Jeli tak, to podejmowana jest decyzja o wywłaszczeniu.

 

5. Kryteria oceny algorytmów planowania:

 

Efektywność z punktu widzenia systemu:

wykorzystanie procesora (processor utilization) — procent czasu, przez który procesor jest zajęty pracą

przepustowość (throughput) — liczba procesów  kończonych w jednostce czasu

Inne aspekty z punktu widzenia systemu

sprawiedliwosć (fairness) — równe traktowanie procesów

respektowanie zewnętrznych priorytetów procesów

równoważenie obciążenia wykorzystania zasobów

 

6. Przykłady implementacji planowania przydziału procesora.

 

 

4.Zarządzanie pamięcią operacyjną. Tworzenie obrazu procesu w pamięci. Stronicowanie i segmentacja

 

1.       Zarządzanie pamięcią operacyjna:

 

Pamięć jest zasobem służący do przechowywania danych i programów.

• Z punktu widzenia systemu pamięć jest zasobem o strukturze hierarchicznej (począwszy od rejestrów procesora, przez pamięć podręczną, pamięć główną, skończywszy na pamięci masowej), w której na wyższym poziomie przechowywane są dane, stanowiące fragment zawartości poziomu niższego.

• Z punktu widzenia procesu (również procesora) pamięć jest zbiorem bajtów identyfikowanych przez adresy, czyli tablicą bajtów, w której adresy są indeksami.

 

 

 

 

Hierarchia pamięci:

 

2.       Tworzenie obrazu procesu w pamięci

 

Tworzenie obrazu procesu zaczyna się od programu źródłowego. Program taki jest kompilowany do przemieszczalnego modułu wynikowego, a następnie łączony (konsolidowany) z modułami bibliotecznymi, do których są odwołania w kodzie. Konsolidację można jednak odłożyć do czasu ładowania, a nawet wykonywania kodu. Konsolidacja przed ładowaniem określana jest jako statyczna, a w jej w...

Zgłoś jeśli naruszono regulamin