【软考学习17】数据传输控制方式、虚设备和微内核操作系统

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: 【软考学习17】数据传输控制方式、虚设备和微内核操作系统


本文将讲解数据传输控制方式、虚设备和微内核操作系统,在数据传输控制方式中将学习程序控制方式程序中断方式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,最后了解了微内核的优缺点,接触了操作系统中用户态核心态的区别。


相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
4月前
|
存储 安全 Unix
用提问的方式来学习:冯·诺伊曼体系结构与操作系统OS
用提问的方式来学习:冯·诺伊曼体系结构与操作系统OS
|
7月前
|
JavaScript
通过在操作系统中实际操作,学习和理解 Unicode 编码相关知识
通过在操作系统中实际操作,学习和理解 Unicode 编码相关知识
43 0
|
12天前
|
存储 算法 Shell
操作系统(1)——学习导论(Ⅲ)
操作系统(1)——学习导论(Ⅲ)
|
2月前
|
Rust 安全 开发者
Rust在操作系统组件开发中的应用:设备驱动与系统服务
本文探讨了Rust在系统级开发中的潜力,特别是针对操作系统组件如设备驱动和系统服务的开发。我们将分析Rust为何适合这些任务,展示其在实际项目中的应用,并讨论其面临的挑战和未来的可能性。
|
2月前
|
存储 安全 自动驾驶
计算机软考之操作系统
计算机软考之操作系统
51 0
|
2月前
|
机器人 Linux 数据安全/隐私保护
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
66 0
|
2月前
|
存储 数据管理 调度
鸿蒙操作系统如何支持不同设备的适配和兼容性?
鸿蒙操作系统如何支持不同设备的适配和兼容性?
94 2
|
3月前
|
机器人 Linux 数据安全/隐私保护
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)(下)
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
58 0
|
4月前
【操作系统】—I/O设备的基本概念和分类
【操作系统】—I/O设备的基本概念和分类
|
4月前
|
存储 安全 Linux
【Linux系统化学习】冯诺依曼体系结构 | 操作系统
【Linux系统化学习】冯诺依曼体系结构 | 操作系统