操作系统中长期调度、中期调度和短期调度之间的区别

在许多进程或线程都准备使用CPU进行任务处理时,就会存在资源竞争和分配的问题。一般都会将进程或线程先放在一个缓冲池中,等待合适的时机调度程序从中选择一个进程或线程进行交给CPU进行处理。

如上图所示,在调度中,分为长期、中期和短期三种。

长期调度,又称为作业调度或高级调度,这种调度将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并进入主机,当该作业执行完毕时,还负责回收系统资源,在批处理系统中,需要有作业调度的过程,以便将它们分批地装入内存,在分时系统和实时系统中,通常不需要长期调度。它的频率比较低,主要用来控制内存中进程的数量。

中期调度,又称为交换调度。它的核心思想是能将进程从内存或从CPU竞争中移出,从而降低多道程序设计的程度,之后进程能被重新调入内存,并从中断处继续执行,这种交换的操作可以调整进程在内存中的存在数量和时机。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或内存等待状态的进程交换到外存交换区。

短期调度,又称为进程调度、低级调度或微观调度。这也是通常所说的调度,一般情况下使用最多的就是短期调度。它的主要任务是按照某种策略和算法将处理机分配给一个处于就绪状态的进程,分为抢占式和非抢占式。

可以从下图中清晰的看到这些调度之间的区别。

从另一个角度来说,短期调度执行的频率最高。短期调度在内存作业中选择就绪执行的作业,并为他们分配CPU。中期调度作为一种中等程度的调度程序,尤其被用于分时系统,一个交换方案的实施,将部分运行程序移出内存,之后,从中断处继续执行,从而改善进程组合或者因内存要求的改变引起了可用内存的过度使用而需要释放内存。长期调度确定哪些作业调入内存以执行. 它们主要的不同之处是它们的执行的频率。短期调度必须经常调用一个新进程,由于在系统中,长期调度处理移动的作业时,并不频繁被调用,可能在进程离开系统时才被唤起。

时间: 2024-10-03 09:22:53

操作系统中长期调度、中期调度和短期调度之间的区别的相关文章

操作系统-处理机调度

操作系统-处理机调度 调度的实质是资源的分配,而处理机的调度是对处理机资源的调度 调度的层次 高级调度 高级调度的调度对象是作业,只要用于多道批处理程序,在分时和实时系统中不设置高级调度 作业 作业是一个比程序更为广泛的概念,不仅包含了通常的程序和数据,还配有一份作业说明书,它和进程,线程一样有控制块,作业的叫做作业控制块JCB 任务 根据JCB中的信息检查系统中的资源能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取作业调入内存,并未它们创建进程,分配资源,然后将新进程排

一篇让你明白进程与线程之间的区别与联系

前言 欢迎关注公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识! 本章主要介绍进程与线程的区别与联系相关知识点,也是我们面试过程中,经常会问到的了一个问题.希望通过这篇文章,能让大家理解相关知识点~ 涉及面试题: 1.进程与线程之间有什么区别? 2.进程.线程都各有什么特点? 3.进程之间的是怎么进行交互的呢? 4.什么是缓冲区溢出? 5.进程之间如何进行交互? 6.线程之间如何进行交互? 上面的面试题可以看出,其实都是一回事,只是换了一种提问方式,只要我们能掌

socket,tcp,http三者之间的区别和原理

http.TCP/IP协议与socket之间的区别下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置: 7 应用层 例如HTTP.SMTP.SNMP.FTP.Telnet.SIP.SSH.NFS.RTSP.XMPP.Whois.ENRP 6 表示层 例如XDR.ASN.1.SMB.AFP.NCP 5 会话层 例如ASAP.TLS.SSH.ISO 8327 / CCITT X.225.RPC.NetBIOS.ASP.Winsock.BSD sockets 4 传输层 例如TC

servlet与Javabean之间的区别

在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean/>调用JavaBean而其他类,可以和一般java中一样使用.  Bean的参数中还可以指定范围, <jsp:useBean   scope="application"   />该Bean在服务器的JVM中将只有一个实例. Bean是和WebServer相关的,不同的页面可以通过Bean 交互.

UTF-8 GBK UTF8 GB2312之间的区别和关系

UTF-8 GBK UTF8 GB2312之间的区别和关系 UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM.是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码.UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强.UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示.如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包.

C++运行字符编码于MSVC和GCC之间的区别

详细请参考这篇博文 http://blog.csdn.net/dbzhang800/article/details/7540905 运行字符编码就是指,当你源代码写下const char* p = "我";的时候(不管源文件保存为什么编码格式,但标准规定源文件带bom utf8),编到二进制模块内的常量p的内容究竟是什么编码,GBK?UTF8?还是其他? C++根据编译器不同,有不同的行为: GCC可以使用编译参数指定 而MSVC是根据操作系统"非Unicode程序的语言&q

Activex、OLE、COM、OCX、DLL之间的区别(转)

先明确组件(Component)和对象(Object)之间的区别: 组件是一个可重用的模块,它是由一组处理过程.数据封装和用户接口组成的业务对象(Rules Object).组件看起来像对象,但不符合对象的学术定义. 它们的主要区别是: 1)组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用: 2)组件可以由一个类构成,也可以由多个类组成,或者是一个完整的应用程序: 3)组件为模块重用,而对象为代码重用.现在,比较流行的组件模型有COM(Component

Ubuntu桌面版本和服务器版本之间的区别(转载)

转载自:http://blog.csdn.net/fangaoxin/article/details/6335992 http://www.linuxidc.com/Linux/2010-11/29740.htm 7天免费VPN服务:http://eaesoftvpn.azurewebsites.net/ 说道Linux想必ubuntu的大名大家早就听说,很多都是因为知道ubuntu才知道linux的.但是要提到安装ubuntu那颗就有点犯难了,因为ubuntu的版本太多了,选择哪个安装呢?这确

云计算模型laas paas saas 三者之间的区别(转)

云计算模型的三种模型 – 基础架构即服务(IaaS).软件即服务(SaaS)和平台即服务(PaaS) —— 正在快速演变.而云服务提供商都试图在模式栈的上下两个方向进行扩展,以期能提供一站式的IT服务. Jeffrey Kaplan是咨询公司ThinkStrategies Inc.的常务董事,他认为首先了解历史有助于理解三种模式是如何进化交融的.首先,从SaaS谈起. 在2006年,Salesforce.com吸引其客户关系管理(CRM)SaaS服务最终用户(而不是IT人员)的战略初见成效,其他