一、操作系统的特征
操作系统的特征可以分为四类:
- 并发
- 共享
- 虚拟
- 异步
其中并发和共享是最基本的特征,二者互为存在条件。后面会给出详细解释。
下面详细的介绍这四种特征:
1.并发
并发是指两个或多个事件在同一时间间隔内发生。要注意:在宏观上是同时发生的,但在微观上是交替进行的。
与之相对应是一个叫并行的概念,并行指的是两个或多个事件在同一时刻发生,我理解的区分的标准是:一定要注意是同一时间间隔还是同一时刻。
可以用一幅时序图来加深理解:
可以看到:
并发在同一时刻只能执行一个任务,也就是在X轴的某个时间点,有且仅有一个Y值与其对应。
而并行在同一时刻可以执行多个任务,在X轴的某个时间点,可以有多个Y值与其对应。
如果还是有点模糊,我们可以做一个类比:就拿吃饭来说吧!(ps:例子有些许粗糙哈)。
并发吃就是吃一口饭,再吃一口菜。宏观上看都是在吃,但细分下来是先吃饭再吃菜,在同一时刻吃的只能是菜或者饭的一种。而并行吃就是菜混着饭一起吃,在同一时刻我吃的既有饭也有菜。
操作系统的并发性是指计算机中同时存在着多个运行的程序。对于一个单核CPU来说:同一时刻只能执行一个程序,因此操作系统会交替的执行多个程序。
但是要注意:对于多核CPU来说,操作系统的并发性依然是必不可少的。
2.共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程同时使用。
资源共享有两种方式:
- 互斥共享:系统中的某些资源,一段时间内只允许一个进程访问。
- 同时共享:系统中的某些资源,一段时间内允许多个进程同时访问。
分别举一个例子:
互斥共享:假设你要使用QQ或者微信进行视频聊天,同一时刻内摄像头这个设备只能分配给QQ或者微信中的一个进程。
同时共享:同时共享需要注意一个点,同时共享的同时可以有两个说法
- 一种是宏观上看起来是同时,但在微观上是交替访问。即逻辑上的同时,物理上的交替。比如同时使用QQ和微信发送文件,表面上看起来文件的进度条都在推进,但从微观上看两者是交替着访问硬盘的。
- 另一种是在逻辑上和物理层面都是同时。比如你一边打游戏,一般听音乐。扬声器中既有游戏的声音也有音乐的声音。
回到开头的那个问题:为什么说并发和共享是互为存在条件的?
以一个单核CPU为例:
- 电脑中同时运行着QQ和微信两个进程(并发性)
- 同时发送文件访问硬盘资源(共享性)
如果失去了并发性,就意味着在同一时刻只会有一个进程访问硬盘资源,那硬盘共享也就没有存在的意义了。
如果失去了共享性,就意味着同一时刻只能有一个进程访问硬盘资源,也就不可能实现并发性(看不到QQ和微信发送文件时进度条同时推进的情况)。
3.虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。即前者是实际存在的,而后者是用户感知到的。
一个应用程序需要将它放入内存中并且将它分配到CPU才能运行。假设一个运行内存为4GB的电脑,运行着一个需要占用4GB运行内存的游戏、同时还运行着QQ、微信、音乐等应用程序,为什么它们可以同时运行呢?
这就是虚拟存储器中的空分复用技术,电脑的实际运行内存只有4GB,但是在用户看来却超过了4GB。对应着还有一个时分复用技术,即对于一个单核CPU来说,同时运行着很多应用程序,在微观上各个微小的时间段内交替着为各个进程服务。
很显然,如果失去了并发性,虚拟性也就不会存在。
4.异步
异步性是指在多道程序环境下,多个程序并发执行,但由于系统的资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
比如,当正在执行的进程提出某种资源请求时,如打印请求,而此时打印机正在为其他某进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,且放弃处理机,直到打印机空闲,并再次把处理机分配给该进程时,该进程方能继续执行。可见,由于资源等因素的限制,进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。
文章讲述了操作系统的四个基本特征,水平尚低,如有不当之处还请诸位在评论区指正。