CN1825288A - 嵌入式sram操作系统进程多队列调度的实现方法 - Google Patents

嵌入式sram操作系统进程多队列调度的实现方法 Download PDF

Info

Publication number
CN1825288A
CN1825288A CN 200610050119 CN200610050119A CN1825288A CN 1825288 A CN1825288 A CN 1825288A CN 200610050119 CN200610050119 CN 200610050119 CN 200610050119 A CN200610050119 A CN 200610050119A CN 1825288 A CN1825288 A CN 1825288A
Authority
CN
China
Prior art keywords
priority
processor
pcb
queue
ready
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200610050119
Other languages
English (en)
Inventor
陈天洲
胡威
沙峰
连毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN 200610050119 priority Critical patent/CN1825288A/zh
Publication of CN1825288A publication Critical patent/CN1825288A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种嵌入式SRAM操作系统进程多队列调度的实现方法。在嵌入式SRAM操作系统中,将就绪进程分为两级或多级,系统相应建立两个或多个就绪进程队列,较高优先级的队列一般分配给较短的时间片。处理器调度每次先从高级的就绪进程队列中选取可占有处理器的进程,只有在选不到时,才从较低级的就绪进程队列中选取。本发明的方法有利于处理多进程状态下操作系统内部的调度问题,能够提供一个良好的进程调度性能。

Description

