SYSTEMY OPERACYJNE
Wykład 2
Struktury systemów komputerowych
Współczesny system komputerowy
działanie systemu komputerowego
- przerwanie (interrupt) od sprzętu poprzez wywołanie sygnału do jednostki centralnej (np. zakończenie operacji we/wy)
- przerwanie od oprogramowania poprzez wykonanie specjalnej operacji nazywanej wywołaniem systemowym ( system call) , a niekiedy wywołaniem monitora ( monitor call) (np. dzielenie przez zero)
- po otrzymaniu sygnału przerwania procesor przerywa swoją pracę i przechodzi do wykonania odpowiedniej procedury obsługi przerwań
- urządzenia we/wy oraz CPU mogą działać współbieżnie
- każdy sterownik we/wy zarządza urządzeniem danego typu
- każdy sterownik we/wy posiada lokalny bufor
- CPU przesyła dane z/do pamięci głównej do/z lokalnych buforów
- operacje we/wy odbywają się z urządzeń do ich lokalnych buforów
- sterownik urządzenia informuje CPU o zakończeniu operacji we/wy za pomocą przerwań
- przerwanie powoduje przekazanie sterowania do procedury obsługi przerwań, z użyciem tzw. wektora przerwań - tablicy zawierającej adresy procedur obsługujących przerwania
- system, w którym nastąpiło przerwanie musi zapamiętać i przechować adres (i inne informacje) przerwanego rozkazu (stos systemowy)
- nowe przerwania przychodzące podczas obsługi bieżącego przerwania są zwykle wyłączone (opóźniane do czasu, aż system upora się z bieżącym przerwaniem), aby nie utracić bieżącego przerwania
- w nowszych systemach jest możliwość przerwania przerwań na bazie priorytetów przerwań
- pułapka ( trap ) czyli wyjątek jest rodzajem przerwań generowanych przez oprogramowanie w wyniku błędu (np. dzielenie przez zero, niewłaściwy dostęp do pamięci) lub specjalnego zamówienia z programu użytkownika
- system operacyjny jest systemem sterowanym przerwaniami
- SO zachowuje stan CPU przez zapamiętanie zawartości rejestrów i licznika rozkazów
- określa typ przerwania jakie nastąpiło przez:
- odpytywanie , tzn. badanie stanu wszystkich urządzeń we/wy ,albo
- wektorowy system przerwań
- segmenty kody programu określają jakie działania muszą być podjęte dla każdego typu przerwań
Struktura wejścia - wyjścia
- uniwersalny system komputerowy składa się z CPU i pewnej liczby sprzętowych sterowników urządzeń połączonych za pomocą wspólnej szyny
- każdy ze sterowników jest odpowiedzialny za określony typ urządzenia
- do niektórych rodzajów sterowników można dołączyć więcej niż jedno urządzenie (do 7-miu lub więcej w SCSI)
- sprzętowy sterownik
- zarządza pamięcią buforową i specjalnymi rejestrami
- odpowiada za przenoszenie danych między urządzeniami WE/WY a swoją pamięcią buforową
Przerwania wejścia - wyjścia
dwa możliwe scenariusze po rozpoczęciu operacji WE/WY
Struktura DMA
Powolne urządzenia WE/WY, np. czytanie wiersza danych z terminala odbywa się znak (1 bajt) po znaku, tzn. przerwanie po każdym znaku
- hierarchia pamięci wg.: szybkości, kosztu, ulotności.
- stosowanie pamięci podręcznej: kopiowanie informacji do szybszych roszajów pamięci; pamięć operacyjną można uznać za szybszą pamięć podręczną dla pamięci pomocniczej
- Ochrona sprzętowa
- Dualny tryb operacji:
- sprzęt posiada środki pozwalające na rozróżnianie rozmaitych trybów pracy:
- tryb użytkownika,
- tryb monitora,
- w sprzęcie istnieje bit, którego stan wskazuje na bieżący tryb pracy monitora (0) lub użytkownika (1)
- za każdym razem po wystąpieniu pułapki lub przerwania sprzęt zmienia tryb pracy z trybu użytkownika na tryb monitora
- dualny tryb działania komputera jest uzupełniany za pomocą środków sprzętowych umożliwiających monitorowanie wykonania potencjalnie niebezpiecznych rozkazów - rozkazów uprzywilejowanych wykonywanych tylko w trybie monitora.
- Ochrona wejścia - wyjścia:
- wszystkie rozkazy WE/WY są uprzywilejowane (użytkownicy nie mogą ich używać bezpośrednio, lecz tylko za pośrednictwem SO)
- należy mieć pewność, że program użytkownika nigdy nie przejmie kontroli nad komputerem w trybie pracy monitora (np. poprzez umieszczenie nowego adresu w wektorze przerwań)
- Ochrona pamięci:
- ochronę pamięci należy zapewnić przynajmniej poprzez ochronę wektora przerwań i ochronę systemowych procedur obsługi przerwań,
- ochronę pamięci można uzyskać używając dwóch rejestrów określających zakres legalnych adresów programu
- rejestr bazowy - przechowuje najmniejszy dopuszczalny adres fizycznej pamięci
- rejestr graniczny - zawiera rozmiar obszaru pamięci
- każdy adres wygenerowany w trybie pracy użytkownika jest porównywany sprzętowo z zawartością w/w rejestrów
![]()
- jakiekolwiek usiłowanie programu pracującego w trybie użytkownika uzyskania dostępu do pamięci monitora lub programu innego użytkownika kończy się przejściem do trybu monitora
- w trybie monitora SO ma nieograniczony dostęp do pamięci monitora i użytkowników
- instrukcje ładowania obu rejestrów są rozkazami uprzywilejowanymi
- Ochrona jednostki centralnej
- czasomierz - powoduje przerwanie po upływie określonego okresu (kwantu) czasu, po to aby SO mógł podtrzymywać kontrolę systemu
- okres czasu może być stały, (np. 1/60 s lub zmienny, np. od 1ms do 1s z przyrostami co 1 ms)
- po każdym przerwaniu generowanym przez czasomierz sterowanie jest przekazywane SO, a licznik czasomierza jest pomniejszany o jednostkę
- gdy licznik osiągnie wartość 0, SO kończy program
- czasomierz jest powszechnie używany przy implementacji systemów z podziałem czasu
- czasomierz jest jest używany do wyznaczania bieżącego czasu w niektórych komputerach
- ładowanie stanu początkowego czasomierza jest rozkazem uprzywilejowanym
- Ogólna architektura systemu
- dualny tryb operacji oparty na koncepcji rozkazów uprzywilejowanych, wykonywanych w trybie monitora
- rozkazy uprzywilejowane: rozkazy zmieniające zawartość rejestrów zarządzania pamięcią lub rejestrów czasomierza, rozkaz halt (zatrzymaj komputer), rozkaz przejścia z trybu użytkownika do trybu monitora
- rozkazy; WE/WY - jako uprzywilejowane mogą być wykonywane tylko przez SO; Jak więc program użytkownika wykonuje rozkazy WE/WY?
- program użytkownika musi poprosić monitor, aby wykonał taką operację w jego imieniu
- taka prośba nosi nazwę wywołania systemowego (system call) (lub wywołania monitora, lub wywołania funkcji SO)
- przyjmuje ono zwykle postać przejścia do określonej komórki w wektorze przerwań
- przejście to może być wykonane za pomocą ogólnego rozkazu trap
- wywołanie systemowe jest traktowane przez sprzęt tak jak przerwanie programowe
- za pośrednictwem wektora przerwań sterowanie jest przekazywane do odpowiedniej procedury obsługi w SO, a bit trybu zostaje przełączony w tryb monitora
- monitor sprawdza parametry wywołania systemowego, określające rodzaj usługi jaka ma być wykonana
- jeżeli te parametry są prawidłowe i legalne, monitor wykonuje dane zapotrzebowanie na usługę, a następnie przekazuje sterowanie do instrukcji programu, która miała być wykonana bezpośrednio przed wywołaniem systemowym
<<< THE END >>>