1、并发
并发 \color{red}并发 并发:指两个或多个事件在同一时间间隔内发生。
- 这些事件 宏观上是同时发生 \color{red}宏观上是同时发生 宏观上是同时发生的,但 微观上是交替发生 \color{red}微观上是交替发生 微观上是交替发生的。
并行 \color{red}并行 并行:指两个或多个事件在同一时刻同时发生。
例如:假设小渣与老渣每人由两个女朋友。任务 1 :和一号约会;任务 2:和二号约会
操作系统的并发性 \color{red}操作系统的并发性 操作系统的并发性指计算机系统中同时存在着多个运行着的程序。
一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)
事实上,操作系统就是伴随着 “多道程序技术” 而出现的。
- 因此, 操作系统和程序并发是一起诞生 \color{red}操作系统和程序并发是一起诞生 操作系统和程序并发是一起诞生的
当今的计算机,一般都是多核 CPU ,比如 Intel 的第八代 i3 处理器就是 4 4 4 核 CPU
-
这意味着同一时刻可以有 4 4 4 个程序 并行 \color{red}并行 并行执行,
但是操作系统的 并发性依然必不可少 \color{red}并发性依然必不可少 并发性依然必不可少,
当代人使用计算机绝对有4个以上的程序需要同时工作。
2、共享(互斥/同时)
共享 \color{red}共享 共享即资源共享,是指系统中的资源可供内存中多个 并发 \color{red}并发 并发执行的进程共同使用。
- 例如:多线程共享同一个进程的资源
所谓的 “同时” 往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)
- 可能:例如边听歌边打游戏,此时游戏声音与音乐播放声音微观上并行
例如:
-
互斥共享方式:使用 QQ 和微信视频。同一时间段内摄像头只能分配给其中一个进程。
-
同时共享方式:使用 QQ 发送文件 A,同时使用微信发送文件 B。
宏观上看,两边都在同时读取并发送文件说明两个进程都在访问硬盘资源,从中读取数据。
微观上看,两个进程是交替着访问硬盘的。
3、并发和共享的关系
并发性 \color{red}并发性 并发性指计算机系统中同时存在着多个运行着的程序。
共享性 \color{red}共享性 共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。
例如:使用 QQ 发送文件 A,同时使用微信发送文件 B。
- 两个进程正在并发执行( 并发性 \color{red}并发性 并发性)
- 需要共享的访问硬盘资源( 共享性 \color{red}共享性 共享性)
注意:
- 如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义
- 如果失去共享性,则 QQ 和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发
4、虚拟(时分复用/空分复用)
虚拟 \color{red}虚拟 虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。
- 物理实体(前者)是实际存在的,
- 而逻辑上对应物(后者)是用户感受到的。
例如:
背景知识:一个程序 需要放入内存 \color{red}需要放入内存 需要放入内存并给它 分配 CPU \color{red}分配\texttt{CPU} 分配CPU才能执行
-
GTA5 需要 4 MB 4\texttt{MB} 4MB 的运行内存,QQ 需要 256 MB 256\texttt{MB} 256MB 的内存,迅雷需要 256 MB 256\texttt{MB} 256MB 的内存,网易云音乐需要 $256\texttt{MB} $ 的内存…
我的电脑: 4 MB 4\texttt{MB} 4MB 内存
问题:这些程序同时运行需要的内存远大于 4 MB 4\texttt{MB} 4MB,那么为什么它们还可以在我的电脑上同时运行呢?
答:这是虚拟存储器技术(虚拟技术中的 “空分复用技术”)。
实际只有 4 MB 4\texttt{MB} 4MB 的内存,在用户看来似乎远远大于 4 MB 4\texttt{MB} 4MB
某单核 CPU 的计算机中,用户打开了以下软件。。。
问题:既然一个程序需要被分配 CPU 才能正常执行,
- 那么为什么单核 CPU 的电脑中能同时运行这么多个程序呢?
答:这是虚拟处理器技术。实际上只有一个单核 CPU ,在用户看来似乎有 6 6 6 个 CPU 在同时为自己服务
-
虚拟技术中的 “时分复用技术” 。微观上处理机在各个微小的时间段内交替着为各个进程服务
例如:时间片轮转(进程调度算法)
5、异步
异步 \color{red}异步 异步是指,
- 在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
由于系统的有限资源导致的
例如:老渣要和两个女孩并发约会
一号的指令 1 :老渣陪我吃饭
一号的指令 2 :老渣把心给我
二号的指令 1 :老渣把心给我
二号的指令 2 :老渣陪我吃饭
与一号、二号的约会相当于对两个进程的处理,每个进程都有各自需要执行的指令。
老渣的心相当于有限的系统资源。
由于可分配的资源有限,进程的执行不是一贯到底的,而是走走停停的,以不可预知的速度向前推进。
显然,如果失去了并发性,则系统只能串行地处理各个进程,每个进程的执行会一贯到底。
只有系统拥有并发性,才有可能导致异步性 \color{red}只有系统拥有并发性,才有可能导致异步性 只有系统拥有并发性,才有可能导致异步性。
6、小结
并发和共享互为存在条件,就谈不上虚拟和异步 \color{red}并发和共享互为存在条件,就谈不上虚拟和异步 并发和共享互为存在条件,就谈不上虚拟和异步,
因此并发和共享是操作系统的两个最基本的特征 \color{red}因此并发和共享是操作系统的两个最基本的特征 因此并发和共享是操作系统的两个最基本的特征