Similar presentations:
Systemy operacyjne. Struktura systemu operacyjnego
1. Systemy operacyjne
Wykład nr 3:Struktura systemu operacyjnego
Piotr Bilski
2. Składowe systemu operacyjnego
Moduł zarządzania procesamiModuł zarządzania pamięcią operacyjną
Moduł zarządzania plikami
Moduł zarządzania systemem I/O
Moduł zarządzania pamięcią pomocniczą
Moduł zarządzania interfejsami sieciowymi
System ochrony
Interpreter poleceń
3. Zarządzanie procesami
• Proces – wykonywany program,znajdujący się w pamięci i posiadające
kontekst
• Istnieją zarówno procesy systemowe, jak i
użytkowe
• Proces korzysta z zasobów: pamięci,
czasu procesora, urządzeń we-wy
• Program jest pasywny, proces – aktywny
4. Operacje systemu na procesach
• Tworzenie i usuwanie procesów• Wstrzymywanie i wznawianie procesów
• Zapewnianie mechanizmów synchronizacji
procesów
• Zapewnianie mechanizmów komunikacji
procesów
• Zapewnianie mechanizmów obsługi
zakleszczeń
5. Zarządzanie pamięcią operacyjną
• Pamięć jest magazynem dla działającychprocesów oraz danych, na których pracują
• Program wykonywany musi być
adresowany za pomocą adresów
bezwzględnych i znajdować się w pamięci
• Zarządzanie pamięcią zależy od
rozwiązań sprzętowych systemu
6. Operacje systemu na pamięci
• Utrzymywanie ewidencji zajętychfragmentów pamięci
• Identyfikacja procesów, do których należą
poszczególne fragmenty pamięci
• Przydzielanie wolnych obszarów pamięci
nowym procesom
• Przydzielanie i zwalnianie obszarów
pamięci w zależności od potrzeb
7. Zarządzanie plikami
• Pliki przechowywane są w pamięci trwałejw strukturze logicznej systemu
• Plik jest zbiorem informacji powiązanych ze
sobą w sposób zdefiniowany przez jego
twórcę
• Pliki przechowują programy albo dane
• Pliki są zorganizowane w katalogi
(ułatwienie użytkowania!)
• System operacyjny realizuje abstrakcyjny
model plików poprzez zarządzanie
nośnikami pamięci masowej
8. Operacje systemu na plikach
• Tworzenie i usuwanie plików• Tworzenie i usuwanie katalogów
• Zapewnianie operacji do manipulacji
plikami i katalogami
• Odwzorowanie plików na obszary pamięci
pomocniczej
• Składowanie plików na trwałych nośnikach
pamięci
9. Zarządzanie systemem wejścia-wyjścia
Zarządzanie systemem wejściawyjścia• System operacyjny ukrywa przed
użytkownikiem szczegóły sprzętu:
– podsystem wejścia-wyjścia (UNIX)
– Hardware Abstraction Layer (Windows)
• Moduł komunikacji ze sprzętem składa się
z części zarządzającej pamięcią, ogólnej
części sterującej urządzeniami oraz
programów obsługi
• Konieczna jest obsługa przerwań oraz
DMA
10. Zarządzanie pamięcią pomocniczą
• Pamięć pomocnicza służy jako magazyndla programów i danych, które nie
mieszczą się w pamięci głównej
• Realizowana głównie przez pamięć
dyskową
• Wydajność jest głównym problemem
11. Operacje systemu na pamięci pomocniczej
• Zarządzanie wolnymi obszarami• Przydział pamięci procesom i danym
• Planowanie dostępu do dysku
12. Wsparcie dla pracy sieciowej
• Sieć komputerowa jest mediumkomunikacyjnym dla systemu
rozproszonego
• Konieczne implementacje protokołów dla
przechowywania i przesyłania plików
• Zasoby dzielone umożliwiają wykonywanie
obliczeń rozproszonych
13. Ochrona użytkowników i procesów
• Ochrona dotyczy dostępu procesów iużytkowników do zasobów systemu
komputerowego
• Należy zdefiniować, co ma podlegać
ochronie i jakiego rodzaju
• Ochrona musi obejmować interfejsy
pomiędzy modułami systemowymi
14. Interpretacja poleceń
• Interpreter poleceń – interfejs międzyużytkownikiem i systemem operacyjnym
• Może znajdować się w jądrze
• Komunikacja z systemem odbywa się
poprzez instrukcje sterujące
• Realizowany jako interpreter wiersza poleceń
(command line interpreter) lub powłoka
(shell)
• Przykłady: explorer (Windows), finder (Mac
OS) ksh, csh, bash, tcsh, KDE (Linux), CDE
(Solaris)
15. Usługi systemu operacyjnego
Wykonywanie programu
Operacje wejścia-wyjścia
Operacje na systemie plików
Komunikacja międzyprocesowa (IPC)
Wykrywanie błędów
Przydzielanie zasobów procesom
Rozliczanie użytkowników
Ochrona
16. Wywołania systemowe
• Tworzą interfejs między procesem asystemem operacyjnym
• Mogą być wywołane wewnątrz programu
• Programista może korzystać z funkcji
systemowych poprzez API
17. Przykład wywołań systemowych – czytanie i pisanie do pliku
Nazwa pliku doodczytu
open
Nazwa pliku do
zapisu
close
Plik do odczytu
create
Plik do zapisu
read
write
close
• Konieczna obsługa wyjątków – gdy tworzony plik już
istnieje, lub wystąpi błąd parzystości
• Przykład: instrukcje fprintf, fscanf (C), cin, cout (C++)
18. Implementacja wywołań systemowych
• Konieczna identyfikacja funkcjisystemowej
• Metody przekazywania parametrów do
systemu operacyjnego:
– Rejestry procesora
– Blok
– Stos
19. Przekazywanie parametrów za pomocą tablicy
X: parametry funkcjisystemowej
Parametry funkcji
systemowej
Kod funkcji
systemowej
Wywołanie funkcji
systemowej z
parametrami
Program
użytkownika
Użycie
parametrów
z tablicy X
System operacyjny
20. Rodzaje funkcji systemowych
Nadzorowanie procesów
Zarządzanie plikami
Zarządzanie urządzeniami
Utrzymywanie informacji
Komunikacja
21. Nadzorowanie procesów
• Zakończenie planowe (end) lub wyjątkowe(abort)
• Załadowanie (load) i wykonanie (execute)
• Tworzenie (create process) i likwidacja
(terminate process)
• Pobieranie atrybutów (get process attributes) i
ich ustawianie (set process attributes)
• Czekanie na zdarzenie (wait for event) i
określoną ilość czasu (wait for time)
• Przydział pamięci (allocate memory) i zwolnienie
(free memory)
• Zrzucanie zawartości pamięci (dump), śledzenie
wykonania programu (tracr)
22. Zarządzanie plikami
• Utworzenie pliku (create file) u jegousunięcie (delete file)
• Otwarcie (open) i zamknięcie (close)
• Czytanie (read), pisanie (write), zmiana
położenia (reposition)
• Czytanie atrybutów (get file attributes) i
ustawienie (set file attributes)
23. Zarządzanie urządzeniami
• Zamówienie (request device), zwolnienie(release device)
• Czytanie (read), pisanie (write), zmiana
położenia (reposition)
• Czytanie atrybutów (get device attributes),
ustawianie atrybutów (set device
attributes)
• Podłączenie logiczne (logical attach) i
odłączenie (logical detach)
24. Utrzymywanie informacji
• Pobranie czasu/daty (get time or date),ustawienie czasu/daty (set time or date)
• Pobranie danych systemowych (get system
data), ustawienie danych systemowych (set
system data)
• Pobranie atrybutów procesu, pliku lub
urządzenia (get process/file/device attribute)
• Ustawienie atrybutów procesu, pliku lub
urządzenia (set process/file/device attribute)
25. Komunikacja
• Utworzenie/usunięcie połączeniakomunikacyjnego (create/delete
communication connection)
• Nadawanie, odbieranie komunikatów
(send/receive messages)
• Przekazywanie informacji o stanie
(transfer status information)
• Przyłączanie/odłączanie urządzeń
zdalnych (attach/detach remote devices)
26. Systemy jednozadaniowe
Wolny obszarWolny obszar
Proces
Interpreter
poleceń
jądro
Interpreter
poleceń
jądro
• Przykład MS-DOS
• Wykonywanie współbieżne: programy TSR
(terminate and stay resident)
27. Systemy wielozadaniowe
Proces 2Wolny obszar
Interpreter
poleceń
Proces 1
jądro
• Przykład: Linux, Mac OS
• Proces może być wykonywany na pierwszym
planie, lub w tle
28. Komunikacja między procesami
Proces 2K
Proces 1
K
Proces 2
Pamięć dzielona
Proces 1
jądro
K
jądro
• Procesy realizujące połączenia to demony/usługi
29. Oprogramowanie systemowe
• Zarządzanie plikami (tworzenie, usuwanie,drukowanie itp.)
• Informowanie o stanie systemu
• Modyfikowanie plików (edycja)
• Zaplecze dla języków programowania
(kompilatory, interpretery)
• Ładowanie i wykonywanie programów
(konsolidatory, moduły ładujące nakładki)
• Komunikacja (tworzenie i utrzymywanie połączeń
między procesami)
30. Systemowe programy użytkowe
• Programy wchodzące w skład systemuoperacyjnego
• Interpreter poleceń może zawierać kod
wykonujący polecenia, lub przekazać
zadanie do programu systemowego
(UNIX)
• Powłoka służy tworzeniu abstrakcji
pomiędzy użytkownikiem i sprzętem
31. Struktura systemu operacyjnego
• Struktura odzwierciedla stopieńzaawansowania i rozmiary systemu
• Przykłady
– Struktury proste (MS DOS)
– Struktury warstwowe (OS/2, Windows NT)
– Mikrojądra (Mac OS)
32. Struktura prosta (MS DOS)
Program użytkowyRezydentne
programy systemowe
Moduły obsługi
urządzeń z poziomu
systemu
Moduły obsługi urządzeń w
pamięci ROM BIOS
33. Struktura warstwowa (UNIX)
UżytkownicyPowłoki i polecenia
Kompilatory i interpretery
Biblioteki systemowe
Interfejs funkcji
systemowych jądra
Sterowniki terminali
Terminale
Sterowniki urządzeń
Dyski i taśmy
Sterowniki pamięci
Pamięć operacyjna
34. Mikrojądro (Windows NT)
Serwer Win32Aplikacja Win32
Serwer OS/2
Aplikacja OS/2
Serwer POSIX
Aplikacja POSIX
jądro
• Windows NT ma budowę hybrydową (od wersji 4.0)
• Każdy obsługiwany podsystem ma strukturę klient-serwer
35. Maszyny wirtualne
ProcesyProcesy
Programy
użytkowe
Programy
systemowe
jądro
jądro
jądro
MW1
MW2
MW3
jądro
Implementacja maszyny wirtualnej
Sprzęt
Sprzęt
Klasyczny system
operacyjny
36. Realizacja maszyn wirtualnych
• Komunikacja między maszynami poprzezdyski wirtualne (spooling i system plików)
• Maszyna jest „zwykłym” programem
użytkownika (pracuje w trybie
użytkownika)
• Aplikacje wewnątrz maszyny mają
wirtualne tryby użytkownika i nadzorcy
• Maszyna wirtualna może być powolna!
37. Wirtualna maszyna Javy
• Symulator nieistniejącego komputera• Budowa: moduł ładujący klasy, weryfikator
klas, interpreter języka
• Kompilacja kodu źródłowego do bajtkodu
• Śmieciarka (garbage collector)
automatycznie usuwa obiekty, które nie są
potrzebne
• Java dostarcza neutralny interfejs