操作系统的发展史
1.穿孔卡片
cpu利用率非常低,好处是程序员能为所欲为
2.联机批处理系统
缩短录入数据的时间,使cpu工作时间变长,提高cpu利用率
3.脱机批处理系统
再次提高cpu的利用率,是现代计算机的雏形
操作系统的发展史也可以看成是cpu利用率提升的发展史
多道技术
- 多道技术的前提是在单核cpu的基础上的
单道技术 所有程序按序排队,耗时久,效率低
多道技术 计算机空闲时提前准备好一些数据,提高效率,耗时变短
通俗来说多道技术就是在做一件事的时候,在空余时间做其他事
- 切换+保存状态
- 1.切换
- CPU在两种下会切换(去执行其他程序)
1.程序自身进入IO操作 IO操作:输入输出操作 获取用户输入 time.sleep() 读取文件 保存文件 2.程序长时间占用CPU
- CPU在两种下会切换(去执行其他程序)
- 2.保存状态
- 每次切换之前要记录当前的执行状态,之后切回后基于当前状态执行(如app的界面一般)
- 1.切换
进程理论知识
- 进程的理解
- 正在被运行的程序
- 进程的调度算法
- 先来先服务算法
- 针对耗时短的程序不友好
- 短作业优先调度
- 针对耗时久的程序不友好
- 时间片轮转法+多级反馈队列
将都固定的个时间分为多份,每个程序分到一份 分配多次后还有程序运行就分到下一层 越往下表示程序总耗时越长,每次分到的时间片就越多,优先度变低 如果新来一个程序就会先运行新来的程序
- 先来先服务算法
进程的并行与并发
- 并行
- 多个进程同时执行
- 无法通过单个cpu实现,需要多个cpu
- 多个进程同时执行
- 并发
- 多个进程看上去像被同时执行
- 可以通过单个cpu实现(就是时间片轮转法+多级反馈队列)
- 并行也属于并发
- 多个进程看上去像被同时执行
- 描述一个网站厉害通常说的是并发量(高并发),使用高并行描述不太合理
进程的三种状态
1.所有的进程要想被运行 必须先经过就绪态
2.运行过程中如果出现了IO操作 则进入阻塞态
3.运行过程中如果时间片用完 则继续进入就绪态
4.阻塞态要想进入运行态必须先经过就绪态
- 阻塞
- 阻塞态
- 非阻塞
- 就绪态
- 运行态
同步与异步
- 同步
- 提交完任务之后原地等待结果,期间不做任何事
- 异步
- 提交完任务后直接去做其他事,自动提醒结果
同步异步与阻塞非阻塞
- 同步阻塞
- 类似于在银行排队,什么时都不做
- 同步非阻塞
- 类似于在银行排队,等待过程中你可以做一点其他事
- 异步阻塞
- 类似于医院挂号,等待叫号,期间什么都不做
- 异步非阻塞
- 类似于医院挂号,等待叫号,期间想干什么干什么