Przerwania funkcje systemowe
This presentation is the property of its rightful owner.
Sponsored Links
1 / 33

Przerwania. Funkcje systemowe. PowerPoint PPT Presentation


  • 191 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Przerwania. Funkcje systemowe.

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.


Przerwania funkcje systemowe

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)

...

MOVEAX, 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)

...

MOVEAX, 5; numer funkcji systemowej:

MOVEBX, plik; adres nazwy pliku

MOVECX, 2; 2 - otwieranie do odczytu i zapisu

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

INT80h; jeśli udalo się otworzyc plik

…; w EAX znajdzie się deskryptor pliku

section .data

plikdb "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)

...

MOVEAX, 4 ; numer funkcji systemowej:

; sys_write - zapisz do pliku

MOVEBX, 1 ; numer pliku, do którego pisze.

; 1 = standardowe wyjście = ekran

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

MOVEDX, 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)

MOVEAX, 6 ; numer funkcji systemowej:

MOV EBX, <deskryptor_pliku> ; EBX = deskryptor pliku

INT80h

...


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.


  • Login