CN1851652A - 嵌入式sram操作系统进程优先级轮转调度的实现方法 - Google Patents

嵌入式sram操作系统进程优先级轮转调度的实现方法 Download PDF

Info

Publication number
CN1851652A
CN1851652A CN 200610050881 CN200610050881A CN1851652A CN 1851652 A CN1851652 A CN 1851652A CN 200610050881 CN200610050881 CN 200610050881 CN 200610050881 A CN200610050881 A CN 200610050881A CN 1851652 A CN1851652 A CN 1851652A
Authority
CN
China
Prior art keywords
processor
sram
priority
timeslice
operating system
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 200610050881
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 200610050881 priority Critical patent/CN1851652A/zh
Publication of CN1851652A publication Critical patent/CN1851652A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明涉及嵌入式系统进程调度领域,旨在提供一种嵌入式SRAM操作系统进程优先级轮转调度的实现方法。包括记录进程的状态;根据处理器的时钟频率,定义一个合适的时间长度作为时间片,将处理器的时间划分为多份相等的时间片;进程等级划分;进程时间片分配;处理器分配和收回处理器的步骤。该方法容易实现,并且对于优先级较高的进程,其占用CPU的时间也较长,有利于对于不同的进程进行分别处理,同时该方法有效利用当进程位于SRAM中时,当进程对于CPU的使用率较高时,SRAM对于进程调度响应速度快的特点。本发明的方法可以防止那些很少使用外围设备的进程过长的占用处理器而使得要使用外围设备的那些进程没有机会去启动外围设备。

Description

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

Claims (3)

1、一种嵌入式SRAM操作系统进程优先级轮转调度的实现方法,包括
(1)记录进程的状态
将被加入就绪队列的进程信息录入该进程的进程控制块内,并装载到SRAM中,由于SRAM的容量较小,如果SRAM的容量不足,则在进程控制块中添加SRAM容量不足导致的进程状态为挂起的信息;
(2)时间片划分
根据处理器的时钟频率,定义一个合适的时间长度作为时间片,将处理器的时间划分为多份相等的时间片;
(3)进程等级划分
对每一个进程进行优先等级划分,相同优先数的进程划分到同一个优先组;
(4)进程时间片分配
读取进程进程控制块中记录的进程到达次序条目,同时该进程必须是处于SRAM当中,将把处理器分配给就绪队列首进程,并按照进程的优先级给进程使用对应于其优先级的时间片;
(5)处理器分配
将被选中的进程信息送入处理器相应的寄存器中,使其占用处理器运行;
(6)收回处理器
当进程分配到的时间片用完时,发生中断,并将处理器有关寄存器内容送入该进程的SPCB内的相应单元,使该进程让出处理器。
2、根据权利要求1所述的嵌入式SRAM操作系统进程优先级轮转调度的实现方法,其特征在于,所述录入进程控制块内的进程信息包括:
标识信息,用于唯一地标识一个进程;
现场信息,用于保留进程在运行时存放在处理器现场中的各种信息,和
控制信息,用于管理和调度一个进程。
3、根据权利要求1所述的嵌入式SRAM操作系统进程优先级轮转调度的实现方法,其特征在于,所述优先级给进程使用对应于其优先级的时间片是对高等级的进程分配较多的时间片,同等优先级的进程分配相同的时间片。
CN 200610050881 2006-05-23 2006-05-23 嵌入式sram操作系统进程优先级轮转调度的实现方法 Pending CN1851652A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610050881 CN1851652A (zh) 2006-05-23 2006-05-23 嵌入式sram操作系统进程优先级轮转调度的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610050881 CN1851652A (zh) 2006-05-23 2006-05-23 嵌入式sram操作系统进程优先级轮转调度的实现方法

Publications (1)

Publication Number Publication Date
CN1851652A true CN1851652A (zh) 2006-10-25

Family

ID=37133131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610050881 Pending CN1851652A (zh) 2006-05-23 2006-05-23 嵌入式sram操作系统进程优先级轮转调度的实现方法

Country Status (1)

