因为我们的课程里面有用 C/C++ 来写代码,所以我会综合我们的课程和其他优质资料来写文章。
争取这学期把《操作系统》这一系列文章好好做完。
文章目录
操统学问三五两,小生斗胆码一场。🍋
下一篇文章地址链接:【操作系统②】——操作系统的发展与分类、操作系统的结构设计【分时操作系统 整体式 层次式】.
期末考试总复习——地址链接:《操作系统期末总复习——绝地求生版》.
一、操作系统简介:
操作系统,大家都耳熟能详了,像市面上的Windows、安卓、苹果操作系统…我先用一个通俗的例子来说明一下吧。(帮助初学者快速理解)
操作系统是硬件和软件之间的桥梁。这里,硬件就可以比作 “人身上无生命特征的物质” ,而软件就可以比作 “人身上有生命特征的细胞” 。
最后,操作系统就可以比作“每个细胞里面的基因序列(DNA)”。它(操作系统)虽然也无生命特征,属于物质,但它管辖着身体里的一切底层逻辑。
一、操作系统的定义:
操作系统
(Operating System,OS) 是指一个
①能控制和管理整个计算机系统的 硬件和软件资源 ,并合理地组织调度计算机的工作和资源的分配的;
②并能提供 方便的接口和环境 给用户和其他软件的;
③计算机系统中最基本的系统软件。
说明:定义中的①②③分别对应着图中的 箭头①②③。
还有就是,“用户” 有一部分区域直接和 “操作系统”区域相接,说明,用户有时候可以直接对操作系统进行修改。(后续课程中会有)
举一个栗子:
二、操作系统的功能和目标:
功能 1:作为系统资源的管理者
功能 1 对标定义①:【能控制和管理整个计算机系统的 硬件和软件资源 ,并合理地组织调度计算机的工作和资源的分配的】
系 统 资 源 的 管 理 者 = { 处 理 机 管 理 存 储 器 管 理 设 备 管 理 文 件 管 理 系统资源的管理者=\begin{cases}处理机管理\\存储器管理\\设备管理\\文件管理\end{cases} 系统资源的管理者=⎩⎪⎪⎪⎨⎪⎪⎪⎧处理机管理存储器管理设备管理文件管理
举一个栗子:
补充知识:执行一个程序前需要将该程序放到内存中,才能被CPU处理。
功能 2:向上层提供(方便易用的)服务
功能 2 对标定义②:【并能提供 方便的接口和环境 给用户和其他软件的】
总述:操作系统把一些 丑陋的硬件功能 封装成 简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可。
比如说,我们要刷新网页,按一下 “F5” 就可以了。而不需要向电脑输入“一串刷新代码”。
同样滴,在 Windows 操作系统中,删除一个文件只需要把文件“拖拽”到回收站即可。用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。这就是GUI:图形化用户接口(Graphical User Interface)技术。
那什么是命令接口呢?
“命令接口”,包含“命令”两字,表示它是一种指令,发出来能实现某种功能。而“接口”两字,则表示,它是对外开放的,也就是人们能和它进行“外交”,“外交”的方式是以 人 按键盘、按鼠标的方式,而不需要以“计算机二进制的方式”。
命令接口分为两类,一类是联机命令接口,另一类是脱机命令接口。接下来,我分开来讲。
联机命令接口。“联机” ,谁联机?想一想,那只有人了。也就是说,该命令接口是和人有联系的,需要和人一直进行“互动”。
举一个栗子,跟着下面的操作做:
首先,按 “win键+R” (得是Windows系统才行)
输入“cmd”,回车,打开命令解释器
再输入 “help”
结果会输出 “ 大部分Windows 命令的帮助信息。”
然后你划到最下面,会看到光标在一闪一闪的,这说明该“系统”在等着你下一条输入,它在和你“交互”。
故联机命令接口的特点是:“用户说一句,系统跟着做一句”。【你可以再试着输入 VER,看看会出现什么?(version的缩写)】
脱机命令接口。“脱机” ,谁脱机?当然,也只有人了。也就是说,该命令接口要脱离人,不需要和人一直进行“互动”。
怎么理解呢?CPU计算速度这么快,而人的输入速度(手速)明显赶不上,所以刚刚的联机命令接口的效率明显很低。而怎么提升效率呢?就是用到这个了。
我们现在把CPU看成一名做菜巨快的“厨师”,外设(电脑外围设备)看成一名“客户”。好,客户进门,开始点菜了。如果采用 “联机命令接口”,那么就是“客户”点一个菜,“厨师”就做一道,很快就做完了,然后就闲着,直到“客户”点下一道菜,“厨师”再做。很明显,“厨师”效率不高,浪费开火的天然气什么的。
而要是采用“脱机命令接口”,那么“厨师”就得等,等“客户”把想点的菜都在本子上写好,交给他,他再一气呵成,快速做完,效率不就高多了。
故脱机命令接口的特点是:“用户说一堆,系统跟着做一堆”。【一次性说完】
最后什么是 程序接口 呢?
程序接口:可以在程序中进行 系统调用 的接口。普通用户不能直接使用程序接口,只能通过 程序代码 来间接使用。
如:写C语言“Hello world”程序时,在 printf() 函数的底层就使用到了操作系统提供的显式相关的“系统调用”。
功能 3:对硬件机器进行拓展
功能 3 对标定义③:【计算机系统中最基本的系统软件】
没有任何软件支持的计算机叫做裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机
。
类比汽车: 发动机——只会转;轮胎——只会滚; 在原始的硬件机器上覆盖一层传动系统→→让发动机带着轮子转→→使原始的硬件机器得到拓展。
操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件 能够相互协调配合,实现更多更复杂的功能。而普通用户无需关心这些硬件在底层是怎么组织起来工作的,只需直接使用操作系统提供的接口即可。
四、小结一(操作系统的定义和功能):
其实不管是设备管理,还是文件管理等等,这些东西到后面都会用一个章节去讲。本文简单的了解一下操作系统的各个概念,起到一个 “引言” 的作用。后面还要讲 进程、并发等很多东西。
五、操作系统的四大特征:
特征 1 :并发性
并发通常和并行的概念比较分析。
并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。 易混概念——并行:指两个或多个事件在同一时刻同时发生。
比如说,一般我们大学在宿舍点外卖。吃饭的时候一般要看视频下饭。那么这里我们就是在并行(同时进行)地执行两件事。而当我们晚上和几个有好感的女生聊天时,我们虽然在宏观上是在同时和她们聊。但在微观上是交替着聊的,这就是并发。
补充说明:单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行
比如 Intel 的第八代 i3 处理器就是 4 核 CPU,意味着可以并行地执行4个程序。
特征 2 :共享性
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程
共同使用。
【注:进程
是一个 具有一定独立功能的程序 关于某个数据集合的一次工作活动,是系统进行资源分配和调度运行的基本单位。后面会细讲】
资源共享的方式分为图上的两种,它俩的区别如绿框所示。
生活实例:
互斥共享方式:使用 QQ和微信 与好友进行视频时。同一时间段内摄像头只能分配给其中一个进程(QQ或微信)。
同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件, 说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。
(补充内容)并发和共享的关系
并发性
指计算机系统中同时存在着多个运行着的程序。
共享性
是指系统中的资源可供内存中多个并发执行的进程共同使用。
通过上一个生活实例来看并发与共享的关系: 使用QQ发送文件A,同时使用微信发送文件B。
1. 两个进程正在并发执行(并发性)。而如果失去并发性,则系统中只有一个 程序正在运行,则共享性失去存在的意义。
2. 需要共享地访问硬盘资源(共享性)。而如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法同时发送文件,也就无法并发。
所以,并发性和共享性互为存在条件。📚
特征 3 :虚拟性
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
虚拟技术分为如图上两类。
什么是虚拟存储器技术呢?举一个栗子如下
背景知识:一个程序需要 放入内存 并给它分配CPU才能执行。
假如 英雄联盟 需要4GB的运行内存,QQ 需要256MB的内存,网易云音乐需要256MB的内存,动态壁纸需要100MB的内存……
假如我的电脑只有:4GB内存
问题:这些程序同时运行需要的内存远大于4GB,那么为什么它们还可以 在我的电脑上同时运行呢?
答:这是虚拟存储器技术(也叫作空分复用技术)。实际只有4GB的内存,在用户看来似乎远远大于4GB。
在后面的章节我们将系统讲解,这里只做大致的了解。
接着要问,那什么又是虚拟处理器技术呢?同样举个栗子如下
假如说我的电脑只配置了 单核CPU,并打开了以下软件。。。
问题:既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?
答:这是虚拟处理器技术(也叫作时分复用技术)。实际上只有一个单核CPU,在用户看来似乎有 6个CPU在同时为自己服务。即在微观上,处理机在各个微小的时间段内交替着为各个进程服务。
补充一点:显然,如果失去了并发性,则一个时间段内系统中只能运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。
特征 4 :异步性
异步性是指,在多道程序环境下,允许多个程序并发执行。但由于资源有限,进程的执行不是一贯到底的, 而是走走停停,以不可预知的速度向前推进。这就是进程的异步性。
再比如说,继续说大学在宿舍点外卖的事。吃饭的时候假如家里人打电话来了。我们能边吃边说, “美味外卖” 和 “手机电话” 这时就在抢占 “我这个人的资源” 。
但我的能力有限,消化道和支气管道只能一个一个地开,不能“双开”,而有时候我可能要不停地说话,说很长一段时间,所以我吃完饭的时间就不可预知。(同理,反向思维也可以推出:我打完电话的时间也不可预知,因为可能我每次说话前,可能嘴里有饭,得先吞下去再说,而吞也需要花时间)
(补充内容)并发和异步的关系
显然,如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。然后再执行下一个程序。
只有系统拥有并发性,才有可能导致异步性。
六、小结二(操作系统的四大特征):
①理解并发和并行的区别。
②并发和共享互为存在条件。
③没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征
七、参考附录:
[1] 《王道计算机考研 操作系统》
看视频可能快一些,但深刻理解还是需要文字和沉淀
链接: https://www.bilibili.com/video/BV1YE411D7nH?p=2.
[2] 《操作系统A》
我们上课用的慕课
链接: https://www.icourse163.org/course/NJUPT-1003219004?from=searchPage.
[3] 《操作系统教程》
我们上课用的教材
下一篇文章地址链接:【操作系统②】——操作系统的发展与分类、操作系统的结构设计【分时操作系统 整体式 层次式】.
期末考试总复习——地址链接:《操作系统期末总复习——绝地求生版》.
…🚧 🚧