单道和多道运行程序的时序图_单道程序和多道程序之间有何区别

单道和多道运行程序的时序图_单道程序和多道程序之间有何区别多道技术的目的:让单核实现并发效果并发:看起来是同时运行的并行:真正意义上的同时执行所以,并行也可以看成并发

单道、多道技术以及进程和它的三状态

多道技术

多道技术的目的:让单核实现并发效果

并发:看起来是同时运行的
并行:真正意义上的同时执行
所以,并行也可以看成并发。需要注意的单核是不可以并行的,但可以并发

现在有任务a和任务b,分别采用单道和多道技术将它们完成
image

  • 多道技术允许多个程序同时进行,并且cpu交替执行
  • 从执行任务a切换到执行任务b再切换到任务a,a任务应该是接着运行的,而不是从头开始。所以,多道技术的核心是任务切换加进度保存
  • 切换是cpu的任务。当cpu在切换时,分两种情况
    1. 当一个程序遇到I/O操作时,操作系统会剥夺该程序的cpu执行权限
    2. 当一个程序长时间占用cpu的时候,操作系统也会剥夺该程序的执行权限

进程

程序是存在硬盘上的一堆代码,她是“死的”。
进程表示正在执行的过程,它是“活的”

进程调度

  1. 先来先服务调度算法
    任务a、b、c、d执行完分别需要3秒,3小时,3秒,3秒。它们按照a→b→c→d的顺序先后来到并执行。先来先调度算法对长作业友好,短作业不友好。
  2. 短作业优先调度算法
    任务a、b、c、d……z执行完分别需要3秒…….3小时。对短作业友好,长作业不友好。
  3. 时间片论转法+多级反馈队列

image_7

进程的三状态图

image_9

分析一段代码的运行状态

image_e
在执行这个程序之前,我们先要点击run,让这个程序运行:

  1. 就绪态:当点击完成后,代码会从磁盘读取到内存,进入就绪态,等待cpu运行
  2. 运行态:执行三行代码
  3. 阻塞态:遇到了I/O操作,input等待用户输入
  4. 就绪态
  5. 运行态:运行一行代码
  6. 阻塞态:遇到I/O操作,time.sleep(5)暂停五秒
  7. 就绪态
  8. 运行态:执行一行代码
  9. 阻塞态:碰到I/O操作,打印d
  10. 最后没有代码了,操作系统释放资源,程序退出

同步和异步

同步和异步是用来描述任务的提交方式的

  • 同步:任务提交后,原地等待任务的返回结果,等待过程中不做任何事情
  • 异步:任务提交后,不在原地等待任务返回结果,而是直接去做其他事

阻塞和非阻塞

阻塞和非阻塞是用来描述进程的运行状态的

  • 阻塞态
  • 非阻塞态:运行态和就绪态
    同步阻塞,同步非阻塞,异步阻塞,异步非阻塞 。异步非阻塞是我们程序所追求的完美状态。

今天的文章
单道和多道运行程序的时序图_单道程序和多道程序之间有何区别分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81263.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注