目录

  • 1、什么是指令
  • 2、两种指令、两种处理器状态、两种程序
  • 3、操作系统的内核
    • 3.1 总结
    • 3.2 大内核和微内核
    • 3.3 操作系统的体系结构
  • 4、知识回顾

1、什么是指令

问题:“指令”和我们平时所说的“代码”有什么区别?

平时我们使用C语言编写代码之后,这些代码会经过一些处理“翻译”为机器语言指令(一条高级语言的代码翻译过来可能会对应多条指令);

机器语言指令是由二进制数字表示的,因为计算机只能识别二进制数;

简单来说,“指令”就是处理器(CPU)能识别、执行的最基本命令;

2、两种指令、两种处理器状态、两种程序

指令就是让处理器(CPU)做一件具体的事情,有的指令,例如“加减乘除”,处理器在执行这些指令时并不会影响系统的安全性;但是有些指令会导致很大的安全问题,比如内存清零指令,如果所有的用户程序都可以使用这些指令,那就意味着一个用户可以将其它用户的内存数据随意清零,这样做显然是很危险的。

为了解决不同指令可能带来的安全问题,我们会把指令分为:

  • 特权指令
  • 非特权指

其中特权指令是不允许用户程序使用,CPU在执行指令时会进行判断,当前是否允许执行特权指令;

由此引出一个新的问题,CPU如何判断当前是否可以执行特权指令?为此规定了处理器的两种状态:

  • 用户态(目态),此时CPU只能执行非特权指令;
  • 核心态(管态),此时CPU可以执行特权指令、非特权指令;

CPU的两种处理器状态是用程序状态字寄存器(PSW)中的某标志位来表示当前处理器处于什么状态。如0为用户态,1为核心态;

系统中存在特权指令和非特权指令两种,有的程序需要使用特权指令,有的指令只能使用非特权指令;因此计算机系统又把程序分为两种程序:

  • 内核程序
  • 应用程序

操作系统的内核程序时系统的管理者,即可以执行特权指令,也可以执行非特权指令,运行在核心态;

为了保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态;


上面聊了特征指令和非特征指令,特权指令需要运行在核心态的处理器中,非特权指令既可以在核心态的处理器中运行,也可以在用户态的处理器中运行;

需要使用特权指令的程序称为内核程序,普通的程序称为应用程序;内核程序需要使用特权指令,因此需要运行在核心态;

现在考虑下一个问题:操作系统中的哪些功能应该由内核程序实现呢?这就引出了操作系统的内核;

3、操作系统的内核

我们安装完windows操作系统之后,会发现操作系统提供了多种多样的功能,比如“记事本”、“任务管理器”。然而,这些功能不是必不可少的,即使没有任务管理器,我们仍然可以使用计算机;

操作系统是基于应用程序和裸机(纯硬件)的中间层次,但是操作系统还可以划分为更细小的层次;

比如最接近硬件的层次就是操作系统的内核,这是操作系统中最重要最核心的部分;在内核上还可以细分一层非内核功能;

操作系统的内核可以进一步细分为和硬件紧密相关的,比如说时钟管理、中断处理还有原语;

其中时钟管理用于实现计时功能,所有的进程切换、进程调度等工作都需要计时功能才能实现;原语是一种特殊的程序。比如设备驱动、CPU切换这些都需要原语实现,原语是最接近硬件的部分,这种程序的运行具有原子性,原子性是指这种程序要么不执行,要么一开始执行就得执行到结束,中间不能中断;

除了离硬件最近的时钟管理、中断处理、原语这三个模块之外,内核中通常还包含着像进程管理、存储器管理、设备管理等功能,这部分也属于内核功能;

3.1 总结

内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分;实现操作系统内核功能的那些程序就是内核程序;

操作系统的内核可以划分为四大部分:

  • 时钟管理
  • 中断处理
  • 原语
  • 对系统资源进行管理的功能

上述四大部分中的时钟管理、中断处理、原语是最接近硬件的模块;原语有一个很重要的特性,原语的运行具有原子性,其运行只能一气呵成,不可中断;

操作系统内核中对系统资源进行管理的功能看,比如进程管理、存储器管理、设备管理也会被划分到操作系统内核;但是有的操作系统不把这部分功能归为“内核功能”。也就是说,不同的操作系统,对内核的功能划分可能并不一样;

3.2 大内核和微内核

因为不同操作系统的划分原则可能不同,由此引出了操作系统的体系结构:大内核和微内核。

大内核是把操作系统中的进程管理、存储器管理、设备管理等功能放到操作系统的内核中,这样的操作系统比较大,这就是大内核的体系结构;

如果操作系统的内核只包含最基本的功能,如时钟管理、中断处理、原语等,这种内核称为微内核;

3.3 操作系统的体系结构

大内核就是将操作系统的主要功能模块都作为系统内核,运行在核心态;微内核只是把最基本的功能保留在内核,把一些不必要的功能放在内核之外;


将操作系统的体系结构与企业的管理问题进行类比:

