systemy operacyjne: struktury i funkcje

Transkrypt

systemy operacyjne: struktury i funkcje
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE
(opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)
W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i
oprogramowanie (ang. software). SYSTEM OPERACYJNY stanowi najważniejszy składnik
oprogramowania systemu komputerowego. Oprogramowanie - zorganizowany w postać
programów zbiór informacji przechowywanych w pamięci komputera, służących do rozszerzenia
możliwości sprzętu.
użytkownik 1
użytkownik 2
użytkownik 3
.. ....
użytkownik n
Programy użytkowe, np. edytor tekstu, system baz danych, kompilator.
SYSTEM OPERACYJNY
BIOS
Sprzęt komputera
Struktura oprogramowania i jego związek ze sprzętem
System operacyjny jest zbiorem procedur przeznaczonych do zarządzania zasobami
systemu komputerowego. Zasoby komputerowe to obiekty współdzielone przez użytkowników i
system operacyjny. Dzielą się na:
sprzętowe – procesory, pamięci, kanały danych, itd.
programowe – programy użytkownika, struktury danych (tworzone przez użytkownika
lub przez sam system operacyjny, w ogólności są to pliki).
Zarządzanie zasobami polega na takim ich rozdziale pomiędzy użytkowników, aby każdy
miał wrażenie, że pracuje na własnym komputerze, który nazywa się maszyną wirtualną. (Dla
każdego użytkownika system operacyjny tworzy, utrzymuje i likwiduje maszynę wirtualną). Zasoby
maszyny wirtualnej to zasoby wirtualne.
1
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE
Użytkownikiem jest każdy (to nie tylko fizyczna osoba siedząca przed komputerem), kto
wymaga od systemu operacyjnego wykonania jakichkolwiek czynności. Użytkownicy tworzą
zadania, czyli zbiór działań potrzebnych do wykonania danej czynności. System operacyjny
przyjąwszy zadanie może utworzyć kilka PROCESÓW.
Proces to jednostka składowa zadania, w szczególności proces = zadanie. Proces jest
najmniejszą jednostką, która może ubiegać się o zasoby systemu komputerowego i która może być
wykonywana współbieżnie z innymi procesami.
W większości systemów operacyjnych wszystkie informacje o każdym procesie są przechowywane
w tablicy procesów. Ogólnie: proces składa się z przestrzeni adresowej i z zapisów w tablicy
procesów (przede wszystkim są to zawartości rejestrów procesora).
Stany procesu:
wykonywany
Procesor przydzielony
procesowi
Proces czeka na
zakończenie operacji
wej/wyj
gotowy
czeka
zakończono wej/wyj
Podstawowymi funkcjami w ramach zarządzania procesami są funkcje tworzenia
i
zawieszania procesów. Każdy proces rozpoczynający pracę w systemie ma przydzielony swój numer
(PID) i identyfikator użytkownika, który go zainicjował. Niektóre procesy mogą generować procesy
potomne. Procesy potomne dziedziczą identyfikatory swoich procesów macierzystych.
Typy procesów:
procesy interakcyjne – procesy zainicjowane w trakcie sesji rozpoczętej na terminalu i
w ramach tej sesji kontrolowane. Mogą być wykonywać jako:
-
procesy pierwszoplanowe – przez cały czas wykonywania pozostają związane z
terminalem; terminal komunikuje się z nimi bezpośrednio; tylko takie procesy mogą
odbierać dane z terminala,
-
procesy tła (w systemie UNIX uruchamiane ze znakiem &).
procesy kolejkowane (wsadowe, ang. batch processes) – procesy nie związane z
żadnym terminalem, kierowane do odpowiednich kolejek i uruchamiane sekwencyjnie.
2
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE
Poszczególne platformy UNIXowe posiadają swoje wersje programów narzędziowych
do obsługi kolejek procesów, z uwzględnieniem odciążania przeładowanych procesorów
i rozdziału zadań do innych, mniej obciążonych procesorów danego komputera lub
innego komputera w sieci.
demony – procesy o charakterze usługowym, uruchamiane na ogół podczas startu
systemu. Wykonują się w tle i oczekują na zlecenia wydawane przez inne procesy
systemu, np. demony sieciowe pozostają w stanie oczekiwania, dopóki inne procesy nie
zażądają dostępu do sieci.
W systemach UNIX do sprawdzania stanu procesów służy polecenie ps
FUNKCJE SYSTEMU OPERACYJNEGO polegają, ogólnie mówiąc, na rozwiązywaniu
konfliktów podczas współubiegania się różnych zadań użytkowników o zasoby systemu
komputerowego i na optymalizacji wykorzystywania zasobów przez zadania. Zadaniem systemu
operacyjnego jest tworzenie środowiska operacyjnego, w którym użytkownik może wygodnie i
bezpiecznie uruchamiać i eksploatować programy.
W szczególności system operacyjny umożliwia:
przechowywanie informacji przez dłuższy czas w pamięciach zewnętrznych,
jednoczesne wykonywanie różnych czynności przez system komputerowy,
korzystanie z różnych pakietów programistycznych i języków programowania,
wspólne wykorzystywanie niektórych urządzeń komputerowych przez grupy osób.
Cechy charakterystyczne sytemu UNIX:
-
wielodostępność – liczba użytkowników zależy głównie od mocy obliczeniowej
sprzętu,
-
wielozadaniowość (wieloprocesowość) – jednostkami aktywnymi w systemie są
pracujące współbieżnie procesy,
-
hierarchiczny, drzewiasty system plików, z jednolitym potraktowaniem wszystkich
typów plików,
-
wykonywanie operacji wej / wyj niezależnie od typu urządzenia zewnętrznego,
-
duża liczba programów narzędziowych, tj. kompilatorów języków programowania,
-
duża liczba programów usługowych,
-
przenaszalność oprogramowania dzięki zapisowi w C.
3
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE
STRUKTURY SYSTEMÓW OPERACYJNYCH
1. Struktura monolityczna – system operacyjny traktowany jako zbiór procedur, przy czym
każda z nich może wywoływać drugą; poszczególne procedury muszą mieć bardzo dobre złącza
(ang. interface). W celu stworzenia konkretnej wersji systemu operacyjnego należy skompilować
odpowiedni zbiór procedur.
2. Struktura warstwowa – system zbudowany jest z kilku poziomów, co zapewnia jego
modularność. Każdy poziom składa się ze zbioru procedur i danych, które mogą być
wywoływane z poziomu wyższego. Poziom najniższy – sprzęt, najwyższy – interface z
użytkownikiem. W każdym systemie operacyjnym poziomy mogą być różne.
Programy aplikacyjne
Programy rezydentne
MS-DOS - Sterowniki
urządzeń
ROM BIOS - sterowniki
urządzeń
MS –DOS jako warstwowy system operacyjny
Użytkownicy
Powłoki i polecenia systemowe, kompilatory i interpretery, biblioteki systemowe
Funkcje systemowe złącza z jądrem systemu
- Sygnały
- Obsługa terminali i
innych
znakowych
urządzeń wej/wyj
- System plików
- Obsługa
blokowych
urządzeń wej/wyj
- Moduły obsługi dysków i
taśm
- Zarządzanie procesami
- Obsługa wymiany stron
- Moduły obsługi pamięci
wirtualnej
Złącze jądra ze sprzętem
Urządzenia znakowe i Dyski i taśmy
ich sterowniki
sterowniki
oraz
ich Sterowniki pamięci i pamięci
fizyczne
Przykładowa struktura systemu operacyjnego UNIX
4
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE
W systemach operacyjnych o strukturze warstwowej wyodrębniona jest część realizująca
najbardziej podstawowe funkcje systemu operacyjnego, tzw. jądro systemu lub warstwa
wewnętrzna. Pozostała część systemu to warstwa zewnętrzna. Podział taki nie jest jednoznacznie
określony dla wszystkich systemów.
W jądrze systemu implementuje się wszystkie funkcje, które muszą być traktowane w sposób
uprzywilejowany. Jądro odpowiada m.in. za: obsługę przerwań, przydział procesora, operacje
wej/wyj. Ponadto w jądrze systemu są implementowane mechanizmy, które tworzą wspomnianą już
maszynę wirtualną.
Warstwa zewnętrzna obejmuje procesy użytkowników (można przyjąć, że są to po prostu
programy) i moduły systemu operacyjnego nie należące do jądra systemu. Jednym z procesów
warstwy zewnętrznej jest POWŁOKA (ang. shell). Powłoka jest jedyną widoczną częścią maszyny
wirtualnej.
Funkcje systemowe (ang. system calls) stanowią maszynę wirtualną, ich wywołania są poleceniami dla
jądra systemu, np. zainicjowanie nowego procesu, otwarcie pliku. Funkcje systemowe dzielą się na:
funkcje systemowe dotyczące procesów i funkcje systemowe dotyczące sytemu plików. Zwykłe
polecenia użytkowników są poleceniami dla programu powłoki.
3. Struktura klient – serwer – model związany z rozproszonymi systemami operacyjnymi.
Rozróżniamy sieciowe i rozproszone systemy operacyjne – w systemach sieciowych
klient/użytkownik musi znać adres pliku, z którym chce pracować, który chce wywoływać, w
systemach rozproszonych użytkownik pracuje jak na własnym pececie.
Podstawową zasadą działania w tej strukturze jest przesyłanie maksymalnej ilości kodu na
wyższe poziomy, pozostawiając minimalne jądro.
5