P000 Architektura počítačů

Obsah
Předchozí:
Přepnutí procesu instukcí vzdáleného skoku

Přepnutí procesu instrukcí vzdáleného volání CALL nebo přerušením

  1. Selektor ukazuje na bránu zpřístupňující TSS nového procesu.
    1. Kontrola oprávněnosti přístupu k bráně: CPL=<DPL brány.
    2. Selektor ukazuje na bránu v GDT, LDT nebo IDT.
    3. Brána obsahuje selektor ukazující na popisovač TSS v GDT.
  2. Selektor ukazuje na popisovač TSS nového procesu v GDT.
    1. Kontrola oprávněnosti přístupu k TSS: CPL=<DPL popisovače.
  3. Přepnutí je vyvolané přerušením.
    1. Přerušovací vektor ukazuje na bránu v IDT.
    2. Brána obsahuje selektor ukazující na popisovač TSS v GDT.
  4. Kontrola popisovače TSS: nový proces musí být neaktivní (Typ=1), popisovač musí mít P=1 a správný limit.
  5. Uložení stavu procesoru do TSS podle TR.
  6. Starý proces zůstává aktivní (Typ je stále 3).
  7. Dočasné uschování původního obsahu TR a následné naplnění TR (selektor a neviditelná část) ukazatelem na TSS nového procesu.
  8. Aktivace nového procesu aktualizací popisovače TSS (Typ:=3) a nastavení TS=1 (bit Task Switch v MSW).
  9. Jedničkování příznaku NT nového příznakového registru (najbližší IRET způsobí přepnutí).
  10. Naplnění zpětného ukazatele TSS, jehož adresa je uložena v TR, dočasně uschovanou hodnotou původního TR (ukazatel na proces, který inicioval přepnutí).
  11. Zavedení nového obsahu všech registrů procesoru podle TSS, na který ukazuje TR.
Následující: Přepnutí procesu instrukcí IRET s NT=1
Obsah

Michal Brandejs brandejs@informatics.muni.cz