Systemy operacyjne
1/37

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 procesami
Moduł 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ących
procesó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ętych
fragmentó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łej
w 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 magazyn
dla 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 medium
komunikacyjnym 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 i
uż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ędzy
uż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 a
systemem 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 do
odczytu
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 funkcji
systemowej
• Metody przekazywania parametrów do
systemu operacyjnego:
– Rejestry procesora
– Blok
– Stos

19. Przekazywanie parametrów za pomocą tablicy

X: parametry funkcji
systemowej
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 jego
usunię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łączenia
komunikacyjnego (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 obszar
Wolny 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 2
Wolny 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 2
K
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 systemu
operacyjnego
• 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żytkowy
Rezydentne
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żytkownicy
Powł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 Win32
Aplikacja 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

Procesy
Procesy
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 poprzez
dyski 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
English     Русский Rules