Systemy operacyjne

40
Systemy operacyjne Wykład 3 Praca systemu komputerowego nż. Wojciech Bieniecki ytut Nauk Ekonomicznych formatyki ://wbieniec.kis.p.lodz.pl/pwsz 1

description

Systemy operacyjne. Wykład 3 Praca systemu komputerowego. dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz. Architektura systemu komputerowego. Procesor, pamięć i urządzenia I/O podłączone są do wspólnej szyny ( magistrali ). - PowerPoint PPT Presentation

Transcript of Systemy operacyjne

Page 1: Systemy operacyjne

Systemy operacyjne

Wykład 3Praca systemu

komputerowego

dr inż. Wojciech BienieckiInstytut Nauk Ekonomicznychi Informatykihttp://wbieniec.kis.p.lodz.pl/pwsz 1

Page 2: Systemy operacyjne

Architektura systemu komputerowego

2

Procesor, pamięć i urządzenia I/O podłączone są do wspólnej szyny (magistrali)

W rzeczywistych systemach mamy do czynienia z kilkoma fizycznymimagistralami (PCI, ISA, USB, ...)

Page 3: Systemy operacyjne

Praca systemu komputerowego

3

System operacyjny opiera swoje działanie na przerwaniach.

Procesor i urządzenia wejścia-wyjścia mogą pracować współbieżnie

Każdy kontroler we-wy obsługuje jeden typ urządzeń

Każdy kontroler posiada lokalny bufor

Procesor przesyła dane do/z pamięci oraz do/z lokalnych buforów

Wejście/wyjście przeprowadzane jest pomiędzy lokalnym buforem kontrolera a urządzeniem.

Kontroler informuje o zakończeniu operacji zgłaszając przerwanie.

Page 4: Systemy operacyjne

4

System przerwańProjektanci systemów operacyjnych dążąc do zwiększenia efektywności wykorzystania systemów komputerowych dążyli do równoległego wykorzystania urządzeń we/wy i procesora.

Aby umożliwić pracę urządzeń we/wy współbieżnie z pracą procesor należy zapewnić mechanizmy umożliwiające poinformowanie procesora o rozpoczęciu lub zakończeniu operacji we/wy.

Są dwie metody pozyskania takich informacji

implementacja systemu przerwań

pooling - odpytywanie

Page 5: Systemy operacyjne

5

Pooling

Sposobem określenia stanu urządzeń jest okresowe „odpytywanie” przez procesor urządzeń, co powoduje opóźnienia w wykonywaniu wszystkich procesów.

Dodatkową trudnością jest określenie interwału czasowego pomiędzy kolejnymi pytaniami (nie za długi, nie za krótki).

Metoda ta jest wykorzystywana w tych procesorach, które nie obsługują mechanizmu przerwań

Page 6: Systemy operacyjne

6

Zadania systemu przerwańDo najważniejszych zadań systemu przerwań zaliczamy rozpoznawanie źródła przerwania i zapewnienie odpowiedniej kolejności obsługi wielu urządzeń, które mogą jednocześnie żądać obsługi.

Te dwie najważniejsze funkcje systemu przerwań można realizować programowo lub sprzętowo.

Poinformowanie procesora o wystąpieniu przerwania odbywa się poprzez specjalne wejście procesora - INT.

możliwość przerywania programu obsługi dowolnego przerwania przez przerwanie o wyższym priorytecie.

możliwość blokowania systemu przerwań przez procesor,

ignorowanie niektórych urządzeń zgłaszających przerwanie,

Dodatkowe zadania systemu przerwań:

Page 7: Systemy operacyjne

7

Przerwania sprzętowe

Przerwanie zewnętrzne – jest informacją o wystąpieniu asynchronicznego zdarzenia zewnętrznego w stosunku do procesora.Jest niezależne od aktualnie wykonywanych przez procesor instrukcji, na przykład.

Zakończenie transmisji danych.Nadejście pakietu z sieci.Przerwanie zegara.Błąd parzystości pamięci

Page 8: Systemy operacyjne

8

Przerwania sprzętowe

Przerwanie wewnętrzne (wyjątki) – generowane wewnętrznie przez procesor. Jest związane z aktualnie wykonywaną instrukcją, która powoduje wystąpienie błędu (ang. Fault, exception) w pracy procesora

– Dzielenie przez zero– Przepełnienie stosu– Brak strony w pamięci (w przypadku implementacji stronicowania)– Brak segmentu– Naruszenie mechanizmów ochrony.

Page 9: Systemy operacyjne

9

Przerwania programoweZ kodu programu wywoływana jest procedura obsługi przerwania.To przerwanie najczęściej wykorzystywane do komunikacji z systemem operacyjnym. Przykłady:

