我们在操作系统中常常会碰到CPU和输入输出等设备调度的题目,需要画出甘特图才能比较直观地看出每个进程不同进程之间的时序关系。这里分享一下甘特图的作图技巧,这种题目分两种,分别是可抢占优先权调度不可抢占优先权调度

可抢占优先权调度

这种情况非常简单,我们只需要从优先级最高的进程开始画,然后画优先级次高的进程……直到画完所有进程。
原因:由于可抢占,优先级高的进程需要某个设备的时候,必定是先分配给它的,优先级最高的应用可以无视其他进程,当做只有整个系统只有它一个进程。优先级次高的进程在优先级最高进程的基础上再分配给他设备,之后按照优先级从高到低画完所有进程。

例题(来自王道考研2020操作系统单科书)


先画优先级最高的P1进程

再画P2进程

最后画P3进程

不可抢占优先权调度

不可抢占可能对于操作系统实现上比较简单,但是对于画甘特图来说,其实并不简单。原因是我们无法像可抢占优先权调度那样逐一画出每个进程的甘特图,优先级高的进程由于无法抢占低优先级进程正在使用的设备必须等待,多个等待进程有需要选择优先级最高的,这样对于手画甘特图就带来了很大的复杂性。下面我介绍的方法其实就是模拟计算机调度的过程,只不过把这个过程总结出来,通过练习熟练掌握。主要分两步:调度和切换

1、设备

记录当前某个设备是空闲还是被某个进程占用,该进程需要有三个属性:进程名称,开始时间,运行时长

2、等待队列

记录当前某个设备的等待队列中的进程,队列中元素包含三个属性:进程名称,入队时间,运行时长

3、当前时刻(now)

第一步

若某一个设备在当前时刻(now)空闲,则从他的等待队列中选择入队时间小于now且优先级最高的进程选择调度,将该设备分配给它,它的开始时间为now

第二步

在设备中,选择正在工作的设备里,开始时间加上运行时长的和最小的值更新当前时刻。

第三步

将设备中,各个设备正在运行的设备如果等于当前时刻,则将它切换,通过进程名称,开始时间,运行时长等信息来画图,然后将该进程下一个对于设备的需求加入相应的等待队列,其入队时间为当前时刻。

第四步

重复第一步

例题(来自王道考研2020操作系统单科书)


过程步骤过于繁杂,直接给出最后结果

操作系统-进程甘特图画法相关推荐

  1. python动态横道图_Python数据可视化:甘特图画法

    大家好,我是一名Python数据分析师,我想把自己转行成功之路上的经验分享给大家,由此就有了我的人工智能四部曲:<15天学会Python编程>.<每天10分钟,用Python学数据分 ...

  2. 怎么画好一个项目甘特图(内附实用模板)

    作者|鲁佳 出品|阿里巴巴新零售淘系技术部 导读:甘特图是一个非常实用的项目管理工具.在阿里的日常项目工作中,不管是 PD 还是开发同学,大家普遍都会遇到需要规划项目工作安排的情况,这个时候画一个甘特 ...

  3. 使用Python画作业调度甘特图

    文章目录 一.背景 二.方案比较 Matplotlib方案 Plotly方案 三.实现方案 以柔性作业调度问题用例MK01的最佳调度图 未使用annotations进行配置修改画图效果 Matlab方 ...

  4. wps 甘特图_【WPS神技能】在Excel表格中用图表阶梯式的展示任务进程?找甘特图呀...

    当我们在Excel表格中制作项目计划时,如何将项目进程更直观的表现出来呢? 这时候,少不了的自然是"条形图"呀,而普通的计划表通过条形图的展示+美化后,得到的甘特图会让整个项目表更 ...

  5. 甘特图(别名:横道图、条状图)的画法

    简介: 甘特图(Gantt chart )又叫横道图.条状图(Bar chart).它是以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.在处理多道批处理系统问题时,有时 ...

  6. 【中级软考—软件设计师】2操作系统2.5进程资源图【**】:2.5.1进程资源图

    考察: 主要考察节点的情况,是否会产生死锁 了解图示中的一些含义 知道在资源分配当中如何体现死锁这样的一个描述 进程资源图 进程资源图是表示资源调度的一种方式 进程资源图是某一时刻它的静态状况 进程资 ...

  7. 超简单甘特图教程,一招教你如何管理项目进程

    甘特图可以让使用对象能更直观的了解到项目在某一时间的内容和进展,当然,它也不同于时间表或日程规划表,而是一个具有特殊代表性的甘特图. 甘特图常见用途 甘特图不仅仅是用来作业排序的,也可用于发展各式各样 ...

  8. 甘特图(Gantt Chart)画法1.Excel;2.Edraw Project

    建议使用Edraw Project画甘特图,缺点是收费软件. 一.Excel画甘特图 1.在excel中建数据: 任务 开始时间 结束时间 耗时(h) 需求评审 2019/11/1 2019/11/5 ...

  9. html 甘特图_工具项目管理工具详解——甘特图

    作为项目的负责人,"时间管理"也是极为重要的一环.甘特图作为常用的项目管理工具之一,有助于把一个大型项目划分为几个小部分,并有条理地展示. 甘特图(Gantt chart)又称为横 ...

  10. VARCHART XGantt—世界级甘特图大师

    2019独角兽企业重金招聘Python工程师标准>>> VARCHART XGantt是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户需求的应用程序.除此之外,V ...

最新文章

  1. 【opencv】7. cv::VideoWriter的使用,把图片写进video
  2. Servlet 输出中文乱码的新收获(1)
  3. python和java选择哪个-python和java哪个学起来更简单
  4. nginx.conf 配置完整示例
  5. 关于打造超级产品,初创型企业如何找到巨头的“阿喀琉斯之踵”?
  6. 车牌识别SDK原理分析
  7. 【python】db.Column(db.Integer, primary_key=True, autoincrement=True)
  8. access工资明细表_利用ACCESS数据库报表功能制作工资条
  9. DDOS攻击防护HTTP篇
  10. 企业微信对外收款有限额吗?
  11. Windows10各版本的区别、我们应该如何选择Windows10的系统版本?
  12. 洛谷刷题——P1255 数楼梯
  13. MRM:基于ISMRM研究与欧洲痴呆研究动脉自旋灌注成像临床应用的补充建议
  14. 可以两人一起记日记的共享记事本app有哪些
  15. ng-tv-focusable
  16. 使用百度EasyDL实现森林火灾预警识别
  17. 【FLink】access closed classloader classloader.check-leaked-classloader
  18. 三坐标检测基础知识之内腔孔测针选型
  19. 第五十六章 SQL命令 INSERT OR UPDATE
  20. 移动考勤管理系统有什么优势?

热门文章

  1. DSP48E功能描述
  2. 4.React Native项目开发如何配置调试
  3. 猿类必备:Zeplin 用法介绍
  4. MMORPG游戏优化报告
  5. 常用的几个好用的php集成开发环境
  6. R语言创建空数据框(Empty Data Frame )用于追加数据
  7. udal导mysql_teledb-udal实践分享
  8. HNU 12814 SIRO Challenge(最短路+状态压缩+dp)
  9. Linux搭建LAMP、LNMP环境;论坛的搭建;
  10. 如何制作优秀的数据可视化报告(学习篇)