Wykład 3 Praca systemu komputerowego

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Wirtualizacja zasobów w systemach operacyjnych
Mechanizmy pracy równoległej
Wykonał : Marcin Sparniuk
Odpytywanie - Polling Program czeka na nadejście danych z urządzenia i nie może wykonywać innych zadań. Urządzenie zewnętrzne dostarcza dane w trudnym.
SYSTEMY ALARMOWE System alarmowy składa się z urządzeń: - decyzyjnych (centrala alarmowa) - zasilających - sterujących - wykrywających zagrożenia (ostrzegawczych-
PRZERZUTNIKI W aktualnie produkowanych przerzutnikach scalonych TTL wyróżnia się dwa podstawowe rodzaje wejść informacyjnych: - wejścia asynchroniczne,
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Magistrale.
Podstawowe składniki funkcjonalne procesora i ich rola.
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Magistrala & mostki PN/PD
Systemy operacyjne Bibliografia:
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Budowa systemów operacyjnych czasu rzeczywistego
Płyty główne Budowa.
ZARZĄDZANIE PROCESAMI
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Mikroprocesory i mikrokontrolery
Układy wejścia-wyjścia
ogólne pojęcia struktury
Komputer a system komputerowy
Programowalny układ we-wy szeregowego 8251
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Układy kombinacyjne cz.2
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
MCS51 - wykład 2.
Mikroprocesor Z80 przerwania.
ogólne pojęcia struktury
Programowalny układ we/wy równoległego.. Wyprowadzenia układu.
Architektura komputerów
MCS51 - wykład 6.
Architektura komputerów
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
ARCHTEKTURA KOMPUTERA
Płyta główna. Magistrale I/O
Systemy operacyjne.
Zasada działania komputera
Budowa systemu komputerowego
Autor: Justyna Radomska
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Etapy pracy biosu.
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Przerwanie ang. interrupt.
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Architektura PC.
Etapy uruchamiania systemu Pliki konfiguracyjne
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
Procesor – charakterystyka elementów systemu. Parametry procesora.
BUDOWA I ZASADA DZIAŁANIA
Przerzutniki bistabilne
Procesor, pamięć, przerwania, WE/WY, …
Architektury procesorów rdzeniowych mikrokontrolerów.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Układy i systemy mikroprocesorowe
Przerwania timera i przerwania zewnętrzne
Tryby adresowania i formaty rozkazów mikroprocesora
POLITECHNIKA POZNAŃSKA
Płyta główna. Magistrale I/O
POLITECHNIKA POZNAŃSKA
Mikrokontrolery System przerwań
Zapis prezentacji:

Wykład 3 Praca systemu komputerowego 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) W rzeczywistych systemach mamy do czynienia z kilkoma fizycznymi magistralami (PCI, ISA, USB, ...)

Praca systemu komputerowego 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. System operacyjny opiera swoje działanie na przerwaniach.

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

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ń

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. Dodatkowe zadania systemu przerwań: możliwość blokowania systemu przerwań przez procesor, ignorowanie niektórych urządzeń zgłaszających przerwanie, możliwość przerywania programu obsługi dowolnego przerwania przez przerwanie o wyższym priorytecie.

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

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.

Przerwania programowe Z kodu programu wywoływana jest procedura obsługi przerwania. To przerwanie najczęściej wykorzystywane do komunikacji z systemem operacyjnym. Przykłady: zdanie db  "Ala ma kota $"  mov    ah, 9     ; kod funkcji wyświetlania na ekran  mov    dx, zdanie ; przekazanie parametrów int    21h       ; wyświetl tekst tekst db 20 ; tablica znaków mov ah, 0ah ; kod funkcji odczytu klawiatury mov dx, tekst ; ustaw bufor int 21h ; pobierz dane mov al, 04h; ust. kurs. myszy  mov cx, 1  mov dx, 1  int 33h  mov al, 03h ;odczyt my. int 33h

Przykład przerwania

Obsługa przerwania Przerwanie musi przekazywać sterowanie do procedury obsługi przerwania. Typowa realizacja polega na zarezerwowaniu ciągu słów w 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 unikalny w systemie numer urządzenia dzięki czemu wykonywana jest właściwa procedura obsługi przerwania dla danego urządzenia.

Procedura obsługi przerwania Ciąg rozkazów realizujących pożądaną reakcję na przerwanie. otwarcie zaworu zrzutowego odczyt wejść obliczenia wysterowanie wyjść

Program tła 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 Ź L E D O B R Z E A,Bstos ... B:=11 A:=B*B M[101]:=A stosB,A fragment procedury obsługi przerwania: ... A:=200 B:=44 A:=A+B M[201]:=A fragment programu tła: ... A:=200 B:=44 A:=A+B M[201]:=A fragment programu tła: ... B:=11 A:=B*B M[101]:=A fragment procedury obsługi przerwania: M[201]=132 M[101]=121 M[201]=244 M[101]=121