Country Link
CN (1) CN1851652A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104620A (zh) * 2013-04-15 2014-10-15 国际商业机器公司 用于按优先级进行业务流处理的方法和系统
CN104320350A (zh) * 2013-04-15 2015-01-28 国际商业机器公司 用于提供基于信用的流控制的方法及系统
CN105824769A (zh) * 2016-03-14 2016-08-03 合肥工业大学 一种可配置的动态时间片轮转调度算法
CN106293902A (zh) * 2015-05-28 2017-01-04 宇龙计算机通信科技(深圳)有限公司 一种处理器调度方法及系统
CN107870779A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 调度方法与装置
CN108009006A (zh) * 2016-11-02 2018-05-08 华为技术有限公司 I/o请求的调度方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104620A (zh) * 2013-04-15 2014-10-15 国际商业机器公司 用于按优先级进行业务流处理的方法和系统
CN104320350A (zh) * 2013-04-15 2015-01-28 国际商业机器公司 用于提供基于信用的流控制的方法及系统
CN104320350B (zh) * 2013-04-15 2017-05-31 国际商业机器公司 用于提供基于信用的流控制的方法及系统
US9686203B2 (en) 2013-04-15 2017-06-20 International Business Machines Corporation Flow control credits for priority in lossless ethernet
US9692706B2 (en) 2013-04-15 2017-06-27 International Business Machines Corporation Virtual enhanced transmission selection (VETS) for lossless ethernet
CN104104620B (zh) * 2013-04-15 2017-09-26 国际商业机器公司 用于按优先级进行业务流处理的方法和系统
CN106293902A (zh) * 2015-05-28 2017-01-04 宇龙计算机通信科技(深圳)有限公司 一种处理器调度方法及系统
CN105824769A (zh) * 2016-03-14 2016-08-03 合肥工业大学 一种可配置的动态时间片轮转调度算法
CN105824769B (zh) * 2016-03-14 2018-08-28 合肥工业大学 一种可配置的动态时间片轮转调度方法
CN107870779A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 调度方法与装置
CN107870779B (zh) * 2016-09-28 2023-12-12 北京忆芯科技有限公司 调度方法与装置
CN108009006A (zh) * 2016-11-02 2018-05-08 华为技术有限公司 I/o请求的调度方法及装置

Similar Documents

Publication Publication Date Title
CN107038069B (zh) Hadoop平台下动态标签匹配DLMS调度方法
US8321614B2 (en) Dynamic scheduling interrupt controller for multiprocessors
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
US20170068574A1 (en) Multiple pools in a multi-core system
US7552236B2 (en) Routing interrupts in a multi-node system
US20110161972A1 (en) Goal oriented performance management of workload utilizing accelerators
US20140331235A1 (en) Resource allocation apparatus and method
US7853928B2 (en) Creating a physical trace from a virtual trace
US8627325B2 (en) Scheduling memory usage of a workload
CN1851652A (zh) 嵌入式sram操作系统进程优先级轮转调度的实现方法
US20080172670A1 (en) Method and Apparatus for Reducing Contention for Computer System Resources Using Soft Locks
US20140237151A1 (en) Determining a virtual interrupt source number from a physical interrupt source number
US20190235902A1 (en) Bully vm detection in a hyperconverged system
US10545890B2 (en) Information processing device, information processing method, and program
CN111831411B (zh) 任务处理方法、装置、存储介质及电子设备
CN108268546A (zh) 一种优化数据库的方法及装置
CN1851651A (zh) 嵌入式sram操作系统进程优先权调度的实现方法
EP1393175A2 (en) A resource management method
US12001880B2 (en) Multi-core system and method of controlling operation of the same
CN1825288A (zh) 嵌入式sram操作系统进程多队列调度的实现方法
CN114461365A (zh) 一种进程调度处理方法、装置、设备和存储介质
US11237994B2 (en) Interrupt controller for controlling interrupts based on priorities of interrupts
CN1851654A (zh) 嵌入式sram操作系统进程等时间片轮转调度的实现方法
US11360702B2 (en) Controller event queues
CN115981893A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication