Przerwania funkcje systemowe
Download
1 / 33

Przerwania. Funkcje systemowe. - PowerPoint PPT Presentation


  • 287 Views
  • Uploaded on

Przerwania. Funkcje systemowe. Przerwanie. Przerwanie to pewien sygnał skierowany do procesora. Może pochodzić ze sprzętu lub oprogramowania. Przerwanie powoduje wstrzymanie aktualnie wykonywanego programu i wykonanie przez procesor kodu procedury obsługi przerwania (ang. interrupt handler).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Przerwania. Funkcje systemowe. ' - india


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Przerwania funkcje systemowe
Przerwania. Funkcje systemowe.


Przerwanie
Przerwanie

Przerwanie to pewien sygnał skierowany do procesora. Może pochodzić ze sprzętu lub oprogramowania.

Przerwanie powoduje wstrzymanie aktualnie wykonywanego programu i wykonanie przez procesor kodu procedury obsługi przerwania (ang. interrupt handler).


Rodzaje przerwa
Rodzaje przerwań

Sprzętowe:

Zewnętrzne – sygnał przerwania pochodzi z zewnętrznego układu obsługującego przerwania sprzętowe; przerwania te służą do komunikacji z urządzeniami zewnętrznymi, np. z klawiaturą, napędami dysków itp.

Wewnętrzne, nazywane wyjątkami (ang. exceptions) – zgłaszane przez procesor dla sygnalizowania sytuacji wyjątkowych (np. dzielenie przez zero); dzielą się na trzy grupy:

faults (niepowodzenie) – gdy dana instrukcja wywoła błąd, który da się naprawić i można powrócić do dalszego wykonywania

traps (pułapki) – gdy nie wystąpił błąd, a jedynie wcześniej zaplanowane wykonanie przerwania (stosowane często przy debugowaniu aplikacji) 

aborts (nienaprawialne).

Programowe – z kodu programu wywoływana jest procedura obsługi przerwania; najczęściej wykorzystywane do komunikacji z systemem operacyjnym, który w procedurze obsługi przerwania (np. w DOS 21h, Windows 2fh, Linux x86 przerwanie 80h) umieszcza kod wywołujący odpowiednie funkcje systemowe w zależności od zawartości rejestrów ustawionych przez program wywołujący.


Przerwania sprz towe
Przerwania sprzętowe

Przerwania posiadają numery – różne urządzenia skojarzone są z różnymi numerami

Numery te skojarzone są z tzw. linią żądania przerwania IRQ. Linii tej przypisana jest wartość liczbowa, np.:

IRQ 0 – przerwanie zegarowe

IRQ 1 – przerwanie klawiatury


Procedura obs ugi przerwania sprz towego
Procedura obsługi przerwania sprzętowego

Przykład obsługi interfejsu sieciowego przy odbieraniu pakietu:

Poinformowanie urządzenia o przyjęciu przerwania

Skopiowanie pakietu sieciowego z bufora urządzenia do pamięci operacyjnej

Przetworzenie pakietu

„Przepchnięcie” przez właściwy stos protokołów

Przekazanie do aplikacji docelowej


Procedura obs ugi przerwania sprz towego1
Procedura obsługi przerwania sprzętowego

Przykład obsługi interfejsu sieciowego przy odbieraniu pakietu:

Poinformowanie urządzenia o przyjęciu przerwania

Skopiowanie pakietu sieciowego z bufora urządzenia do pamięci operacyjnej

Przetworzenie pakietu

„Przepchnięcie” przez właściwy stos protokołów

Przekazanie do aplikacji docelowej


Co to jest bios
Co to jest Bios ?

Jest przechowywany w kości pamięci ROM

podstawowe procedury wejścia/wyjścia

zbiór procedur napisanych w Asemblerze, sterujących wykonywaniem podstawowych funkcji komputera: obsługa dysku, karty video, portu drukarki itd.


DOS

program ,który kontroluje komputer i jego zasoby od momentu jego włączenia aż do wyłączenia.

poprzez funkcje DOS programy użytkowe mogą czytać pliki, zapisywać je do pamięci, kontrolować naciskanie klawiszy klawiatury, uruchamiać inne programy, ustawiać datę i czas.


Funkcje bios dos
Funkcje BIOS , DOS

Funkcje BIOS uzupełniają DOS (system operacyjny) w zakresie kontroli nad sprzętem.

Spośród wielu zastosowań funkcji BIOS jednym z nich jest użycie go w celu sterowania monitorem ekranowym.

Tylko przez przywoływanie funkcji BIOS można ustawić tryb pracy monitora, mieć kontrolę nad kolorami, sposobem wyświetlania itp.

np:

MOV AH,0 ; tryb ustawienia BIOS

MOV AL,4 ; nr trybu dla 4-kolorowej grafiki 320x200 (CGA)

INT 10h ; wykonaj przerwanie BIOS ustawiające tryb video


Tablica wektor w przerwa
Tablica wektorów przerwań

Na samym początku pamięci ,w segmencie 0 ,znajduje się specjalna tabela skoków posiadająca 256 pozycji.

256 wektorów x 4 bajty dla jednego wektora

każdy adres z tej tabeli skoków nazywamy wektorem przerwania.


Tablica wektor w przerwa1
Tablica wektorów przerwań

Adresy programów obsługi przerwań są wpisywane do tablicy wektorów przerwań przy ładowaniu systemu operacyjnego przez BIOS i przez system operacyjny

istnieje specjalna instrukcja CPU służąca do "używania" tabeli wektorów.

