并发
并发是什么?
多个事件在宏观上同时发生,微观上交替发生
而并行是多个事件在同一时刻同时发生
并发有什么用?
现在计算机一般都是多核CPU,比如Intel的第八代i3处理器就是4核的,但也只能支持4个软件并行执行,但我们其实打开的不只4个软件,所以还是需要并发
和操作系统的关系是什么?
一个单核处理机即CPU同一时刻只能执行一个程序,因此操作系统会协调多个程序交替执行,即操作系统和程序并发是相随的。也就是这些程序看上去是同时进行的,但其实操作系统会安排其交替执行
共享
共享是什么?
共享即资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用
分为:
-
互斥共享方式:一个时间段内只允许一个进程访问该资源
比如QQ和微信同一时间段,摄像头只能分配给其中的一个进程
-
同时共享方式:一个时间段内由多个进程“同时”对它们进行访问
使用QQ发送文件A,使用微信发送文件B,宏观上两边都在读取并发送文件,但微观上,两个几个进程是在交替地访问硬盘的
“同时”往往是宏观上的,而微观上,这些进程可能是交替地对该资源进行访问的,即分时共享。但有时候微观上也是同时在使用资源,比如音响同时放音乐和游戏
共享有什么用?
使得资源可供内存中多个并发执行的进程共同使用
并发和共享的关系?
- 并发指计算机系统中同时存在着多个运行着的程序
- 共享性指的是系统中的资源可供内存中多个并发执行的进程共同使用
- 共享和并发共存
虚拟
一个程序,需要放入内存,并给它分配CPU才能执行
虚拟是什么?
虚拟指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。
虚拟技术分为?
空分复用技术(如虚拟存储器技术)
看起来一些软件总的内存大于4GB,但实际上其实只有4GB的内存
时分复用技术(如虚拟处理器)
一个单核CPU,但是在用户看来似乎有几个CPU在同时为自己服务(多个软件在运行),因为微观上处理机在各个微小的时间段内交替着为各个进程服务。
虚拟和并发的关系?
失去并发性,即一个时间段系统内只需运行一道程序,那么就失去了实现虚拟性的意义了,因此,没有并发性,就谈不上虚拟性
异步
异步是什么?
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可知的速度向前推进,这就是进程的异步性
异步和并发的关系?
如果失去并发性,系统只能串行地处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。
总结:
- 并发和并行的区别
- 并发和共享互为存在条件
- 没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征