单道、多道技术以及进程和它的三状态
多道技术
多道技术的目的:让单核实现并发效果
并发:看起来是同时运行的
并行:真正意义上的同时执行
所以,并行也可以看成并发。需要注意的单核是不可以并行的,但可以并发
现在有任务a和任务b,分别采用单道和多道技术将它们完成
- 多道技术允许多个程序同时进行,并且cpu交替执行
- 从执行任务a切换到执行任务b再切换到任务a,a任务应该是接着运行的,而不是从头开始。所以,多道技术的核心是任务切换加进度保存
- 切换是cpu的任务。当cpu在切换时,分两种情况
- 当一个程序遇到I/O操作时,操作系统会剥夺该程序的cpu执行权限
- 当一个程序长时间占用cpu的时候,操作系统也会剥夺该程序的执行权限
进程
程序是存在硬盘上的一堆代码,她是“死的”。
进程表示正在执行的过程,它是“活的”
进程调度
- 先来先服务调度算法
任务a、b、c、d执行完分别需要3秒,3小时,3秒,3秒。它们按照a→b→c→d的顺序先后来到并执行。先来先调度算法对长作业友好,短作业不友好。 - 短作业优先调度算法
任务a、b、c、d……z执行完分别需要3秒…….3小时。对短作业友好,长作业不友好。 - 时间片论转法+多级反馈队列
进程的三状态图
分析一段代码的运行状态
在执行这个程序之前,我们先要点击run,让这个程序运行:
- 就绪态:当点击完成后,代码会从磁盘读取到内存,进入就绪态,等待cpu运行
- 运行态:执行三行代码
- 阻塞态:遇到了I/O操作,input等待用户输入
- 就绪态
- 运行态:运行一行代码
- 阻塞态:遇到I/O操作,time.sleep(5)暂停五秒
- 就绪态
- 运行态:执行一行代码
- 阻塞态:碰到I/O操作,打印d
- 最后没有代码了,操作系统释放资源,程序退出
同步和异步
同步和异步是用来描述任务的提交方式的
- 同步:任务提交后,原地等待任务的返回结果,等待过程中不做任何事情
- 异步:任务提交后,不在原地等待任务返回结果,而是直接去做其他事
阻塞和非阻塞
阻塞和非阻塞是用来描述进程的运行状态的
- 阻塞态
- 非阻塞态:运行态和就绪态
同步阻塞,同步非阻塞,异步阻塞,异步非阻塞 。异步非阻塞是我们程序所追求的完美状态。
今天的文章
单道和多道运行程序的时序图_单道程序和多道程序之间有何区别分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81263.html