Systemy operacyjne
Składowe systemu operacyjnego
Zarządzanie procesami
Operacje systemu na procesach
Zarządzanie pamięcią operacyjną
Operacje systemu na pamięci
Zarządzanie plikami
Operacje systemu na plikach
Zarządzanie systemem wejścia-wyjścia
Zarządzanie pamięcią pomocniczą
Operacje systemu na pamięci pomocniczej
Wsparcie dla pracy sieciowej
Ochrona użytkowników i procesów
Interpretacja poleceń
Usługi systemu operacyjnego
Wywołania systemowe
Przykład wywołań systemowych – czytanie i pisanie do pliku
Implementacja wywołań systemowych
Przekazywanie parametrów za pomocą tablicy
Rodzaje funkcji systemowych
Nadzorowanie procesów
Zarządzanie plikami
Zarządzanie urządzeniami
Utrzymywanie informacji
Komunikacja
Systemy jednozadaniowe
Systemy wielozadaniowe
Komunikacja między procesami
Oprogramowanie systemowe
Systemowe programy użytkowe
Struktura systemu operacyjnego
Struktura prosta (MS DOS)
Struktura warstwowa (UNIX)
Mikrojądro (Windows NT)
Maszyny wirtualne
Realizacja maszyn wirtualnych
Wirtualna maszyna Javy
243.00K

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     Русский Правила