-
System wieloprocesowy musi przełączać procesy w czasie
-
Proces nie może zmonopoliować procesora
-
nawet jeśli wpadnie w pętlę nieskończoną
-
Praca z przydziałem czasu jest realizowana poprzez periodyczne przejmowanie kontroli przez system operacyjny
-
dzieje się to przez zgłoszenie wyjątku przez timer systemowy
-
częstotliwość - w zależności od potrzeb - od kilkudziesięciu Hz do kilku kHz
-
Po przejęciu sterowania system ma możliwość usunięcia procesu
-
dzieje się to zwykle na życzenie użytkownika, który zauważył "zawieszenie" procesu
Ochrona urządzeń wejścia - wyjścia
-
Zwykle realizowana przez całkowite odizolowanie procesów użytkowych od fizycznych urządzeń
-
próba dostępu jest blokowana i sygnalizowana jako wyjątek
-
Fizyczną obsługą urządzeń zajmuje się system operacyjny
-
system operacyjny udostępnia aplikacjom obiekty wirtualne, które są powiązane z urządzeniami w sposób określony przez sam system
-
przykład - strumienie STDIN i STDOUT w języku C
-
W niektórych sytuacjach system może zezwolić na wyłączny dostęp pojedynczego procesu do urządzenia
-
przykład: współpraca ze sterownikiem graficznym dla aplikacji intensywnych graficznie - podsystem DirectX w Windows
Ochrona pamięci
-
Ochrona pamięci jest najbardziej skomplikowanym aspektem ochrony zasobów
-
proces musi mieć dostęp do pamięci mu przydzielonej, a jednocześnie nie może odwoływać się poza przedzielony obszar
-
Więcej na temat zarządzania pamięcią - moduł 12
Maszyny wirtualne
-
W niektórych zastosowaniach może istnieć potrzeba równoczesnej pracy kilku systemów operacyjnych na jednym komputerze
-
jest to podobne do pracy aplikacji z podziałem czasu, ale system operacyjny musi mieć możliwość sterowania ochroną zasobów
-
Współdzielenie komputera przez kilka systemów wymaga:
-
oprogramowania nadrzędnego w stosunku do systemów -hypervisora
-
obniżenia poziomu zaufania systemu w sposób, który nie byłby zauważalny przez pracujący w ten sposób system
Maszyny wirtualne - implementacja
-
Dawniej:
-
system na poziomie zaufania użytkownika, hypervisor na poziomie zaufania systemu
-
hypervisor emuluje programowo wszelkie operacje o charakterze system owym
-
próba dostępu do zasobów systemowych powoduje wyjątek, obsługiwany przez hypervisora
-
wymaganie: każda próba odczytu (a nie tylko modyfikacji) informacji systemowych musi być sygnalizowana jako błąd do hypeivisora
-
Obecnie:
-
dodatkowy poziom zaufania hypervisora albo
-
hypervisor na poziomie "dawnym" systemowym (tzw. "gospodarz" -host) i tryb "gościa" (guest) dla systemów operacyjnych
-
operacje na niektórych zasobach dostępne tylko w trybie gospodarza