现代操作系统都支持多任务,具有并发、共享、虚拟和异步性特征
- 并发
并发是指两个或多个事件在同一时间间隔内发生。并发强调"同一时间间隔",与并行是有区别的两个不同的概念,并行是指多个事件同时发生。
以单CPU多任务的操作系统为例,当说两个程序并发执行时,是指宏观上看这两个程序同时在向前推进。
例如,可以在一台单CPU单核的笔记本电脑中一边运行音频播放程序听歌曲,一边用WPS 办公软件,编辑程序在工作的同时音频播放程序也在工作。
![de9d90cc3351e3e2aa2c57b18c633e4b.png](https://img-blog.csdnimg.cn/img_convert/de9d90cc3351e3e2aa2c57b18c633e4b.png)
但是,在单CPU单核的系统中,任意时刻只能有程序流在CPU执行,要么编辑文档程序,要么是音频播放程序。之所以用户能感觉到两个程序似乎在同时工作,而且互不干扰,是因为操作系统使两个程序在CPU上快速地轮流交替执行,实现了"并发"的功能。
- 共享
共享是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享有两种方式,既互斥共享和同时共享。
互斥共享是指任意时刻一种资源只能被一个进程访问,当一个进程访问资源时,其它进程必须等待,直到资源被进程访问完毕,释放访问权。
例如打印机的访问 如果不采互斥访问的方式,可能会把多个进程的输出内容打印到同一个同一页打印纸上。
同时,共享是指从宏观上看,资源可以被多个进程同时访问。如对磁盘的访问。
虽然任意时刻只能有一个程序访问某一个磁盘。但是,多个程序可以在短时间内轮流访问磁盘。从用户的角度看,多个用户程序可以同时发送磁盘访问命令,并同时得到响应。从宏观上看,磁盘可以被多个用户程序同时访问。
并发与共享的关系是相互依赖的。
如果系统不支持并发,资源的使用都是独占的,不需要共享资源。
另一方面,如果不能实现有效的资源共享,并发就不可能得到很好的支持
![7f785f359d7c369ee21552500cf02cbe.png](https://img-blog.csdnimg.cn/img_convert/7f785f359d7c369ee21552500cf02cbe.png)
- 虚拟
虚拟是指通过某种技术把一个物理实体变成若干逻辑上的对应物。
物理实体是实际存在的,而虚拟仅仅是用户感觉到的。
- 异步性
进程以不可预知的速度向前推进。内存中的每个程序任何执行、何时暂停、以怎样的速度向前推进,以及每道程序总共需要多长时间才能完成等,都是不可预知的。
![bd76554ac32ecdd68ac554565d0fd814.png](https://img-blog.csdnimg.cn/img_convert/bd76554ac32ecdd68ac554565d0fd814.png)