嵌入式SRAM操作系统进程多队列调度的实现方法
技术领域
本发明涉及嵌入式系统进程调度领域,特别是涉及一种嵌入式SRAM操作系统进程多队列调度的实现方法。
背景技术
在计算机系统中,可能同时有数百个批处理作业存放在磁盘的作业队列中,或者有数百个终端与主机相连接。如何从这些作业中挑选作业进入主存运行、如何在进程之间分配处理器时间,无疑是操作系统资源管理中的一个重要问题。这一涉及处理机分配的问题,称之为处理机调度。
我们经常遇到两个或多个进程在逻辑上均可以运行的情况。当有多个进程就绪时,操作系统必须决定先运行哪一个。操作系统中作出这种决定的部分称作调度程序(Scheduler)。
早期以磁带上的卡片映像作为输入的批处理系统时代的调度算法很简单:依次运行磁带上的下一个作业。对于分时系统,则调度算法要复杂一些即使在个人电脑上,也可能有若干用户启动的进程竞争CPU,更不要说还有后台作业,例如网络或收发电子邮件的精灵进程。
一个好的处理机调度应当考虑很多方面,其中可能有:
公平:确保每个进程获得合理的CPU份额。
有效:使CPU百分之百地忙碌。
响应时间:使交互用户的响应时间尽可能短。
周转时间:使批处理用户等待输出的时间尽可能短。
吞吐量:使每小时处理的作业数最多。
对这些目标稍加思考便会发现其中有矛盾之处。可以证明任何一个偏向某些类型作业的调度算法必将损害另一些作业。毕竟可利用的CPU时间是有限的。
调度程序必须面对的另一个麻烦是每个进程都不一样,而且不可预测。有些进程花费很多时间等待I/O,而另一些进程在允许的条件下将连续使用CPU达几个小时。为了保证不让进程运行得太久,几乎所有的计算机都内置一个电子定时器或时钟,它将定期地发出中断。在许多计算机上,操作系统能够根据需要将时钟频率设置成任意值。每发生一次时钟中断,操作系统都将运行,并决定当前进程是否应继续运行,还是它已经占用了足够长的CPU时间,应该暂停让其他进程运行。
允许将逻辑上可运行的进程暂时挂起的策略称作可剥夺调度(PreemptiveScheduling)。运行直到结束的调度方式称作非剥夺调度(NonpreemptiveScheduling)。进程可在任意时刻被不加警告地挂起,以便让另一个进程运行。这导致了竞争条件以及防止竞争条件的信号量、管程、消息或其他复杂的方法。另一方面,允许一个进程运行它所希望的时间意味着一个计算圆周率小数点后边十亿位的进程将使其他进程永远得不到服务。
所以尽管非剥夺调度简单且易于实现,但它通常不适于具有多个竞争用户的通用系统。另一方面,对于专用系统,如一个数据库服务器,主进程在收到请求时启动一个子进程并让其运行直到结束或阻塞则是很合理的。
因此通常对于不同的任务进程,会采用不同的调度方法。作为嵌入式SRAM操作系统,其特点是操作系统位于SRAM中,因此也需要采用建立在SRAM基础的调度方法。
发明内容
本发明的目的在于提供一种嵌入式SRAM操作系统进程多队列调度的实现方法。
本发明解决其技术问题采用的技术方案如下:
1)记住进程的状态
在进程被创建进入就绪态,或者从其他状态进入到就绪状态,它们会被加入到一个就绪队列,对于每一个,记住进程的状态,这个信息一般记录在一个进程的进程控制块内;
2)给出进程优先数
每一个进程给出一个优先数,相同优先数的进程,被划分到同一个优先队列,对于具有高优先权的进程,将首先被分配执行;
3)进程选择
对于每个进入到就绪队列的进程,它的PCB中都记录了该进程的详细信息,处理器在调度之前,读取进程PCB中记录的进程优先权的条目,处理器将把CPU分配给就绪队列中优先权值相同的进程中的首进程;
4)处理器分配
把选中进程的进程控制块内有关现场的信息,送入处理器相应的寄存器中,从而让它占用处理器运行;
5)降低进程优先级
进程在占用处理器运行时,是由于其优先级较高,在进程从处理器退出时,为了保证多队列的进程公平性,将执行后的进程优先级降低一级;
6)收回处理器
当进程分配到的时间片用完时,发生中断,将处理器有关寄存器内容送入该进程的进程控制块内的相应单元,从而使该进程让出处理器,进入低一优先级的队列。
本发明与背景技术相比,具有的有益的效果是:该方法容易实现,并且对于优先级较高的进程,其占用CPU的时间也较长,有利于对于不同的进程进行分别处理,多个优先级队列的设立,以及在进程退出CPU时优先级降低,有利于避免某些进程过多的占用CPU,同时该方法有效利用当进程位于SRAM中时,当进程对于CPU的使用率较高时,SRAM对于进程调度响应速度快的特点。
附图说明
图1是本发明过程的示意图;
图2是进程控制块的示意图;
图3是进程状态队列的示意图。
具体实施方式
下面结合附图对本发明作进一步的说明。
一种嵌入式SRAM操作系统进程多队列调度的实现方法,图1是本发明实施过程的整体示意图,其具体实施方法如下:
1)记住进程的状态
在进程被创建进入就绪态,或者从其他状态进入到就绪状态,它们会被加入到一个就绪队列,对于每一个,记住进程的状态,这个信息一般记录在一个进程的进程控制块内;
每一个进程都有一个也只有一个进程控制块Process Control Block,简称PCB,是操作系统用于记录和刻划进程状态及有关信息的数据结构,也是操作系统掌握进程的唯一资料结构,它包括了进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。一般说,进程控制块包含三类信息:
标识信息,用于唯一地标识一个进程,常常分由用户使用的外部标识符和被系统使用的内部标识号,几乎所有操作系统中进程都被赋予一个唯一的、内部使用的数值型的进程号,操作系统的其他控制表可以通过进程号来交叉引用进程控制表。常用的标识信息包括进程标识符、父进程的标识符、用户进程名等;
现场信息,用于保留一个进程在运行时存放在处理器现场中的各种信息,任何一个进程在让出处理器时必须把此时的处理器现场信息保存到进程控制块中,而当该进程重新恢复运行时也应恢复处理器现场,常用的现场信息包括通用寄存器的内容、控制寄存器(如PSW寄存器)的内容、用户堆栈指针、系统堆栈指针等;
控制信息,用于管理和调度一个进程。常用的控制信息包括:进程的调度相关信息,如状态、等待事件或等待原因、优先级、采用的进程调度算法、队列指引元等;进程间通信相关信息,如消息队列指针、信号量;进程在二级存储器内的地址;资源的占用和使用信息,如已进程占用CPU的时间、进程已执行的时间总和;进程特权信息,如在内存访问和处理器状态方面的特权;资源清单,包括进程所需全部资源、已经分得的资源;
进程控制块是操作系统中最为重要的数据结构,每个进程控制块包含了操作系统管理所需的所有进程信息,进程控制块的集合事实上定义了一个操作系统的当前状态,进程控制块使用或修改权仅属于操作系统程序,包括调度程序、资源分配程序、中断处理程序、性能监视和分析程序等,有了进程控制块进程才能被调度执行,如图2所示。
2)进程优先权划分
每一个进程给出一个优先数,相同优先数的进程,被划分到同一个优先队列,对于具有高优先权的进程,将首先被分配执行;
可以有以下几种考虑确定优先数,使用外围设备频繁者优先数大,这样有利于提高效率;重要算题程序的进程优先数大,这祥有利于用户;进入计算机时间长的进程优先数大,这样有利于缩短作业完成的时间;交互式用户的进程优先数大,这样有利于终端用户的响应时间等等。
为了防止高优先级进程无休止地运行下去,调度程序可能在每个时钟滴答降低当前进程的优先级。如果这个动作导致其优先级低于次高优先级,则将进行进程切换。或者给每个进程设定一段它能够连续使用CPU的时间片,一旦这段时间用完,则运行次高优先级的进程。优先级可以为静态或动态。
对于那些刚开始运行一段长时间,而后来又需要交互的进程,为了防止其优先级降低过快,可以采取这样的策略:只要终端上有回车键按下,则属于该终端的所有进程都被移到最高优先级,这样做的原因是认为此时进程即将需要交互。但可能有一天,一台重载的机器上有几个用户偶然发现,只需坐在那里每过随机的几秒钟敲一下回车键就可以大大地提高响应速度。
3)进程选择
对于每个进入到就绪队列的进程,它的PCB中都记录了该进程的详细信息,处理器在调度之前,读取进程PCB中记录的进程优先权的条目,处理器将把CPU分配给就绪队列中优先权值相同的进程中的首进程;
一般说来,处于同一状态,例如就绪态的所有进程控制块是连接在一起的,这样的数据结构称为进程队列,简称队列,对于等待态的进程队列可以进一步细分,每一个进程按等待的原因进入相应的队列;
当发生的某个事件使一个进程的状态发生变化时,这个进程就要退出所在的某个队列而排入到另一个队列中去,比如本来在就绪队列中的进程,假如发现需要的文件没有,则进入到挂起就绪队列中去;一个进程从一个所在的队列中退出的工作称为出队,相反,一个进程排入到一个指定的队列中的工作称为入队;处理器调度中负责入队和出队工作的功能模块称为队列管理模块,简称队列管理,如图3所示。
4)处理器分配
把选中进程的进程控制块内有关现场的信息,送入处理器相应的寄存器中,从而让它占用处理器运行;
5)降低进程优先级
进程在占用处理器运行时,是由于其优先级较高,在进程从处理器退出时,为了保证多队列的进程公平性,将执行后的进程优先级降低一级。
6)收回处理器
当进程分配到的时间片用完时,发生中断,将处理器有关寄存器内容送入该进程的进程控制块内的相应单元,从而使该进程让出处理器,进入低一优先级的队列。

