74
Toruń, 2004 Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 4 Działanie systemu komputerowego

Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W4.pdf · kody rozkazów sprzęt przystosowany do potrzeb użytkownika sygnały sterujące program przystosowany do

  • 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.

Grupy dyskusyjne (Usenet)

☛ comp.arch☛ comp.arch.arithmetic☛ comp.arch.storage

Podsumowanie

☛ działanie komputera☛ cykl pobrania, wykonania i przerwania

☛ ochrona sprzętowa☛ dualny tryb operacji: monitora i użytkownika☛ uprzywilejowane rozkazy we/wy☛ rejestr bazowy i graniczny☛ machanizm przerwań zegarowych☛ wywołania systemowe w procesie użytkownika