tekst db 20 ; tablica znakówmov ah, 0ah ; kod funkcji odczytu klawiaturymov dx, tekst ; ustaw buforint 21h ; pobierz dane

zdanie db  "Ala ma kota $" mov    ah, 9     ; kod funkcji wyświetlania na ekran mov    dx, zdanie ; przekazanie parametrówint    21h       ; wyświetl tekst

mov al, 04h; ust. kurs. myszy mov cx, 1 mov dx, 1 int 33h 

mov al, 03h ;odczyt my. int 33h

Page 10: Systemy operacyjne

Przykład przerwania

Page 11: Systemy operacyjne

11

Obsługa przerwaniaPrzerwanie musi przekazywać sterowanie do procedury obsługi przerwania.

Typowa realizacja polega na zarezerwowaniu ciągu słóww pamięci głównej gdzie przechowuje się adresy procedur obsługi przerwań pochodzących od różnych urządzeń.Tablica ta nazywana wektorem przerwań jest indeksowana jednoznacznym numerem urządzenia.

W żądaniu przerwania przekazywany jest ów unikalnyw systemie numer urządzenia dzięki czemu wykonywana jest właściwa procedura obsługi przerwania dla danego urządzenia.

Page 12: Systemy operacyjne

Ciąg rozkazów realizujących pożądaną reakcję na przerwanie.

odczyt wejść

obliczenia

wysterowaniewyjść

otwarciezaworu

zrzutowego

Procedura obsługi przerwania

Page 13: Systemy operacyjne

Inaczej program główny- sekwencja działań (rozkazów) mikroprocesora

realizowanych gdy nie ma przerwań

UWAGA: obsługa przerwania nie powinna zakłócać działania programu

...A:=200B:=44A:=A+BM[201]:=A

...

fragment programu

tła:

...B:=11A:=B*BM[101]:=A

...

fragment procedury

obsługi przerwania:

M[201]=132 M[101]=121

...A:=200B:=44A:=A+BM[201]:=A

...

fragment programu

tła:

A,Bstos...

B:=11A:=B*BM[101]:=A

...stosB,A

fragment procedury

obsługi przerwania:

M[201]=244 M[101]=121

Ź

L

E

D

O

B

R

Z

E

Program tła

Page 14: Systemy operacyjne

32 4 5 6 71

1. Składowanie na stosie rejestrów roboczych. IE – rejestr maski blokujący przerwania

2. Rozpoznanie (dokładne) przyczyny przerwania.3. Skasowanie przyczyny przerwania.4. Dodatkowa obróbka informacji.5. Odtworzenie rejestrów roboczych ze stosu.6. Odblokowanie przerwań.7. Powrót do zawieszonego programu.

c.d. programu tłaprogram tła

INTIE

Struktura procedury obsługi przerwania

Page 15: Systemy operacyjne

1. odblokowanie przerwań (6) następuje przed skasowaniem przyczyny przerwania (3).

2 61program tła2 61 2 61 2 61 2 61 itd.

INTIE

Obsługa przerwania – błędy logiczne

Page 16: Systemy operacyjne

2. Brak skasowania przyczyny przerwania (3):

2 4 5 6 71program tła 2 4 5 6 71 2 4 5 6 71

INT

IE

ciągłe, cykliczne wykonywanie obsługi przerwania

program tła 2 4 5 6 71 2 4 5 6 71

INT

IE

2 4 5 6 71

albo z pojedynczym rozkazem z programu tła

Obsługa przerwania – błędy logiczne

Page 17: Systemy operacyjne

c.d. programu tła32 4 5 71program tła

INT

IE

Obsługa przerwania – błędy logiczne

3. Brak odblokowania systemu przerwań (6):

Page 18: Systemy operacyjne

4. Błędne odtworzenie rejestrów ze stosu (nie bilansujące się zapisy i odczyty na stosie):

wykonanie przypadkowych kodów32 4 5 76program tła

INT

IE

1

adres powrotuRejestr ARejestr BRejestr C

stos:

PC

adres powrotuRejestr ARejestr BRejestr C

stos:

PC

Obsługa przerwania – błędy logiczne

Page 19: Systemy operacyjne

Priorytetowość przerwań może być zrealizowana sprzętowo przez odpowiednie kontrolery.

kontrolerprzerwań

CPU

I/O1 I/O2 I/On

Zróżnicowanie co do ważności (pilności) zadań realizowanych przez system mikroprocesorowy.Zadaniami tymi mogą być procedury obsługi przerwań – różnicując ich pilność dokonuje się określenia priorytetów poszczególnych przerwań;

Priorytetowość przerwań

Page 20: Systemy operacyjne

