Pobierz - Informacje dla uzytkowników serwera antenor.pol.lublin.pl

Transkrypt

Pobierz - Informacje dla uzytkowników serwera antenor.pol.lublin.pl
Architektura systemu
komputerowego
Klawiatura
1
CPU
2
Sterownik
dysku
Mysz
Drukarka
Sterownik
USB
Sterownik
PS/2
lub USB
Pamięć
operacyjna
Sterownik
portu
szeregowego
Monitor
Sterownik
wideo
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
Procesor
Tak
>=
Tak
<
Nie
Pamięć
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
Wykonanie operacji wej/wyj
.
.
.
Wywołanie
systemowe n
.
.
.
Przypadek n
Czytaj
Monitor
Powrót do użytkownika