计算机操作系统3
第三课:操作系统的四大特征
这一课只有四个词:
并发(Concurrency)
共享(Sharing)
虚拟(Virtualization)
异步(Asynchronism)
很多教材直接给定义,学生就开始背。
我们不背,我们先讲一个故事。
一台电脑的一天
假设你正在使用电脑:
浏览器(看B站)
↓
QQ聊天
↓
网易云音乐
↓
下载一个游戏
↓
Word写论文
请问:
电脑里是不是有五个程序?
答案:
是。
再问一个问题:
CPU有几个?
假设:
CPU:
只有一个核心。
那么:
一个CPU怎么可能同时运行五个程序?
这里就引出了第一个特征。
第一大特征:并发(★★★★★)
很多同学第一眼就觉得:
并发 = 同时运行。
其实:
不完全正确。
举一个例子
假设CPU每秒可以执行几十亿条指令。
操作系统安排它这样工作:
0~10ms
浏览器
↓
10~20ms
QQ
↓
20~30ms
音乐
↓
30~40ms
下载
↓
40~50ms
Word
↓
50~60ms
浏览器……
注意:
CPU任何一个时刻:
实际上:
只运行一个程序。
但是:
因为切换速度:
0.01秒
太快了。
于是:
你的眼睛看到的是:
浏览器一直播放
QQ一直在线
音乐一直响
游戏下载中
Word还能打字
是不是感觉:
五个一起运行?
实际上:
没有。
CPU是在:
快速切换。
这就叫:
并发(Concurrency)。
并发 ≠ 并行
这是考试最喜欢考的。
很多同学分不清。
我们画图。
并发(一个CPU)
CPU
↓
A
↓
B
↓
C
↓
A
↓
B
↓
C
只有一个人在干活。
只是:
不停切换。
并行(多个CPU)
CPU1
↓
A
CPU2
↓
B
CPU3
↓
C
三个CPU:
真的一起运行。
这叫:
并行(Parallelism)
一个生活例子
只有一个老师。
面对三个学生。
老师:
回答A一分钟
↓
回答B一分钟
↓
回答C一分钟
↓
再回来回答A
大家都会觉得:
老师一直在陪自己。
这就是:
并发。
如果:
三个老师。
每人负责一个学生。
这就是:
并行。
一句话记忆
并发:
一个CPU
多个任务
快速切换
看起来一起执行
第二大特征:共享(★★★★★)
有一个问题。
电脑里:
QQ
Word
浏览器
都想:
打印。
但是:
打印机:
只有一个。
怎么办?
如果没有管理。
三个程序:
一起打印。
最后打印出来:
QQ第一页
Word第一页
QQ第二页
浏览器第一页
Word第二页
乱了。
所以:
必须有人安排:
QQ先打印。
↓
Word等待。
↓
QQ结束。
↓
浏览器开始。
这个安排的人:
就是:
操作系统。
什么叫共享?
一句话:
多个程序共同使用同一个资源。
例如:
CPU
内存
打印机
磁盘
网卡
都是:
共享资源。
共享分两种
教材喜欢考。
① 互斥共享
例如:
打印机。
一次:
只能一个程序使用。
QQ打印
↓
Word等待
↓
浏览器等待
这种:
叫:
互斥共享。
② 同时共享
例如:
硬盘。
QQ:
读一个文件。
浏览器:
读一个网页。
音乐:
读MP3。
因为:
读取速度非常快。
大家几乎可以:
一起读。
叫:
同时共享。
第三个特征:虚拟(★★★★★)
这是最难理解的。
我们先看一个问题。
你的电脑:
内存:
8GB
但是:
你打开:
浏览器
QQ
微信
IDE
PS
Office
加起来:
可能需要:
20GB。
为什么还能运行?
这里:
就是:
虚拟。
操作系统"骗人"
它告诉每个程序:
浏览器:
这些内存都是你的。
又告诉QQ:
这些也是你的。
实际上:
不是。
操作系统:
不断地:
搬来搬去。
换来换去。
调来调去。
于是:
每个程序都觉得:
整个电脑都是我的。
这叫:
虚拟内存。
再举一个例子
假设:
一家酒店。
只有:
100个房间。
今天来了:
1000位客人。
老板怎么办?
他说:
今天不住的人
先去大厅。
以后再入住。
于是:
1000个人都能办理入住。
虽然:
真正住进去:
只有100人。
是不是一种:
“假象”?
这就是:
虚拟。
虚拟不仅仅是内存
以后会学:
虚拟CPU
↓
虚拟内存
↓
虚拟设备
本质:
都是:
让用户感觉资源比实际更多、更独立。
第四个特征:异步(★★★★★)
假设:
有三个程序:
QQ
浏览器
下载
操作系统:
不知道:
下一秒:
谁先结束。
为什么?
因为:
每个程序:
执行速度:
都不同。
例如:
QQ:
收消息
↓
等待
浏览器:
不停计算
下载:
网络不好
速度忽快忽慢
所以:
程序完成时间:
不是固定的。
举个生活例子
三个人做作业。
小明:
10分钟。
小红:
30分钟。
小刚:
5分钟。
老师:
不知道:
谁先交。
因为:
速度不同。
这就是:
异步。
为什么叫异步?
同步:
大家一起走。
例如:
123
开始!
异步:
有人快。
有人慢。
没人知道:
什么时候结束。
操作系统:
只能:
不断调度。
四个特征之间的关系(考试很喜欢)
很多人觉得:
四个特征:
互相没关系。
其实:
关系特别大。
并发
│
│
导致多个程序
│
▼
共享
大家一起用CPU和设备
│
▼
需要协调
│
▼
异步
每个程序运行速度不同
│
▼
为了提升体验
│
▼
虚拟
也就是说:
- 有了并发 ,多个程序会争抢资源。
- 资源需要共享 ,就必须管理访问顺序。
- 每个程序执行速度不同 ,于是表现为异步。
- 为了让用户觉得资源充足、程序互不影响 ,操作系统提供虚拟化。
本章一句话总结
如果你只能记一句:
操作系统通过"并发"运行多个程序,通过"共享"管理资源,通过"虚拟"让资源看起来更多,通过"异步"适应程序运行速度的不确定性。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)