Struktury systemów operacyjnych Zadania systemu operacyjnego

Transkrypt

Struktury systemów operacyjnych Zadania systemu operacyjnego
Struktury systemów operacyjnych
Zadania s.o.
Usługi s.o.
Budowa s.o.
Podejście warstwowe
Przykładowe konstrukcje
Funkcje systemowe
Programy systemowe
Maszyny wirtualne
Tworzenie i uruchamianie s.o.
Procesy i wątki
Koncepcja procesu
Planowanie procesów
Działania na procesach
Wątki
Inne zagadnienia związane z procesami (planowanie czasu procesora,
synchronizacja procesów, zakleszczenia)
SOiSK - Temat 2
2.1
Marcin Iwanowski ISEP PW
Zadania systemu operacyjnego
Zarządzanie procesami
Zarządzanie pamięcią operacyjną
Zarządzanie plikami
Zarządzanie systemem we/wy
Zarządzanie pamięcią pomocniczą
Praca sieciowa
System ochrony
Interfejs użytkownika
SOiSK - Temat 2
System interpretera poleceń
Graficzny interfejs użytkownika (GUI)
2.2
Marcin Iwanowski ISEP PW
1
Zarządzanie procesami
Proces jest programem w trakcie wykonywania. Proces
potrzebuje określonych zasobów: czasu procesora,
pamięci, plików, urządzeń we/wy by wykonać zadanie.
S.o. jest odpowiedzialny za następujące działania
związane z zarządzaniem procesami:
SOiSK - Temat 2
tworzenie i usuwanie procesów (użytkowych i
systemowych)
wstrzymywanie i wznawianie procesów
dostarczanie mechanizmów:
synchronizacji procesów
komunikacji między procesami
obsługi zakleszczeń
2.3
Marcin Iwanowski ISEP PW
Zarządzanie pamięcią operacyjną
Pamięć jest olbrzymią tablicą słów lub bajtów, z których
każdy ma swój własny, unikalny adres. Pamięć jest
magazynem szybko dostępnych danych dzielonych przez
procesor i urządzenia we/wy.
Pamięć operacyjna jest pamięcią ulotną. Traci swą
zawartość w przypadku awarii bądź wyłączenia systemu.
System operacyjny jest odpowiedzialny za następujące
zadania związane z zarządzaniem pamięcią:
SOiSK - Temat 2
Utrzymywanie ewidencji aktualnie zajętych fragmentów
pamięci wraz z informacją w czyim są władaniu.
Decydowanie o tym, które procesy mają być załadowane do
zwolnionych obszarów pamięci.
Przydzielanie i zwalnianie obszarów pamięci stosownie do
potrzeb.
2.4
Marcin Iwanowski ISEP PW
2
Zarządzanie systemem we/wy i plikami
Podsystem we/wy składa się z:
Części zarządzającej pamięcią (w tym: buforowanie, pamięć
podręczna i spoling)
Ogólnego interfejsu do modułów sterujących urządzeń
Modułów sterujących (programów obsługi, sterowników)
poszczególnych urządzeń sprzętowych
Plik jest zbiorem powiązanych ze sobą informacji, zdefiniowanych
przez jego twórcę. W plikach zwykle przechowuje się programy (w
wersjach źródłowych i wykonywalnych) lub dane.
S.o. jest odpowiedzialny za następujące zadania związane z
zarządzaniem plikami:
SOiSK - Temat 2
Tworzenie i usuwanie plików
Tworzenie i usuwanie katalogów
Dostarczanie elementarnych operacji do manipulowania plikami i
katalogami
Odwzorowywanie plików na obszary pamięci pomocniczej
Składowanie (backup) plików na trwałych nośnikach pamięci
(nieulotnej)
2.5
Marcin Iwanowski ISEP PW
Zarządzanie pamięcią pomocniczą
Ponieważ pamięć operacyjna jest ulotna i zbyt mała aby
pomieścić wszystkie dane i programy, system
komputerowy musi posiadać także pamięć pomocniczą
jako podstawowy środek magazynowania informacji.
Większość współczesnych systemów komputerowych
wykorzystuje dyski jako podstawowy nośnik pamięci
danych i programów.
S.o. jest odpowiedzialny za następujące zadania
związane z zarządzaniem dyskami:
SOiSK - Temat 2
Zarządzanie wolnymi obszarami dysku
Przydzielanie pamięci
Planowanie przydziału obszarów pamięci dyskowej
2.6
Marcin Iwanowski ISEP PW
3
Praca sieciowa (systemy rozproszone)
System rozproszony jest zbiorem procesorów nie
posiadających współdzielonej pamięci ani zegara. Każdy
procesor ma swoja własna pamięć.
Procesory w systemie są połączone przez sieć
komputerową.
Komunikacja odbywa się z wykorzystaniem protokołu.
Systemy rozproszone umożliwiają użytkownikowi dostęp
do różnych zasobów znajdujących się na odrębnych
stanowiskach.
Dostęp do rozproszonych zasobów pozwala na:
SOiSK - Temat 2
Przyspieszenie obliczeń
Zwiększenie dostępności danych
Zwiększenie niezawodności
2.7
Marcin Iwanowski ISEP PW
System ochrony
Ochrona odnosi się do mechanizmów sterowania
dostępem do programów, procesów i użytkowników do
zasobów systemowych i zasobów użytkowników.
Mechanizm ochrony ma za zadanie:
SOiSK - Temat 2
rozróżniać między wykorzystaniem autoryzowanym i
nieautoryzowanym
określenie co podlega ochronie i jakiej
dostarczenie środków do wymuszenia tych ustaleń
2.8
Marcin Iwanowski ISEP PW
4
Interfejs użytkownika
Interfejs użytkownika umożliwia zlecanie s.o. operacji m.in.:
tworzenia i zarządzania procesami (uruchamianie programów)
obsługi we/wy
zarządzania pamięcią operacyjną i drugorzędną
dostępu do systemu plików
ochrony
usług sieciowych
Interpreter poleceń
Komend jest przekazywanych do sytemu operacyjnego przez
instrukcje sterujące wpisywane z klawiatury
Komendy wewnętrzne i zewnętrzne
Inna nazwa: powłoka (shell) – systemy rodziny UNIX
Graficzny interfejs użytkownika (GUI)
pozwala na wygodną pracę wieloprogramową
pracuje w trybie graficznym korzystając z systemu okien
SOiSK - Temat 2
2.9
Marcin Iwanowski ISEP PW
Podstawowe usługi systemu operacyjnego
Wykonywanie programów – zdolność systemu do załadowania
programu do pamięci i uruchomienia go.
Operacje we/wy – programy użytkowników nie mogą
wykonywać operacji we/wy bezpośrednio dlatego s.o. musi
zapewnić środki do wykonywania operacji we/wy.
Manipulowanie systemem plików – programy muszą mieć
możliwość czytania, zapisywania, tworzenia i usuwania plików.
Komunikacja – wymiana informacji między procesami
wykonywanymi bądź na tym samym komputerze bądź na
systemach połączonych siecią Zaimplementowane przy
pomocy pamięci dzielonej lub przekazywania komunikatów.
Wykrywanie błędów – zapewnianie prawidłowego działania
systemu przez wykrywanie błędów w działaniu procesora,
pamięci, urządzeń we/wy i programów użytkownika.
SOiSK - Temat 2
2.10
Marcin Iwanowski ISEP PW
5
Dodatkowe funkcje (usługi) systemu
operacyjnego
Dodatkowe funkcje systemu przeznaczone do optymalizacji
działania systemu (a nie pomagania użytkownikowi)
•
•
•
SOiSK - Temat 2
Przydzielanie zasobów – dla wielu użytkowników lub zadań
uruchomionych w tym samym czasie.
Rozliczanie – przechowywanie informacji którzy
użytkownicy i w jakim stopniu korzystają z poszczególnych
zasobów. Stosowane dla celów rozliczeniowych lub
gromadzenia informacji w celach statystycznych.
Ochrona – zapewnianie by każdy dostęp do zasobów
systemowych był kontrolowany.
2.11
Marcin Iwanowski ISEP PW
Wywołania systemowe
Wywołania systemowe (funkcje systemowe) tworzą interfejs
między uruchomionym programem a systemem operacyjnym.
Można z nich korzystać z za pomocą rozkazów w języku asemblera
Niektóre języki wyższego rzędu pozwalają na wywoływanie funkcji
systemowych bezpośrednio (np., C, C++). W tych językach
programuje się też s.o.
Istnieją trzy metody przekazywania parametrów między
wykonywanym programem a systemem operacyjnym:
Przekazywanie parametrów przez rejestry.
Przekazywanie parametrów jako tablicy w pamięci. Adres tej tablicy
jest przekazywany jako parametr w rejestrze.
Przez stos.Parametry są umieszczane na stosie przez proces i
zdejmowane przez s.o.
SOiSK - Temat 2
2.12
Marcin Iwanowski ISEP PW
6
Rodzaje wywołań systemowych
Sterowanie procesami (nadzorowanie procesów): end, abort,
load, execute, create process, terminate process, wait, signal
event, allocate memory, free memory
Zarządzanie plikami (operacje na plikach): create file, delete file,
open, close, read, write, reposition (seek)
Zarządzanie urządzeniami (operacje na urządzeniach): request
device, read, write, reposition, logically attach/detach device
Zarządzanie informacją (danych procesów, atrybutów,daty itp..):
get time, date, set/get system data, get process/file/device
attributes, set process/file/device attributes
Komunikacja: create, delete connection, send/receive message,
transfer status information, attach/detach remote devices
SOiSK - Temat 2
2.13
Marcin Iwanowski ISEP PW
Programy systemowe
Programy systemowe dostarczają wygodne środowisko
do tworzenia i uruchamiania programów. Dzielą się na
programy:
Manipulowania plikami
Informujące o stanie systemu
Tworzenie plików i zmienianie ich zawartości
Translatory języków programowania
Ładowanie i wykonywanie programów
Komunikacja
Sposób widzenia systemu operacyjnego przez
użytkownika jest zdeterminowany programami
systemowymi (użytkownik nie ma bezpośredniego
dostepu do funkcji systemowych)
SOiSK - Temat 2
2.14
Marcin Iwanowski ISEP PW
7
Podejście warstwowe
S.o. jest podzielony na pewną liczbę warstw (poziomów),
nadbudowanych jeden na drugim. Dolną warstwą (0) tworzy sprzęt;
najwyższą (N) jest interfejs użytkownika.
Każda warstwa wykorzystuje funkcje i usługi z niższych warstw.
SOiSK - Temat 2
2.15
Marcin Iwanowski ISEP PW
Struktury systemów operacyjnych
SOiSK - Temat 2
2.16
Marcin Iwanowski ISEP PW
8
Maszyny wirtualne
Maszyna wirtualna jest logiczną konkluzją systemu
warstwowego. Traktuje sprzęt i jądro s.o. w całości jako
sprzęt.
Maszyna wirtualna posiada interfejs identyczny z
bezpośrednim interfejsem sprzętu.
S.o. tworzy iluzję wielu procesów z których każdy dysponuje
własny procesorem i pamięcią.
Realizacja przez dzielenie zasobów:
dzielenie czasu procesora daje złudzenie, że każdy
użytkownik ma do dyspozycji własny procesor.
System spoolingu i system plików dostarczają wirtualne
urządzenia we/wy
Zwykły terminal użytkownika działający w podziale czasu
może być wirtualna konsola operatora.
Przykłady: IBM VM, MS-DOS na komputerach SUN i DEC,
emulacja procesorów 68000 na Power PC (Macintosh)
SOiSK - Temat 2
2.17
Marcin Iwanowski ISEP PW
Maszyny wirtualne (2)
Tradycyjny system
SOiSK - Temat 2
Maszyna wirtualna
2.18
Marcin Iwanowski ISEP PW
9
Cele projektowania i implementacja
systemu operacyjnego
Cele użytkownika – s.o. ma być wygodny w użyciu, łatwy do
nauki, niezawodny, bezpieczny i szybki
Cele systemu – s.o. ma być łatwy do zaprojektowania,
zaimplementowania i konserwacji, elastyczny, niezawodny, wolny
od błędów i wydajny.
Tradycyjne pisane w językach asmeblerowych obecnie s.o.
tworzone są w językach wyższego poziomu.
Zalety pisania s.o. w jęz. wyższego poziomu:
mogą być pisane szybciej
bardziej zwarty kod
są łatwiejsze do zrozumienia i testowania
S.o. napisany w języku wyższego poziomu jest dużo
łatwiejszy do przeniesienia na inny rodzaj sprzętu.
SOiSK - Temat 2
2.19
Marcin Iwanowski ISEP PW
Generowanie systemu
(System Generation - SYSGEN)
S.o. są projektowane tak by móc być uruchomionymi na
różnych konfiguracjach sprzętowych – s.o. musi być
konfigurowalny
program typu SYSGEN zbiera informacje na temat
sprzętu i jego specyficznych właściwości.
bootowanie (Booting) – uruchamianie systemu przez
załadowanie jądra
program rozruchowy (Bootstrap program) – kod
przechowywany w pamięci ROM, który potrafi
zlokalizować i wczytac jądro systemu do pamięci i
uruchomić jego działanie.
SOiSK - Temat 2
2.20
Marcin Iwanowski ISEP PW
10
Koncepcja procesu
Proces – program w trakcie wykonywania; System operacyjny
wykonuje różne działania:
Systemy wsadowe – procesy (zadania) są wykonywana
sekwencyjnie
System z podziałem czasu – czas procesora dzielony między wiele
procesów
Pojęcia zadanie i proces stosuje się wymiennie
Każdy proces składa się z:
kodu programu (lub sekcją tekstu ang. text section)
zawartości licznika rozkazów (ang.program counter)
zawartości rejestrów procesora
stos procesu (ang. process stack)
sekcja danych (ang. data section)
Z jednym programem może być związanych kilka procesów.
SOiSK - Temat 2
2.21
Marcin Iwanowski ISEP PW
Stan procesu
Proces w trakcie wykonywania zmienia swój stan
Przykładowe stany:
nowy (new) – proces został utworzony.
aktywny (running) – są wykonywane instrukcje.
oczekiwanie (waiting) – proces czeka na wystąpienie
jakiegoś zdarzenia (np. na zakończenia operacji we/wy).
gotowy (ready) proces czeka na przydział czasu procesora.
zakończony (terminated) – proces zakończył działanie.
SOiSK - Temat 2
2.22
Marcin Iwanowski ISEP PW
11
Blok kontrolny procesu (PCB)
Blok kontrolny procesu (zadania) =
process control block
Informacja przypisana do każdego
procesu
Stan procesu
Stan licznika rozkazów (adres
następnego rozkazu do wykonania)
Stan rejestrów procesora
Informacje o planowaniu przydziału
procesora
Informacje o zarządzaniu pamięcią
Informacje do rozliczeń
Informacje o stanie wejścia/wyjścia
SOiSK - Temat 2
2.23
Marcin Iwanowski ISEP PW
Kolejki planowania procesów
Kolejka zadań – zbiór
wszystkich procesów w
systemie.
Kolejka procesów
gotowych – zbiór
wszystkich procesów
rezydujących w pamięci
operacyjnej, gotowych i
przedzielenia im czasu
procesora.
Kolejki do urządzeń – zbiór
procesów czekających na
urządzenia we/wy.
Procesy są
przemieszczane pomiędzy
poszczególnymi kolejkami
SOiSK - Temat 2
2.24
Marcin Iwanowski ISEP PW
12
Planiści
Planista długoterminowy (ang. long-term scheduler) lub planista
zadań (ang. job scheduler) –wybiera procesy, które powinny być
umieszczone w kolejce procesów gotowych.
Planista krótkoterminowy (ang. short-term scheduler) lub planista
przydziału procesora (ang. CPU scheduler) – wybiera, który
proces powinien jako kolejny dostać przydział czasu procesora.
Planista krótkoterminowy jest wywoływany b. często (milisekundy)
– powinien być szybki
Planista długoterminowy jest wywoływany rzadko – może być
wolny.
Planista długoterminowy nadzoruje stopień wieloprogramowości
Większość procesów można zakwalifikować do jednego z dwóch
rodzajów:
Procesy ograniczone przez we/wy (ang. I/O-bound process ) – więcej
czasu poświęca na wykonywanie operacji we/wy niż na obliczenia
Procesy ograniczone przez dostęp do procesora (ang. CPU-bound
process) – więcej czasu poświęca obliczeniom niż dostepowi do
we/wy
SOiSK - Temat 2
2.25
Marcin Iwanowski ISEP PW
Przełączanie kontekstu
Przełączanie kontekstu = context switch
Gdy procesor przełącza się na inny proces, system musi
zachować stan starego procesu i wczytać zachowany stan
nowego procesu.
Przełączanie kontekstu jest dodatkowym zadaniem procesora
– w tym czasie nie jest wykonywana żadna inna czynnoś ć
Ekspedytor (ang. dispatcher) – moduł który przekazuje
procesor do dyspozycji procesu wybranego przez planistę
krótkoterminowego
SOiSK - Temat 2
2.26
Marcin Iwanowski ISEP PW
13
Sposoby komunikacji międzyprocesowej
Komunikacja między procesami przez przekazywanie
komunikatów lub z wykorzystaniem pamięci
współdzielonej
Przekazywanie komunikatów
SOiSK - Temat 2
Pamięć współdzielona
2.27
Marcin Iwanowski ISEP PW
Tworzenie procesu
Procesy mogą tworzyć inne procesy – proces macierzysty
tworzy proces potomny
Procesy potomne jednych mogą być procesami macierzystymi
innych procesów – procesy tworzą drzewo procesów
Dzielenie zasobów:
Proces macierzysty i potomny dzielą wszystkie zasoby
Zasoby procesu potomnego są podzbiorem zasobów procesu
macierzystego
Procesy macierzysty i potomny nie mają wspólnych zasobów
Wykonanie:
Procesy macierzysty i potomny działają jednocześnie
Proces macierzysty czeka na zakończenia działania procesu
potomnego
Przestrzeń adresowa:
proces potomny jest duplikatem macierzystego
proces potomny jest załadowanym programem
System UNIX:
wywołanie systemowe fork tworzy nowy proces
wywołanie systemowe execve wykonane po fork wczytuje do
pamięci nowy program zastępując jej dotychczasową zawartość
SOiSK - Temat 2
2.28
Marcin Iwanowski ISEP PW
14
Kończenie procesu
Proces wykonuje ostatnią instrukcję i korzystając z funkcji
exit prosi system operacyjny by go usunął a następnie:
przesyła dane do procesu macierzystego
wszystkie zasoby procesu zostają odebrane przez system
operacyjny
Proces macierzysty może spowodować zakończenie
procesu potomnego za pomocą odpowiedniej funkcji
systemowej (np.abort), wtedy np. gdy:
SOiSK - Temat 2
Proces potomny nadużył któregoś z przydzielonych zasobów.
Zadanie wykonywane przez potomka stało się zbędne
Proces macierzysty się kończy
system nie pozwala na działania potomków gdy kończy się
proces macierzysty
kończenie kaskadowe
2.29
Marcin Iwanowski ISEP PW
Wątki
Wątek (ang. thread) lub proces lekki (ang. lightweight process
– LWP) jest jednostką wykorzystania procesora
wykorzystującą: licznik rozkazów, zbiór rejstrów i obszar
stosu.
Każdy proces (zadanie) może posiadać kilka wątków
Wątek współużytkuje wraz z innymi równorzędnymi wątkami
tego samego procesu sekcję kodu, sekcje danych oraz inne
zasoby systemu takie jak np. otwarte pliki
Tradycyjny proces, tzw. ciężki (ang. heavyweight) = zadanie z
jednym wątkiem
SOiSK - Temat 2
2.30
Marcin Iwanowski ISEP PW
15
Procesy jedno i wielowątkowe
Wątek może przebiegać w dokładnie jednym zadaniu
Działanie wątków przypomina działanie procesów, różnica:
wątki nie sa niezależne od siebie, wątki tego samego procesu
korzystają z tych samych danych – brak ochrony na poziomie
wątków (ale: nie jest potrzebna)
SOiSK - Temat 2
2.31
Marcin Iwanowski ISEP PW
Planowanie przydziału procesora
Zadanie wybrania procesu oczekującego w kolejce procesów
gotowych i przydzielenie mu procesora (przy pomocy ekspedytora)
Rodzaje algorytmów:
niewywłaszczające (systemy wieloprogramowe)
wywłaszczające (systemy z podziałem czasu)
Najprostszy algorytm niewyw.: „pierwszy zgłoszony – pierwszy
obsłużony” (FCFS) – nie jest optymalny
Najkrótszy średni czas oczekiwania daje algorytm „najpierw
najkrótsze zadanie” (SJF) – może być wywłaszczjący i
niewywłaszczjący
Dla systemów z podziałem czasu: planowanie rotacyjne (RR) –
algorytm wywłaszczający
Algorytmy wielopoziomowego planowania kolejek – różne algorytmy
dla różnych klas procesów
SOiSK - Temat 2
2.32
Marcin Iwanowski ISEP PW
16
Synchronizowanie procesów,
usuwanie zakleszczeń
Synchronizowanie procesów:
Dotyczy procesów współpracujących korzystających ze
wspólnych danych (m.in. wątków)
Współbieżny dostęp do danych może powodować ich
niespójnoś ć
Sekcja krytyczna kodu – częś ć do której mają dostęp inne
procesy/watki -> problem (dostępu do) sekcji krytycznej
Usuwanie zakleszczeń
Zakleszczenie: dwa lub więcej procesów czeka na zdarzenie,
które może być spowodowane przez jeden z nich
Trzy sposoby:
wprowadzenie protokołu uniemożliwiającego zakleszczenia
zezwolenie na występowanie zakleszczeń i wycofywanie się
z nich
zlekceważenie problemu (np..UNIX)
SOiSK - Temat 2
2.33
Marcin Iwanowski ISEP PW
17