博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程调度算法之 先来先服务 短任务优先 和 时间片轮选
阅读量:4105 次
发布时间:2019-05-25

本文共 1240 字,大约阅读时间需要 4 分钟。

               

        我们知道, 引入多进程后, 操作系统可以同时将多个进程载入到内存中。 如此一来, 在内存中便有多个进程存在, 但是, 对于单cpu来说, 任何一个时刻, 只有一个进程占据cpu. 那么, 为了让各个进程舒服满意, 操作系统该如何进行进程调度呢(也就是把cpu分配给谁)? 本文, 我们来介绍最简单的三个进程调度算法------“先来先服务”、“短任务优先”和“时间片轮选”。

        读初中时, 大家在吃完饭后, 都需要去洗碗, 由于水龙头比较少, 所以大家经常处于等待状态。 此时, 水龙头就相当于一个cpu, 是稀缺的资源, 每个同学需要去争它, 大家经常为争抢水龙头而打架, 那些争抢水龙头的场景, 历历在目。

        某次, 我拿了一个桶去接水, 大概要3分钟才能接满吧, 我正在接水的时候, 走来一个小伙子, 准备洗碗, 应该只需要10秒就能接满水。 没有经过我的同意, 他直接用饭碗去抢我的龙头, 结果, 饭粒就掉进我的桶里里面, 我当然很生气, 接下来的事, 我就不说了。

        为什么会产生上述的矛盾呢? 原来, 接水的默认操作是先来先服务, 我接水需要3分钟, 他接水需要10秒钟, 刚好我先来, 他自然是不乐意等待了。

        现在假设有进程A, 需要3分钟执行完毕; 有进程B, 需要 10秒执行完毕。  进程调度算法为先来先服务。 

        如果进程A先抢到cpu, 那么进程A自然是很happy的, 但进程B估计该骂脏话了, 心想, 还要等3分钟, 我才能执行, 我不干。

        如果进程B先抢到cpu, 那么进程B自然是很happy啊, 此时, 进程A并不会太恼火, 因为进程A心想, 我大不了就等10秒钟再执行。

        在进程A先到的情况下, 先来先服务的进程调度机制极不合理, 所以, 迫切需要做出改变。

        进程B自然想, 要是耗时短的先执行, 那该多好啊。 对了, 这个就是短任务优先的调度算法。 这样, 进程B满意了, 10秒钟就搞完了, 进程A也没有啥不满意的。

        但是, 进程A真的满意么? 如果进程A的脾气比较臭, 它自然不爽啊, 心想: 我先来, 凭什么让你这个B进程先享受服务? 所以, 进程A想: 为了公平起见, 每个人用cpu 5秒钟, 然后把cpu归还给对方使用。 这就是所谓的时间片轮选的调度算法。

        进程B听了这话, 还是比较高兴的, 因为即使进程A先来, 进程B也可以在20秒钟之内完成任务。 而进程A呢? 也不用长期饥渴地等待, 也让cpu间隔5秒滋润一下自己的心灵。

       其实, 上述的一些进程调度算法各有优缺点, 我们也仅仅是举了三个简单的例子进行说明, 实际上,调度算法还有很多种, 比如优先级调度算法、混合调度算法等等, 总之, 进程调度算法需要综合考虑:尽可能最小化平均效应时间、最大化系统吞吐率、保持系统各个部分处于繁忙状态。 毕竟, 谁愿意看到你闲呢?

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!

转载地址:http://pscsi.baihongyu.com/

你可能感兴趣的文章
google编码规范
查看>>
QTextCodec中的setCodecForTr等终于消失了 (Qt5)
查看>>
Mac OSX 常用软件下载页面集锦(持续更新)
查看>>
Clover使用笔记(持续更新)
查看>>
使用idsdt制作生成显卡代码的dsdt文件驱动显卡
查看>>
解决OSX 10.9 HD4000 屏幕亮度低的问题
查看>>
解决app store里出现他人账号下载的程序无法更新问题
查看>>
黑苹果Mac系统快捷键修改
查看>>
三步教你鉴别iPad阴阳屏
查看>>
Lua简明教程
查看>>
如何在多台机器上共享IOS证书
查看>>
轻松搞定ThinkPad T530蓝牙驱动
查看>>
T530 在 Linux Mint 16 上使用指纹识别
查看>>
Linux Mint 16安装 Acrobat reader
查看>>
Win8.1下开机自动启动Outlook2013并最小化的方法
查看>>
VS2013编译Qt5.2.0 32位静态库debug-and-release版及结果分享
查看>>
15分钟学会使用Git和远程代码库
查看>>
一个自制X230白名单的方法
查看>>
如何禁用Mac系统的Spotlight
查看>>
将 Chrome 书签导入到 Mac OS X 下的 Safari
查看>>