priorytety: 1>2>...>n

CPU

I/O1 I/O2 I/On

Vcc

Vcc

może być zrealizowana sprzętowo przez odpowiednią strukturę połączeń systemu przerwań (np. łańcuch urządzeń przerywających);

Priorytetowość przerwań

Page 21: Systemy operacyjne

Priorytetowość przerwań może być zrealizowana programowo poprzez wspólny początek procedur obsługi przerwań będący arbitrem systemu przerwań (rozpoznaje źródła aktualnych przerwań i decyduje o kolejności ich obsługi)

CPU

I/O1 I/O2 I/On

Vcc

Priorytetowość przerwań

Page 22: Systemy operacyjne

Może być zrealizowana programowo przez programowy arbiter systemu przerwań z indywidualnym sprawdzaniem (pooling) urządzeń przerywających

CPU

I/O1 I/O2 I/On

Vcc

c.d. programu tła4 5 6 71 32PASPprogram tła

INTX

Priorytetowość przerwań

Page 23: Systemy operacyjne

Może być zrealizowana programowo przez programowy arbiter systemu przerwań z grupowym sprawdzaniem urządzeń przerywających

c.d. programu tła4 5 6 71 32PASPprogram tła

INTX

CPU

I/O1 I/O2 I/On

Vcc

Priorytetowość przerwań

Page 24: Systemy operacyjne

Wielopoziomowość systemu przerwań - dopuszczenie do zawieszenia aktualnie realizowanej procedury obsługi przerwania w celu realizacji innej, zwykle o wyższym priorytecie, procedury obsługi nowo zgłoszonego przerwania.

System przerwań

Wektorowość systemu przerwań - przypisanie każdemu źródłu przerwania odrębnej procedury jego obsługi, uruchamianej bezpośrednio w reakcji na zgłoszenie tego przerwania.

Wektorowość można uzyskać:• przez specjalizowane kontrolery systemów przerwań, np. 8259A;• w niektórych rodzinach mikroprocesorowych, np. Z80.

Brak wektorowości -> programowy arbiter systemu przerwań.Wektorowość przerwań – typowe rozwiązanie w mikrokontrolerach.

Page 25: Systemy operacyjne

Przerwania jako zdarzenia z różnych źródeł pojawiają się w dowolnych chwilach czasu, zupełnie niezależnie od siebie

CPU

I/O1 I/O2 I/O3

VccINT

cykl rozkazowy n+1cykl rozkazowy n

kolejność pojawienia się przerwań (z pkt.widzenia CPU): 1 i 3 (jednocześnie), 2

INT1

INT2

INT3

INT

cykl rozkazowy n-1

chwila testowania wejścia przerwań

przez CPU

Asynchroniczność przerwań

Page 26: Systemy operacyjne

Dt2

2 1 2 3

Dt3

T P2 T P1 P2 P3

Jednopoziomowy bez priorytetów

Cechy:

Systemy obsługi przerwań

System stosowany w małych systemach mikroprocesorowych przy 1..2 źródłach przerwań.

Opóźnienia (Dt2 , Dt3) w reakcji na przerwanie;

możliwość zgubienia przerwania podczas tych opóźnień;

maksymalny czas zwłoki w obsłudze danego przerwania może być równy sumie czasów obsługi pozostałych przerwań w systemie.

Page 27: Systemy operacyjne

Jednopoziomowy z priorytetami

Cechy:

Dt2

2 3 1,2

Dt1

T P2 T P3 P2 P1

pozorna jednoczesnośćwystąpienia przerwań

priorytety: 3>2>1

Systemy obsługi przerwań

System stosowany przy niewielkiej liczbie źródeł przerwań.

można wskazać ważniejsze przerwania, których obsługa będzie miała pierwszeństwo przed pozostałymi

opóźnienia (Dt1 , Dt2) w reakcji na przerwanieprzerwania o niższych priorytetach mogą długo czekać na obsługę

możliwość zgubienia przerwania podczas tych opóźnień

Page 28: Systemy operacyjne

Wielopoziomowy bez priorytetów

2 1 3 2 1

T P2 P1 T P3 P2 P1 2 P3 T

Systemy obsługi przerwań

Cechy:

każde przerwanie jest natychmiast obsługiwane

proces obsługi dowolnego przerwania może zostać zawieszony na dość długo przez procedury obsługi pozostałych przerwań

System bardzo rzadko stosowany.

Page 29: Systemy operacyjne

Wielopoziomowy z priorytetami

System zalecany przy większej liczbie źródeł przerwań.

2 1 1 2 3

T P2 P1 T P1 P2 P3 2 P1 T priorytety: 3>2>1

Cechy:

można przyśpieszyć obsługę ważniejszych przerwań

