本章我们来聊一下操作系统的四个特征
在我们的操作系统中有四个特征:并发、共享、虚拟、异步
,我们结合每一个特征来进行讲解,我们先来看并发
。
这里所说的并发,最好不联想到并发编程。咱们就简简单单理解一下,在操作系统中并发
的特性。
定义:并发是指两个或多个事件,在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
这里并发
和并行
是两个概念,并行是指两个或者多个事件,在同一时间内,确确实实是一起在同步进行的,而并发不一样,并发是外表上看上去是在一起进行,实际上是底层交进行的。
如果对并发、并行还不太了解的同学,可以先暂停,把这个问题弄清楚了,再接着往下来看噢。
那操作系统中的并发指的是:计算机系统中同时存在多个运行着的程序
。
比如一个单核处理机(CPU),同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行,所以这些宏观上看像同时执行,但是微观上来看是交替执行的。
在现在的计算机的 CPU 中绝大多数都是 8 核以上,小编我的就是 10 核处理器,但是我们计算机中同时运行的软件肯定远远不止 8 个、10 个,不仅仅是我们的应用程序,很多系统程序也是需要使用 CPU 来进行调度的,所以操作系统的并发行依然必不可少。
共享说的是资源共享
,是指系统中的资源可供内存中多个并发执行的进程共同使用。
如上图,资源共享的方式又分为两种,一种是互斥共享方式,一种是同时共享方式。
互斥共享方式
表示该资源在同一个时间段只允许一个进程访问该资源。比如说摄像头设备,当我们的 QQ 已经在视频通话时,如果再去使用微信进行视频通话,会提示摄像头设备被占用等提示。
同时共享方式
表示该资源允许在同一个时间段内,由多个进程 “同时” 对它们进行访问。比如说发送文件,微信发送文件 A、QQ 发送文件 B,文件 A、文件 B 都是存储在硬盘上的,微信和 QQ 时可以支持同时发送文件的,说明两个进程都在访问硬盘资源,但是从微观上来看,其实是两个进程交替访问的硬盘。
并发和共享的关系
如果说没有并发,在同一时间只能运行一个进程,那资源是不是就没有共享这么一个说法了?
在如果说没有共享,既然不能共享,那必然某一个资源只能有一个进程来使用,那就肯定就不能并发了。
所以说,并发性和共享性它们是互为存在条件。
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应是用户感受的。
举个例子: 假设现在有一台电脑,它运行内存只有 4 GB,这个是物理实体。
我们现在需要在这台电脑上,打开一个吃鸡游戏,吃鸡游戏假设需要占用 4 GB 的内存,在吃鸡的同时,可能还需要开 YY 语音和队友交流,YY 语音程序可能需要占用 300 M 的内存,这些程序同时运行所占用的内存是远大于 4 GB 的,那为什么它们还可以在这台电脑上同时运行呢?
这里就是使用了,虚拟存储器技术
,实际上我们内存卡只有 4 GB,但是在用户看来是远远大于 4 GB,这里也是对应虚拟技术中的 空分复用技术
。
再举个虚拟的例子:
我们大家都知道,运行一个程序,需要把程序放入到内存中,并且给它分配 CPU 才能执行。
那么在早期 CPU 还是单核的时候,我们可能在计算机上执行了很多软件,比如 QQ、浏览器、音乐等,那么:既然一个程序需要被分配 CPU 才能正常执行,那么为什么在单核的 CPU 的电脑中,可以同时运行这么多个程序呢?
这里也是采用了虚拟技术,这个叫虚拟处理器(CPU)技术,又被称之为 时分复用技术,从微观上来看,CPU 在各个微小的时间段里交替为各个进程服务。 也就是说每一个进程都会占用 CPU 一点时间,然后 CPU 又会去处理下一个进程,一直这样反复,从宏观上来看,各个进程几乎上是同时在运行着。
这里举例的虚拟存储技术、虚拟处理器技术都是属于虚拟的特性,总的来说就是把一个真正物理的实体,变成若干个逻辑上的对应物。
同样,如果操作系统失去了并发性,那么一个时间段系统中只需要运行一道程序,那么就失去了虚拟的意义了,因此没有并发性,就谈不上虚拟性。
异步是指, 在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
比如说,现在有两个进程在同时运行,但是这两个进程需要使用某一个资源,资源给了进程1使用,那么进程2就没办法使用了,必须要等进程1用完,进程2才能用。 进程1占用资源的时间是不可预知的,所以就相当于走走停停的状态,已不可预知的速度向前推进。
当然,只有系统拥有了并发性,才有可能导致异步性。