网站建设方案步骤,杭州搜索引擎推广排名技术,seo关键词排名优化工具,wordpress 文章型1.程序的运行原理#xff1a;
1.CPU执行指令的过程
C语言代码在编译器上“翻译”#xff0c;得到二进制的机器指令。一条高级语言的代码翻译过来可能会对应多条机器指令。对于CPU来说#xff0c;机器指令才是能看得懂的语言。程序运行的过程其实就是CPU执行一…1.程序的运行原理
1.CPU执行指令的过程
C语言代码在编译器上“翻译”得到二进制的机器指令。一条高级语言的代码翻译过来可能会对应多条机器指令。对于CPU来说机器指令才是能看得懂的语言。程序运行的过程其实就是CPU执行一条一条的机器指令的过程。
2.注意点
“指令”就是处理器CPU)能识别、执行的最基本命令注:很多人习惯把Linux、Windows、MacOS的“小黑框”中使用的命令也称为“指令”其实这是“交互式命令接口”注意与本节的“指令”区别开。
本节中的“指令”指二进制机器指令。
2.两种指令
在CPU设计和生产的时候就划分了特权指令和非特权指令 因此CPU执行一条指令前就能判断出其类型。
1.特权指令
操作系统内核作为“管理者”有时会让CPU执行一些“特权指令”
如:内存清零指令。这些指令影响重大 只允许“管理者”―—即操作系统内核来使用。
2.非特权指令
应用程序只能使用“非特权指令”如:加法指令、减法指令等。
3.两种处理器状态
CPU有两种状态“内核态”和“用户态”。
1.核心态
处于内核态时说明此时正在运行的是内核程序 此时可以执行特权指令。
2.用户态
处于用户态时说明此时正在运行的是应用程序 此时只能执行非特权指令。
3.CPU的状态控制
CPU中有一个寄存器叫程序状态字寄存器PSW)其中有个二进制位1表示“内核态”0表示“用户态”内核态核心态管态;用户态目态.
4.内核态用户态的切换
1.内核态→用户态: 执行一条特权指令――修改PSW的标志位为“用户态” 这个动作意味着操作系统将主动让出CPU使用权。
2.用户态→内核态: 由“中断”引发硬件自动完成变态过程 触发中断信号意味着操作系统将强行夺回cPu的使用权。
3.非法事件的处理
当遇到非法事件时会引发一个中断信号 CPU检测到中断信号后会立即变为“核心态” 并停止运行当前的应用程序转而运行处理中断信号的内核程序。
补充
除了非法使用特权指令之外还有很多事件会触发中断信号。一个共性是但凡需要操作系统介入的地方都会触发中断信号。操作系统内核在让出CPU之前,会用一条特权指令把 PSW的标志位设置为“用户态”。
4.两种程序
1.内核程序
1.定义 微软、苹果有一帮人负责实现操作系统 他们写的是“内核程序 由很多内核程序组成了“操作系统内核”或简称“内核Kernel” 内核是操作系统最重要最核心的部分也是最接近硬件的部分。
2.注意事项 甚至可以说一个操作系统只要有内核就够了 (eg:Docker一仅需Linux内核。
操作系统的功能未必都在内核中如图形化用户界面GUI。
2.应用程序
我们普通程序员写的程序就是“应用程序”。