Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna
Działanie systemu komputerowego CPU i sterowniki urządzeń (device controllers) są połączone wspólną szyną systemową (system bus). CPU i sterowniki mogą działać współbieżnie. Każdy sterownik odpowiada za określony typ urządzenia (np. napędy dysków, monitor, USB itd.). Każdy sterownik ma swój lokalny bufor. CPU przesyła dane między pamięcią operacyjną a lokalnymi buforami. Operacje wejścia-wyjścia odbywają się między urządzeniami a lokalnymi buforami sterowników. Sterownik informuje CPU o zakończeniu swojej operacji za pomocą przerwania (interrupt).
Wykorzystanie mechanizmu przerwań Przerwanie przekazuje sterowanie do procedury obsługi przerwania, zwykle poprzez wektor przerwań zawierający adresy wszystkich procedur obsługi (stosowane np. w systemach UNIX, MS-DOS). W architekturze przerwań trzeba uwzględniać przechowywanie adresu przerwanego rozkazu. Podczas obsługi jednego przerwania inne przerwania są wyłączone, aby uchronić przed jego utratą. Przerwanie generowane przez oprogramowanie nazywa się pułapką (trap) może być spowodowane przez błąd (np. dzielenie przez zero) lub na życzenie użytkownika. System operacyjny (SO) przechowuje stan CPU zapamiętując zawartość rejestrów i licznika rozkazów. SO ustala rodzaj przerwania przy pomocy: odpytywania (polling) wektorowego systemu przerwań. Oddzielne segmenty kodu określają działania, jakie należy podjąć dla każdego typu przerwania. Nowoczesne systemy operacyjne są sterowane przerwaniami(interrupt driven).
Obsługa wej-wyj Przed operacją WE/WY CPU określa zawartość rejestrów w sterowniku. Sterownik sprawdza stan swoich rejestrów, aby określić rodzaj działania, a następnie wykonuje to działanie (np. dla operacji czytania przesyła dane z urządzenia do swojego lokalnego bufora). O zakończeniu działania sterownik informuje CPU za pomocą przerwania. Synchroniczne WE/WY (synchronous I/O) CPU czeka na zakończenie operacji WE/WY. Nieefektywne wykorzystanie CPU i urządzeń WE/WY! Asynchroniczne WE/WY (asynchronous I/O) rozpoczęcie operacji WE/WY i kontynuowanie działań systemu operacyjnego lub programu użytkownika bez czekania na zakończenie. Tablica stanów urządzeń (device status table) określająca typ urządzeń, ich adresy i stany (wolne, zajęte, ) potrzebna do obsługi wielu urządzeń. Kolejka oczekujących zamówień dla każdego urządzenia do obsługi zamówień wielu procesów. Efektywniejsze wykorzystanie CPU i urządzeń WE/WY. Na koniec procedura obsługi przerwania urządzenia WE/WY zwraca sterowanie do programu użytkownika, do pętli czekania, etc.
Struktura pamięci Pamięć operacyjna lub główna (main memory) jedyny wielki obszar pamięci dostępny bezpośrednio procesorowi (za pośrednictwem szyny pamięci); w wielu architekturach stosowane jest WE/WY odwzorowywane w pamięci (memory-mapped I/O), np. ekran monitora w IBM PC. Pamięć pomocnicza (secondary storage) rozszerzenie pamięci operacyjnej dające możliwość trwałego przechowywania dużej ilości danych (dyski magnetyczne, taśmy magnetyczne, pamięci elektroniczne typu Flash). Dysk magnetyczny metalowa lub szklana płyta pokryta materiałem magnetycznym; powierzchnia logicznie podzielona na ścieżki (tracks), a te z kolei na sektory (sectors); wiruje z dużą prędkością w napędzie dysku; połączony z komputerem wiązką przewodów zwaną szyną WE/WY; sterownik dysku i sterownik macierzysty (po stronie szyny WE/WY) nadzorują przesyłanie danych między dyskiem a komputerem (sterowniki dysków mają zwykle pamięć podręczną, która jest używana do przesyłania danych z dysku lub na dysk). Taśma magnetyczna taśma pokryta materiałem magnetycznym, znajduje się na szpuli i przewija się do przodu lub do tyłu pod głowicą odczytująco-zapisującą; znacznie wolniejsza od dysku, ale może być kilkakrotnie pojemniejsza; używana głównie do przechowywania rzadko używanych danych (np. archiwizacja, kopie zapasowe, czyli tzw. backup). Pamięci typu Flash elektroniczne urządzenie pamięci nieulotnej; pojemność do kilkudziesięciu GB (dziś), duża szybkość dostępu. Czy wyprą twarde dyski?
Hierarhia pamięci Rejestry Pamięć podręczna Szybkość Ulotność Koszty Pamięć operacyjna Dysk magnetyczny Dysk optyczny Taśma magnetyczna
Struktura pamięci Przechowywanie podręczne (Caching) Stosowanie pamięci podręcznej (cache) kopiowanie informacji, która może być potrzebna (np. CPU), do szybszego systemu pamięci na okres przejściowy. Gdy potrzebny jest jakiś fragment informacji, najpierw sprawdza się, czy nie ma go w pamięci podręcznej jeżeli nie, to się go do niej sprowadza. Zarządzanie pamięcią podręczną (cache management) jest ważnym zagadnieniem projektowym odnośnie sprzętu oraz systemów operacyjnych odpowiedni dobór wielkości pamięci podręcznej i polityki zastępowania w niej informacji może sprawić, że 80 95%wszystkich dostępów będzie odnosić się do pamięci podręcznej. Zgodność i spójność (Coherency and Consistency) W hierarchicznej strukturze pamięci te same dane mogą występować na różnych jej poziomach. Np. chcemy zwiększyć o 1 liczbę całkowitą N znajdującą się w pliku na dysku odpowiedni fragment pliku zostanie skopiowany do pamięci operacyjnej, następnie do pamięci podręcznej, a wreszcie do rejestru wewnętrznego z chwilą wykonania operacji zwiększenia w rejestrze, wartość N będzie różna w różnych systemach pamięci stanie się taka sama dopiero po przekopiowaniu jej w dół. Należy zadbać o to aby informacja na różnych poziomach pamięci była zgodna i spójna sprzętowo lub w ramach systemu operacyjnego.
Ochrona sprzętowa Dualny tryb operacji: Dzielenie zasobów systemowych wymaga od systemu operacyjnego zapewnienia, że niepoprawny program nie spowoduje, że inne programy będą działać nieprawidłowo. Rozwiązanie wyposażenie sprzętu w środki umożliwiające co najmniej dwa tryby pracy: Tryb użytkownika (user mode) działania w imieniu użytkownika. Tryb monitora, systemu, nadzorcy,uprzywilejowany (monitor, system, supervisor, privileged mode) działania w imieniu SO. Sprzęt posiada bit trybu (mode bit) do wskazywania bieżącego trybu pracy: monitor (0) użytkownik (1). Przy każdorazowym wystąpieniu przerwania lub pułapki sprzęt zmienia tryb pracy z trybu użytkownika na tryb monitora. Potencjalnie niebezpieczne rozkazy kodu maszynowego są oznaczane jako rozkazy uprzywilejowane (privileged instructions), które mogą być wykonywane tylko w trybie monitora.
Ochrona wejścia-wyjścia Wszystkie rozkazy WE/WY są uprzywilejowane. Konieczne jest zapewnienie, że program użytkownika nigdy nie przejmie kontroli nad komputerem w trybie pracy monitora (np. wstawiając nowy adres w wektorze przerwań). Ochrona pamięci: Trzeba zapewnić ochronę pamięci przynajmniej dla wektora przerwań i procedur obsługi przerwań. Ochronę pamięci można uzyskać za pomocą dwu rejestrów określających zakres dopuszczalnych adresów programu: Rejestr bazowy (base register) zawiera najmniejszy dopuszczalny adres fizyczny pamięci. Rejestr graniczny (limit register) zawiera rozmiar obszaru pamięci. Pamięć poza tak zdefiniowanym obszarem jest chroniona Rozkazy ładowania rejestrów bazowego i granicznego są rozkazami uprzywilejowanymi. Pracując w trybie monitora system operacyjny ma nieograniczony dostęp do pamięci zarówno monitora jak i użytkownika.
Ochrona pamięci Baza Baza+granica Adres Tak Tak Procesor >= < Pamięć Nie Nie Przejście pod nadzór systemu operacyjnego (Błąd adresowania)
Ochrona jednostki centralnej (CPU) Czasomierz (timer) generuje przerwania po wyznaczonym okresie czasu aby zapewnić systemowi operacyjnemu utrzymanie kontroli. Licznik czasomierza jest zmniejszany przy każdym tyknięciu zegara. Kiedy licznik osiągnie wartość zero pojawia się przerwanie. Czasomierz jest używany do: realizacji podziału czasu. obliczania bieżącego czasu. Ustawianie czasomierza jest rozkazem uprzywilejowanym.
Operacje WE/WY użytkownika Rozkazy WE/WY są uprzywilejowane jak zatem użytkownik może wykonywać operacje WE/WY? Wywołanie systemowe (system call) metoda poprzez którą proces zamawia jakąś akcję systemu operacyjnego. Zwykle przyjmuje postać przejścia do określonej komórki w wektorze przerwań (poprzez rozkaz trap lub rozkaz syscall). Sterowanie przechodzi przez wektor przerwań do procedury obsługi w systemie operacyjnym, a bit trybu jest ustawiany na tryb pracy monitora. Monitor po sprawdzeniu, że parametry wywołania są poprawne i dozwolone spełnia żądanie oraz zwraca sterowanie do rozkazu, który następuje bezpośrednio po wywołaniu systemowym.
Operacje WE/WY użytkownika Program użytkowy Przejście do monitora... Wywołanie systemowe n... Powrót do użytkownika Wykonanie operacji wej/wyj Monitor Przypadek n Czytaj