【操作系统②】——操作系统的发展与分类、操作系统的结构设计【分时操作系统 整体式 层次式】
关键字:手工操作阶段、批处理阶段、分时操作系统、实时操作系统、其他几种操作系统、整体式结构、层次式结构、虚拟机结构、客户/服务器结构、微内核结构
🍋
文章目录
操统概念三五问,小生斗胆顺一顺。☁️
每一个新产生的系统的优点,都是为了解决上一个系统的缺点。
同样的,每一个新产生的结构的优点,都是为了优化上一个结构的缺点。
上一篇文章地址链接:【操作系统①】——操作系统的定义和功能、操作系统的四大特征【并发 共享 虚拟 异步】.
下一篇文章地址链接:【操作系统③】——进程及其实现【运行态 就绪态 等待态等 PCB 进程控制块 进程要素】.
一、操作系统的发展与分类:
1、手工操作阶段
在计算机发展的初期,没有操作系统,人们只能依靠手工操作来使用计算机。
举个栗子,很多年前,人先手工把专门的 “打孔纸” 打好孔,交给机器计算。因为计算机算的快,人手工打孔慢,这就造成了资源的浪费。如下图所示:
2、批处理阶段
<1>单道批处理系统:
单道批处理系统:一种引入了脱机输入/输出技术 ,并由监督程序负责控制作业输入和输出,但在工作期间只能对单份作业进行处理的系统。【注: 脱机的含义在操作系统系列文章①里面讲了,Ctrl+F即可找到】
接着举个栗子,这次我们把很多人手工打好的 “打孔纸” 先通过某种手段(卫星机/外围机)包装好,假设我们把它们包装到一盘“磁带”里。接着我们在把一盘接着一盘包装好的 “磁带” 独立地送入到计算机进行计算。如下图所示:
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
<1>多道批处理系统:
多道批处理系统:也是一种引入了脱机输入/输出的技术 ,并由监督程序负责控制作业输入和输出,在工作期间能对多份作业同时进行处理的系统。【它就解决了 单道批处理系统 资源利用率依然很低的缺点】
在接着举个栗子,在 “磁带” 都准备好后,我们在把一盘接着一盘包装好的 “磁带” 耦合地送入到计算机进行计算。如下图所示:
主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。
主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。比如:无法调试程序/无法在程序运行过程中输入一些参数)。
3、分时操作系统
分时操作系统:计算机以时间片为单位,轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。【它就解决了 多道批处理系统 不能人机交互的缺点】
比如,由4个人在玩电脑,但他们用的是同一个分时操作系统。那么该系统就会按照 “①②③④①②③…” 的顺序轮流分 50ms 给每个用户使用。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
4、实时操作系统
实时操作系统:实时反映的一种操作系统,不像分时操作系统那样呆板。在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
实时操作系统有时还可以被分为:硬实时操作系统和软实时操作系统。
5、其他几种操作系统
网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)
分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
个人计算机操作系统:如 Windows XP、MacOS,方便个人使用。
这些操作系统的每一个抠出来单独讲的话,都是一门学问。我们在这里只了初步的了解。
6、小结
二、操作系统的结构设计:
1、整体式结构
定义:整体式结构又叫模块组合法,是基于结构化程序设计的软件结构设计方法。
主要设计思想:
①将模块作为操作系统的基本组成单位。
②按照功能需要而不是根据程序和数据的特性把整个系统分解为若干模块
③模块可以再进一步分成子模块。
④每个模块具有一定的独立功能,多个模块协作完成某个功能。
⑤各模块分别设计、编码、调试。
⑥所有模块连结成一个完整的系统。
主要优点:
①结构紧密、组合方便,对不同环境和用户的不同需求,可以组合不同模块来满足,灵活性大。
②每个功能可以用最有效的算法和调用其他模块中的过程来实现,系统效率较高。
③设计及编码可齐头并进,加快操作系统的研制过程。
主要缺点:
①模块独立性差,模块之间牵连多。
②形成了复杂的调用关系,甚至循环调用。(比如说:A模块要调用B,但B又要调用C,而C却要调用A。这样可能会形成死循环)
③系统结构不清晰,正确性、可靠性降低
④系统功能的增、删、改十分困难。(因为模块之间可能存在调用,一改的话,可能要牵连着改很多)
2、层次式结构
内容:(改进了整体式结构)
①操作系统划分为内核和若干模块。( 这里的 “内核” 体现在下面的第三张图中)
②模块按功能的调用次序排列成若干层次。
③各层之间只能是单向依赖或单向调用关系。
补充:单向依赖的意思是,比如说,上层只能调用下层,而下层不能调用上层。
类型:
①全序:各层之间是单向依赖的,而且层内模块也保持独立,没有联系。
②半序:各层之间是单向依赖的,但层内允许有相互调用或通信的关系。
举个栗子,这是某种层次式结构的操作系统。
硬件上面有若干个层次,进程管理支撑存储管理,存储管理再支撑设备管理…依次类推。
优点:
①把整体问题局部化。
②层次结构和单向依赖性,使得模块之间的依赖和调用关系更为清晰规范。
(所以说:本质上,层次式结构仍然是模块化的结构,不够它的结构更加清晰,依赖是单向的,不复杂)
样例:Linux操作系统的层次式结构:
Linux操作系统的整体是层次式结构,不过在Linux操作系统的内核这一部分,它又是一种整体式结构(在下图中的 “单内核” 所包含的区域)。因为在内核里面,它包含了多个模块。且多个模块彼此之间还可以互相调用,并没有一个非常清晰的层次关系。
Linux操作系统内核的特点:
①Linux内核由模块组成。
②每个模块可以单独编译。
③模块用链接程序连在一起成为目标程序。
为什么在Linux的内核中要采用整体式结构呢?
因为这样的话,它有利于不同的人参与不同过程的开发,并允许任何人对其进行修改和完善。所以说,Linux内核是基于过程的开放式结构。(因为它是开源的)
3、虚拟机结构
定义:(虚拟机结构也可以把它看成是一种层次式结构)
①虚拟化是计算机资源的抽象方法。
②虚拟机是通过软件模拟的、运行在隔离环境中的计算机系统。
③实体计算机中能够完成的工作在虚拟机中都能够实现。
构建方法:
①在裸机上层层扩展软件。
②可采用层次化结构的设计方法来实现。
③经过虚拟化后的逻辑资源对用户隐藏了不必要的细节。(这也可以使得程序员在这样的虚拟机结构的操作系统中,更快地开放出各种各样的应用程序)
4、客户/服务器结构
基本思想:操作系统被分成两大部分
①运行在用户态并以 客户/服务器方式 活动的进程。
②运行在核心态的内核。
客户/服务器这个结构,事实上是来自于计算机网络里面的一种结构。即在网络里面,有客户机和服务器,客户机通过网络连接到服务器上,去索取资源/服务。服务器就给客户机提供服务。
这就是一种 “服务与被服务”的关系。操作系统就借用这种思想,将这种思想应用到操作系统的设计和构建中,也就是有一部分进程是客户进程,有一部分是服务进程,中间还有一个内核来“调度”。
特点:
①除内核外,操作系统的其他部分被分成若干相对独立的进程,每一个进程实现一类服务,称服务器进程。用户进程也在该层,并以客户/服务器方式活动。
②客户进程发出消息,内核将消息传送给服务器进程,服务器进程执行客户提出的服务请求,在满足客户的要求后在通过内核发行消息把结果返回给用户。
5、微内核结构
定义:
①把操作系统中的内存管理、设备管理、文件管理等功能模块尽可能地从内核中分离出来。
②在内核中只保留最基本的功能,使内核变得简洁可靠。(出Bug的概率就减小了)
优点:
①充分的模块化,可以独立地更换任一模块而不影响其他模块,从而方便第三方设计、开发各个模块。
②未被使用的模块功能不必运行,大幅度减少了系统的内存需求。
③增强了可移植性,移植时主要对微内核部分进行修改即可,减轻移植工作量。
客户/服务器及内核结构:
图文阐释:
①“用户进程” 和 “操作系统服务进程” 都在内核之外。
②内核 即图中的 “微内核”。
③用户进程可通过内核,把请求发给服务进程而去索取服务。
④服务进程再通过内核把服务信息发送给用户进程。
⑤微内核看上去像一个 “中间商人”。
三、参考附录:
[1] 《王道计算机考研 操作系统》
看视频可能快一些,但深刻理解还是需要文字和沉淀
链接: https://www.bilibili.com/video/BV1YE411D7nH?p=2.
[2] 《操作系统A》
我们上课用的慕课
链接: https://www.icourse163.org/course/NJUPT-1003219004?from=searchPage.
[3] 《操作系统教程》
我们上课用的教材
上一篇文章地址链接:【操作系统①】——操作系统的定义和功能、操作系统的四大特征【并发 共享 虚拟 异步】.
下一篇文章地址链接:【操作系统③】——进程及其实现【运行态 就绪态 等待态等 PCB 进程控制块 进程要素】.
未完待续… ⭐️ ⭐️
更多推荐
所有评论(0)