文章目录
- 第一章 计算机系统概述
- 操作系统的特征
- (一)并发
- (二)共享
- 并发和共享的关系
- (三)虚拟
- (四)异步
- 小结
第一章 计算机系统概述
操作系统的特征
操作系统的四个特征
- 并发
- 共享
- 并发和共享是两个最基本的特征,二者互为存在条件(原因见下文)
- 虚拟
- 异步
(一)并发
-
并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
-
并行:指两个或多个事件在同一时刻同时发生。
个人理解:并行是“真的”同时发生,并发是“假的”同时发生。
操作系统的并发性是指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。
为什么说并发性对于操作系统是一个很重要的基本特性?
操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。
比如Intel的第八代i3处理器就是4核CPU,意味着可以并行地执行4个程序。
但是,如果已经运行了4个程序,还想再运行第5个程序时,第5个程序就要剥夺原有程序占用的CPU资源,轮流地使用CPU,就仍需要并发性。
因此,即使是对于4核CPU来说,只要有4个以上的程序需要“同时”运行,那么并发性依然是必不可少的,因此,并发性是操作系统一个最基本的特性。
(二)共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
资源共享可以分为两种共享方式
-
互斥共享方式
- 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
-
同时共享方式
- 系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问
此处的“同时”为什么要打双引号,因为此“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)。但是也有微观上同时访问的情况,例如扬声器同时播放游戏音效和音乐播放器中的歌曲,从微观上就是同时的。
【生活实例】
互斥共享方式:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。
同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。
并发和共享的关系
并发性是指计算机系统中同时存在着多个运行着的程序。
共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。
通过一个例子来看并发与共享的关系:
使用QQ发送文件A,同时使用微信发送文件B。
1、两个进程正在并发执行(并发性)
2、需要共享地访问硬盘资源(共享性)
如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义。
如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。
因此,并发性、共享性,互为存在条件。
(三)虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
例如,一款游戏需要4G运行内存,QQ需要256M运行内存,网易云音乐需要256M运行内存……
我的电脑:4G运行内存
问题:这些程序同时运行需要的内存大于4G,为什么它们还可以在我的电脑上同时运行?
答:这是虚拟存储器技术。物理实体只有4GB,但在用户看来似乎远远大于4G。这也是虚拟技术中的“空分复用技术”。
例如,某单核CPU的计算机中,用户打开了若干软件:QQ、Chrome浏览器、QQ音乐、迅雷……
问题:既然一个程序需要上CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?
答:这是虚拟处理器技术。实际上只有一个单核CPU,但在用户看来似乎有多个CPU在同时为自己服务。这也是虚拟技术中的“时分复用技术”,微观上处理机在各个微小的时间段内交替着为各个进程服务。
(注:一个程序需要放入内存并给它分配CPU才能执行。)
虚拟技术
- 空分复用技术(如虚拟存储器技术)
- 时分复用技术(如虚拟处理器)
显然,如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。
(四)异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
由于并发运行的程序会争抢着使用系统资源,而系统中的资源有限,因此进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。因此,只有系统拥有并发性,才有可能导致异步性。
同步与异步
同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。
异步:异步是指进程不需要一直等待下去,而是继续执行下面的操作,不管其他进程的状态,当有信息返回的时候会通知进程进行处理,这样就可以提高执行的效率了,即异步是我们发出的一个请求,该请求会在后台自动发出并获取数据,然后对数据进行处理,在此过程中,我们可以继续做其他操作,不管它怎么发出请求,不关心它怎么处理数据。
补充理解
同步是指两个进程的运行是相关的,其中一个进程要阻塞等待另外一个进程的运行。“同”是协同,按照一定的顺序有序进行,而不是同时。即一组进程为了协调其推进速度,在某些地方需要相互等待或者唤醒,这种进程间的相互制约就被称作是进程同步。这种合作现象在操作系统和并发式编程中属于经常性事件。具有同步关系的一组并发进程称为合作进程。
异步的意思是两个进程毫无相关(不用互相等待),自己运行自己的。进程以不可预知的速度向前推进。内存中的每个进程何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成等,都是不可预知的。
小结
- 理解并发和并行的区别
- 并发和共享互为存在条件
- 没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征