本文将讲解数据传输控制方式、虚设备和微内核操作系统,在数据传输控制方式中将学习程序控制方式、程序中断方式、DMA 方式、通道和输入输出处理机,在虚设备环节将学习 Spooling,最后了解了微内核的优缺点,接触了操作系统中用户态和核心态的区别。
一、数据传输控制方式
操作系统的数据传输控制方式可分为程序控制方式、程序中断方式、DMA 方式、通道和输入输出处理机,如下图所示。
1.1 程序控制方式
程序控制方式指的是 CPU 轮询数据传输状态而实现的控制方式,定时通过读取状态寄存器了解接口的传输情况,也是 CPU 介入最多的机制,这类控制方式效率低下。
这种方式,外设不能主动去反馈自己工作是否完成,要 CPU 去不断读取,然后判断整个数据传输是否结束。
比如领导交待了你一个开发任务,你要开发一个 XX 模块,你接到任务后开始开发。
根据程序控制方式的原则,领导需要定时来你的办公室问你,是否已完成了开发。
你接到任务刚坐下,领导来问你;
你打开开发工具,领导又来问你;
你敲下第一行代码,领导还是来问你…
可以看出,这是一种不合理的处理方式,你会很烦(外设非常被动),领导也会很累(也就是消耗 CPU 资源)。
1.2 程序中断方式
中断是操作系统用来响应设备请求的一种机制,操作系统收到设备的中断请求,会打断正在执行的进程,然后调用内核中的中断处理程序来响应请求,处理完中断请求之后再回去接着执行原先的进程,有了中断才能实现多程序并发执行,中断是cup从用户态进入核心态的必由之路(核心态和用户态会在 3.3 小节讲到)。
程序中断方式总体和程序控制方式一致,区别在于外设设备可以发出一个中断信号,从而告诉 CPU 自己的任务已经传输完成,所以对于这种方式,CPU 介入较少,执行效率较高。
1.3 DMA 方式
DMA 方式又称直接存取控制方式,采用一个专门的 DMA 控制器。
凡是存在 CPU 和外设的数据传输,都由 DMA 控制去全权监管。
如果数据传输全部完成,DMA 会反馈给 CPU,然后执行接下去的工作,CPU 只要在最前面做一个初始化任务分配即可,这种方式效率会很高。
1.4 通道和输入输出处理机方式
通道和输入输出处理机方式一般用于专用设备,很少会出现。
二、虚设备和 Spooling 技术
虚设备顾名思义就是一个虚拟设备,我们用一个例子来说明。
如果有四台电脑 A、B、C 和 D 正在使用一台打印机,要进行打印操作。
当电脑 A 请求打印 200 页的资料时,打印机开始受理,假设打印时间为 600 秒。
在打印机正在处理电脑 A 的打印任务时,如果电脑 B 也请求任务,这时会发生并发问题,所以打印机会拦截下来,并提示打印机正忙,此时电脑 B 的使用者需要做等待。
然后在现代打印机并不会出现这种情况,正式因为打印机运用了 Spooling 技术。
Spooling 为了解决此类问题,在打印机前加了一个缓存,如下图所示。
当电脑 B 发出的打印任务,打印机当前无法处理时,Spooling 会将该任务放入缓存队列中,电脑 B 不用管打印机的工作状态即可正常发起打印请求,更人性化,实质上解决了外设的低速和 CPU 高效的不匹配问题。
三、微内核操作系统
微内核操作系统,顾名思义就是对操作系统的内核更加精简化,做的更小一些。
操作系统的单内核可拆分为多个分内核,如进程服务、终端服务、文件服务等等,做成微内核之后,当某小块内核出现问题后,不会引发整个系统的奔溃。
比如操作系统的文件系统除了问题,如采用单体内核需要对整个系统进行重启,若采用微内核模式只需重启管理文件的分内核即可,无需重启整个系统,这就是微内核的优点。
3.1 单体内核
概述:将操作系统的图形、设备驱动、文件等所有功能都放在单体内核中实现,他们运行在同一个内核中,共享同一个地址空间。
优点:使用单体内核可以减少进程之间的通信成本,降低切换进程引发的系统开销,具有较高的运行效率。
缺点:但单体内核比较庞大,占用系统资源多,不容易裁剪,而且操作系统的稳定性不好。
3.2 微内核
概述:将操作系统的内核拆分为多个微内核,每个微内核只实现基本功能,将图形系统、文件系统、设备驱动、通信功能放在内核之外。
优点:微内核分工明确,内核精炼,易于剪裁和移植。系统服务独立运行在用户地址空间,操作系统的稳定性和安全性较高,适用于分布式系统。
缺点:由于多个微内核之间需要分工合作,用户状态和内核状态需要频繁切换,同等配置下的操作系统运行效率往往不如单体内核。
3. 用户态和核心态
因为操作系统中进程可能做出一些异常操作,所以需要限制进程的读写能力,因此操作系统分出用户态和核心态,使得进程在不同的状态下的访问能力不同。
操作系统是整个整个计算机系统的控制中心,如果所有进程都能对操作系统进行控制,会导致异常程序操控整台计算机,这样是非常危险的,所以必须要区分进程的级别,进行权限控制。
用户态的操作进程执行权限小,不允许执行特权指令,不能直接获取系统资源,不能改变机器状态,如浏览器加载网页。
核心态进程可以操控计算机,执行权限大,可以使用特权指令,可以直接获取系统资源,如操作系统网络收发数据。
四、总结
本文讲解了数据传输控制方式、虚设备和微内核操作系统,在数据传输控制方式中学习了程序控制方式、程序中断方式、DMA 方式、通道和输入输出处理机,在虚设备环节学习了 Spooling,最后了解了微内核的优缺点,接触了操作系统中用户态和核心态的区别。