如果这篇博客对您有用的话,可以给我点个赞吗,这对我很重要,谢谢!❤️
1.1.2 操作系统的特征
文章目录
- 1.1.2 操作系统的特征
- 1.1.2.1 并发
- 1.1.2.2 共享
- 1.1.2.3 并发和共享的关系
- 1.1.2.4 虚拟
- 1.1.2.5 异步
- 1.1.2.6 小结
我们接下来讲的时候关于操作系统的四大特征:并发
、共享
、虚拟
、异步
。其中并发和共享是两个最基本的特征,两者互为存在条件。
1.1.2.1 并发
我们说的并发指的是:两个或多个事件在同一时间间隔发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
对于跨考的同学来说,比较容易混淆的就是并行的概念,我们所说的并行通常指的是:指两个或多个事件在同一时刻同时发生。
这里的两个概念容易混淆,我们讲一个例子:
有两个人一个叫小明一个叫小刚。它们每人都有两个女朋友。对于小明来说,他喜欢的是和一号、二号一起出门约会;而对于小刚来说,他喜欢8:00和一号约会,9:00和二号约会,10:00和一号约会。
这里我们发现两个人同样都是在约会,但是小明是同一时刻同时发生,属于并行
;而小刚如果别人问他你怎么约会的,他会说他和两个女生同时约会,但是实际上,它是和两个女生交替约会,这就是宏观和微观的区别,其属于并发
。
回到知识点上来,如果我们说操作系统的并发性
的话,通常指的是计算机系统中同时存在着多个运行着的程序。
一个单核处理器(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行;而事实上,操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。
当今的计算机,一般都是多核CPU、比如Intel的第八代i3处理器就是4核CPU,这意味着同一时刻可以有4个程序并行
执行,但是操作系统的并发性依然必不可少,因为每个人根本不可能说一台电脑只开四个应用程序吧。
1.1.2.2 共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享有两种资源共享方式:
- 互斥共享方式
- 同时共享方式
互斥共享方式指的是:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。
而同时共享方式指的是:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。
为什么我们这里的同时在打双引号呢?这是因为我们所谓的同时往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)。
我们可以用例子来理解以上的概念,互斥共享方式就相当于使用QQ和微信视频,同一时间段内摄像头只能分配给其中一个进程;而同时共享方式就相当于QQ和微信同时发送文件A,宏观上看好像是同时读取并发送,实际上是两个进程交替访问硬盘。当然有时候同时共享方式也有可能真的是同时
,比如说你一边玩游戏开游戏音效一边听歌,这时候两个进程真的是在同时对硬盘上的资源同时访问了。
1.1.2.3 并发和共享的关系
并发性
是指计算机中同时存在着多个运行着的程序;共享性
是指系统中的资源可供内存中多个并发执行的进程共同使用。
如果通过例子来看的话,使用QQ发送文件A,同时使用微信发送文件B,两个进程正在并发执行(并发性),且需要共享地访问硬盘资源(共享性),这就意味着:如果失去并发性,则系统中只有一个程序正在运行,此时共享性失去了存在的意义;如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。
1.1.2.4 虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,但逻辑上的对应物是用户感受到的。
用一个例子来讲述上面的知识点:我们拿GTA5作为我们要说的程序,一个程序需要放入内存并给它分配CPU才能执行,GTA5需要4GB的运行内存,QQ需要256MB的运行内存,迅雷需要256MB的运行内存,网易云音乐需要256MB的运行内存。
我们实际上 在一个运行内存4GB的电脑上能够同时开启上面说的四个进程,可是上面的运行内存远远大于4GB,为什么还能同时开呢?
这就是虚拟存储器技术中的空分复用技术
,实际上只有4GB,在用户看来似乎远远大于4GB。
而如果是在某单核CPU的计算机中,用户打开了以下软件:
这时候我们知道一个程序只能分配给CPU才能执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?这也是虚拟处理器技术,其采用了时分复用技术
,微观上处理机在各个微小的时间段内交替着为各个进程服务,实际上只有一个单核CPU,但是用户看起来似乎有6个CPU同时为自己服务一样。
所以综上所述,虚拟技术可以分为空分复用技术(如虚拟存储器技术)和时分复用技术。显然,如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。
1.1.2.5 异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
如果学过数据库的话,实际上你可以把这里的知识点看出是两个事务同时对一个资源做请求,但是这里两个事务最终都会提交,但总是有个先后的,不可能说两个人同时对一个资源同时使用,这样就会出现读写冲突和写写冲突等相关问题。
再举个例子:
与1号2号的约会相当于两个进程的处理,每个进程都有各自需要执行的指令。老渣的心相当于有限的系统资源。由于可分配的资源资源有限,进程的执行不是一贯到底的,而是走走停停的,以不可以预知的速度向前推进。
显然在这里,如果失去了并发性,则系统只能串行地处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。
1.1.2.6 小结
重要考点
- 理解并发和并行的区别
- 并发和共享互为存在条件
- 没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征