przerwania o niskich priorytetach dłużej czekają na obsługę

Systemy obsługi przerwań

Page 30: Systemy operacyjne

Przerwania zegarowe – regularne, o f > 1Hz:• odmierzanie odcinków czasu (np. w ms);• pomiar czasu astronomicznego;• w małych systemach mikroprocesorowych: obsługa urządzeń zewnętrznych (klawiatur,

wyświetlaczy, itd.).

Rodzaje przerwań

Przerwania od urządzeń zewnętrznych – nieregularneInformują mikroprocesor o:• gotowości urządzenia do nowej transmisji informacji;• zakończeniu dotychczasowej transmisji.

Przerwania od układów kontroli pracy systemu – sporadyczne Zwykle o wysokim priorytecie: sygnalizują szczególne stan pracy:• zanik zasilania;• błąd parzystości w bloku pamięci;• załamanie się cyklu pracy oprogramowania;• błąd/wyjątek procesora/koprocesora.

Przerwania od układów sprzężenia z obiektem – nieregularneInformują mikroprocesor o różnych zdarzeniach w kontrolowanym obiekcie:• zadziałanie krańcówek alarmowych;• przekroczenie poziomów alarmowych, itp.

Page 31: Systemy operacyjne

31

Programowalny układ przerwań 8259A (x86)

Page 32: Systemy operacyjne

32

Programowalny układ przerwań 8259A

W układzie 8259A można wyróżnić trzy rejestry:● IMR – rejestr maski,● IRR – rejestr zgłoszenia przerwania,● ISR – rejestr obsługi przerwania.

PIC (Programmable Interrupt Controller)

Page 33: Systemy operacyjne

33

Programowalny układ przerwań Cechy

Żądania obsługi zgłaszane są na liniach IR0-IR7.Ustawiając odpowiedni bit w rejestrze maski można wymusić ignorowanie przerwań na wybranej linii.

Jeżeli odpowiedni bit w rejestrze maski jest wyzerowany to informacja o wystąpieniu przerwania jest przekazywana dalej i powoduje ustawienie odpowiedniego bitu w rejestrze IRR.

Przerwania mają ustalony priorytet, który maleje wraz ze wzrostem numeru wejścia.

Page 34: Systemy operacyjne

34

Programowalny układ przerwań – zasada działania

Układ oceny priorytetu wybiera przerwanie o najwyższym priorytecie i aktywuje sygnał INT, informujący procesor o konieczności obsługi przerwania.

Page 35: Systemy operacyjne

35

Programowalny układ przerwań – zasada działania

Jeśli obsługa przerwań nie jest programowo zablokowana (bit IE w rejestrze stanu procesora) to procesor reaguje sygnałem gotowości przyjęcia przerwania na linii ~INTA.

Wyjście ~INTA procesora jest połączone z wejściem ~INTA układu 8259A.

Page 36: Systemy operacyjne

36

Programowalny układ przerwań – zasada działania c.d.

Następnie wybrany przez układ oceny priorytetu bit rejestru IRR jest przekazywany do rejestru ISR (Interrupt Service Register).Procesor wysyła drugi impuls ~INTA, na który kontroler przerwań odpowiada wystawieniem na szynę danych D0-D7 wektora przerwań.

Page 37: Systemy operacyjne

37

Programowalny układ przerwań – zasada działania c.d.

Bity 7-3 stanowią offset, który można ustalić na etapie programowania kontrolera a bity 2-0 numer bitu ustawionego w rejestrze ISR.

Procesor traktuje ten bajt jako numer procedury obsługi przerwania i przechodzi do jej wykonywania.

Page 38: Systemy operacyjne

38

Programowalny układ przerwań – zasada działania c.d.

W przypadku gdy kontroler pracuje w trybie AEOI (Automatic End Of Interrupt) to w momencie przejścia do wykonywania procedury obsługi przerwania zerowany jest odpowiedni bit rejestru ISR.

Wyzerowanie bitu w rejestrze ISR oznacza gotowość kontrolera do przyjęcia następnego przerwania.

Page 39: Systemy operacyjne

39

Kaskadowe łączenie układów

do wejść przerywających jednego sterownika 8259 master przyłączane są wyjścia INTA z innych sterowników. Każdy przyłączony sterownik zwiększa liczbę wejść przerywających o 8, a więc umożliwia nam to osiągnięcie 64 poziomów przerwań na jedną kaskadę.

Page 40: Systemy operacyjne

40

Programowalny układ przerwań 8259A dziś

Układ 8259A został wchłonięty przez jeden z bloków chipset’u South Bridge i emuluje się tylko jego funkcje przy zachowaniu zgodności na poziomie rejestrów.