x86架构CPU概述
来源:互联网 发布:哈尔滨飞扬软件 编辑:程序博客网 时间:2024/05/21 10:44
本文介绍x86架构,主要写一点自己学习的体会,权威资料为Intel发行的一套三卷的Programmer's Manual。现在这套Manual已经相当冗长复杂,简明扼要的还是80386 Programmer's Manual。只有400多页。是的,“只有”400多页。
深入理解计算机运行原理,理解操作系统的进程调度,内存管理等关键要点,CPU架构是基本知识,可谓计算机从业人员的“内力”。下面的介绍只针对32位保护模式。
一,系统寄存器。
系统寄存器是系统运行的状态。CPU接受到RST信号后的Initilization主要是对系统寄存器和相关的数据结构进行设置。唯一确定一个系统运行状态的所有寄存器如下:
--通用数据寄存器: EAX, EBX, ECX, EDX
--通用指针及基址寄存器: ESP, EBP, ESI, EDI
--段寄存器(6个): CS(代码), DS(数据), SS(栈段), ES, FS, GS
--指令指针寄存器: EIP
--标志寄存器: EFLAGS
--控制寄存器: CR0, CR1, CR2, CR3
--内存管理寄存器: GDTR, LDTR, IDTR, TR(这4个寄存器太重要了)
这些寄存器是TSS(Task State Segment)所涉及的所有寄存器,因此我们讲它们唯一确定系统运行状态。
二,任务及任务切换
x86架构对任务进行了抽象,而TSS则包含了任务的运行信息。 相对于Procedure,任务是一个更大的运行实体,同时任务是操作系统进程的载体,每个任务会对应一个进程。比如在Linux中,任务0是idle进程,任务1是init进程,等等。TSS定义了代码段在内存中的位置, 但需要注意的是——理解这一点非常关键——如果代码在执行过程中进行了跳转,比如跳转到中断处理程序或者系统调用过程中,如果跳转过程中没有使用Task Gate,那么便不会引起Task Switch,因此仍然在原任务中!这就是schedule()程序的位置。进程通过系统调用进入schedule并可能进行任务切换,但进入schedule的过程并没有任务切换。
主要想说明的是这一点。
- x86架构CPU概述
- CPU架构之X86
- 探秘X86架构CPU流水线
- ARM与X86 CPU架构对比区别
- CPU体系架构-ARM/MIPS/X86
- ARM与X86 CPU架构对比区别
- ARM与X86 CPU架构对比区别
- 从X86架构来源开始:谈CPU
- ARM与X86 CPU架构对比区别
- ARM与x86 CPU架构对比
- ARM与X86 CPU架构对比区别
- ARM与X86 CPU架构对比区别
- ARM与 X86 CPU架构对比
- x86架构PC机系统总线概述
- 关于CPU、指令集、架构、芯片概述
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- Effective STL 27 convert a container's con_iterators to iterators
- 机器学习实战第三章——决策树,读书笔记
- 机器学习之逻辑回归python实现
- Javascript与Java区别
- SonyZ2国行版L50t使用谷歌play服务安装谷歌四件套
- x86架构CPU概述
- HDU2582(素数筛)
- 倒置函数reverse的用法
- Java的Stirng.split方法注意点
- 2 汽车销售行业行为识别
- DOM之鼠标事件
- AtCoder Grand Contest 019 F
- SO_REUSEADDR和SO_REUSEPORT异同
- Redhat 6.5 配置kdump方法