zoukankan      html  css  js  c++  java
  • minix中的GDT,LDT,IDT和TSS

    1.全局描述符表(Global Descriptor Table):

    GDT表项指向LDT。

    GDT对所有进程均可用。

    GDT记录OS使用的内存区域的段描述符。

    整个系统只定义一个GDT,其中存放有允许多个进程共同访问的那些段的描述符。
     

    2.局部描述符表(Local Descriptor Table):

    每个进程的局部空间的段的所有段描述符集中存放在一张表中,这张表为该进程的局部描述符表(LDT)。

    每个进程的LDT通常存放在核心空间中,系统也将它看成是一个段,因此也需要一个段描述符来给出其在内存的基址、长度等信息,这类描述符被称为LDT描述符,它们被存放在GDT中。

    当前正在执行的进程,其在GDT中的LDT描述符位置,由CPU的LDTR寄存器指出。

    3.中断描述符表(Interrupt Descriptor Tabel):

    各类中断的中断处理程序的相关信息,是通过一个控制段描述符来描述的,该描述符叫中断门,其描述符类型为E。

    所有中断门集中保存在一张表中,该表即中断描述符表IDT,其作用类似于实模式下的中断向量表。

    CPU寄存器IDTR中存放有IDT的限长和物理基址,从而可以找到系统使用的IDT。

    4.任务状态段(Task State Segment):

    每个任务都有一个任务状态段TSS,描述任务状态段的描述符称为TSS描述符(类型 = 1、3、9、 B)

    所有任务的TSS描述符均被存放在GDT中。

    系统可通过TR寄存器在GDT中找到正在执行的任务的TSS描述符,从而找到相应任务的TSS。

    任务状态段TSS中包含:

      1.任务的CPU现场(通用寄存器、段选择寄存器、指令指针、标志寄存器等);

      2.特权级分别为0、1、2时的堆栈段选择符和栈顶指针;

      3.该任务被调用时,前一个任务TSS的返回连接选择符;

      4.I/O允许位图等。

    参考自梁老师的PPT

  • 相关阅读:
    Aspnet_regiis加密web.config
    C#加密算法汇总
    ?? 运算符
    游戏外挂技术初探
    正则表达式语法
    C++Primer第四版13.5.1. 定义智能指针类的例子被new蒙蔽_BLOCK_TYPE_IS_VALID
    Adobe Flex 成为 Apache 基金会顶级开源项目
    程序员老黄历
    Flash多点触控体验和简介
    Flash开发人员必备:最新离线网页版ActionScript 3.0API文档、 flex 4.6 air 3.5 开发人员指南
  • 原文地址:https://www.cnblogs.com/jun14/p/2835637.html
Copyright © 2011-2022 走看看