Próbowałem przeczytać więcej o różnych bramach w architekturze x86. Jeśli rozumiem poprawnie, to przerwanie i pułapka są używane odpowiednio do obsługi przerwań hw i sw. Podczas gdy bramka CALL prawdopodobnie nie jest już używana, jako preferowane są osoby preferowane przez SYSENTER i SYSEXIT.bramka zadania, brama przerwań, bramka wywoławcza
Zastanawiam się, w jaki sposób używane są bramki zadań (wiem, że są używane do przełączania zadań hw). Co to dokładnie oznacza? Czy zadanie hw odnosi się do zadania/procesu systemu operacyjnego. Czy jest to raczej przełączanie między dwoma różnymi instancjami systemu operacyjnego. (Może być na serwerach.)?
Może się zdarzyć, że niektóre przerwań są obsługiwane w trybie użytkownika. (Możemy obsłużyć dzielenie przez zero przerwanie w trybie użytkownika. Jeśli może być następnie to znaczy IDT pozycję uchwytu dla dzielenia przez zero zawiera adres z przestrzeni użytkownika?)
Dzięki
W pewnym sensie przeszedłem przez instrukcję, ale instrukcja oczywiście nie wspomina, że gagi zadań nie są już używane we współczesnym systemie operacyjnym. W moim projekcie klasy nigdy nie użyłem bramy zadań i całkowicie ją zignorowałem. Byłem zdezorientowany, jeśli w nowoczesnych systemach operacyjnych jest jakikolwiek dostęp do bramek zadań. Tylko w celu potwierdzenia, czy przerwanie zegara jest odwzorowane na przerwanie bramki? –
"Tabela deskryptorów przerwań (IDT) kojarzy każdy wyjątek lub wektor przerwań z deskryptorem bramki dla procedury lub zadania używanego do obsługi powiązanego wyjątku lub przerwania." więc tak, każde przerwanie jest odwzorowywane na bramkę przerwań. Zauważ, że podręcznik Intela nie omawia tego, co jest lub nie jest używane; opisuje tylko to, co _ może_ być użyte. – bdonlan
Kilka systemów operacyjnych zostało zaprojektowanych do pracy na różnych architekturach, dlatego należy unikać używania niektórych funkcji specyficznych dla Intela. I, jak mówisz, niektóre funkcje są po prostu przestarzałe. –