任务管理

1:任务(Task):处理器可以分配调度,执行和 挂起的一个工作单元。
                                用于执行程序,任务或进程,操作系统服务,中断或异常处理过程和内核代码。
2:任务是一个正在运行的程序,或者是一个等待运行的程序。通过中断,异常,跳转或调用,我们可以执行一个任务。
3:当中断,异常,跳转或者调用和某个描述符表中指定项的内容一起使用时,那么这个描述符是一类可以导致新任务开始执行的描述符。
4:描述符表中与任务相关的描述符有两种:任务状态段描述符和任务门。
5:任务切换会把控制权完全转移到一个新的执行环境,即新任务的执行环境。
6:任务状态段(TSS):保存处理器的状态信息。
7:任务的构成:任务执行空间(代码段,堆栈段,一个或者多个数据段),任务状态段(TSS)
8:一个任务使用指向其TSS的段选择符来指定。
9:任务寄存器(TR):段选择符,基地址,段限长,TSS段描述符属性。
10:当前执行任务的状态由处理器中的以下所有内容组成:
       1:所有通用寄存器和段寄存器信息。
       2:标志寄存器EFLAGS,程序指针EIP,控制寄存器CR3,任务寄存器和LDTR寄存器
       3:段寄存器指定的任务当前执行空间
       4:I/O映射位图基地址和I/O位图信息(在TSS中)
       5:特权级0,1,2,的堆栈指针(在TSS中)
       6:链接至前一个任务的链指针(在TSS中)
11:任务的执行
       1:使用CALL指令明确的调用一个任务
       2:使用JMP指令明确的跳转到一个任务
       3:(由处理器)隐含的调用一个中断句柄处理任务
       4:隐含的调用一个异常句柄处理任务。
       通过一个指向任务门或任务TSS段的选择符来确定一个任务。
12:当使用CALL指令或JMP指令调度一个任务时,指令中的选择符既可以直接选择任务的TSS,也可以选择存放有TSS选择符的任务门
13:当调度一个任务来处理一个中断或者异常时,那么IDT中该中断或异常表项必须是一个任务门,并且其中包含有中断或异常处理任务的TSS选择符。
14:在任务切换期间,当前运行任务的执行环境(任务的状态或者上下文)会被保存到它的TSS中并且暂停该任务的执行。此后新任务的上下文会被加载进处理器中,并且从加载的EIP指向的指令处开始执行新任务。
15:如果当前执行任务(调用者)调用了被调度的新任务(被调用者),那么调用者的TSS段选择符会被保存在别调用者的TSS中,从而提供了一个返回调用者的链接。
16:作为任务切换 的一部分,处理器会切换到另一个LDT,从而允许每个任务对基于LDT的段具有不同逻辑到物理地址的映射。页目录寄存器CR3也会在切换时被重新加载,因此每个任务可以有自己的一套页表。
17:任务管理寄存器
   任务状态段TSS,
  TSS描述符,
  任务寄存器TR,
  任务门描述符, 
  标志寄存器EFLAGS中的NT标志
18:任务状态段TSS:用于恢复一个任务执行的处理器状态信息。(动态字段,静态字段)
19:动态字段
       通用寄存器字段。(EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI)
       段选择符字段(ES,CS,SS,DS,FS,GS)
       标志寄存器EFLAGS字段。在切换之前保存
       指令指针EIP字段。在切换之前保存
       先前任务连接字段。含有前一个任务TSS段选择符
20:静态字段
      LDT的段选择符字段。含有任务的LDT段的选择符
      CR3控制寄存器字段。含有任务使用的页目录物理基地址
      特权级0,1,2的堆栈指针段。
      调试陷阱T标志字段。
      I/O位图基地址字段。
21:TSS描述符。只能存在GDT中。
22:使用跳转或者调用指令时,任何可以访问TSS描述符的程序都能够造成任务切换。
23:任务寄存器(TR)中存放着16位的的段选择符以及当前任务TSS段的整个描述符。这些信息从GDT中当前任务的TSS描述符中复制过来的。
24:指令LTR和STR分别用于加载和保存任务寄存器的可见部分,即TSS段的选择符。
25:任务门描述符中的TSS选择符字段指向GDT中的一个TSS段描述符。任务门描述符可以存放在GDT,LDT,IDT中。
26:任务描述符中的DPL用于在任务切换时控制对TSS段的访问。
27:当程序通过任务门调用或跳转到一个任务时,程序的CPL以及指向任务门的门选择符的RPL值必须小于或者等于任务门描述符中的DPL。
28:看124页图4-36引用同一任务的任务门
29:处理器使用下面4种方式之一执行任务切换操作:
    1:当前任务对GDT中的TSS描述符执行JMP或CALL指令
    2:当前任务对GDT或者LDT中的任务门描述符执行JMP或者CALL指令。
    3:中断或者异常向量指向IDT中的任务门描述符
    4:当EFLAGS中的NT标志置位时当前任务执行IRET指令。
30:当中断或者异常的向量索引的是IDT中的一个任务门时,一个中断或者异常就会造成任务切换。如果向量索引的是IDT中的的一个中断或者陷阱门,就不会造成任务切换。
31中断服务过程总是把执行权返回到被中断的过程中,被中断的过程可能是在另一个任务中。如果NT标志处于复位状态,则执行一般返回处理。如果NT标志是置位状态,则返回操作会产生任务切换,切换到的新任务由中断服务过程TSS中的TSS选择符(前一任务连接字段)指定。
31:切换到一个新任务时,处理器会做以下工作:
     1:从作为JMP或CALL指令操作中,或者从任务门中,或者从当前TSS的前一任务链接字段(对于由IRET引起的任务切换)中取得新任务的TSS段选择符。
     2:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值