前言

在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!”

博客主页:​​KC老衲爱尼姑的博客主页​

​博主的github,平常所写代码皆在于此​

​刷题求职神器​

共勉:talk is cheap, show me the code

作者是爪哇岛的新手,水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!


刷题求职神器

在下给诸位推荐一款巨好用的刷题求职神器,如果还有小伙伴没有注册该网站,可以点击下方链接直接注册,注册完后就可以立即刷题了。

《计算机操作系统-第二章》之操作系统的运行机制与体系结构_面试

传送门:​​牛客网​


1.什么是指令?

我们平时所写的代码基本上都是用高级语言所书写的,但是计算机是无法直接识别的就需要编译器将我们所写的代码翻译成计算机能够直接识别的机器语言,而机器语言是用二进制代码表示的计算机直接识别和执行的一种机器指令的集合,综上指令即为二进制。

1.1指令的分类?

1.1.1非特权指令

所谓非特权指令就是权限比较小的命令,比如命令计算机进行加,减,乘,除这些普通的运算指令。

1.1.2特权指令

所谓的特权指令可以看做权限较高的命令,比如内存清零指令,如果用户程序使用了这个指令,就意味着一个用户程序有能力将其它的用户程序随意清零,这样明显是危险,毕竟在计算机中数据就是金钱。所以这类指令只用于操作系统或者3其它系统软件,一般不直接提供给用户使用。

上述可以特权指令是有点危险的,那么CPU如何判断当前是否可以执行特权指令?

CPU在运行的时有两种状态,一种是用户态(目态)此时CPU只能执行非特权指令,另一种是和核心态(管态)此时特权指令和非特权指令都可以执行。

CPU如何判断该处于什么状态?

使用CPU中程序状态字寄存器(PSW)中的某标志位来标识当前处理器处于什么状态,如0为用户态,1位核心态。用户自编程序运行在用户态,操作系统内核程序运行在核心态。

2.程序的分类

根据不同程序所能使用指令的不同将程序划分为以下两种

  1. 内核程序
  2. 应用程序

2.1什么是内核程序?

即实现操作系统内核功能的程序,内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态。

2.2什么是应用程序?

比如自己电脑上的微信qq等,都是应用程序,对于这些程序操作系统并不是很信任,所以只能执行非特权指令,运行在用户态。

操作系统的哪些功能由内核程序实现?

电脑有许许多多程序,但是不是每个程序都是至关重要的,像画图板等,哪怕就是直接干掉了它电脑照样运行,而一旦删除了某些系统文件就可能导致电脑出各种各样的问题,像我自己之前不知不觉中就删了某些系统文件,最后导致键盘上的回车以及几个字母按键使用不了,最后是重装系统才解决的。通过下图了解操作系统的内核部分。

《计算机操作系统-第二章》之操作系统的运行机制与体系结构_职场和发展_02

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

由于不同的操作系统在划分最底层功能的时候可能不一样,因此就产生了不同的操作系统体系结构。

3.体系结构

3.1大内核

大内核就是如上图所示将大部分的功能都最为系统内核,,运行在核心态。该系统的优点为高性能,缺点为内核代码庞大,结构混乱,难以维护。

3.2微内核

微内核是保留最基本的功能在内核,具体看下图。该体系的优点为功能少,结构清晰,容易维护。缺点为需要频繁的在核心态和用户态之间切换,性能低。

《计算机操作系统-第二章》之操作系统的运行机制与体系结构_内核程序_03