久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

TSS任務狀態(tài)段

 tuohuang0303 2012-04-01
 
1 什么是TSS 
TSS 全稱task state segment,,是指在操作系統(tǒng)進程管理的過程中,,任務(進程)切換時的任務現(xiàn)場信息。 

任務狀態(tài)段TSS的結構
 

TSS段的最小長度為104字節(jié),,低104字節(jié)依照下列格式存放數(shù)據(jù),。

在這104字節(jié)以外還可以存放I/O許可位圖以及其他信息,相應增加TSS段長度,。

31....16

15...0

段內(nèi)偏移值

I/O位圖基地址

T

0x64

LDT段選擇符

0x60

GS

0x5c

FS

0x58

DS

0x54

SS

0x50

CS

0x4C

ES

0x48

EDI

0x44

ESI

0x40

EBP

0x3C

ESP

0x38

EBX

0x34

EDX

0x30

ECX

0x2C

EAX

0x28

EFLAGS

0x24

EIP

0x20

頁目錄基地址寄存器CR3PDBR

0x1C

SS2

0x18

ESP2

0x14

SS1

0x10

ESP1

0x0C

SS0

0x08

ESP0

0x04

前任務鏈接(TSS選擇子)

0x00

靜態(tài)字段(通常不會被改變,,任務創(chuàng)建時設置):

(1) I/O位圖基地址字段:I/O許可位圖相對TSS開始處的16位偏移值;(I/O許可位圖基址大于或等于TSS段界限,,表示沒有I/O許可位圖,。CPL<=IOPL,所有I/O指令都會引起異常,。I/O許可位圖使同一特權級下的不同任務可以有不同的I/O訪問權限)
(2) T
調(diào)試陷阱(Debug Trap)標志字段:T1 處理器切換到該任務的操作將產(chǎn)生一個調(diào)試異常,;

(3) 頁目錄基址寄存器(Page directory base registerPDBRCR3:含有任務使用的頁目錄物理基地址,;
(4) SS0 SS1 SS2 ESP0 ESP1 ESP2
:分別為特權級0,、12的堆棧選擇符(SS0,、SS1,、SS2)和棧中偏移指針(ESP0 ESP1 ESP2),,對于一個指定的任務,這些字段的值是不變的(,?Why,?);

(5) LDT段選擇符字段:任務的LDT段的選擇符,。

動態(tài)字段(任務切換時,,處理更新的字段):

(1) 段選擇符字段:段寄存器的值;
(2)
通用寄存器:通用寄存器的值,;
(3)
標志寄存器字段:EFLAGS的值,;
(4)
指令指針EIP字段:EIP寄存器的值;
(5)
前任務鏈接字段:前一個任務的TSS段選擇符,,允許任務使用IRET切換到前一個任務,。

附:

(1) I/O許可位圖(I/O Permission Bitmap):
I/O
許可位圖中的第i位=0 端口iH可用,I/O許可位圖中的第i位=1 端口iH不可用,;
I/O
許可位圖必須以0ffH結尾
(2) IOPL
I/O特權級(I/O Privilege Level),,標志寄存器EFLAGS1312位,當前運行任務的I/O特權級,(當前運行任務的CPL必須小于或等于IOPL才能訪問I/O地址空間,CPL0,程序才可以使用POPFIRET指令修改這個字段.)(EFLAGS鏈接


2 TSS工作細節(jié)
TSS在任務切換過程中起著重要作用,,通過它實現(xiàn)任務的掛起和恢復,。所謂任務切換是指,掛起當前正在執(zhí)行的任務,,恢復或啟動另一任務的執(zhí)行,。在任務切換過程中,首先,,處理器中各寄存器的當前值被自動保存到TR(任務寄存器)所指定的TSS中,;然后,下一任務的TSS的選擇子被裝入TR,;最后,,從TR所指定的TSS中取出各寄存器的值送到處理器的各寄存器中。由此可見,,通過在TSS中保存任務現(xiàn)場各寄存器狀態(tài)的完整映象,,實現(xiàn)任務的切換。
3 TSS的格式 任務狀態(tài)段TSS的基本格式如下圖所示,。 TSS的基本格式由104字節(jié)組成,。這104字節(jié)的基本格式是不可改變的,但在此之外系統(tǒng)軟件還可定義若干附加信息,。基本的104字節(jié)可分為鏈接字段區(qū)域,、內(nèi)層堆棧指針區(qū)域,、地址映射寄存器區(qū)域,、寄存器保存區(qū)域和其它字段等五個區(qū)域。
(1). 寄存器保存區(qū)域 寄存器保存區(qū)域位于TSS內(nèi)偏移20H至5FH處,,用于保存通用寄存器,、段寄存器、指令指針和標志寄存器,。當TSS對應的任務正在執(zhí)行時,,保存區(qū)域是未定義的;在當前任務被切換出時,,這些寄存器的當前值就保存在該區(qū)域,。當下次切換回原任務時,再從保存區(qū)域恢復出這些寄存器的值,,從而,,使處理器恢復成該任務換出前的狀態(tài),最終使任務能夠恢復執(zhí)行,。 從上圖可見,,各通用寄存器對應一個32位的雙字,指令指針和標志寄存器各對應一個32位的雙字,;各段寄存器也對應一個32位的雙字,,段寄存器中的選擇子只有16位,安排再雙字的低16位,,高16位未用,,一般應填為0。
(2). 內(nèi)層堆棧指針區(qū)域 為了有效地實現(xiàn)保護,,同一個任務在不同的特權級下使用不同的堆棧,。例如,當從外層特權級3變換到內(nèi)層特權級0時,,任務使用的堆棧也同時從3級變換到0級堆棧,;當從內(nèi)層特權級0變換到外層特權級3時,任務使用的堆棧也同時從0級堆棧變換到3級堆棧,。所以,,一個任務可能具有四個堆棧,對應四個特權級,。四個堆棧需要四個堆棧指針,。 TSS的內(nèi)層堆棧指針區(qū)域中有三個堆棧指針,它們都是48位的全指針(16位的選擇子和32位的偏移),,分別指向0級,、1級和2級堆棧的棧頂,依次存放在TSS中偏移為4、12及20開始的位置,。當發(fā)生向內(nèi)層轉移時,,把適當?shù)亩褩V羔樠b入SS及ESP寄存器以變換到內(nèi)層堆棧,外層堆棧的指針保存在內(nèi)層堆棧中,。沒有指向3級堆棧的指針,,因為3級是最外層,所以任何一個向內(nèi)層的轉移都不可能轉移到3級,。 但是,,當特權級由內(nèi)層向外層變換時,并不把內(nèi)層堆棧的指針保存到TSS的內(nèi)層堆棧指針區(qū)域,。實際上,,處理器從不向該區(qū)域進行寫入,除非程序設計者認為改變該區(qū)域的值,。這表明向內(nèi)層轉移時,,總是把內(nèi)層堆棧認為是一個空棧。因此,,不允許發(fā)生同級內(nèi)層轉移的遞歸,,一旦發(fā)生向某級內(nèi)層的轉移,那么返回到外層的正常途徑是相匹配的向外層返回,。
(3). 地址映射寄存器區(qū)域 從虛擬地址空間到線性地址空間的映射由GDT和LDT確定,,與特定任務相關的部分由LDT確定,而LDT又由LDTR確定,。如果采用分頁機制,,那么由線性地址空間到物理地址空間的映射由包含頁目錄表起始物理地址的控制寄存器CR3確定。所以,,與特定任務相關的虛擬地址空間到物理地址空間的映射由LDTR和CR3確定,。顯然,隨著任務的切換,,地址映射關系也要切換,。 [Page] TSS的地址映射寄存器區(qū)域由位于偏移1CH處的雙字字段(CR3)和位于偏移60H處的字字段(LDTR)組成。在任務切換時,,處理器自動從要執(zhí)行任務的TSS中取出這兩個字段,,分別裝入到寄存器CR3和LDTR。這樣就改變了虛擬地址空間到物理地址空間的映射,。 但是,,在任務切換時,處理器并不把換出任務但是的寄存器CR3和LDTR的內(nèi)容保存到TSS中的地址映射寄存器區(qū)域,。事實上,,處理器也從來不向該區(qū)域自動寫入。因此,如果程序改變了LDTR或CR3,,那么必須把新值人為地保存到TSS中的地址映射寄存器區(qū)域相應字段中,??梢酝ㄟ^別名技術實現(xiàn)此功能,。
(4). 鏈接字段 鏈接字段安排在TSS內(nèi)偏移0開始的雙字中,其高16位未用,。在起鏈接作用時,,地16位保存前一任務的TSS描述符的選擇子。 如果當前的任務由段間調(diào)用指令CALL或中斷/異常而激活,,那么鏈接字段保存被掛起任務的 TSS的選擇子,,并且標志寄存器EFLAGS中的NT位被置1,使鏈接字段有效,。在返回時,,由于NT標志位為1,返回指令RET或中斷返回指令IRET將使得控制沿鏈接字段所指恢復到鏈上的前一個任務,。
(5). 其它字段 為了實現(xiàn)輸入/輸出保護,,要使用I/O許可位圖。任務使用的I/O許可位圖也存放在TSS中,,作為TSS的擴展部分,。在TSS內(nèi)偏移66H處的字用于存放I/O許可位圖在TSS內(nèi)的偏移(從TSS開頭開始計算)。關于I/O許可位圖的作用,,以后的文章中將會詳細介紹,。 在TSS內(nèi)偏移64H處的字是為任務提供的特別屬性。在80386中,,只定義了一種屬性,,即調(diào)試陷阱。該屬性是字的最低位,,用T表示,。該字的其它位置被保留,必須被置為0,。在發(fā)生任務切換時,,如果進入任務的T位為1,那么在任務切換完成之后,,新任務的第一條指令執(zhí)行之前產(chǎn)生調(diào)試陷阱,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多