4. 任务管理

4.1. 任务管理概述

  • 什么是任务?

  • 80x86 提供了哪些硬件支持?

  • 描述符表中与任务相关的描述符有哪些?

  • 任务切换与过程调用的区别是什么?

4.1.1. 任务的结构

  • 一个任务由几部分构成?

  • 任务执行空间包括什么?

  • 为什么会有多个特权级栈空间?

4.1.2. 任务状态

  • 当前正在执行的任务状态包括哪些内容?

  • 掌握每一个被包含内容的含义?

  • 为什么要包含这些内容?

4.1.3. 任务的执行

  • 任务的执行方式有几种?

  • 熟悉掌握每一种执行方式的过程

  • Linux 0.00 用的是哪种方式?

  • 任务可以递归调用吗?为什么?

4.2. 任务的数据结构

  • 任务状态段 Task-State Segment (TSS)

  • TSS 描述符

  • 任务寄存器

  • 任务门描述符 Task-Gate Descriptor

4.3. 任务切换

此部分内容重点掌握:

  • 什么时候发生任务切换?

  • 发生任务切换时,处理器会执行哪些操作?

  • 中断或异常向量指向 IDT 表中的中断门或陷阱门,会发生任务切换吗?

4.4. 任务链

  • 如何判断任务是否嵌套?

  • 什么情况会发生任务嵌套?

  • 任务嵌套时修改了哪些标志位?

  • 任务嵌套时,如何返回前一任务?

4.5. 任务地址空间

  • 什么是任务地址空间?

  • 任务地址空间包括什么?

  • 了解把任务映射到线性和物理地址空间的方法?

  • 了解任务逻辑地址空间,及如何在任务之间共享数据的方法?