设计一个按优先数调度算法实现处理器调度的程序_计算机中的程序都是怎么运行的,来深入了解一下吧...

在现代计算机操作系统中,总是会保持多道程序环境。一个作业被提交后,通常经过作业调度和进程调度后,才能获得处理机。有时为提高内存利用率,还会设置中程调度。那我们先来了解一下处理机调度的层次吧。

55d59bb6a91107c3b6063aab6abecda2.png

高级调度,又称作业调度,它的调度对象是作业。主要是根据某种算法,决定使外存上的哪几个作业调入内存,然后创建进程、分配资源,等待处理机。高级调度一般不放入分时系统和实时系统。

低级调度,又称进程调度,主要对象是进程。根据某种算法,决定就绪队列上的哪个进程获得处理机。低级调度是最基本的一种调度,批处理系统、实时、分时系统中都必须配置。

中级调度,又称内存调度。主要是将暂时不能运行的进程调至外存等待,等他们举办运行条件时在决定是否调入内存。这里主要介绍处理机调度,中级调度会在后续介绍存储器时详细讲解。

ff726e3587ed36eeb58f52c3ec3fe0e4.png

这三种调度中,进程的运行频率最高,所以低级调度运行最多、占时最少的。作业调度周期最长,基本上好几分钟一次。中程调度介于上述两者之间。

操作系统的设计中,是要有明确的目标,而它们的目的也不一样,处理机调度算法是为了提高资源利用率、保证各进程之间的公平性和平衡性,还有必要时的策略强制执行。批处理系统追求的是平均最低周转时间、系统吞吐量、处理机利用率高。分时系统的首要目的是响应时间快,用户请求服务与系统响应时间相适应。实时系统的目标是,保证任务开始执行的最短时间和完成的最迟时间,系统中的进程的可预测性。

087645a5869e93beb329aef1f20cf609.png

接下来就详细说明一下作业调度和进程调度。

作业作为一个比程序更大的概念,不仅包含了通常的程序和数据,还应配有一份作业说明书。在批处理系统中,作业是基本单位。而我们为了管理和调度作业,就设置了一个作业控制块,作为作业在系统中存在的标志,保存有系统对作业进行管理和调度所需的全部信息。

807e84b5767479ee8c85beb7561ea2a3.png

作业运行也分为三个阶段和三种状态,通常需要经历收容、运行和完成三个阶段,所以也有后备状态、运行状态、完成状态。

作业调度的主要工作其实很简单,判断并决定从后备队列中选取多少作业进入内存,并根据系统的多道程序度进行抉择。还需要选择接纳哪些作业,这取决于所采用的调度算法,比如常用的短作业优先算法,还有响应比高者优先算法等,小编会在后续文章中详细介绍。

c02d9be40bb63fba14c3c2ea91fa1826.png

进程调度,它的主要任务有三个:保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程。为了实现进程调度,在进程调度机制中,具备了三个基本部分:排队器、分配器、上下文切换器。而关于进程调度的方式,也引入了抢占方式和非抢占方式加强控制。非抢占方式,把处理机分配给进程后就只能等待进程完成,及其不利于分时方式和实时方式,所以就引入了抢占方式,根据它的主要原则分为:优先权、短进程优先和时间片原则。

这些大概就是操作系统调度的大体框架了,下一篇文章会详细介绍调度算法的内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 查看锁_SQL-mysql锁等待与死锁

一 前言本篇是MYSQL高级进阶篇内容第二篇,学习本篇的基础是知识追寻者之前发布过的文章,尤其是《MYSQL架构入门篇》重中之重;《SQL-你真的了解什么SQL么?》《SQL-小白最佳入门sql查询一》《SQL-小白最佳入门sql查询二》《SQL- 多年…

(转)HBase二级索引与Join

二级索引与索引Join是Online业务系统要求存储引擎提供的基本特性。RDBMS支持得比较好,NOSQL阵营也在摸索着符合自身特点的最佳解决方案。 这篇文章会以HBase做为对象来探讨如何基于Hbase构建二级索引与实现索引join。文末同时会列出目前已知的包括0.19.3版secondary…

mysql主要的收获_MySQL性能测试大总结

以下的文章主要是介绍MySQL性能测试的结论,我们大家都知道MySQL数据库在实际实用度主要是取决于MySQL数据库的性能,以下的文章主要就是对MySQL性能测试的一个总结,望你看完之后会有所收获。好像是zdnet的实验室做得一个权威测试吧sqlserver在…

RDD模型

Spark是Berkeley大学AMP(stands for Algorithms, Machines, and People)实验室开发的一个项目。它是一个基于RDD(Resilient Distributed Datasets)模型,能够支持计算MapReduce模式的作业,主要用于迭代计算和…

ConcurrentHashMap,一个更快的HashMap

ConcurrentHashMap 是 Doug Lea 的 util.concurrent 包的一部分,它提供比 Hashtable 或者 synchronizedMap 更高程度的并发性。而且,对于大多数成功的 get() 操作它会设法避免完全锁定,其结果就是使得并发应用程序有着非常好的吞吐量。这个月…

python处理图片隐写分析_Python3简单实现隐写术

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解导语利用Python简单实现图片隐写术。。。或者说是水印技术。。。说实话,真的只是简单实现。。。没什么技术含量。。。可以说是入门级的隐写术/水印技术。。。Lets Go?相关文件密码: 9ffy开发工…

流程图中的虚线含义_还在为画流程图烦恼,焦躁?介绍一款画图神器,让你爱上画图!...

在团队协作过程中最常见的就是开会、开会最常用的就是图,而图中最常见的就是流程图,时序图,类图等下面介绍一款画图神器:PlantUMLPlantUML是一个开源项目,支持快速绘制:时序图用例图类图活动图组件图状态图…

有限状态自动机java实现_用java开发编译器之:Thompson构造,将正则表达式转换为有限状态自动机...

阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程:上一节,我们通过代码,实现了一个有限状态自动机,并将其应用于对整形和浮点数的识别。构造有限状态自动机,并驱动它&#xf…