内核就是企业的管理层,负责一些重要的工作,只有管理层才能执行特权指令,普通员工只能执行非特权指令。用户态、核心态之间的切换相当于普通员工和管理层之间的工作交接

大内核:企业初创时体量不大,管理层的人会负责大部分的事情。优点是效率高;缺点是组织结构混乱,难以维护;

微内核:随着企业体量越来越大,管理层只负责最核心的一些工作。优点是组织结构清晰,方便维护;缺点是效率低;

4、知识回顾

王道 —— 操作系统的运行机制和体系结构相关推荐

  1. 1.3.1 操作系统的运行机制和体系结构(大内核、小内核)

    文章目录: 1.操作系统的运行机制和体系结构 2.操作系统内核在计算机系统中的层次结构 3.操作系统体系结构类比 4.操作系统用户态和核心态的转换 1.操作系统的运行机制和体系结构 2.操作系统内核在 ...

  2. 【操作系统复习】操作系统的运行机制与体系结构

    同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 操作系统的运行机制与体系结构 一.两种指令.两种处理器状态.两种程序 二.操作系统的内核 三.操作系统的体系结构 ...

  3. 【王道操作系统笔记】操作系统的运行机制和体系结构

    指令:CPU能够识别和执行的最基本的命令(加减乘除,内存) 特权指令:不允许用户程序使用,如内存清理指令 非特权指令:如运算指令 CPU如何判断当前是否可以执行特权指令? 两种处理器状态: 用户态(目 ...

  4. (王道408考研操作系统)第一章计算机系统概述-第一节3:操作系统的运行机制与体系结构

    文章目录 一:两种指令.两种处理器状态.两种程序 二:操作系统的内核 (1)内核 A:时钟管理 B:中断机制 C:原语 D:系统控制的数据结构及处理 (2)大内核和微内核 一:两种指令.两种处理器状态 ...

  5. 操作系统的运行机制和体系结构

  6. 操作系统的运行机制与体系结构

  7. 04-操作系统的运行机制和体系结构(大内核、小内核)

    目录 1.操作系统的运行机制和体系结构 2.操作系统内核在计算机系统中的层次结构 3.操作系统体系结构类比 ​编辑 4.操作系统用户态和核心态的转换 1.操作系统的运行机制和体系结构 2.操作系统内核 ...

  8. 操作系统复习--OS的运行机制和体系结构

    操作系统复习–OS的运行机制和体系结构 本文章按照王道操作系统参考 文章主要分:运行机制,操作系统内核,操作系统的体系结构 运行机制 两种命令 特权指令:不允许用户直接使用的命令,如:I/O,中断命令 ...

  9. 操作系统学习笔记-04-操作系统的运行机制和体系结构

    操作系统学习笔记-2019 王道考研 操作系统-04-操作系统的运行机制和体系结构 文章目录 4-操作系统的运行机制和体系结构 4.1知识总览 4.2运行机制 4.2.1预备知识:什么是指令? 4.2 ...

最新文章

  1. MySQL InnoDB锁机制全面解析分享
  2. vs开发人员命令查看C++类 data member 内存布局
  3. websocket receive方法内 有循环怎么退出_WebSocket了解一下
  4. hadoop分布式文件系统hdfs的概念和特性
  5. Cocos2d-js学习--helloword
  6. linux listen监听,Linux网络协议栈 -- socket listen监听
  7. Linux内核部件分析 设备驱动模型之device-driver
  8. 黑苹果升级驱动后WIFI不能启动的解决
  9. 推荐一个语音机器人项目
  10. 中华人民共和国网络安全法
  11. 序列解包(for x,y in zip(keys, values):)详解。
  12. jq的模拟点击脚本实践---关于阿里月饼事件的一些思考
  13. 基于linux cli( 命令行) 的翻译工具推荐
  14. HDU 5234 Happy birthday 01背包
  15. 【量化投资】高频交易(HFT),下一个风口?
  16. NKOI 1349 工作安排
  17. 根据文件路径区分文件的所属类型,并返回对应类型的文件路径
  18. P1462 通往奥格瑞玛的道路(二分 迪杰斯特拉 最短路 + spfa最短路算法)
  19. mysql sphinx 中文搜索_MySQL中文全文搜索用迅搜还是Sphinx?
  20. 逆袭之旅DAY20.XIA.循环结构

热门文章

  1. javascript中alert函数的替代方案,一个自定义的对话框的方法
  2. 什么是DataV数据可视化?
  3. 容器编排技术 -- Kubernetes kubectl annotate 命令详解
  4. DOCKER容器与宿主机同网段互相通信
  5. 【Python】解决No name 'QWidget' in module 'PyQt5.QtWidgets'
  6. Python中68个内置函数的总结
  7. C#LeetCode刷题之#720-词典中最长的单词(Longest Word in Dictionary)
  8. C#LeetCode刷题之#594-最长和谐子序列​​​​​​​​​​​​​​(Longest Harmonious Subsequence)
  9. 理解搜索引擎并且善用google
  10. 因此,您处于if / else地狱中-这是摆脱困境的方法