Struktura procedury obsługi przerwania Składowanie na stosie rejestrów roboczych. IE – rejestr maski blokujący przerwania Rozpoznanie (dokładne) przyczyny przerwania. Skasowanie przyczyny przerwania. Dodatkowa obróbka informacji. Odtworzenie rejestrów roboczych ze stosu. Odblokowanie przerwań. Powrót do zawieszonego programu. 1 2 3 4 5 6 7 program tła INT IE c.d. programu tła

Obsługa przerwania – błędy logiczne 1. odblokowanie przerwań (6) następuje przed skasowaniem przyczyny przerwania (3). 2 6 1 program tła itd. INT IE

Obsługa przerwania – błędy logiczne 2. Brak skasowania przyczyny przerwania (3): 2 4 5 6 7 1 program tła INT IE ciągłe, cykliczne wykonywanie obsługi przerwania program tła 2 4 5 6 7 1 INT IE albo z pojedynczym rozkazem z programu tła

Obsługa przerwania – błędy logiczne 3. Brak odblokowania systemu przerwań (6): c.d. programu tła 3 2 4 5 7 1 program tła INT IE

Obsługa przerwania – błędy logiczne 4. Błędne odtworzenie rejestrów ze stosu (nie bilansujące się zapisy i odczyty na stosie): program tła INT IE 1 wykonanie przypadkowych kodów 3 2 4 5 7 6 adres powrotu Rejestr A Rejestr B Rejestr C stos : PC adres powrotu Rejestr A Rejestr B Rejestr C stos : PC

Priorytetowość przerwań 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ń może być zrealizowana sprzętowo przez odpowiednie kontrolery. kontroler przerwań CPU I/O1 I/O2 I/On

Priorytetowość przerwań może być zrealizowana sprzętowo przez odpowiednią strukturę połączeń systemu przerwań (np. łańcuch urządzeń przerywających); priorytety: 1>2>...>n CPU I/O1 I/O2 I/On Vcc

Priorytetowość przerwań 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 Vcc I/O1 I/O2 I/On

Priorytetowość przerwań 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 1 PASP 3 2 4 5 6 7 program tła INTX c.d. programu tła

Priorytetowość przerwań Może być zrealizowana programowo przez programowy arbiter systemu przerwań z grupowym sprawdzaniem urządzeń przerywających CPU I/O1 I/O2 I/On Vcc 1 PA SP 3 2 4 5 6 7 program tła INTX c.d. programu tła

System przerwań 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. 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.

Asynchroniczność przerwań 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 Vcc INT INT1 INT2 INT3 INT cykl rozkazowy n-1 chwila testowania wejścia przerwań przez CPU cykl rozkazowy n cykl rozkazowy n+1 kolejność pojawienia się przerwań (z pkt.widzenia CPU): 1 i 3 (jednocześnie), 2

Systemy obsługi przerwań Jednopoziomowy bez priorytetów Dt2 2 1 2 3 Dt3 T P2 T P1 P2 P3 Cechy: 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. System stosowany w małych systemach mikroprocesorowych przy 1..2 źródłach przerwań.

Systemy obsługi przerwań Jednopoziomowy z priorytetami Dt2 2 3 1,2 Dt1 T P2 T P3 P2 P1 priorytety: 3>2>1 pozorna jednoczesność wystąpienia przerwań Cechy: 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 przerwanie przerwania o niższych priorytetach mogą długo czekać na obsługę możliwość zgubienia przerwania podczas tych opóźnień System stosowany przy niewielkiej liczbie źródeł przerwań.

Systemy obsługi przerwań Wielopoziomowy bez priorytetów 2 1 3 2 1 T P2 P1 T P3 P2 P1 2 P3 T 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.

Systemy obsługi przerwań Wielopoziomowy z priorytetami 2 1 1 2 3 T P2 P1 T P1 P2 P3 2 P1 T priorytety: 3>2>1 Cechy: przerwania o niskich priorytetach dłużej czekają na obsługę można przyśpieszyć obsługę ważniejszych przerwań System zalecany przy większej liczbie źródeł przerwań.

Rodzaje przerwań 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.). Przerwania od urządzeń zewnętrznych – nieregularne Informują 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 – nieregularne Informują mikroprocesor o różnych zdarzeniach w kontrolowanym obiekcie: zadziałanie krańcówek alarmowych; przekroczenie poziomów alarmowych, itp.

Programowalny układ przerwań 8259A (x86)

Programowalny układ przerwań 8259A PIC (Programmable Interrupt Controller) W układzie 8259A można wyróżnić trzy rejestry: IMR – rejestr maski, IRR – rejestr zgłoszenia przerwania, ISR – rejestr obsługi przerwania.

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.

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.

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.

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

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.

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.

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

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.