====================================================================
本文用于汇总整理Intel80386的多任务支持功能,
参考文献:
- 《INTEL 80386 programmer's reference manual 1986》
本文是系列文章《Intel80386知识总结》的一部分。
===================================================================
1. 任务信息的管理机构
1.1 TSS
处理器把维护一个任务所需的所有信息都保存在一个特殊的段中:Task State Segment(TSS)。TSS的结构如下图所示:
TSS中的字段可以分为两组,一组是每次任务切换时都会更新的动态字段,另一组是只读的静态字段。动态字段包括:
- 通用寄存器保存字段:EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI
- 段寄存器保存字段:ES、CS、SS、DS、FS、GS
- 标志位寄存器保存字段:EFLAGS
- 指令指针保存字段:EIP
- 前一个任务的TSS选择符
静态字段包括:
- 任务LDT的选择符
- 寄存器PDBR的保存字段
- CPL为0~2时的堆栈段选择符,共3个
- T bit:Debug trap bit,等于1时,在每次任务切换时处理器都会产生一个调试异常
- I/O Map base:I/O用
1.2. TSS描述符
即指向TSS的段描述符,其结构如下所示:
TSS描述符TYPE字段中的B bit是TSS的忙标志位,当TYPE字段=9时,表示该任务为非繁忙任务,当TYPE字段=11时,表示该任务为繁忙任务。i386的任务是不可重入的,处理器可以通过检查任务的B bit发现任务是否繁忙。TSS描述符的LIMIT字段必须大于等于103,大于103是允许的,可以系统软件被用来存储一些相关信息。
TSS描述符只能被保存在GDT中,通过TI=1的选择符访问TSS选择符会造成异常。不能直接通过把TSS描述符载入数据段寄存器来修改其中的内容,只能通过载入另一个指向TSS的数据段描述符来修改TSS。
1.3. TR寄存器
TR寄存器给出了当前任务的TSS,通过TR寄存器访问TSS的路径如下图所示:
1.4. 任务门
i386提供任务门机制作为间接的受保护的访问TSS的方式,其结构如下所示:
其中,SELECTOR字段指向TSS描述符,SELECTOR字段中的RPL是不被使用的,同时,当使用任务门时,TSS描述符中的DPL失效,优先级保护规则为:选中任务门所用的选择符RPL和CPL都必须小于等于任务门的DPL。
一个TSS只有唯一的TSS描述符与其对应,却可以有多个任务门同时指向对应的TSS。TSS描述符和任务门形成了多任务管理的两层架构:
2. 任务的切换
2.1 切换流程
- 检查当前任务是否有权切换到目标任务:TSS描述符或者是调用门的DPL必须小于等于CPL和调用门选择符的RPL
- 检查目标TSS描述符的PRESENT字段是否为1,LIMIT字段是否合法,否则产生异常。异常将在切换前的任务上下文中。
- 保存当前任务的执行现场:保存寄存器EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI、ES、CS、SS、DS、FS、GS、EFLAGS到TSS。把当前指令(造成任务切换的指令)的下一条指令地址保存到TSS。
- 在TR寄存器中载入目标任务的TSS描述符,并设置其Busy bit。
- 从新任务的TSS中恢复现场,并继续执行
在上述过程中要完成的保护检查一览:
序号 | 检查内容 | 异常类型 |
1 | Incoming TSS descriptor is present | NP |
2 | Incoming TSS descriptor is marked not-busy | GP |
3 | Limit of incoming TSS is greater than or equal to 103 | TS |
4 | LDT selector of incoming task is valid | TS |
5 | LDT of incoming task is present | TS |
6 | CS selector is valid | TS |
7 | Code segment is present | NP |
8 | Code segment DPL matches TS Code segment CS RPL | TS |
9 | Stack segment is valid | GP |
10 | Stack segment is present | SF |
11 | Stack segment DPL = CPL | SF |
12 | Stack-selector RPL = CPL | GP |
13 | DS, ES, FS, GS selectors are valid | GP |
14 | DS, ES, FS, GS segments are readable | GP |
15 | DS, ES, FS, GS segments are present | NP |
16 | DS, ES, FS, GS segment DPL ≥ CPL (unless these are conforming segments) | GP |
其中,异常类型的含义为:
- NP = Segment-not-present exception
- GP = General protection fault
- TS = Invalid TSS
- SF = Stack fault
2.2 任务返回链
TSS的back-link字段和EFLAGS寄存器的NT(Nested Task)标志位共同提供了i386的任务返回链机制。当由任务A切换至任务B的时候,处理器会在任务B的TSS中设置back-link字段,指向任务A的TSS选择符,同时设置任务B的EFLAGS寄存器中的NT位=1。当任务B释放控制流的时候,处理器首先检查EFLAGS的NT位是否为1,若为1则读取任务B TSS中的back-link字段自动返回。在系统运行的过程中返回链的长度可以无限增长,TSS描述符的Busy位保护了在返回链中没有环。同时,在多处理器环境下,Busy位还可以保护一个任务不被多个处理器同时执行。下表总结了Busy位,NT位和Back-link字段的具体行为逻辑:
分享到:
相关推荐
- **定义**:Intel 80386是一款32位微处理器,是Intel 80286的后续产品,首次引入了32位架构和支持多任务操作系统的功能。 - **重要性**:标志着个人计算机从16位向32位过渡的重要里程碑,对后来的计算机硬件和软件...
### 第七章:多任务(Multitasking) #### 7.1 任务状态段(Task State Segment) 这一节解释了任务状态段的作用,以及它如何帮助处理器管理不同的任务。 #### 7.3 任务寄存器(Task Register) 这里介绍了任务寄存器...
【Intel项目管理知识总结】 项目管理是一门涉及多个方面的学科,尤其在Intel这样的高科技公司中,高效的项目管理至关重要。本文将概述项目管理的核心概念、特点、流程和组织结构,以及项目管理过程的关键要素。 ...
3. **设置TSS**:配置任务状态段以支持多任务环境。 4. **开启保护模式**:通过修改CR0寄存器启用保护模式。 5. **设置分页机制**:定义页目录表和页表,并加载到CR3寄存器中。 6. **启用分页**:通过修改CR0寄存器...
- **多平台支持**:支持在不同的硬件平台上进行部署,包括CPU、GPU、VPU等。 ##### 4.2 安装OpenVINO Toolkit - **下载OpenVINO Toolkit**:访问Intel官方网站下载OpenVINO Toolkit。 - **安装OpenVINO Toolkit**...
根据提供的文件信息,可以看出这是一段与51单片机相关的代码示例,涉及到了多任务处理的概念。本文将从这段代码入手,详细介绍其中涉及的关键知识点,并深入探讨这些概念在51单片机中的应用。 ### 一、51单片机简介...
在80386处理器中,保护模式是其最显著的特性之一,相比实地址模式,它提供了更高级别的内存管理和多任务支持。保护模式下,80386引入了段选择子、段寄存器、分页机制、特权级以及描述符表等概念,这些都为系统的安全...
- **支持多重处理:** 实现多任务并发处理。 **安腾芯片的技术特点:** - **64位处理机:** 相比32位处理器,能够处理更大范围的数据。 - **EPIC(Explicitly Parallel Instruction Computing):** 明确并行指令...
5. 性能提升:启用英特尔傲腾内存后,系统启动、程序加载和多任务处理的速度会有明显提升,尤其对于使用HDD机械硬盘的用户,傲腾内存可以显著减少等待时间,提高工作效率。 6. 兼容性检查:在安装前,用户需确保...
- **Hyper-Threading Technology (超线程技术)**:部分处理器支持超线程技术,可以模拟额外的逻辑处理器,从而提高多任务处理能力。 5. **扩展接口**:提供PCI Express x16接口,用于连接高性能显卡;同时支持多...
### 智能计算重要知识点总结 #### 一、FPGA的演进与发展 - **定义与起源**:FPGA(Field Programmable Gate Array),即现场可编程门阵列,是一种半导体器件,属于专用集成电路(ASIC)领域的半定制电路产品。它在...
1. **核心与线程:** 处理器拥有2个物理核心,支持超线程技术,实现4个逻辑线程,提高多任务处理能力。 2. **缓存结构:** L1缓存为每核心32KB,L2缓存为每核心256KB,共享3MB的L3缓存,优化数据访问速度和效率。 3....
超线程技术允许单个物理处理器执行多个线程,从而提高处理效率和多任务处理能力。 5. 虚拟化技术(Intel® Virtualization Technology): 文档指出,虚拟化技术需要有启用Intel®虚拟化技术的处理器、BIOS、虚拟机...
2. **调试工具**:支持多种语言的内置调试工具,方便进行程序调试。 3. **Git集成**:内置Git支持,可以轻松管理版本控制系统。 4. **多语言支持**:除了内置的语言支持外,还可以通过安装插件支持更多语言。 5. **...
### 大学计算机信息技术教程_必考点知识总结 #### 第一章:信息技术基础 本章节在历年的江苏一级考试中占据了重要的地位,大约占2-3分的比例。本章主要介绍的是信息技术的基础概念,其中特别强调了微电子技术的...
2. **多核心与超频潜力**:Core i7 920拥有四个物理核心,支持超线程技术,能够处理多任务并行,提高工作效率。由于45nm工艺,其超频能力较强,通过适度的超频,性能可媲美高端的Core i7 965 Extreme。 3. **三通道...
总结,《Intel® 64 and IA-32 Architectures Software Developer’s Manual》是理解和利用英特尔处理器的关键资源,涵盖了从底层硬件到高级编程策略的广泛知识,对于开发高效、优化的软件至关重要。通过深入学习和...
- **多核支持**:支持多个物理内核,提高多任务处理性能。 ##### 2. 内存支持 - **DDR3内存**:最高支持DDR3 1600MHz,支持三通道内存架构,显著提升数据带宽。 - **最大内存容量**:支持高达24GB的DDR3内存(根据...
### Intel的主板芯片8系列手册知识点解析 #### 一、Intel 8系列/C220系列芯片组概述 Intel 8系列/C220系列芯片组是为支持第四代Intel Core处理器而设计的一系列高性能主板芯片组。这些芯片组旨在提供强大的计算...
- **SSE数据类型**:支持多种数据类型,包括整数(如32位整数)、单精度浮点数和双精度浮点数等。 #### 四、SSE2 SSE2是SSE的后续版本,于2000年随Pentium 4处理器发布。SSE2扩展了SSE的功能,并增加了对64位双...