- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《微型计算机原理与接口技术》第5版第13章 32位微型机的基本工作原理;13.5 任务切换;任务(Task): 一个程序的一次动态执行过程。
处理器可对任务进行调度(dispatch)、执行(exe-cutive)和挂起(suspend)。
任务切换:任务间的控制转移,是32位机段模式中最复杂的部分。
IA-32结构提供一种保护任务状态、调度、执行和切换任务的机制。
保护模式下,处理器的所有操作都发生在一个任务之内。;1. 任务结构
任务结构由2部分组成:
任务的执行空间
包含1个代码段、1个堆栈段、1个或几个数据段。
如使用特权级保护,会为每个特权级提供各自堆栈。
任务状态段TSS
用来说明组成执行空间的段,提供任务状态信息的存储空间。
TSS也为多任务系统提供任务链接机制。
执行任务时,先把其TSS描述符的16位段选择子和64位描述符,装入任务寄存器TR及其高速缓存。由TR选择子可找到TSS描述符;根据描述符中的基址、限长和属性等信息,找到相应的TSS;再由TSS找到任务的执行空间,执行相应的操作。;2.任务切换用到的数据结构
IA-32结构的处理器,使用几个专用的数据结构来支持多任务,通过这些数据结构和寄存器,处理器可以高速地从一个任务切换到另一个任务。
这些数据结构存放在LDT、GDT或IDT表中:
任务状态段TSS
任务状态段TSS描述符
任务寄存器TR
任务门描述符
此外,还有EFLAGS中的任务嵌套标志NT。
;1)任务状态段TSS
TSS段中保存的是任务状态或上下文关系,支持任务调用、返回及任务间的嵌套。
TSS属系统段,低位部分由处理器定义,对应一个任务的各种信息,占用104个字节,地址为00H~67H。高位部分从68H开始,由操作系统定义。
通过TSS描述符能找出TSS段的基地址、限长和段属性。
TSS描述符存放在GDT表中。;TSS低位部分的格式如图?
低位部分分成动态域和静态域
(1)动态域
当一个任务被挂起时,处理器修改动态域。动态域包含:
? 通用寄存器 EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI
? 段选择子 ES,CS,SS,DS,FS,GS寄存器
? 标志寄存器 EFLAGS
? 指令指针 EIP
? 上个任务的LINK域,任务嵌套时用。
;假设从任务1转到任务2,则两任务的TSS段的??态域内容会发生变化:
任务切换前,CPU将被挂起的任务1的动态域内容,保存到它自身的任务状态段TSS1。例如, 把EAX~EDI值存入28H~44H单元, EFLAGS值存入24H等。
接着,把任务2的动态域内容,从TSS2段中取出,装入相应寄存器。
然后,根据新的CS和EIP执行任务2。
;(2)静态域
任务切换时,处理器读出静态域,不修改。当创建一个任务时,要进行设置。
静态域包括:
? LDT段选择子 给出任务的LDT表,多个任务也可共享同一个LDT,任务切换时处理器也能切换到另一个LDT去。
? CR3 页目录基址寄存器(PDBR) 含任务所用的页目录物理基址。切换时,CR3被重新装入。
? 特权级0?2的堆栈指针 每个特权级都建有独立的堆栈。在TSS段中存有0?2级内层堆栈指针SS0:ESP0 ? SS2:ESP2。不需设3级堆栈指针。
;? T标志 即调试自陷位或T位,字节64H的D0位。当切换进新任务后,如其TSS段的T=1,在执行新任务第1条指令前将产生调试自陷,即产生异常。这时,CPU可做些事情,如统计此任务被切换的次数,检查TSS的值等。
? I/O允许位图基地址 位图放在TSS段高位部分,其基址由66H处的16位值决定。位图最大64K位(8K字节),决定处理器对该任务使用I/O地址的控制能力,每位控制1个I/O端口地址,可寻址64K个8位I/O端口。某位为0允许对应端口操作;若等于1,则要看当前I/O特权级情况。
;2)任务状态段描述符
TSS段描述符定义它的基址、限长以及属性,TSS段最小68H字节,故限长?67H。
属性S=0,是系统段描述符或门描述符。
Type字段说明任务类型。如
Type=0010对应LDT;
Tyep=1001是有效任务状态段;
Type=1011是忙任务状态段,即正运行或被挂起的任务。
当前执行任务的TSS类型会被自动置成“忙”。
不能切换到忙TSS,否则通用保护异常(#GP);
TSS段描述符只能放在GDT中,否则非法异常(#TS);
TSS选择子要装入TR寄存器,若装进段寄存器将产生#GP异常。;3)任务寄存器TR
任务切换将执行指令:
JMP 段选择子: 偏移量
CALL 段选择子: 偏移量
段选择
您可能关注的文档
最近下载
- 《懂得爱:在亲密关系中成长》读书笔记.docx VIP
- 上海市中考语文专题复习:文言文虚词简表.pdf VIP
- 广西盐业公司的招聘试卷.pdf VIP
- 2025《民营经济促进法》解读课件PPT.pptx
- Haier海尔空调KFRd-120LW 7YAF81 KFRd-120LW 5YAF82 KFR-12ity 5YAF82用户手册.pdf
- 雪铁龙维修 手册 图DS_5LS_Owner_Book_ZH.pdf VIP
- 烟风煤支吊架设计手册-新版.pdf VIP
- 长期卧床鼻饲患者的护理ppt.pptx VIP
- 教学能力大赛教案--智慧工厂的安全策略之VLAN的划分.docx VIP
- GB 6246-2011 消防水带标准规范‘’.pdf
文档评论(0)