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

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 【软考学习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,最后了解了微内核的优缺点,接触了操作系统中用户态核心态的区别。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
6月前
|
编解码 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)1
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
337 1
|
2月前
|
机器学习/深度学习 Dart 前端开发
移动应用与系统:构建现代数字生态的基石在当今这个高度数字化的社会中,移动应用与操作系统已成为我们日常生活不可或缺的一部分。它们不仅改变了我们的沟通方式,还重塑了我们的工作、学习和娱乐模式。本文将深入探讨移动应用开发的基础、移动操作系统的功能以及这两者如何共同塑造了我们的数字世界。
随着智能手机和平板电脑的普及,移动应用与系统的重要性日益凸显。它们不仅为用户提供了便捷的服务和丰富的功能,还为开发者提供了广阔的创新平台。本文将介绍移动应用开发的基本概念、技术栈以及最佳实践,并探讨主流移动操作系统的特点和发展趋势。通过分析移动应用与系统的相互作用,我们可以更好地理解它们在现代社会中的重要地位。
|
6月前
|
编解码 开发工具 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
383 2
|
2月前
|
运维 Ubuntu Linux
操作系统发行版特性学习
操作系统发行版特性学习
|
3月前
|
存储 缓存 算法
OS—设备独立性软件
OS—设备独立性软件
75 0
|
4月前
|
存储 算法 Unix
软考中级之数据库系统工程师笔记总结(三)操作系统
软考中级之数据库系统工程师笔记总结(三)操作系统
41 0
|
5月前
|
传感器 物联网 Linux
物联网设备的操作系统之争:Linux vs RTOS
【6月更文挑战第4天】在遥远的数码星球,物联网城中的Linux先生与RTOS小姐展开激烈角逐,分别在操作系统领域各显神通。Linux先生以其开源、兼容性强、功能丰富占据服务器、桌面及嵌入式设备市场,适合处理复杂任务和需要强大计算能力的设备。而RTOS小姐以实时性、高效响应和低资源占用见长,适用于资源有限、强调实时性的物联网设备。设备制造商在两者间抉择,引发物联网设备操作系统的选择大战。通过Python与FreeRTOS示例,展现了两者在智能家居和生产线控制等场景的应用。在物联网世界,Linux与RTOS共同推动设备智能化,为生活带来更多便捷。
276 3
|
5月前
|
存储 网络协议 网络安全
逆向学习网络篇:数据传输和交换过程
逆向学习网络篇:数据传输和交换过程
50 0
|
5月前
|
Linux
杨校老师带你走进Linux操作系统的学习(一)
杨校老师带你走进Linux操作系统的学习(一)
38 0
|
6月前
【操作系统】实验九 写一个设备驱动程序
【操作系统】实验九 写一个设备驱动程序
93 1