Claims (1)

1.一种嵌入式SRAM操作系统进程多队列调度的实现方法,其特征在于:
1)记住进程的状态
在进程被创建进入就绪态,或者从其他状态进入到就绪状态,它们会被加入到一个就绪队列,对于每一个,记住进程的状态,这个信息一般记录在一个进程的进程控制块内;
2)给出进程优先数
每一个进程给出一个优先数,相同优先数的进程,被划分到同一个优先队列,对于具有高优先权的进程,将首先被分配执行;
3)进程选择
对于每个进入到就绪队列的进程,它的PCB中都记录了该进程的详细信息,处理器在调度之前,读取进程PCB中记录的进程优先权的条目,处理器将把CPU分配给就绪队列中优先权值相同的进程中的首进程;
4)处理器分配
把选中进程的进程控制块内有关现场的信息,送入处理器相应的寄存器中,从而让它占用处理器运行;
5)降低进程优先级
进程在占用处理器运行时,是由于其优先级较高,在进程从处理器退出时,为了保证多队列的进程公平性,将执行后的进程优先级降低一级;
6)收回处理器
当进程分配到的时间片用完时,发生中断,将处理器有关寄存器内容送入该进程的进程控制块内的相应单元,从而使该进程让出处理器,进入低一优先级的队列。
CN 200610050119 2006-03-31 2006-03-31 嵌入式sram操作系统进程多队列调度的实现方法 Pending CN1825288A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610050119 CN1825288A (zh) 2006-03-31 2006-03-31 嵌入式sram操作系统进程多队列调度的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610050119 CN1825288A (zh) 2006-03-31 2006-03-31 嵌入式sram操作系统进程多队列调度的实现方法

