Post on 27-May-2020
Toruń, 2004
Zbigniew S. Szewczak Podstawy Systemów Operacyjnych
Wykład 5
Struktura systemu operacyjnego
Odrabianie wykładów
☛ czwartek, 1.04.2004, S7, g. 12.00
☛ czwartek, 15.04.2004, S7, g. 12.00
Struktura systemu operacyjnego
☛ Składowe systemu☛ Usługi systemu operacyjnego☛ Funkcje systemowe☛ Programy systemowe☛ Struktury systemów☛ Maszyny wirtualne☛ Projektowanie i implementacja systemu☛ Generowanie systemu
Składowe systemu
☛ Zarządzanie procesami (ang. processmanagement)
☛ Zarządzanie pamięcią operacyjną (ang. mainmemory management)
☛ Zarządzanie plikami (ang. file management)☛ Zarządzanie systemem we/wy (ang. I/O system
management)☛ Zarządzanie pamięcią pomocniczą (ang.
secondary-storage management)
Składowe systemu (c.d)
☛ Praca sieciowa (ang. networking)☛ System ochrony (ang. protection system)☛ System interpretacji poleceń (ang. command-
interpreter system )
Zarządzanie procesami
☛ Proces to program, który jest wykonywany. Dorealizacji swego celu proces potrzebujezasobów: czasu procesora, pamięci, plików orazwe/wy.
☛ Procesy mogą być systemowe i użytkowe☛ Proces jest jednostką pracy w systemie☛ System składa się ze zbioru procesów
Zarządzanie procesami (c.d.)
☛ Program nie jest procesem, jest elementempasywnym, zaś proces jest jednostką aktywną
☛ W odniesieniu do zarządzania procesami systemoperacyjny odpowiada za:☛ tworzenie i usuwanie procesów☛ wstrzymywanie i wznawianie procesów☛ synchronizację procesów☛ komunikację procesów☛ obsługę impasów, zakleszczeń (ang. deadlock)
Zarządzanie pamięcią operacyjną
☛ Pamięć jest wielką tablicą słów lub bajtów oprzypisanych adresach. Pamięć stanowimagazyn szybko dostępnych danych wspólniewykorzystywanych przez procesor i we/wy.
☛ Pamięć operacyjna jest pamięcią ulotną☛ W odniesieniu do zarządzania pamięcią system
odpowiada za☛ utrzymywanie tablicy zajętości pamięci☛ decydowanie o tym jakie procesy są ładowane do pamięci☛ przydzielanie i zwolnianie pamięci
Zarządzanie plikami
☛ Plik jest zbiorem powiązanych ze sobą informacjizdefiniowanych przez jego twórcę. Zwykle plikzawiera program (źródłowy lub wynikowy) albodane
☛ W odniesieniu do zarządzania plikami systemodpowiada za☛ tworzenie i usuwanie plików i katalogów☛ dostarczanie elementarnych operacji na plikach i
katalogach☛ odwzorowywanie plików na obszary pamięci pomocniczej☛ składowanie plików na trwałych nośnikach pamięci (ang.
file backup)
Zarządzanie systemem we/wy
☛ System we/wy obejmuje☛ zarządzanie pamięcią: buforowanie, pamięć podręczna,
spooling☛ ogólny interfejs do modułów sterujących urządzeń☛ moduły obsługi (ang. drivers) urządzeń sprzętowych
Zarządzanie pamięcią pomocniczą
☛ Pamięć operacyjna (ang. primary storage) jestulotna i za mała aby pomieścić dane i programydlatego komputer musi mieć pamięć pomocniczą(ang. secondary storage)
☛ Większość współczesnych komputerów używapamięci dyskowej dla danych i programów
☛ W odniesieniu do zarządzania pamięcią dyskowąsystem odpowiada za☛ zarządzanie obszarami wolnymi☛ przydzielanie pamięci☛ planowanie przydziału pamięci dyskowej
Praca sieciowa
☛ System rozproszony jest zbiorem procesorów,które nie dzielą pamięci, urządzeń zewnętrznychani zegara. Każdy procesor ma własną pamięćlokalną
☛ Procesory w systemie rozproszonym komunikująsię za pomocą linii komunikacyjnychstanowiących elementy sieci komputerowych
☛ System rozproszony umożliwia zdalny dostęp dozasobów różnych systemów komputerowych (naogół jest to dostęp do plików)
System ochrony
☛ Ochrona jest mechanizmem nadzorowaniadostępu programów, procesów lubużytkowników do zasobów komputera
☛ Mechanizm ochrony musi☛ rozróżniać między prawomocnym (ang. authorized) i
nieprawomocnym użyciem zasobów☛ określać co i na jakiej zasadzie podlega ochronie☛ posiadać środki do wymuszania zaprowadzonych ustaleń
System interpretacji poleceń
☛ Wiele poleceń jest przekazywanych do systemuza pomocą instrukcji sterujących (ang. controlstatements). Polecenia te dotyczą☛ tworzenia procesów i zarządzania nimi☛ obsługi wejścia/wyjścia☛ administrowania pamięcią pomocniczą i operacyjną☛ dostępu do plików☛ ochrony☛ pracy sieciowej
System interpretacji poleceń (c.d.)
☛ Program, który analizuje instrukcje sterującenazywa się różnie☛ interpreter kart sterujących (ang. control-card interpreter)☛ interpreter wiersza poleceń(ang. command-line interpreter)☛ powłoka (ang. shell) (w UNIXie)
Jego funkcja to pobranie i wykonanie następnejinstrukcji sterującej wpisanej z klawiatury iwprowadzonej za pomocą klawisza Enter(Return) bądź wprowadzonej kliknieciem myszkina wybraną ikonę.
Unix - realizacja poleceń
☛ Interpreter poleceń: powłoka (ang. shell)☛ System wielozadaniowy☛ Wprowadzenie polecenia to zapoczątkownie
procesu funkcją systemową fork i exec☛ Powłoka oczekuje na zakończenie procesu☛ Jeśli polecenie wykonuje się w tle (ang.
background) to powłoka może przyjmowaćnowe polecenia
☛ Proces wykonuje funkcję systemową exit☛ Powłoka może realizować nowe polecenie
Przykład - prosty shell
#define TRUE 1
while (TRUE) { /* pętla */ type_prompt( ); /* prompt */ read_command (command, parameters) /*czytaj komendę */
if (fork() != 0) { /* proces potomny */ /* Kod rodzica */ waitpid( -1, &status, 0); /* czekaj */} else { /* Kod potomka */ execve (command, parameters, 0); /* wykonaj komendę */ }}
Router Cisco - CLI
FLASH
NVRAM
ROM
CPU
RAMinterfejs szyny
interfejswe/wy
interfejswe/wy
interfejswe/wy
CPU CPU CPU
SystemIOS
Konfiguracja
booting tablice routingu
IOS
magistrala
sh flash
sh conf sh prot
sh int s0
sh processes CPU
sh run
sh ver
Usługi systemu operacyjnego
☛ Wykonanie programu - system powinien móczaładować program do pamięci i wykonać go
☛ Operacje we/wy - ponieważ program użytkowynie wykonuje operacji we/wy bezpośrednio więcsystem musi to oferować system
☛ Manipulowanie systemem plików - programmusi mieć możliwość (pod kontrolą) do czytania,pisania, tworzenia i usuwania plików
Usługi systemu operacyjnego (c.d.)☛ Komunikacja - wymiana informacji pomiędzy
procesami wykonywanymi na tym samym lubzdalnym komputerze np. za pomocą pamięcidzielonej (ang. shared memory) lubprzekazywania komunikatów (ang. messagepassing)
☛ Wykrywanie błędów - zapewnienie prawidłowścidziąłania komputera poprzez wykrywanie iobsługę wszystkich błędów w jednostcecentralnej, pamięci operacyjnej, urządzeniachwe/wy (np. błąd sumy kontrolnej) i w programieużytkownika (np. przekroczenie czasu)
Dodatkowe funkcje systemu
☛ Dodatkowe funkcje systemu nie sąprzeznaczone do pomagania użytkownikowi,lecz do optymalizacji działania samego systemu☛ przydzielanie zasobów dla wielu użytkowników i wielu
zadań w tym samym czasie☛ rozliczanie - przechowywanie danych o tym, którzy
użytkownicy i w jakim stopniu korzystają zposzczególnych zasobów komputera (statystykaużytkowania)
☛ ochrona - zapewnienie aby cały dostęp do zasobówsystemu odbywał się pod kontrolą np. dostęp przez modempo podaniu hasła
Funkcje systemowe☛ Funkcje systemowe (ang. system calls) tworzą
interfejs między wykonywanym programem asystemem operacyjnym☛ dostępne na poziomie języka maszynowego (asemblera) -
IBM/370: rozkaz SIO (start input/output)☛ pewne języki zastępują asembler w programowaniu
systemowym i umożliwiają bezpośrednie wykonywanie funkcjisystemowych (np. C, C++, Bliss, PL/360, PERL)
☛ Win32 API (ang. Application Programm{er|ing} Interface) -wielki zbiór procedur dostarczanych przez Microsoft, któreumożliwiają realizację funkcji systemowych
☛ Proste skopiowanie pliku jest w rzeczywistościskomplikowanym przedsięwzięciem
Funkcje systemowe (c.d.)
☛ Są trzy metody przekazywania parametrówmiędzy wykonywanym programem a systememoperacyjnym☛ umieszczenie parametrów w rejestrach jednostki centralnej☛ zapamiętanie parametrów w tablicy w pamięci operacyjnej
i przekazanie adresu tej tablicy jako parametru w rejestrze☛ składowanie (ang. push) przez program parametrów na
stosie (ang. stack) i zdejmowanie (ang. pop) ze stosuprzez system operacyjny
Przekazywanie parametrów zapomocą tablicy
program użytkownika system operacyjny
Rejestr
X: parametry
funkcji systemowej
pobranie adresu X
wywołanie funkcji
systemowej 13
X
użycie parametrów
z tablicy X kod funkcjisystemowej 13
Funkcje systemowe - podział
☛ nadzorowanie procesów☛ operacje na plikach☛ operacje na urządzeniach☛ utrzymywanie informacji☛ komunikacja
Nadzorowanie procesów
☛ zakończenie (end), zaniechanie (abort)☛ załadowanie (load), wykonanie (execute)☛ utworzenie (create) i zakończenie (terminate)☛ pobranie (get) i ustawienie (set) atrybutów☛ czekanie czasowe (wait for time)☛ czekanie na zdarzenie (event), sygnał (signal)☛ przydział (allocate) i zwolnienie (free) pamięci
Nadzorowanie procesów i zadań
☛ Zrzuty zawartości (ang. dump) pamięci na dyskw przypadku błędu
☛ Ślad działania programu (ang. trace)☛ tryb pracy jednokrokowy procesora (ang. single step) -
wejście w tryb obsługi pułapki (ang. trap) po wykonaniukażdej instrukcji
☛ Dokąd przekazać sterowanie gdy załadowanyprogram zakończy pracę?
MS-DOS działanie
☛ System jednozadaniowy☛ Okrojone wykonywanie współbieżne za pomocą
funkcji systemowej TSR (ang. terminate andstay resistance)☛ TSR przechwytuje przerwanie (np. zegarowe)☛ TSR rezerwuje obszar pamięci co uniemożliwia
nadpisanie go przez interpreter poleceń
MS-DOS - proces a pamięć
jądro jądro
interpreter interpreter
obszar wolny
obszar wolny
proces
UNIX - wieloprogramowanie
jądro
interpreter
obszar wolny
proces C
proces B
proces D
Operacje na plikach
☛ utworzenie (create) i usunięcie (delete)☛ otwarcie (open) i zamknięcie (close)☛ czytanie (read), pisanie (write), zmiana
położenia (reposition)☛ pobranie (get) i ustawienie (set) atrybutów
(attributes) pliku
Zarządzanie urządzeniami
☛ Zarezerwowanie urządzenia☛ Zwolnienie urządzenia☛ Podobieństwo plików i urządzeń☛ W Unixie i MS-DOS urządzenia to pliki o
specjalnych nazwach (/dev/ttyS0 lub COM1)
Utrzymywanie informacji
☛ pobranie (get) lub ustawienie (set) czasu lubdaty (time or date)
☛ pobranie (get) lub ustawienie (set) danychsystemowych (system data)
☛ pobranie (get) atrybutów procesu, pliku luburządzenia
☛ ustawienie (set) atrybutów procesu, pliku luburządzenia
Komunikacja
☛ utworzenie (create), usunięcie (delete)połączenia
☛ nadawanie (send), odbieranie (receive)komunikatów (messages)
☛ przekazywanie informacji o stanie (transferstatus information)
☛ przyłączanie lub odłączanie urządzeń zdalnych(attach or detach remote devices)
Operacje na urządzeniach
☛ zamówienie (request) i zwolnienie (release)urządzenia (device)
☛ czytanie (read), pisanie (write) i zmianapołożenia (reposition)
☛ pobranie (get) i ustawienie (set) atrybutów☛ logiczne przyłączanie (logically attach) i
odłączanie (detach) urządzenia
Działanie na plikach
☛ Pliki tworzymy i usuwamy☛ Aby użyć utworzony plik musimy go otworzyć☛ Wykonujemy operacje na plikach (czytanie,
pisanie, przewijanie)☛ Po wykonaniu operacji na pliku plik zamykamy☛ Katalog jest też plikiem: analogiczne funkcje☛ Ochrona dostępu: atrybuty zbiorów
Przykłady - Unix i Win32
☛ tworzenie nowego procesu☛ Unix: fork; Win32: CreateProcess
☛ czekanie na zakończenie procesu☛ Unix: waitpid; Win32: WaitForSingleObject
☛ wykonanie nowego procesu☛ Unix: execve; Win32: (brak)
☛ zakończenie procesu☛ Unix: exit; Win32: ExitProcess
☛ przesłanie sygnału☛ Unix: kill; Win32: (brak)
Przykłady - Unix i Win32 (c.d.)
☛ otwarcie zbioru☛ Unix: open; Win32: CreateFile
☛ zamknięcie zbioru☛ Unix: close ; Win32: CloseHandle
☛ czytanie z pliku☛ Unix: read; Win32: ReadFile
☛ pisanie do pliku☛ Unix: write; Win32: WriteFile
☛ przesunięcie w pliku☛ Unix: lseek; Win32: SetFilePointer
Przykłady - Unix i Win32 (c.d.)
☛ atrybuty pliku☛ Unix: stat; Win32: GetFileAttributesEx
☛ tworzenie katalogu☛ Unix: mkdir; Win32: CreateDirectory
☛ usuwanie katalogu☛ Unix: rmdir; Win32: RemoveDirectory
☛ link do pliku☛ Unix: link; Win32: (brak)
☛ usuniecie linku☛ Unix: unlik; Win32: (brak)
Przykłady - Unix i Win32 (c.d.)
☛ montowanie katalogu☛ Unix: mount; Win32: (brak)
☛ rozmontowanie katalogu☛ Unix: umount; Win32: (brak)
☛ zmiana katalogu☛ Unix: chdir; Win32: SetCurrentDirectory
☛ zmiana praw dostępu☛ Unix: chmod; Win32: (brak)
☛ pobranie czasu☛ Unix: time; Win32: GetLocalTime
Komunikacja
☛ Dwa modele komunikacji:☛ przesyłanie komunikatów (ang. message passing)☛ pamięć dzielona (ang. shared memory)
☛ Przesyłanie komunikatów☛ nawiązanie połączenia
☛ pobranie nazwy sieciowej (ang. gethostid) , procesu (ang.get processid), otwarcie połączenia (ang. open connection)
☛ realizacja połączenia☛ klient i serwer wymieniają komunikaty (read, write)
☛ zamknięcie połączenia (ang. close connection)
Model klient/serwer
Sprzęt klienta Sprzęt serwera
System operacyjnyklienta
System operacyjnyserwera
Sieciowy systemoperacyjny klienta
Sieciowy systemoperacyjny serwera
Oprogramowanieklienta
Oprogarmowananieserwera
Usługi warstwyprezentacji
polecenie
odpowiedź
Protokółsieciowy
Połączeniesieciowe
Komunikacja (c.d.)
☛ Pamięć dzielona☛ procesy posługują się systemowymi funkcjami
odwzorowywania pamięci (ang. memory map)☛ system operacyjny nie ingeruje w sposób wykorzystania
pamięci dzielonej☛ problemy synchronizacji i ochrony danych
☛ Przesyłanie komunikatów przydatne dlamniejszej ilości danych i łatwe do realizacji
☛ Pamięć dzielona zapewnia maksymalną szybkośći wygodę komunikacji
Rodzaje komunikowania
jądro
proces B
proces A
jądro
proces D
proces C
pamięć dzielona
K
K
K
pamięć dzielona przesyłanie komunikatów
Programy systemowe
☛ Programy systemowe (ang. system programs)wygodniejsze środowisko do opracowywania iwykonywania innych programów. Można jepodzielić na kilka kategorii☛ Manipulowanie plikami (ang. file manipulation) -
programy do tworzenia, usuwania, kopiowania,przemianowywania, składowania i wyprowadzaniazawartości plików
☛ Informowanie o stanie systemu (ang. status information) -logi systemowe
☛ Tworzenie i zmienianie zawartości plików (ang. filemodification) - np. edytory
Programy systemowe (c.d.)
☛ (c.d)☛ Translatory języków programowania (ang. programming
language support) - C, Pascal, Basic, Lisp..☛ Ładowanie i wykonywanie programów (ang. program
loading and execution) - konsolidatory i programy ładujące☛ Komunikacja (ang. communications) - np. remote login☛ Programy aplikacyjne (ang. application programs)
☛ Sposób w jaki użytkownicy postrzegają systemoperacyjny wyznaczają programy systemowe anie funkcje (wywołania) systemowe
☛ Przyjazne dla użytkownika środowisko nie jestbezpośrednim celem systemu operacyjnego
Struktury systemów
☛ Monolityczna (ang. monolithic) - jądrojednoczęściowe☛ OS/360 - 5000 programistów 1M kodu w ciągu 5 lat☛ IBM/360 MVT/TSO - koszt 50M $☛ AIX - Unix wersji IBM - jądro dwuczęściowe
☛ Warstwowa (ang. layered)☛ strukura hierarchiczna - skutki małych zmian w jednej
warstwie trudne do przewidzenia w innych warstwach
☛ Mikrojądra (ang. microkernel, µ-kernel)☛ jedynie bezwzględnie niezbędne funkcje systemowe w
jądrze systemu (np. mikrojądro L4 ma 12kB kodu, 7funkcji systemowych)
System monolityczny
procedura główna
procedury usługowe
procedury użytkowe
Przykład - MS-DOS
☛ MS-DOS – napisany pod kątem osiągnięciamaksymalnej funkcjonalności przy oszczędnościmiejsca☛ brak wyraźnego podziału na moduły☛ interfejsy i poziomy funkcjonalności nie są jasno
wydzielone, np. programy użytkowe mogą pisaćbezpośrednio na ekran
☛ brak dualnego trybu pracy (Intel 8088)☛ konsekwencja: MS-DOS nie jest odporny na błędne
programy
Struktura MS-DOS (c.d.)
program aplikacji
rezydentny program systemowy
moduły sterujące MS-DOS
moduły sterujące ROM BIOS
Przykład - Unix
☛ UNIX (oryginalny) - ograniczany przez cechysprzętu miał ograniczoną strukturę. UNIX OSskłada z dwu odrębnych części☛ programy systemowe☛ jądro systemu
☛ jądro to wszystko co znajduje się poniżej interfejsu funkcjisystemowych a powyżej sprzętu
☛ za pośrednictwem funkcji systemowych jądro systemu UNIXudostepnia system plików, planowanie przydziału procesora,zarządzanie pamięcią oraz inne funkcje systemu
Struktura systemu UNIX
(użytkownicy)
powłoki i poleceniakompilatory i interpretery
biblioteki systemowe
obsługa sygnalów obsługa terminaliznakowy system we/wy moduły sterujące terminali
sprzętowy interfejs jądra
interfejs funkcji systemowych
system plików wymiana blokowy system we/wy moduły sterujące dysków i taśm
planowanie CPU zastępowanie stron stronicowanie na żądanie pamięć wirtualna
sterowniki terminali terminale
sterowniki urządzeń dyski i taśmy
sterowniki pamięci pamięć fizyczna
Struktura warstwowa
☛ System operacyjny jest podzielony na warstwy(poziomy) (ang. layers (levels)) zbudowanepowyżej warstw niższych. Warstwę najniższą(warstwę 0) stanowi sprzęt; warstwę najwyższą(warstwę N) stanowi interfejs z użytkownikiem
☛ podejście warstwowe realizuje modularność(ang. modularity): warstwy są wybrane w tensposób, że każda korzysta z funkcji (operacji) iusług tylko niżej położonych warstw
Warstwa systemu operacyjnego
.
.
.
.
.
.
.
.
.
warstwa M
warstwa M-1
nowe operacje
ukryte operacje
istniejące operacje
Przykład - system THE
☛ Zastosowana po raz pierwszy przyprojektowaniu systemu THE (TechnischeHogeschool w Eindhoven). Sześć warstw☛ 5: programy użytkowe☛ 4: buforowanie urządzeń we/wy☛ 3: program obsługi konsoli operatora☛ 2: zarządzanie pamięcią☛ 1: planowanie przydziału procesora☛ 0: sprzęt
Struktura systemu OS/2
aplikacja aplikacja aplikacja
interfejs programowania aplikacji API
podsystem podsystem podsystem
jądro systemu
moduł sterujący
moduł sterujący
moduł sterujący
moduł sterujący
zarządzanie pamięcią
zarządzanie urządzeniami
ekspedycja zadań
Struktura jądra systemu Unix
interfejs funkcji systemowych
interfejs sprzętu
podsystem plików
moduły sterujące
znakowe blokowe
sprzęt
podsystem zarządzania procesami
bibliotekiwarstwa użytkownika
warstwa jądra
warstwa jądrawarstwa sprzętu
komunikacja międzyprocesowa
planista przydziału procesora
zarządzanie pamięcią
cache (bufory)
program użytkownika pułapka
Maszyny wirtualne
☛ Maszyna wirtualna (ang. virtual machine) jestlogiczną konsekwencją podejścia warstwowego:jądro systemu jest traktowane jako sprzęt.☛ IBM VM/370, JavaOS, Tryb MS-DOS, Cygwin, VMware
☛ Maszyna wirtualna dostarcza identycznegointerfejsu dla sprzętu
☛ System operacyjny tworzy wirtualne systemykomputerowe, każdy proces ma do dyspozycjiwłasne (wirtualne) jądro, dyski, pamięć,drukarki
Maszyny wirtualne (c.d.)
☛ Zasoby fizycznego komputera są dzielone w celuutworzenia maszyn wirtualnych☛ planowanie przydziału procesora jest tak wykorzystane, że
użytkownik ma wrażenie jakoby miał do dyspozycjiwłasny procesor
☛ Spooling i system zarzadzania plikami jest wykorzystanytak, że powstaje wrażenie użytkowania drukarki, czytnikana wyłączność
☛ Zwykłe terminale użytkownika funkcjonują jak konsoleoperatorskie maszyny wirtualnej ( system interakcyjnyCMS)
Modele systemumaszyna niewirtualna maszyna wirtualna
jądro
sprzęt
proces B
proces Ajądro
sprzęt
proces B
proces A
jądro
proces D
proces C
jądro
proces F
proces E
VM1 VM2 VM3
implementacja maszyny wirtualnej
interfejs programowy
Przykład - VM/370
☛ Obserwacja: system podziału czasu dajeużytkownikowi wieloprogramowanie poprzezstworzenie wrażenia maszyny wirtualnej
☛ Wniosek: należy te dwie idee rozdzielić☛ Monitor maszyny wirtualnej zarządza zasobami
sprzętowymi wielu systemów operacyjnych CMS(ang. Conversational Monitor System)
☛ Przykład: program czyta plik z dysku wirtualnego☛ (wirtualne) wywołanie systemowe CMS☛ symulacja I/O przez system VM/370
☛
Przykład - VM/370
CMS CMSCMS
VM/370
„goła maszyna 370”
maszyny wirtualne 370
pułapka
pułapka
instrukcja we/wy
wywołanie systemowe
Wirtualna Maszyna Javy
☛ Program w Javie .java kompilowany programemjavac tworzy kod wynikowy (ang. bytecode) .class
☛ Kod wynikowy .class jest niezależny od platformysprzętowej
☛ Do wykonania .class potrzebny jest jednakprogram java (Java Virtual Machine (JVM)), któryjest implementacją maszyny wirtualnej
☛ JVM składa się z:☛ Class loader☛ Class verifier☛ Runtime interpreter
Maszyna wirtualna JVM
class loader
Java interpreter
program Java pliki .class
Java API pliki .class
system operacyjny
bytecode
Przykład - program w Javie
☛ hello.java
☛ javac hello.java☛ javap -c hello >hello.bc☛ scp java.class user@juliusz.mat.uni.torun.pl:☛ slogin juliusz.mat.uni.torun.pl -l user☛ uname -a☛ java hello
public class hello{ public static void main(String args[]) { System.out.println("Hello World!"); }}
Maszyna wirtualna - plusy iminusy☛ Koncepcja maszyny wirtualnej dostarcza pełnej
ochrony zasobów systemu, bowiem każdamaszyna wirtualna jest całkowicie odizolowanaod innych maszyn. Z drugiej strony izolacja takautrudnia bezpośrednie dzielenie zasobów
☛ System maszyn wirtualnych jest doskonałymnarzędziem do badania systemów operacyjnychoraz poszukiwania kierunków ich rozwoju. Niema potrzeby wyłączać z eksploatacji systemukomputerowego w czasie trawania pracsystemowych - można eksperymentować najednej z maszyn wirtualnych
Maszyna wirtualna - plusy iminusy (c.d.)
☛ Metasystem operacyjny - system operacyjnynadzorujący jednoczesną pracę wielu systemówoperacyjnych na jednym komputerze: np.9xLinux, 2xW95, 2xWNT, 1xSolaris, 1xMS-DOS
☛ Koncepcja maszyny wirtualnej jest bardzo trudnado zaimplementowania dlatego, że zawsze będziepokusa uzyskania oryginalnego systemu podpostacią maszyny wirtualnej - petitio principii
☛ petitio principii - sofizmat myślowy, “błędne koło”
Kompromis - egzojądro
☛ Maszyna wirtualna daje jedynie fragmentzasobów maszyny rzeczywistej
☛ “Istnieją dwa rodzaje ludzi - ci, którzy wszystkona świecie dzielą na dwa rodzaje rzeczy i ci,którzy tego nie czynią” - Kenneth Boulding
☛ Egzojądro (ang. exokernel ) - najniższa warstwajądra mająca za zadanie przydział zasobówmaszyn wirtualnych
☛ Wieloprogramowanie obsługiwane w egzojądrze☛ System operacyjny użytkownika działa w jego
przestrzeni adresowej ( w trybie użytkownika)
Wady podejścia warstwowego
☛ Trudno jest zdefiniować warstwę albowiemuzależnione to jest od warstw leżących poniżej
☛ Nieefektywność systemu wynikająca zkonieczności przechodzenia przez wiele warstw☛ operacja we/wy:warstwa we/wy -> warstwa zarządzania
pamięcią-> warstwa zarządzania procesami-> sprzęt☛ pierwsze wersje Windows NT miały strukturę warstwową i były mniej
wydajne niż Windows95
☛ Trudno jest kontrolować modyfikowanie kodusystemu operacyjnego
Mikrojądro
☛ jądro zredukowane do małego zbioru funkcjirdzeniowych tzw. mikrojądro
☛ większość operacji w przestrzeni użytkownika☛ obsługa: urządzeń, plików, pamięci wirtualnej, grafiki,
ochrona przy pomocy komunikatów (np. IPC)☛ Przykłady
☛ Mach - opracowany w Carnegie-Mellon University☛ Tru64 UNIX - Digital UNIX☛ Apple MacOS X Server☛ QNX - przykład systemu czasu rzeczywistego
☛ Windows NT 4.0 - rozwiązanie hybrydowe:warstwowe podejście do modelu klient-serwer
Struktura Mac OS X
BSD
mach
application environments and common services
kernel environment
Windows NT - hybrydowastruktura klient - serwer
aplikacja Win32
serwer Win32
aplikacja OS/2
serwer OS/2
aplikacja POSIX
serwer POSIX
jądro jądro
Warstwy a mikrojądro
sprzęt sprzęt
mikrojądro
pamięć wirtualna
zarządzanie we/wy
komunikacja IPC
systemy plików
użytkownicy
zarządzanie procesami
proc
es k
lient
a
pam
ięć
wirt
ualn
a
serw
er p
roce
sów
serw
er p
lików
mod
uły
ster
ując
e
tryb
jądra
tryb
użytkownika
Zalety i wady mikrojąder
☛ Jednolity interfejs dla procesów☛ Łatwość w kontrolowaniu kodu systemu
operacyjnego☛ Przenaszalność systemu (na inną architekturę)☛ Niezawodność - małe jądro łatwiej przetestować
(ok. 300 kB kodu, 140 funkcji systemowych)
☛ Wydajność - zbudowanie, zakolejkowanie,wysłanie, odebranie, potwierdzenie komunikatu
☛ Poprawianie wydajności prowadzi do rozbudowymikrojądra
Moduły
☛ Większość współczesnych systemówoperacyjnych ma zaimplementowane wjądrze systemu moduły (np. Linux)☛ podejście zorientowane obiektowo☛ moduły komunikują się za pomocą interfejsów☛ moduł jest ładowany do jądra tylko wtedy gdy jest
potrzebny☛ Pewne podobieństwo do struktury
warstwowej jednak większa elastyczność
Solaris - struktura modułowa
rdzeń jądra
systemy plików
moduły urządzeń
różnemoduły
modułystrumieni
formatywynikowe
wywołania systemowe
kolejki planisty
Projektowanie systemu -założenia projektowe
☛ Oczekiwania użytkownika - system operacyjnypowinien być wygodny i łatwy w użyciu i donauki, niezawodny, bezpieczny i szybki
☛ Oczekiwania projektanta systemu - systemoperacyjny powinien być łatwy w projektowaniuoraz realizacji; elastyczny, niezawodny, wolnyod błędów i wydajny
☛ Sformułowane oczekiwania są niejasne,nieprecyzyjne, na domiar złego ogólny sposóbrealizacji jest nieznany
Mechanizm a polityka
☛ Mechanizmy określają jak czegoś dokonać, zaśpolityka decyduje o tym co ma być zrobione
☛ Zasada rozdziału polityki od mechanizmu jestbardzo ważną zasadą gwarantującą elastyczność☛ zmiana polityki może powodowąć wymianę mechanizmu☛ ogólny mechanizm jest mniej podatny na zmianę polityki☛ dwie skrajności
☛ wydzielenie elementarnych składowych systemuoperacyjnego (np. w postaci mikrojąder) i budowanie na ichpodstawie ogólnych mechanizmów zależnie od bieżącejpolityki
☛ wbudowanie wszystkich mechanizów oraz interfejsówużytkowych w jądro systemu (np. Apple Macintosh)
Implementacja systemu
☛ Tradycyjnie systemy operacyjne pisano w kodziemaszynowym (asemblerze); obecnie mogą byćpisane w języku wysokiego poziomu (tylko 900wierszy oryginalnego kodu UNIXa było wasemblerze)
☛ Język wysokiego poziomu pozwala na☛ szybsze programowanie systemów operacyjnych☛ uzyskiwanie bardziej zwartego kodu.☛ łatwiejsze zrozumienie i sprawdzanie kodu☛ łatwiejsze przenoszenie (ang. port) systemu na komputery
o innej architekturze
Generowanie systemu -(SYSGEN)
☛ Systemy operacyjne są projektowane na pewnąklasę (podobnych) maszyn; dla każdej maszynysystem musi zostać osobno skonfigurowany
☛ Program generujący (SYSGEN) ma na wejściuinformację o specyficznej konfiguracji a nawyjściu gotowy system operacyjny na dysku☛ jaki procesor lub procesory; jakie rozszerzenia☛ ile pamięci opercyjnej; ile pamięci pomocniczej(swap)☛ jakie urządzenia we/wy i sposób ich adresowania☛ jaki sposób przydziału procesora, maksymalna liczba
procesów
Generowanie systemu -(SYSGEN) (c.d.)
☛ Można skonstruować system całkowiciesterowany tablicami; system zawiera caływymagany kod a wyboru dokonuje się w czasiewykonania programu
☛ Rozruch (ang. booting) - procedura startowaniasystemu przez załadowanie jądra do pamięci
☛ Program rozruchowy (ładujący) (ang. bootstrap(loader)) - fragment kodu w ROM, który jest wstanie zlokalizowąć jądro, wczytać do pamięci irozpocząć jego wykonywanie
Strony WWW
☛ ACM☛ www.acm.org
☛ IEEE Computer Society☛ www.computer.org
☛ USENIX☛ www.usenix.org
Podsumowanie (1)
☛ Systemy operacyjne są dostarczycielami usług☛ najniższy poziom to funkcje systemowe☛ interpreter poleceń lub powłoka☛ programy systemowe do spełniania życzeń
☛ Rodzaje żądań od systemu zależą od poziomu☛ najniższy poziom: podstawowe operacje na procesach,
plikach i urządzeniach☛ żądania poziomu interpretera poleceń lub programów
systemowych są tłumaczone na język funkcji systemowych
Podsumowanie (2)
☛ Usługi systemu dzielimy na☛ nadzór na wykonaniem procesów☛ podawanie informacji o stanie systemu☛ obsługa zamówień na operacje we/wy☛ obsługa błędów
☛ Struktura jądra systemu☛ monolityczna - np. Linux☛ warstwowa☛ mikrojądro
Podsumowanie (3)
☛ Projektowanie systemu operacyjnego☛ modularność projektu ułatwia implementację☛ układ warstwowy jest ważną techniką projektowania☛ koncepcja maszyny wirtualnej zaciera różnice między
jądrem i sprzętem i pozwala na umieszczenie systemu☛ oddzielenie polityki od szczegółów realizacyjnych podczas
projektowania gwarantuje elestyczność☛ systemy operacyjne pisane są w językach wysokiego
poziomu lub w językach implementacji systemów
☛ Generacja systemu jest dopasowaniem systemuoperacyjnego do potrzeb konkretnej instalacji