Instrukcja → INT

np. INT 21h


Przerwania bios u
Przerwania BIOS-u

int 10h (przerwanie karty graficznej)

int 13h (obsługa dysków)

int 16h (obsługa klawiatury)

Int 17h (obsługa drukarki)


Przyk adowa funkcja przerwania bios u 16h obs uga klawiatury
Przykładowa funkcja przerwania BIOS-u 16h (obsługa klawiatury)

funkcja 0 - pobierz kod naciśniętego klawisza

(lub czekaj na naciśnięcie):

Argumenty:

AH = 0

Zwraca:

AH = BIOSowy kod klawisza (skankod)

AL = kod klawisza ASCII


Przerwania bios u1
Przerwania BIOS-u

przerwania BIOS-u muszą pracować w trybie rzeczywistym. Linux ich nie może używać gdyż sam pracuje w trybie chronionym (a przełączanie się jest zbyt kosztowne)

przerwania BIOS-u są wolniejsze od bezpośredniej obsługi urządzeń

przerwania BIOS-u zmniejszają bezpieczeństwo systemu (np: również dzięki nim w systemie operacyjnym DOS można było odczytać dowolną informację z dysku);

przerwania te nie zapewniają wsparcia dla nowych typów urzadzeń.

Dziś już nie są one używane przez nowoczesne systemy operacyjne, takie jak Linux. Powodów po temu jest kilka:


Przyk adowa funkcja przerwania dos a 21 h
Przykładowa funkcja przerwaniaDOS'a 21h

Funkcja 09h - wyświetl napis:

Argumenty:

AH = 9

DS:DX = adres łańcucha znaków zakończonego znakiem dolara "$"


Przyk adowa funkcja przerwania dos a 21 h1
Przykładowa funkcja przerwaniaDOS'a 21h

Funkcja 01h - czytaj klawisz:

Argumenty:

AH = 1

Zwraca:

AL = kod klawisza ASCII


Przyk adowa funkcja przerwania dos a 21 h2
Przykładowa funkcja przerwaniaDOS'a 21h

Funkcja 4Ch - zakończenie działania bieżącego programu:

Argumenty:

AH = 4Ch

AL = 0 → kod wyjścia (errorlevel) zwracany systemowi operacyjnemu


Przerwanie systemowe linuksa int 80h
Przerwanie systemowe Linuksa int 80h

MOV EAX, <numer_funkcji>

Jeśli jakaś funkcja zakończy się błędem, w EAX zwracana jest wartość ujemna z przedziału od -4096 do -1 włącznie


Przyk adowa funkcja przerwania systemowego linuksa 80h
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przerwanie systemowe linuksa 80h funkcja numer 1 wyj cie z programu
Przerwanie systemowe Linuksa 80hFunkcja numer 1 (wyjście z programu)

...

MOV EAX, 1 ; numer funkcji systemowej

; (sys_exit - wyjdź z programu)

INT 80h ; wywołanie funkcji systemowej


Przyk adowa funkcja przerwania systemowego linuksa 80h1
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przerwanie systemowe linuksa 80h funkcja numer 5 otwarcie pliku
Przerwanie systemowe Linuksa 80hFunkcja numer 5 (otwarcie pliku)

...

MOV EAX, 5 ; numer funkcji systemowej:

MOV EBX, plik ; adres nazwy pliku

MOV ECX, 2 ; 2 - otwieranie do odczytu i zapisu

MOV EDX, 111000000b ; 700 - zabroń innym dostępu

INT 80h ; jeśli udalo się otworzyc plik

… ; w EAX znajdzie się deskryptor pliku

section .data

plik db "nazwa.txt",0 ; nazwa pliku


Przyk adowa funkcja przerwania systemowego linuksa 80h2
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przerwanie systemowe linuksa 80h funkcja numer 4 zapis do pliku
Przerwanie systemowe Linuksa 80hFunkcja numer 4 (zapis do pliku)

...

MOV EAX, 4 ; numer funkcji systemowej:

; sys_write - zapisz do pliku

MOV EBX, 1 ; numer pliku, do którego pisze.

; 1 = standardowe wyjście = ekran

MOV ECX, tekst ; ECX = adres (offset) tekstu

MOV EDX, dlugosc ; EDX = długość tekstu

INT 80h ; wywołanie funkcji systemowej

...

section .data

tekst DB "Czesc", 0ah ; napis

dlugosc EQU $ - tekst ; długość napisu


Przyk adowa funkcja przerwania systemowego linuksa 80h3
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przerwanie systemowe linuksa 80h funkcja numer 6 zamkni cie pliku
Przerwanie systemowe Linuksa 80hFunkcja numer 6 (zamknięcie pliku)

MOV EAX, 6 ; numer funkcji systemowej:

MOV EBX, <deskryptor_pliku> ; EBX = deskryptor pliku

INT 80h

...


Przyk adowa funkcja przerwania systemowego linuksa 80h4
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przyk adowa funkcja przerwania systemowego linuksa 80h5
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przyk adowa funkcja przerwania systemowego linuksa 80h6
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przyk adowa funkcja przerwania systemowego linuksa 80h7
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przyk adowa funkcja przerwania systemowego linuksa 80h8
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Przyk adowa funkcja przerwania systemowego linuksa 80h9
Przykładowa funkcja przerwaniasystemowego Linuksa 80h


Wywo ania systemowe
Wywołania systemowe

Stanowią interfejs między wykonywanym programem

a (posiadającym zwykle wyższe uprawnienia) jądrem systemu operacyjnego.


ad