4.1
Struktura systemów komputerowych
Działanie systemu komputerowego
Struktury WE/WY
Struktura pamięci
Hierarchia pamięci
Ochrona sprzętowa
Ogólna architektura systemu
Wykład 4, Systemy operacyjne (studia zaoczne) PJWSTK, Adam Smyk, 2016/ 17
4.2
Architektura systemu komputerowego
4.3
Architektura systemu komputerowego
4.4
Architektura systemu komputerowego .
Architektura systemu komputerowego .
CISC, RISC?
http://ark.intel.com/
4.7
http://www.notebookcheck.net/Core-i7-3960X-and-i7-2700K-Desktop-CPUs-in-Review.67771.0.html
4.8
Najważniejsze cechy funkcjonowania systemu komputerowego
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ń4.9
Ogólne funkcje architektury 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 przerwaniaW 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 sterowanym przerwaniami
4.10
Obsługa przerwań
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 - polling
wektorowy system przerwań
Segmenty kodu programu określają jakie działania muszą być podjęte dla każdego typu przerwańWykres czasowy przerwań procesu
wykonującego operację wyjścia Hierarchia pamięci
Hierarchia pamięci wg.:
Szybkości
Wielkości
Kosztu
Ulotności
Stosowanie pamięci podręcznej - kopiowanie informacji do szybszych rodzajów pamięci; pamięć operacyjną można uznać za szybszą pamięć podręczną dla pamięci pomocniczej.
4.13
Hierarchia urządzeń pamięciowych
4.14
Przeniesienie z dysku do rejestru
4.15
Ochrona sprzętowa
SO nadzoruje wykorzystanie istniejących zasobów przez uruchomione procesy
Dualny tryb operacji
Ochrona wejścia-wyjścia
Ochrona pamięci
Ochrona jednostki centralnej
4.16
Dualny tryb operacji
Dzielenie zasobów systemu wymaga od systemu operacyjnego gwarancji, że nieprawidłowy program nie spowoduje nieprawidłowego działania innych programów.
Sprzęt posiada środki pozwalające na rozróżnianie rozmaitych trybów pracy:
1. Tryb użytkownika
2. Tryb monitora (nadzoru)
Dualny tryb operacji cd.
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.
Rozkazy uprzywilejowane (np.: zmiana trybu procesora) mogą być wydane tylko w trybie monitora.
monitor użytkownik
przerwanie/błąd
ustaw tryb użytkownika
Dualny tryb operacji cd.
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.
4.19
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ń)
4.20
Użycie wywołania systemowego do przeprowadzenia operacji We/Wy
Program Użytkownika Odwołanie do
zadania N-tego Odczytanie
Zadanie
N-te Rezydentny
Monitor
Operacja We/Wy
Zwrócenie do użytkownika Pułapka
do monitora
4.21
Ochrona pamięci
Konieczna jest ochrona pamięci przynajmniej dla wektora przerwań i programów obsługujących przerwania.
Aby zapewnić ochronę pamięci, dodaje się dwa rejestry, które określają rozpiętość adresów, do których program ma dostęp:
Rejestr bazowy – przechowuje najniższy dozwolony adres pamięci fizycznej.
Rejestr limitu – przechowuje rozmiar zasięgu
Pamięć spoza tych ram jest chroniona.
4.22
Użycie rejestru bazowego i limitu
Zadanie 1
Zadanie 2
Zadanie 3
Zadanie 4
Rejestr bazowy
Rejestr limitu
Sprzętowa ochrona adresów
System operacyjny pracujący w trybie monitora ma nieograniczony dostęp zarówno do pamięci monitora, jak i użytkownika.
Instrukcje wczytywania dla limitu bazowego i limitu są instrukcjami uprzywilejowanymi.
4.25 4.26
4.27
Ochrona procesora przed zawłaszczeniem
W celu ochrony procesora przed zawłaszczeniem procesora wykorzystywany jest tzw. zegar:
Zegar jest zmniejszany przy każdym takcie zegara.
Kiedy zegar osiąga wartość 0, następuje przerwanie.
W trakcie obsługi przerwania SO może wstrzymać właśnie wykonywany proces, a uruchomić inny …
Zegar jest powszechnie używany do obsługi podziału czasu.
Używany też do wyliczania aktualnego czasu.
Programowanie zegara jest instrukcją uprzywilejowaną.
4.28
Wykład 4: Procesy
Ogólne składowe systemu – część 1
Koncepcja procesu
Planowanie procesów
Operacje na procesach
Procesy współpracujące – przykład
Komunikacja międzyprocesowa
Wielowątkowość
Wykład 4, Systemy operacyjne (studia zaoczne) PJWSTK, Adam Smyk, 2016/17
Ogólne składowe systemu
Istnieje kilka dogodnych sposobów patrzenia na SO: poprzez przegląd świadczonych przez system usług
Interfejs, który system udostępnia użytkownikom i programistom
poszczególne części systemu i ich wzajemne powiązania
Współczesne SO zawierają następujące części składowe: zarządzanie procesami
zarządzanie pamięcią operacyjną
zarządzanie plikami
zarządzanie systemem we/wy
zarządzanie pamięcią pomocniczą
praca sieciowa
system ochrony
system interpretacji poleceń
Ogólne składowe systemu
Współczesne SO zawierają następujące części składowe: zarządzanie procesami
….
Nośnikiem każdego procesu jest zawsze w efekcie jakiś system fizyczny.
Każdy kolejny stan/zmiana systemu spowodowana jest przez stan/zmianę poprzednią albo przez oddziaływanie zewnętrzne na system.
Z punktu widzenia najbardziej ogólnego, tzn. systemowego, rozróżniamy procesy ciągłe i dyskretne.
Zgodnie z pl.wikipedia.org:
Proces to uporządkowany w czasie ciąg zmian i stanów zachodzących po sobie.
4.31
Ogólne składowe systemu
Współczesne SO zawierają następujące części składowe: zarządzanie procesami
….
Wyróżniamy też procesy naturalne i sztuczne.
Procesami naturalnymi zajmują się nauki przyrodnicze (fizyka, chemia, biologia, itd.)
Procesami sztucznymi zajmuje się inżynieria i nauki społeczne.
Zgodnie z pl.wikipedia.org:
Procesy ciągłe to takie gdzie na dowolnym skończonym odcinku czas możemy wyróżnić nieskończoną liczbę zmian a różnice między nimi są dowolnie małe.
Takie procesy opisują wiele podstawowych zjawisk fizycznych.
Procesy dyskretne to takie w których możemy wyróżnić skończoną liczbę zdarzeń/stanów.
4.32
Składowe systemu
Zarządzanie procesami
Program jest pasywną reprezentacją procesu - jeden wykonywany program rodzi wiele procesów
Proces to program, który jest wykonywany w sposób sekwencyjny, a podczas jego wykonywania licznik rozkazów określa następną instrukcję wykonania
Proces wymaga określonych zasobów, w tym czasu procesora, pamięci, plików, urządzeń WE/WY4.33
Zarządzanie procesami
W odniesieniu do zarządzania procesami SO odpowiada za:
tworzenie i usuwanie zarówno procesów użytkowych, jak systemowych
wstrzymywanie i wznawianie procesów
dostarczanie mechanizmów
synchronizacji procesów
komunikacji procesów
obsługi zakleszczeń4.34
Koncepcja procesu
System operacyjny wykonuje różnorodne programy :
System wsadowy – zadania (jobs)
Systemy z podziałem czasu – bieżące programy użytkownika (tasks)
Terminy zadanie i proces są stosowane prawie zamiennie,
Proces – program w trakcie wykonywania; jego wykonanie musi przebiegać sekwencyjnie.
Proces zawiera:
Licznik rozkazów (adres ostatnio wykonywanej instrukcji)
Zawartość rejestrów procesu
Wskaźnik stosu
Przestrzeń adresową:
Kod procesu – sekcja tekstu
Dane zainicjalizowane – sekcja danych
Dane niezainicjalizowane
Stos procesu – przechowuje dane tymczasowe (parametry procedur, adresy powrotne, zmienne tymczasowe)
Model procesów
Na procesy można patrzeć z punktu widzenia:
A
B
C
B
D czas
1) Sprzętu (procesora) (jeden licznik rozkazów)
A B C
B
D 2) Systemu operacyjnego
(wiele liczników rozkazów)
A
B C
B D 3) Dostępności zasobów
Stan procesu
Wykonujący się proces zmienia swój stan, wyróżniamy stany
nowy : proces zostaje utworzony.
aktywny : instrukcje są wykonywane.
oczekujący : proces czeka na wystąpienie jakiegoś zdarzenia (np. zakończenie operacji WE/WY).
gotowy : proces czeka na przydział procesora.
zakończony : proces zakończył działanie.
Diagram stanów procesu nowy
gotowy aktywny
zakończony
oczekujący
Przyjęcie Przerwanie Wyjście
Decyzja planista
Oczekiwanie na zdarzenie lub na wykonanie
Operacji we/wy Zakończenie obsługi zdarzenia
lub operacji we/wy
4.37
Blok kontrolny procesu
(ang. process control block PCB) Informacje związane z każdym procesem zawarte są
w bloku kontrolnym procesu:
Stan procesu – gotowy …..
Licznik rozkazów - Licznik ten wskazuje adres następnego rozkazu do wykonania w procesie
Rejestry procesora - Liczba i typy rejestrów zależą od architektury komputera; są tu akumulatory, rejestry indeksowe, wskaźniki stosu, rejestry ogólnego przeznaczenia oraz rejestry warunków. Informacje dotyczące tych rejestrów i licznika rozkazów muszą być przechowywane podczas przerwań, aby proces mógł być później poprawnie kontynuowany.
Informacje o planowaniu przydziału procesora - Należą do nich: priorytet procesu, wskaźniki do kolejek przyporządkowujących zamówienia, a także inne parametry planowania.
wskaźnik stan procesu
numer procesu licznik rozkazów
rejestry
ograniczenia pamięci lista otwartych plików
. . .
4.38
Blok kontrolny procesu (PCB)
Informacje o zarządzaniu pamięcią - Mogą to być informacje takie, jak zawartości rejestrów granicznych, tablice stron, lub tablice segmentów - zależnie od systemu pamięci używanej przez SO.
Informacje do rozliczeń - Do tej kategorii informacji należy ilość zużytego czasu procesora i czasu rzeczywistego, ograniczenia czasowe, numery zadań lub procesów itp.
Informacje o stanie WE/WY - Mieszczą się tu informacje o urządzeniach WE/WY (np. o jednostkach dyskowych) przydzielonych do procesu, wykaz otwartych plików itd.
wskaźnik stan procesu
numer procesu licznik rozkazów
rejestry
ograniczenia pamięci lista otwartych plików
. . .
4.39
w skaźnik stan procesu numer procesu licznik rozkazów
rejestry
ograniczenia pamięci lista otw artych plików . . .
wskaźnik stan procesu numer procesu licznik rozkazów rejestry
ograniczenia pamięci lista otwartych plików . . . w skaźnik stan
procesu numer procesu licznik rozkazów
rejestry
ograniczenia pamięci lista otw artych plików . . . w skaźnik stan
procesu numer procesu licznik rozkazów
rejestry
ograniczenia pamięci lista otw artych plików . . .
wskaźnik stan procesu numer procesu licznik rozkazów rejestry
ograniczenia pamięci lista otwartych plików . . . w skaźnik stan
procesu numer procesu licznik rozkazów
rejestry
ograniczenia pamięci lista otw artych plików . . .
Przełączanie kontekstu
Gdy CPU przełącza się do innego procesu, system musi przechować stan starego procesu i załadować przechowywany stan nowego procesu – nazywa się to przełączaniem kontekstu.
Czas przełączania kontekstu jest obciążeniem dla systemu, które nie jest związane z żadną użyteczną pracą.
Czas ten zależy w dużym stopniu od możliwości sprzętu.
4.40
Przełączanie kontekstu
Proces P0 system operacyjny Proces P1
zapisz stan do PCB0
załaduj stan z PCB1
zapisz stan do PCB1
załaduj stan z PCB0 przerwanie albo funkcja systemowa przerwanie albo funkcja systemowa
wykonywanie
wykonywanie wykonywanie
bezczynny
bezczynny
bezczynny
Planowania procesów
Celem wieloprogramowania jest jak najlepsze wykorzystanie procesora - powinien on zawsze wykonywać jakiś proces.
W podziale czasu przełączanie procesora do procesów powinno następować tak często, aby każdy z wykonywanych procesów mógł współpracować z użytkownikami w sposób interaktywny.
Kolejki:
Kolejka zadań – zbiór wszystkich procesów systemu.
Kolejka procesów gotowych – zbiór wszystkich procesów, które oczekują w pamięci głównej, gotowych i czekających na wykonanie.
Kolejki do urządzeń – zbiór procesów oczekujących na urządzenia WE/WY.
Migracja procesów między różnymi kolejkami.
Kolejki procesów gotowych do wykonania i kolejki do różnych urządzeń we/wy
Taśma magnetyczna
Taśma magnetyczna
początek koniec
początek koniec
początek koniec
początek koniec
początek
koniec rejestry
rejestry rejestry rejestry
rejestry rejestry
PCB3 PCB14 PCB6
PCB5
PCB7 PCB2
nagłówek kolejki Kolejka
procesów gotowych
Jednostka 0
Jednostka 1
dysk Jednostka 2
terminal Jednostka 3
4.43
Migracja procesów między kolejkami systemu
Po przydzieleniu procesowi procesora może wystąpić jedno z następujących zdarzeń:
proces może zamówić operację WE/WY, wskutek czego trafia do kolejki procesów oczekujących na WE/WY
proces może utworzyć nowy podproces i oczekiwać na jego zakończenie
w wyniku przerwania proces może zostać przymusowo usunięty z procesora z powrotem do kolejki procesów gotowych
4.44
Planiści
W celu planowania działań SO musi w jakiś sposób wybierać procesy z kolejki; selekcji dokonuje proces systemowy zwany planistą (ang.
scheduler)
Planista długoterminowy – wybiera procesy przechowywane w pamięci masowej (dysk) i ładuje je do pamięci, do kolejki zadań (procesów gotowych) .
Planista krótkoterminowy (CPU scheduler) – wybiera jeden proces, który ma być wykonywany jako następny i przydziela mu procesor.
4.45
Planiści (c.d.)
Planista krótkoterminowy musi bardzo często wybierać nowy proces dla procesora (millisekundy) musi być szybki.
Planista długoterminowy działa rzadko (sekundy, minuty) może być wolniejszy.
Planista długoterminowy nadzoruje stopień wieloprogramowości.
Procesy można przedstawić jako:
Procesy ograniczone przez WE/WY – spędzają więcej czasu wykonując operacje WE/WY niż na obliczeniach, wiele krótkich okresów aktywności procesora.
Procesy ograniczone przez dostęp do procesora – większość czasu spędzają na wykonywaniu obliczeń; kilka długich okresów aktywności procesora.
Planista długoterminowy musi dobrać dobrą mieszankę procesów.
W niektórych SO z podziałem czasu może występować pośredni poziom planowania ==> planista pośredni.
4.46
Planista pośredni
(występuje w niektórych systemach)
Kolejka procesów gotowych
Kolejka procesów oczekujących na operację wejścia-wyjścia
CPU
WE/WY
Koniec Usuń z pamięci Sprowadź z pamięci