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

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

多道技术

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

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

现在有任务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. 最后没有代码了,操作系统释放资源,程序退出

同步和异步

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

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

阻塞和非阻塞

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

  • 阻塞态
  • 非阻塞态:运行态和就绪态
    同步阻塞,同步非阻塞,异步阻塞,异步非阻塞 。异步非阻塞是我们程序所追求的完美状态。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈有点东西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值