Publications (1)

Publication Number Publication Date
CN1825288A true CN1825288A (zh) 2006-08-30

Family

ID=36935974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610050119 Pending CN1825288A (zh) 2006-03-31 2006-03-31 嵌入式sram操作系统进程多队列调度的实现方法

Country Status (1)

Country Link
CN (1) CN1825288A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751289B (zh) * 2008-12-19 2013-07-17 深圳市民德电子科技有限公司 一种嵌入式实时操作系统的混合调度方法
WO2018082570A1 (zh) * 2016-11-02 2018-05-11 华为技术有限公司 I/o请求的调度方法及装置
CN111274024A (zh) * 2019-03-19 2020-06-12 中标软件有限公司 基于cfs调度器的就绪队列平均负载优化方法及数据结构
CN112416546A (zh) * 2020-11-10 2021-02-26 光华临港工程应用技术研发(上海)有限公司 多任务调度方法、电子装置和计算机存储介质
CN113448705A (zh) * 2021-06-25 2021-09-28 皖西学院 一种不平衡作业调度算法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751289B (zh) * 2008-12-19 2013-07-17 深圳市民德电子科技有限公司 一种嵌入式实时操作系统的混合调度方法
WO2018082570A1 (zh) * 2016-11-02 2018-05-11 华为技术有限公司 I/o请求的调度方法及装置
US10628216B2 (en) 2016-11-02 2020-04-21 Huawei Technologies Co., Ltd. I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status
CN111274024A (zh) * 2019-03-19 2020-06-12 中标软件有限公司 基于cfs调度器的就绪队列平均负载优化方法及数据结构
CN111274024B (zh) * 2019-03-19 2023-05-30 中标软件有限公司 基于cfs调度器的就绪队列平均负载优化方法及数据结构
CN112416546A (zh) * 2020-11-10 2021-02-26 光华临港工程应用技术研发(上海)有限公司 多任务调度方法、电子装置和计算机存储介质
CN113448705A (zh) * 2021-06-25 2021-09-28 皖西学院 一种不平衡作业调度算法

Similar Documents

Publication Publication Date Title
US7689996B2 (en) Method to distribute programs using remote Java objects
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
US7840965B2 (en) Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
CN111078436B (zh) 数据处理的方法、装置、设备及存储介质
US20110161972A1 (en) Goal oriented performance management of workload utilizing accelerators
Xu et al. Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters
US8627325B2 (en) Scheduling memory usage of a workload
CN1774699A (zh) 共享资源的并发访问
CN104298550A (zh) 一种面向Hadoop的动态调度方法
CN111427751A (zh) 基于异步处理机制对业务进行处理的方法及系统
CN1851652A (zh) 嵌入式sram操作系统进程优先级轮转调度的实现方法
CN1825288A (zh) 嵌入式sram操作系统进程多队列调度的实现方法
CN104182278A (zh) 一种判定计算机硬件资源繁忙程度的方法和装置
CN111984402A (zh) 一种线程池统一调度监控方法及系统
CN111831411B (zh) 任务处理方法、装置、存储介质及电子设备
US8108573B2 (en) Apparatus, system, and method for enqueue prioritization
CN1851651A (zh) 嵌入式sram操作系统进程优先权调度的实现方法
CN114461365A (zh) 一种进程调度处理方法、装置、设备和存储介质
CN116414534A (zh) 任务调度方法、装置、集成电路、网络设备及存储介质
CN111026809A (zh) 一种调度流程分布式执行系统
CN1851654A (zh) 嵌入式sram操作系统进程等时间片轮转调度的实现方法
CN115981893A (zh) 消息队列任务处理方法、装置、服务器及存储介质
Khalil et al. Survey of Apache Spark optimized job scheduling in Big Data
CN115981808A (zh) 调度方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication