(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
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: Procesor przydzielony procesowi wykonywany 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
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
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 - Sygnały - Obsługa terminali i innych znakowych urządzeń wej/wyj Urządzenia znakowe i ich sterowniki Funkcje systemowe złącza z jądrem systemu - System plików - Obsługa blokowych urządzeń wej/wyj - Moduły obsługi dysków i taśm Złącze jądra ze sprzętem Dyski i taśmy oraz ich sterowniki Przykładowa struktura systemu operacyjnego UNIX 4 - Zarządzanie procesami - Obsługa wymiany stron - Moduły obsługi pamięci wirtualnej Sterowniki pamięci i pamięci fizyczne
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