Upload
ngodieu
View
220
Download
0
Embed Size (px)
Citation preview
Toruń, 2004
Zbigniew S. Szewczak Podstawy Systemów Operacyjnych
Wykład 4
Działanie systemu komputerowego
Działanie komputera
☛ Działanie komputera☛ Rozkazy☛ Cykle rozkazowe☛ Przerwania☛ Ochrona sprzętowa☛ Start systemu
System komputerowy
☛ Sprzęt (ang. hardware) - zasoby o specyficznejarchitekturze oraz organizacji zarządzane przezsystem operacyjny
☛ System operacyjny - program, który nadzorujei koordynuje dostęp programów do zasobów
☛ Programy użytkowe - realizują potrzebyużytkowników systemu komputerowego(kompilatory, bazy danych, gry,....)
☛ Użytkownicy - ludzie, maszyny, komputery..
Działanie komputera
Komputer
Pamięćgłówna
Wejście-Wyjście
Magistrala systemowa
Peryferia
Linie komuni-kacyjne
Jednostka centralna (CPU)
Komputer
Zespoły komputera
☛ Koncepcja J. v. Neumanna - realizacja☛ System sprzętowy (ang. hardwired system) -
oparty o programowanie na poziomie sprzętu -mało elastyczny
☛ Sprzęt o przeznaczeniu ogólnym przejmuje danei sygnały sterujące i zwraca wyniki
☛ Zamiast przebudowywać sprzęt dla każdegoprogramu wystarczy dostarczyć programiścienowy zestaw sygnałów sterujących
Rozwiązania sprzętowe iprogramowe
dane
dane
wyniki
wyniki
sekwencja funkcji arytmetycznych i logicznych
interpreter
funkcje arytmetyczne i logiczne o ogólnym przeznaczeniu
kody rozkazów
sprzęt przystosowany do potrzeb użytkownika
sygnały sterujące
programprzystosowany do potrzeb użytkownika
Co to jest program?
☛ Jak dostarczyć sygnały sterujące?☛ dla każdego kroku wymagany jest nowy zestaw
sygnałów sterujących☛ przypisujemy unikalny kod każdemu z
możliwych zestawów sygnałów sterujących☛ np. ADD, MOVE
☛ dodajemy do urządzenia segment, któryprzyjmuje kod i generuje sygnały sterujące
☛ program staje się sekwencją “kodów”☛ potrzebne jeszcze: moduły we/wy, pamięć i
mamy (prawie) komputer
Struktura komputera
CPU pamięć
moduł we/wy
PC
IR
MAR
MBR
I/O AR
I/O BR
rozkazrozkaz
danedanedane
bufory
PC - licznik programu IR - rejestr rozkazów MAR - rejestr adresowy pamięci MBR - rejestr buforowy pamięci I/O AR - rejestr adresowy we/wy I/O BR - rejestr buforowy we/wy
.
.
.
.
.
.
.
.
.
.
.
.
Obowiązki CPU
☛ CPU musi:☛ pobrać rozkaz☛ zinterpretować rozkaz☛ pobrać dane (z pamięci)☛ przetworzyć dane☛ zapisać (poprawny) wynik
CPU - struktura wewnętrzna
wew
nętrz
na m
agis
trala
pro
ceso
ra
ALU
rejestry
ścieżki sterowania
jednostkasterująca
shifter
status
complementer
układy logiczne iarytmety-czne
.
.
.
Podstawowy cykl rozkazu
start
stop
pobranie następnego rozkazu
wykonanie pobranego rozkazu
cykl pobierania
cykl wykonania
Cykl pobierania
☛ licznik rozkazów (PC) zawiera adres następnegorozkazu do pobrania
☛ procesor pobiera rozkaz z pamięci z pod adresuwskazanego w PC
☛ zwiększa PC☛ o ile nie otrzyma innego polecenia
☛ rozkaz jest ładowany do rejestru rozkazu (IR)☛ procesor interpretuje rozkaz i przeprowadza
wymagane działania
Cykl wykonywania
☛ procesor-pamięć☛ dane przenoszone między CPU i pamięcią główną
☛ procesor-we/wy☛ dane przenoszone między CPU i modułem we/wy
☛ przetwarzanie danych☛ wykonywanie opearcji logicznych i arytmetycznych na
danych
☛ sterowanie☛ zmiana kolejności wykonania rozkazów (np. skok)
☛ kombinacja powyższych
Notacja szesnastkowa
☛ 0000=0 0100=4 1000=8 1100=C☛ 0001=1 0101=5 1001=9 1101=D☛ 0010=2 0110=6 1010=A 1110=E☛ 0011=3 0111=7 1011=B 1111=F
☛ 1C = 1*16^1 + 12*16^0 = 16 + 12 = 28☛ 10F = 1*16^2 + 0*16^1 +15*16^0 = 271
Potęgi dwójki
☛ 2^0=1, 2^1=2, 2^2=4, 2^3=8, 2^4=16, 2^5=32☛ 2^6=64, 2^7=128, 2^8=256, 2^9=512,2^10=1024☛ 2^11=2048, 2^12=4096, 2^13=8192, 2^14=16384☛ 2^15=32768, 2^16=65536, 2^17=131072☛ 2^18=262144, 2^19=524228, 2^20=1048576☛ 2^21=2097152, 2^22=4194304, 2^23=8388608☛ 2^24=16777216, 2^25=33554432, 2^26=67108864☛ 2^27=134217728, 2^28=268435456☛ 2^29=536870912, 2^30=1073741824☛ 2^31=2147483848, 2^32=4294967296
Potęgi dwójki - równanie☛ 2^x=1837009112438807238772533121884291174435708
323341912320764228378921226018227792502170655178106410031869513543422379940437515390337380888530281490169866645096626079826324996480011020466371840717942862831841015779916505847418342213823157072416647461663534479944930598380943114073689972986392578627551525322901506702543751336089638071756926624942414956424006864043467306013288352130115780500668180286133075305583926342690032348477734464674557650932024654230942433470728879324537434752626561311315466089324086086809339616248453580582710912872142644412542122002806968460813165484333087447260194957618384470016
☛ Zad. Oblicz x.
Hipotetyczny komputer
15
15
opcode
A=16-4=12N=2^A=2^12=4096 słów
0 3 4
0 1S
adres
liczba całkowita bez znaku (S)
licznik rozkazów (PC) = adres rozkazu rejestr rozkazów (IR) = wykonywany rozkaz akumulator (AC) = tymczasowe przechowanie
0001 = ładuj AC z pamięci 0010 = zapisz AC w pamięci 0101 = dodaj z pamięci do AC
operacjaformat rozkazu
format liczby
rejestry procesora
lista rozkazów
rozmiarpamięci
Hipotetyczny program
☛ Dodanie zawartości słowa pamięci pod adresem940 do zawartości słowa pod adresem 941 izapisanie wyniku pod adresem 941
☛ PC = 300<- 1940 5941 2941☛ disasemblacja☛ 300: 1940 LOAD AC <- M(940)☛ 301: 5941 ADD AC + M(941) -> AC☛ 302: 2941 STORE AC -> M(941)
Hipotetyczne wykonanie hipotetycznegoprogramu na hipotetycznym komputerze
300301302
940941
1 9 4 05 9 4 12 9 4 1 1 9 4 0
3 0 0
0 0 0 30 0 0 2
PCACIR
pamięć CPU300301302
940941
1 9 4 05 9 4 12 9 4 1 1 9 4 0
3 0 0
0 0 0 30 0 0 2
PCACIR
CPU300301302
940941
1 9 4 05 9 4 12 9 4 1 5 9 4 1
3 0 1
0 0 0 30 0 0 2
PCACIR
CPU
300301302
940941
1 9 4 05 9 4 12 9 4 1 5 9 4 1
3 0 1
0 0 0 30 0 0 2
PCACIR
CPU300301302
940941
1 9 4 05 9 4 12 9 4 1 2 9 4 1
3 0 2
0 0 0 30 0 0 2
PCACIR
CPU300301302
940941
1 9 4 05 9 4 12 9 4 1 2 9 4 1
3 0 2
0 0 0 30 0 0 5
PCACIR
CPU
0 0 0 3 0 0 0 3
0 0 0 5 0 0 0 5 0 0 0 5
3 + 2 = 5
pamięć pamięć
pamięć pamięć pamięć
... ... ...
... ... ...
krok 1 krok 2 krok 3
krok 4 krok 5 krok 6
IBM/370 - formaty rozkazów
RR
RX
RS
SI
SS
SS
Op
Op
Op
Op
Op
Op
Typ Format maszynowy Format asemblera
Op R1, R2R1 R2
R1
R1 R3
L1 L2
I2
L
X2 B2
B2
B1
B1
B1
B2
B2
D2
D2
D1
D1
D1
D2
D2
Op R1, D2(X2,B2)
Op R1, R3, D2(B2)
Op D1, B1(I2)
Op D1(L1,B1), D2(L2,B2)
Op D1(L,B1), D2(B2)
0 7 8 15 16 19 20 31 32 35 36 47
0 7 8 11 12 15 16 19 20 31 32 35 36 47
0 7 8 15 16 19 20 31
0 7 8 15 16 19 20 31
0 7 8 11 12 15 16 19 20 31
0 7 8 11 12 15
IBM/370 - opis rozkazów
☛ Op - kod rozkazu 8b☛ R - rejestr ogólny 4b☛ X - rejestr indeksowy 4b☛ B - rejestr bazowy 4b☛ D - przesunięcie 12b☛ L - długość danych 4b lub 8b☛ I - wartość bezpośrednia 8b
IBM/370 - typy rozkazów
☛ operacje transferu danych: L, ST, MVCL☛ operacje arytmetyczne: A, S, M, D☛ operacje logiczne: AL, SL☛ operacje konwersji: CVD, CVB☛ operacje wejścia-wyjścia: SIO☛ operacje sterowania systemowego: LPSW, SVC☛ operacje przekazywania sterowania: BC, EX
MVC D1(L,B1),D2(B2)
☛ Transmisja L bajtów z D2(B2) do D1(B1)☛ 2048..2052 <- C1C2C3C4C5C6C7C8C9CACB☛ 3840..3848 <- F1F2F3F4F5F6F7F8F9☛ B1 = reg1 <- 00002048; B2 = reg2 <- 00003840☛ MVC 0(8,1), 0(2)☛ 2048..2052 <- F1F2F3F4F5F6F7F8C9CACB☛ 3840..3848 <- F1F2F3F4F5F6F7F8F9☛ B1 = B2 = reg11 <- 00000358☛ 0358..0361 <- 00F1F2F3F4F5F6F7F8F9☛ MVC 1(8,11), 0(11)☛ ???????
☛
Pentium - typy rozkazów☛ przenoszenie danych: MOV, PUSH☛ arytmetyczne: ADD, SUB, MUL, IDIV☛ logiczne: AND, BTS, SHL, SHR☛ przekazywanie sterowania: JMP, CALL☛ opercje łańcuchowe: MOVS☛ wspieranie języka wysokiego poziomu: ENTER☛ sterowanie za pomocą znaczników: STC☛ rejestr segmentowy: LDS; ochrona: LSL☛ sterowanie systemowe: HLT, WAIT☛ zarządzanie pamięcią podręczną: INVD
Stany cyklu rozkazu (1)
☛ obliczanie adresu rozkazu (iac - instruction addresscalculation) - adres następnej instrukcji
☛ pobieranie rozkazu (if - instruction fetch) -wczytanie z pamięci do CPU
☛ dekodowanie operacji rozkazu (iod - instructionoperation decoding )
☛ obliczanie adresu argumentu (oac - operandaddress calculation)
Stany cyklu rozkazu (2)
☛ pobieranie argumentu (of - operand fetch)☛ operacja na danych (do - data operation ) -
operacja na danych☛ przechowanie argumentu (os - operand store) -
zapisanie wyniku
Graf stanów cyklu rozkazu
obliczenie adresu rozkazu
pobieranie rozkazu
dekodowanie operacji
obliczenie adresuargumentu
pobieranieargumentu
zapisywanie argumentu
operacjana danych
obliczenie adresuargumentu
wieleargumentów
wiele wyników
następny rozkaz
powrót łańcuchlub wektor
iac
iod
if
oac
of
od oac
os
wewnętrznaoperacja CPU
dostęp CPU do pamięci lub we/wy
We/wy
☛ Procesor inicjuje operacje we/wy oraz możewymieniać dane z modułem we/wy podobnie jak zpamięcią główna
☛ Wymiana danych pomiędzy we/wy i pamięcią możeteż mieć miejsce bez udziału CPU (DMA),☛ procesor zrzuca odpowiedzialność za we/wy na moduł we/wy
Przerwania (ang. Interrupts )
☛ Mechanizm za pomocą, którego inne moduły(np. we/wy) mogą przerwać normalneprzetwarzanie danych przez procesor
☛ programowe☛ np. przepełnienie arytmetyczne, dzielenie przez 0
☛ zegarowe☛ generowane przez wewnętrzny zegar procesora☛ umożliwia wywłaszczanie w systemie wielozadaniowym
☛ we/wy - od modułu we/wy☛ sprzętowe
☛ np. błąd parzystości pamięci
Cykl przerwania
☛ do cyklu rozkazu dodaje się cykl przerwania☛ procesor sprawdza czy nastąpiło przerwanie
☛ obecność sygnału przerwania
☛ jeśli nie ma przerwania pobiera nowy rozkaz☛ jeśli następuje przerwanie to procesor:
☛ zawiesza wykonanie bieżącego programu☛ zachowuje kontekst bieżącego programu☛ ustawia licznik rozkazów (PC) na adres programu obsługi
przerwań (ang. interrupt handler routine)☛ obsługuje przerwanie☛ odtwarza kontekst i kontynuuje przerwany program
Graf stanów cyklu rozkazu zprzerwaniami
obliczenie adresu rozkazu
pobieranie rozkazu
dekodowanie operacji
obliczenie adresuargumentu
pobieranieargumentu
zapisywanie argumentu
operacjana danych
obliczenie adresuargumentu
sprawdzenie wystąpienia przerwań
przerwanie
adresowanie pośrednie adresowanie
pośrednie
wieleargumentów
wiele wyników
następny rozkaz
brakprzerwań
powrót łańcuchlub wektor
Programowy przepływ sterowania program użytkownika
program we/wy
rozkaz we/wy
pisz
pisz
pisz
stop
1
2
3
4
5
program użytkownika
program we/wy
rozkaz we/wy
pisz
pisz
pisz
stop
1
2a
3a
4
5
program użytkownika
program we/wy
rozkaz we/wy
pisz
pisz
pisz
stop
1
2
3
4
5
program obsługi przerwań
program obsługi przerwań
bez przerwań z przerwaniami, krótkie we/wy z przerwaniami, długie we/wy
2b
3b
Programowy przepływ sterowania- porównanie czasów
oczekiwanie procesora
czas 1
2
3
4
5
bez przerwań z przerwaniami, krótkie we/wy z przerwaniami, długie we/wy
4
5
oczekiwanie procesora
operacja we/wy
operacja we/wy
czas 1
2b
3b
4
5
4
5
operacja we/wy
operacja we/wy
oczekiwanie procesora
czas 1
2
3
4
5
4
5
oczekiwanie procesora
operacja we/wy
operacja we/wy
2a
3a
Przykład - cykI pobierania
☛ Zależny od architektury CPU - założenia: MAR(rejestr adresowy), MBR (rejestr buforowy), PC(licznik programu), IR (rejestr rozkazu)☛ licznik PC zawiera adres rozkazu do pobrania☛ zawartość PC jest przenoszona do MAR☛ adres z MAR jest umieszczony na szynie adresowwej☛ jednostka sterująca zgłasza zapotrzebowanie na odczyt z
pamięci☛ wynik umieszczony zostaje na szynie danych☛ dane te zostają skopiowane do MBR i IR☛ w tym czasie następuje przygotowanie do pobrania
następnego rozkazu t.j.: PC:=PC+1
Schemat - cykl pobierania
PC - licznik programu IR - rejestr rozkazów MAR - rejestr adresowy pamięci MBR - rejestr buforowy pamięci JS - jednostka sterująca
pamięć
MAR
JS
MBR
PC
IR
szyn
a ad
reso
wa
szyn
a da
nych
szyn
a st
erow
ania
Przykład - cykl pośredni
☛ Jednostka sterująca bada IR☛ Jeśli IR oznacza wykorzystanie adresowania
pośredniego to ma miejsce cykl pośredni
☛ bity z MBR zawierające odniesienie do adresu sąkopiowane do MAR
☛ jednostka sterująca zgłasza zapotrzebowanie na odczyt zpamięci
☛ wynik (zawartość adresu w MAR) jest wpisany do MBR
Schemat - cykl rozkazu
PC - licznik programu IR - rejestr rozkazów MAR - rejestr adresowy pamięci MBR - rejestr buforowy pamięci JS - jednostka sterująca
pamięć
MAR
JS
MBR
PC
IR
szyn
a ad
reso
wa
szyn
a da
nych
szyn
a st
erow
ania
Przykład - cykl rozkazu
☛ Może przyjmować różnorodne postaci albowiemzależy od tego, który z całej listy rozkazówmaszynowych znalazł się w IR
☛ Cykl rozkazu może więc realizować kombinacje☛ transmisję pomiędzy rejestrami☛ transmisję do/z pamięci☛ transmisję z/do modułu we/wy☛ wywołanie ALU
☛
Przykład - cykl przerwania
☛ PC jest kopiowany do MBR☛ jednostka sterująca ładuje do MAR zawartość
specjalnej, zarezerwowanej do tego celulokalizacji pamięci (np. wskaźnik stosu)
☛ MBR zostaje zapisany w pamięci☛ do PC jest ładowany adres procedury
przerwania (ang. interrupt handling routine)☛ przejście do trybu pobierania
☛ pobierany jest następny rozkaz (t.j. pierwszy rozkazprocedury obsługującej przerwanie)
Schemat - cykl przerwania
PC - licznik programu MAR - rejestr adresowy pamięci MBR - rejestr buforowy pamięci JS - jednostka sterująca
pamięć
MAR
JS
MBR
PC
szyn
a ad
reso
wa
szyn
a da
nych
szyn
a st
erow
ania
Przerwania wielokrotne☛ Program może otrzymywać dane z modemu
oraz od drukarki☛ przerwania zablokowane (ang. disable
interrupts)☛ procesor ignoruje inne przerwania w trakcie obsługi☛ przerwanie zostaje zawieszone do czasu zakończenia☛ przerwania obsługiwane są sekwencyjnie
☛ przerwania zagnieżdżone☛ przerwanie o niższym priorytecie może zostać przerwane☛ kiedy przerwanie o wyższym priorytecie skończy procesor
wraca do obsługi przerwanego przerwania
Przerwania sekwencyjne
program użytkownika program obsługi przerwania X
program obsługi przerwania Y
Przerwania zagnieżdżone
program użytkownika program obsługi przerwania X
program obsługi przerwania Y
Przykład: drukarka - 2, dysk - 3,karta sieciowa - 5
☛ t=0 - początek programu☛ t=10 - przerwanie od drukarki
☛ t=10 - obsługa przerwania drukarki☛ t=15 - przerwanie od karty sieciowej
☛ t=15 - obsługa przerwania od karty sieciowej☛ t=20 - przerwanie od dysku
☛ t=25 - koniec obsługi przerwania od karty sieciowej☛ t=25 - obsługa przerwania od dysku☛ t=35 - koniec obsługi przerwania od dysku
☛ t=35 - kontynuacja obsługi przerwania od drukarki☛ t=39 - koniec obsługi przerwania od drukarki
☛ t=40 - koniec programu
Wieloprogramowanie
☛ Przerwanie zostało obsłużone☛ Procesor ma więcej niż dwa programy☛ Kolejność wykonania programów zależy od
wzlędnych priorytetów wykonania tychprogramów oraz od tego czy czekają one nazakończenie we/wy
☛ Po zakończeniu obsługi przerwania sterowaniemoże nie zostać przekazane do przerwanegoprogramu lecz do programu, który ma wyższypriorytet wykonania
IBM/370 - przerwania
☛ we/wy☛ sygnalizuje CPU, że kanał we/wy jest wolny, zakończył lub
zaszło zdarzenie opisane w CSW (ang. channel status word)
☛ programowe☛ operacja uprzywilejowa, protekcja, adresacja, przepełnienie
☛ wywołanie supervisora☛ przejście ze stanu problem do stanu supervisor
☛ zewnętrzne☛ przerwanie od zegara lub INT
☛ błąd maszyny☛ złe działanie: hard - zatrzymanie CPU, soft - próba obsługi
IBM/370 - obsługa przerwań☛ Z każdym typem przerwania stowarzyszone są dwa
ustalone podwójne słowa w pamięci głównej: starePSW oraz nowe PSW
☛ W momencie wystąpienia danego typu przerwania☛ bieżące PSW zostaje zapisane przez procesor jako stare PSW☛ nowe PSW staje dla procesora bieżącym PSW: pole adresowe
wskazuje na adres procedury obsługi przerwania☛ po zakończeniu obsługi przerwania stare PSW staje się bieżącym
☛ Typy przerwań mogą być zabronione (maskowane)☛ Priorytet przerwań
☛ błąd maszyny, programowe, supervisor, zewnętrzne, we/wyoperacja uprzywilejowa, protekcja, adresacja, przepełnienie
IBM/370 - PSW
☛ PSW - ang. program status word☛ 0-7 maska systemu (przerwania od kanałów we/wy)
☛ gdy dany bit = 0 przerwanie jest zamaskowane (zabroniowe)
☛ 8-12 klucz ochrony☛ 13 - błąd maszyny☛ 14 - stan czekaj (ładowanie PSW)☛ 15 - stan problem (tylko nieuprzywilejowane instrukcje)☛ 16-31 - kod przewania☛ 32-33 - kod długości instrukcji☛ 34-35 - kod warunku☛ 36-39 - maska programu (przepełnienie dziesiętne)☛ 40-63 - adres instrukcji (spełnia rolę licznika rozkazów)
Pentium II - rejestr EFLAGS
☛ EFLAGS opisuje stan procesora☛ CF, PF, AF, ZF, SF, OF - kody warunku☛ TF (trap flag) - ustawia przerwanie po każdej instrukcji
(debuger)☛ IF (interrupt enable flag) - zezwala na przerwania
zewnętrzne☛ NT (nested task) - task zagnieżdżony☛ VM (virtual mode) - tryb wirtualny 8086☛ VIF (virtual interrupt flag) - wieloprogramowanie☛ VIP (virtual interrupt pending) - wieloprogramowanie
Pentium II - rejestry sterowania
☛ Cztery rejestry (CR1 - nieużywany) określającesposób funkcjonowania procesora
☛ PE (protected enable) - tryb pracy chroniony☛ TS (task switched) - procesor przełączył zadanie☛ WP (write protect) - strony użytkownika tylko do
odczytu mogą być zapisane jedynie w trybienadzorcy
☛ CD (cache disable) - blokowanie cache’a☛ PG (paging) - blokowanie stronicowania
Potokowe przetwarzanie rozkazów
☛ ang. instruction pipeliningnowy rozkaz
wynik
pobranie następnego rozkazu
wykonanie pobranego rozkazu
cykl pobierania
cykl wykonania
oczekiwanie
oczekiwanie
odrzucenie przy skoku
now
y ro
zkaz
rozk
az
Ochrona sprzętowa
☛ Dualny tryb operacji (ang. dual-mode operation)☛ Ochrona wejścia-wyjścia☛ Ochrona pamięci☛ Ochrona jednostki centralnej
Dualny tryb operacji
☛ System wielozadaniowy musi chronić systemoperacyjny oraz wykonywane programy przedkażdym niewłaściwie działającym programem
☛ Należy wyposażyć sprzęt w środki pozwalającena rozróżnienie przynajmniej dwóch trybówpracy:☛ tryb użytkownika (ang. user mode) - wykonanie na
odpowiedzialność użytkownika☛ tryb monitora (ang. monitor mode) = tryb nadzorcy (ang.
supervisor mode ) = tryb systemu (ang. system mode) =tryb uprzywilejowany (ang. privileged mode) - wykonaniena odpowiedzialność systemu operacyjnego
Dualny tryb operacji (c.d.)
☛ Bit trybu (ang. mode bit) w sprzęciekomputerowym wskazujący na bieżący trybpracy : system (0), użytkownik (1)
☛ Wystąpienie błędu: przejście w tryb 0
☛ Rozkazy uprzywilejowane (ang. privileged) -tryb systemu
monitor użytkownik
Błą d/przerwanie
Ustaw tryb 1
Ochrona wejścia-wyjścia
☛ Wszystkie instrukcje wejścia-wyjścia sąuprzywilejowane
☛ Ochrona we/wy musi zapewniać, że użytkowniknigdy nie uzyska kontroli nad komputerem wtrybie monitora (np. program użytkownika wczasie swego wykonania zapamiętuje nowyadres w wektorze przerwań we/wy)
Ochrona pamięci
☛ Musi zapewniać ochronę pamięci (ang. memoryprotection) przynajmniej dla wektora przerwańoraz systemowych procedur ich obsługi
☛ Aby mieć ochronę pamięci musimy mieć dwarejestry, które określają zakres dozwolonychadresów dostępu dla programu:☛ rejestr bazowy (ang. base) - pierwszy dozwolony adres☛ rejestr graniczny (ang. limit) - rozmiar dozwolonego
obszaru
☛ Pamięć poza zdefiniowanym zakresem jestchroniona
Rejestr bazowy i granicznydefiniują przestrzeń adresową
0
256000
300040
420940
880000
1024000
300040
120900
rejestr bazowy
rejestr graniczny
monitor
zadanie 1
zadanie 2
zadanie 3
zadanie 4
Sprzętowa ochrona adresów
CPU
baza baza+granica
pamięć >= <tak tak
nie nie
adres
przejście pod nadzór systemu operacyjnego: błąd adresowania
Sprzętowa ochrona adresów
☛ sprzęt jednostki centralnej porównuje każdyadresu wygenerowany w trybie użytkownika zzawartością rejestrów bazowego i granicznego
☛ zwartości rejestru bazowego i granicznego mogąbyć załadowane jedynie w trybie monitora (loadjest instrukcją uprzywilejowaną)
☛ przerwanie protekcja pamięci
Przykład - IBM/360
☛ Słowo stanu programu (PSW) zawiera 5-bitowepole określające klucz ochrony stowarzyszony zkażdym 2kB blokiem pamięci
☛ Klucze ochrony są przechowywane w pamięciochrony kluczy
☛ Jeżeli procesor kontaktuje się z danym blokiempamięci to klucz w PSW jest porównywany zkluczem odczytanym z pamięci ochrony kluczy
Ochrona CPU
☛ Zegar jest ustawiany przez system operacyjnyprzed przekazaniem sterowania do programuużytkownika☛ w trakcie wykonywania programu zegar jest zmniejszany☛ jeśli zegar osiągnie 0 generowane jest przerwanie
☛ ładuj zegar jest rozkazem uprzywilejowanym☛ zegar może być wykorzystany do realizacji
podziału czasu (ang. time sharing) - przerwaniezegarowe następuje po wykorzystaniu kwantuczasu przez proces
Ogólna architektura systemu
☛ Jak dla danej uprzywilejowanej instrukcji we/wyprogram użytkowy może ją wykonać?
☛ wywołanie systemowe (ang. system call) tosposób na zamówienie przez proces działaniasystemu operacyjnego☛ zwykle przejście do określonej komórki w wektorze
przerwań☛ sterowanie zostaje przekazane do podprogramu obsługi
przerwania w trybie monitora☛ system sprawdza poprawność wywołania systemowego,
wykonuje zlecenie i oddaje sterowanie do nastepnejinstrukcji po wywołaniu systemowym
Użycie odwołania do systemu
wywołanie systemowe n
przypadek n
czytaj
rezydentny monitor
wykonaj operacje we/wy
powrót do trybu użytkownika
program użytkownika
przejście do trybu monitora
Start systemu - Booting
☛ Rozruch systemu (ang. booting) - małyfragment kodu, przechowywany w ROM,określany jako program rozruchowy (ang.bootstrap program) lub elementarny programładujący (ang. bootstrap loader)
☛ Program ładujący jest w stanie zlokalizować kodjądra systemu, wprowadzić go do pamięci irozpocząć jego wykonanie☛ dwuetapowy program ładujący sprowadza do pamięci
bardziej złożony program ładujący, który powodujezaładowanie jądra systemu
IBM/360 - IPL☛ IPL (ang. Initial Program Load) - instrukcja
☛ wczytanie (z dysku) do pamięci bootstrapu (IPL program)☛ IPL relokuje się na koniec pamięci☛ IPL wczytuje (z dysku) na początkowe adresy pamięci jądro
systemu (nucleus)☛ IPL przekazuje sterowanie do program NIP (ang. nucleus
initialization program)☛ NIP wykonuje
☛ inicjowanie tablic, czasu, konsoli, kolejek systemu☛ wczytuje do pamięci rezydentne części systemu operacyjnego☛ tworzy zadanie Master Scheduler☛ przekazuje sterowanie do procesu Master Scheduler
☛
Start jądra systemu - Unix
☛ Pierwszy sektor na dysku (ang. Master Bootrecord, MBR) zawiera program boot, któryzostaje wczytany do pamięci
☛ Uruchomiony zostaje program boot, który☛ relokuje się aby zwolnić początkowe adresy pamięci na
jądro systemu☛ czyta katalog root na dysku☛ wczytuje jądro systemu☛ przekazuje sterowanie jądru systemu
☛ asemblerowy kod inicjujący jądra systemu
Start systemu - Windows 2000☛ Pierwszy sektor na dysku (ang. Master Boot Record,
MBR) zawiera program boot, który zostaje wczytanydo pamięci
☛ Uruchomiony zostaje program boot, który:☛ relokuje się aby zwolnić początkowe adresy pamięci na jądro
systemu☛ czyta katalog root na dysku☛ wczytuje program ntldr☛ przekazuje sterowanie programowi ntldr:
☛ czyta plik konfiguracyjny Boot.ini☛ wczytuje pliki: hal.dll, ntoskrnl.exe, bootvid.dll☛ wczytuje drivery (myszy,...)☛ przekazuje sterowanie programowi ntoskrnl.exe
Co dalej ?
☛ Mamy komputer wyposażony w niezbędny dofunkcjonowania programów sprzęt
☛ Mamy załadowane do pamięci głównej jądrosystemu
☛ Przyjrzymy się działaniu systemu operacyjnego
☛ zarządzanie zadaniami (procesami)☛ zarządzanie pamięcią☛ zarządzani wejściem/wyjściem☛ sterowanie tym wszystkim
Działanie systemu
System
Pamięć
Wejście-Wyjście
Sterowanie
Peryferia
Linie komuni-kacyjne
Procesy
Komputer
Literatura
☛ zapoznaliśmy się z architekturą i organizacjąsystemu komputerowego jedyniefragmentarycznie☛ tzn. w takim zakresie jaki jest niezbędny aby zrozumieć
funkcjonowanie systemów operacyjnych
☛ W. Stallings - Architektura i organizacja systemukomputerowego, WNT, 2000☛ http://William.Stallings.com/COA5e.html
Literatura (c.d.)
☛ H. Katzan - Operating systems, Van Nostrand,1973
☛ H. Katzan - Computer Organization and theSystem/370, Van Nostrand, 1971
☛ J. Stańko - Programowanie w języku AssemblerJednolitego Systemu Elektronicznych MaszynCyfrowych, cz. I, Architektura EMC R-32,Politechnika Wrocławska, Wrocław 1977
Strony WWW
☛ www.pcguide.com☛ WWW Computer Architecture Home Page☛ CPU Info Center☛ ACM Special Interest Group on Computer
Architecture☛ IEEE Technical Committee on Computer
Architecture☛ Intel Technology Journal☛ Strony domowe producentów komputerów
☛ Intel, IBM, etc.