CN101799769B - 信息处理装置、调度器及调度方法 - Google Patents

信息处理装置、调度器及调度方法 Download PDF

Info

Publication number
CN101799769B
CN101799769B CN2010100030121A CN201010003012A CN101799769B CN 101799769 B CN101799769 B CN 101799769B CN 2010100030121 A CN2010100030121 A CN 2010100030121A CN 201010003012 A CN201010003012 A CN 201010003012A CN 101799769 B CN101799769 B CN 101799769B
Authority
CN
China
Prior art keywords
mentioned
program
operation time
programs
base period
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.)
Active
Application number
CN2010100030121A
Other languages
English (en)
Other versions
CN101799769A (zh
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.)
Azbil Corp
Original Assignee
Azbil Corp
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 Azbil Corp filed Critical Azbil Corp
Publication of CN101799769A publication Critical patent/CN101799769A/zh
Application granted granted Critical
Publication of CN101799769B publication Critical patent/CN101799769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

本发明提供一种能够进行各个运算周期不同的多个程序的高效运算的信息处理装置、调度器及调度方法。具备:计算出将多个程序的各个运算周期的最大公约数作为单位时间的单位时间计算部(301);分配部(305),其将多个程序的各个运算时间按运算周期从短到长的顺序分别分配到具有单位时间的多个连续的基准期间的每一个中,且将在多个基准期间中的一个基准期间中运算未完成的程序的剩余运算时间按运算周期从短到长的顺序分配到一个基准期间后面的基准期间中;运算被分配了运算时间的多个程序的运算部(400)。

Description

信息处理装置、调度器及调度方法
技术领域
本发明涉及计算机技术,涉及信息处理装置、调度器及调度方法。
背景技术
过程控制器及PLC(Programmable Logic Controller:可编程控制器)等数字式控制器,进行离散的控制处理。因此,数字式控制器在规定的运算周期重复进行实现控制处理的程序运算(例如参照专利文献1)。近年来,由于微处理器的高集成化,微处理器的处理能力高速化正在发展,运算周期的缩短化也正在发展。而另一方面,预备从短到长的运算周期,根据控制处理的用途分配适当的运算周期给各程序也正在被规划。
专利文献1:日本特开2002-351509号公报
发明内容
各个运算周期不同的多个程序,以往通过多重任务操作系统(OS)执行。但是用多重任务OS的单纯的分时,不能保证遵守程序严密的运算周期。还有,分别对多个程序附以优先顺序需要烦杂的手续。另外,将微处理器的处理能力预先分配给运算周期短的程序和运算周期长的程序的方式也正在被规划。但是,可能发生实际被运算的程序的数目未对应预先被设定的处理能力的分配的情况。因此,例如可能发生运算周期短的程序的数目多、预先分配到运算周期短的程序处理中的微处理器的处理能力不足,另一方面运算周期长的程序的数目少,预先被分配到运算周期长的程序的处理中的微处理器的处理能力仍空闲的状态,其结果可能产生微处理器的处理能力白白浪费的问题。
因此,本发明的目的在于,提供一种能够进行各个运算周期不同的多个程序的高效运算的信息处理装置、调度器及调度方法。
本发明方式的要点在于,为一种信息处理装置,具备:单位时间计算部,其计算出多个程序的各个运算周期的最大公约数作为单位时间;分配部,其将多个程序的各个运算时间按运算周期从短到长的顺序,分别分配到具有单位时间的多个连续的基准期间的每一个中,且在将在多个基准期间中的一个基准期间中运算未完成的程序的剩余运算时间,按运算周期从短到长的顺序分配到一个基准期间后面的基准期间中;运算部,其对在多个基准期间中分别被分配了运算时间的多个程序进行运算。由于通过有关本发明的信息处理装置,各个运算周期不同的多个程序按运算周期从短到长的顺序,分别被分配给多个基准期间,所以能够有效地运算多个程序。
本发明的其他方式的要点在于,是一种调度器,具备:单位时间计算部,其计算出多个程序的各个运算周期的最大公约数作为单位时间;分配部,其将多个程序的各个运算时间按运算周期从短到长的顺序,分别分配到具有单位时间的多个连续的基准期间的每一个中,且将在多个基准期间中的一个基准期间中运算未完成的程序的剩余运算时间分配到一个基准期间后面的基准期间中。由于通过有关本发明的调度器,各个运算周期不同的多个程序按运算周期从短到长的顺序分别被分配给多个基准期间,所以能够有效地调度多个程序。
本发明的其他方式的要点在于,是一种调度方法,包含计算出多个程序的各个运算周期的最大公约数作为单位时间的步骤,和将多个程序的各个运算时间按运算周期从短到长的顺序,分别分配到具有单位时间的多个连续的基准期间的每一个中,且将在多个基准期间中的一个基准期间中运算未完成的程序的剩余运算时间按运算周期从短到长的顺序分配到一个基准期间后面的基准期间中的步骤。由于通过有关本发明的调度方法,各个运算周期不同的多个程序按运算周期从短到长的顺序分别被分配给多个基准期间,所以能够有效地调度多个程序。
通过本发明,可提供一种能够进行各个运算周期不同的多个程序的高效运算的信息处理装置、调度器及调度方法。
附图说明
图1是有关本发明的第1实施方式的信息处理装置的示意图。
图2是表示有关本发明的第1实施方式的运算时间的分配方法的第1示意图。
图3是表示有关本发明的第1实施方式的运算时间的分配方法的第2示意图。
图4是表示有关本发明的第1实施方式的运算时间的分配方法的第3示意图。
图5是表示有关本发明的第1实施方式的运算时间的分配方法的第4示意图。
图6是表示有关本发明的第1实施方式的运算时间的分配方法的第5示意图。
图7是表示有关本发明的第1实施方式的运算时间的分配方法的第6示意图。
图8是表示有关本发明的第1实施方式的运算时间的分配方法的第7示意图。
图9是表示有关本发明的第1实施方式的运算时间的分配方法的第8示意图。
图10是表示有关本发明的第1实施方式的运算时间的分配方法的第9示意图。
图11是表示有关本发明的第1实施方式的运算时间的分配方法的第10示意图。
图12是有关本发明的第2实施方式的信息处理装置的示意图。
图13是表示有关本发明的第2实施方式的运算时间的分配方法的第1示意图。
图14是表示有关本发明的第2实施方式的运算时间的分配方法的第2示意图。
图15是表示有关本发明的第2实施方式的运算时间的分配方法的第3示意图。
图16是表示有关本发明的第2实施方式的运算时间的分配方法的第4示意图。
图17是表示有关本发明的第2实施方式的运算时间的分配方法的第5示意图。
附图标记说明
300—调度器
301—单位时间计算部
302—完成时间计算部
303—运算次数计算部
304—优先分配部
305—分配部
312—输入装置
313—输出装置
330—程序存储装置
331—暂时存储装置
400—运算装置
500—数据总线
具体实施方式
以下说明本发明的实施方式。在以下附图的记载中,相同或类似的部分用相同或类似的附图标记表示。但附图是示意性的图,因此具体的尺寸等应对照以下说明进行判断。另外,当然在附图相互间也包含相互的尺寸关系、比率不同的部分。
(第1实施方式)
有关第1实施方式的信息处理装置如图1所示,具备调度器300。调度器300具备计算出多个程序的各个运算周期的最大公约数作为单位时间的单位时间计算部301。另外,调度器300还具备分配部,该分配部将多个程序的各个运算时间按运算周期更从短到长的顺序,分别分配到具有单位时间的多个连续的基准期间的每一个中,而且将在多个基准期间中的一个基准期间中运算未完成的程序的剩余运算时间按运算周期从短到长的顺序分配给一个基准期间后面的基准期间中的分配部305。另外,信息处理装置具备运算在多个基准期间中被分别分配了运算时间的多个程序的运算部400。
调度器300和运算装置400用传输电信号的数据总线500连接。还有,数据总线500上连接有保存各个运算周期不同的多个程序的程序存储装置330。多个程序分别包含多个功能模块。这里,以程序存储装置330保存第1~第4程序的情况为例进行说明。
第1程序例如包含25个用100毫秒的运算周期进行运算的功能模块。在第1实施方式中,当用运算装置400运算1个功能模块所需的运算时间为2毫秒时,对第1程序进行一次运算所需的运算时间为50毫秒。第2程序例如包含30个用200毫秒的运算周期进行运算的功能模块。此时,对第2程序进行一次运算所需的运算时间为60毫秒。
第3程序例如包含25个用500毫秒的运算周期进行运算的功能模块。此时,对第3程序进行一次运算所需的运算时间为50毫秒。第4程序例如包含50个用1000毫秒的运算周期进行运算的功能模块。此时,对第4程序进行一次运算所需的运算时间为100毫秒。
单位时间计算部301通过数据总线500从程序存储装置330读出第1~第4程序的各个运算周期。还有,单位时间计算部301计算出第1~第4程序的各个运算周期的最大公约数作为单位时间。这里,由于第1程序、第2程序、第3程序、及第4程序的运算周期分别为100毫秒、200毫秒、500毫秒及1000毫秒,所以作为单位时间被算出的最大公约数为100毫秒。而且当第1~第4程序的各个运算周期的值不是整数时,可以例如换算单位以便用整数标明运算周期的值。例如在程序存储装置330中、当第1~第4程序的各个运算周期被保存为0.1秒、0.2秒、0.5秒及1秒时,可将单位从秒换算成毫秒,用整数标明运算周期的值。
调度器300还具备完成时间计算部302及运算次数计算部303。完成时间计算部302及运算次数计算部303,通过数据总线500从程序存储装置330读出第1~第4程序的各个运算周期。还有,完成时间计算部302算出第1~第4程序的各个运算周期的最小公倍数作为第1~第4程序的总运算至少完成一次所需的完成时间。这里,作为完成时间被算出的第1~第4程序的各个运算周期的最小公倍数为1000毫秒。另外,如上所述,当第1~第4程序的各个运算周期的值不是整数时可以例如换算单位以便用整数标明运算周期的值。
运算次数计算部303从完成时间计算部302接收被算出的完成时间。还有,运算次数计算部303通过接收到的完成时间除以程序的运算周期,算出到完成时间为止,运算装置400运算程序的合计运算次数。这里,当完成时间为1000毫秒时,运算周期为100毫秒的第1程序的合计运算次数为10次,运算周期为200毫秒的第2程序的合计运算次数为5次。另外,运算周期为500毫秒的第3程序的合计运算次数为2次,运算周期为1000毫秒的第4程序的合计运算次数为1次。
分配部305通过数据总线500从程序存储装置330读出第1~第4程序的各个运算周期及相当于1次的运算时间。另外,分配部305接收被单位时间计算部301算出的单位时间,接收被完成时间计算部302算出的完成时间,接收被运算次数计算部303算出的合计运算次数。
还有,分配部305计算出完成时间除以单位时间而得的数目作为设定的多个基准期间的数目。当完成时间为1000毫秒、单位时间为100毫秒时,设定的多个基准期间的数目为10。这里,分配部305将第1~第4程序的各个运算时间分别分配到设定的第一个~第十个基准期间中,直到第1~第4程序的各个运算次数达到运算次数计算部303算出的合计运算次数为止。
首先,分配部305如图2所示,尝试设置具有单位时间计算部301算出的100毫秒单位时间的第一个基准期间,在第一个基准期间中按运算周期从短到长的顺序分配第1~第4程序的各个运算时间。由于第1程序的运算周期最短,所以分配部305在第一个基准期间的前头分配第1程序的运算时间。另外,分配部305从运算次数计算部303算出的第1程序的合计运算次数中减1,使第1程序的剩余运算次数变为9。
由于对第1程序进行一次运算所需的运算时间为50毫秒,所以在分配了第1程序的运算时间后,第一个基准期间中剩余空闲时间50毫秒。因此,分配部305尝试在第一个基准期间内的第1程序的运算时间后面、分配运算周期次于第1程序短的第2程序的运算时间。但是,对第2程序进行一次运算所需的运算时间为60毫秒。因此,分配部305在第一个基准期间中、只分配第2程序的60毫秒的运算时间中最初的50毫秒的运算时间。另外,分配部305将第一个基准期间内未能分配的第2程序的剩余10毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
由于向第一个基准期间的运算时间的分配已经结束,如图1所示的分配部305如图3所示,尝试设置第二个基准期间,将第1~第4程序的各个运算时间按运算周期从短到长的顺序分配到第二个基准期间中。分配部305首先在第二个基准期间的前头分配第1程序的运算时间。另外,分配部305使第1程序的剩余的运算次数减少1,变为8。
另外,分配部305尝试在第二个基准期间内的第1程序的运算时间的后面分配第2程序的运算时间。这里,在第一个基准期间内未能分配的第2程序的10毫秒的运算时间,剩余作为应分配给比第一个基准期间靠后的基准期间中的运算时间。因此,分配部305在第二个基准期间中分配第2程序被剩余的10毫秒的运算时间。由此,第2程序的第1次的运算完成,所以分配部305从运算次数计算部303算出的第2程序的合计运算次数中减1,使第2程序剩余的运算次数变为4。
在分配了第2程序的运算时间后,第二个基准期间中剩余空闲时间40毫秒。由于第2程序的运算周期为200毫秒,所以在第二个基准期间内运算已结束时,第2程序的第2次的运算必须从第三个基准期间开始。因此,分配部305尝试在第二个基准期间内的第2程序的运算时间的后面、分配运算周期次于第2程序短的第3程序的运算时间。但是,对第3程序进行一次运算所需的运算时间为50毫秒。因此,分配部305在第二个基准期间中、只分配第3程序的50毫秒的运算时间中最初的40毫秒的运算时间。另外,分配部305将第二个基准期间内未能分配的第3程序的剩余的10毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
由于向第二个基准期间的运算时间的分配已结束,所以如图1所示的分配部305如图4所示,尝试设置第三个基准期间,将第1~第4程序的各个运算时间按运算周期从短到长的顺序分配到第三个基准期间中。分配部305首先在第三个基准期间的前头分配第1程序的运算时间。另外,分配部305使第1程序的剩余运算次数再减1,变为7。
另外,分配部305在第三个基准期间内的第1程序的运算时间的后面、分配第2程序的60毫秒的运算时间中50毫秒的运算时间。另外,分配部305将第三个基准期间内未能分配的第2程序剩余的10毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
由于向第三个基准期间的运算时间的分配已结束,所以如图1所示的分配部305如图5所示,尝试设置第四个基准期间,将第1~第4程序的各个运算时间按运算周期从短到长的顺序分配到第四个基准期间中。分配部305首先在第四个基准期间的前头分配第1程序的运算时间。另外,分配部305使第1程序的剩余运算次数再减1,变为6。
另外,分配部305在第四个基准期间内的第1程序的运算时间的后面、分配第三个基准期间中未能分配的第2程序的剩余10毫秒的运算时间。由此,第2程序的第2次运算完成,所以分配部305再使第2程序的剩余运算次数减少1,变为3。之后,第四个基准期间剩余空闲时间40毫秒。
于是,分配部305在第四个基准期间内的第2程序的运算时间的后面,分配第二个基准期间中未能分配的第3程序剩余的10毫秒的运算时间。由此,第3程序的第1次运算完成,所以分配部305从运算次数计算部303算出的第3程序的合计运算次数中减1,使第3程序的剩余运算次数变为1。之后,第四个基准期间内剩余空闲时间30毫秒。
于是,分配部305尝试在第四个基准期间内的第3程序的运算时间的后面,分配运算周期次于第3程序短的第4程序的运算时间。但是,用于一次运算第4程序所需的运算时间为100毫秒。因此,分配部305在第四个基准期间中只分配第4程序的100毫秒的运算时间中最初的30毫秒的运算时间。另外,分配部305将第四个基准期间内未能分配的第4程序的剩余的70毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
由于向第四个基准期间的运算时间的分配已结束,所以如图1所示的分配部305如图6所示,尝试设置第五个基准期间,将第1~第4程序的各个运算时间按运算周期从短到长的顺序分配到第五个基准期间中。分配部305首先在第五个基准期间的前头分配第1程序的运算时间。另外,分配部305使第1程序的剩余运算次数再减1,变为5。
另外,分配部305在第五个基准期间内的第1程序的运算时间的后面,分配第2程序的60毫秒的运算时间中50毫秒的运算时间。另外,分配部305将第五个基准期间内未能分配的第2程序剩余的10毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
由于向第五个基准期间的运算时间的分配已结束,所以如图1所示的分配部305如图7所示,尝试设置第六个基准期间,将第1~第4程序的各个运算时间按运算周期从短到长的顺序分配到第六个基准期间中。分配部305首先在第六个基准期间的前头分配第1程序的运算时间。另外,分配部305使第1程序的剩余运算次数再减1,变为4。
另外,分配部305在第六个基准期间内的第1程序的运算时间的后面、分配第五个基准期间内未能分配的第2程序剩余的10毫秒的运算时间。由此,第2程序的第3次运算完成,由此分配部305再使第2程序的剩余运算次数减少1,变为2。另外,分配部305在第六个基准期间内的第2程序的运算时间的后面,分配第3程序的50毫秒的运算时间中40毫秒的运算时间。还有,分配部305将第六个基准期间内未能分配的第3程序剩余的10毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
由于向第六个基准期间的运算时间的分配已结束,所以图1所示的分配部305如图8所示,尝试设置第七个基准期间,并将第1~第4程序的各个运算时间按运算周期从短到长的顺序分配到第七个基准期间中。分配部305首先在第七个基准期间的前头分配第1程序的运算时间。而且,分配部305使第1程序的剩余运算次数再减1,变为3。
另外,分配部305在第七个基准期间内的第1程序的运算时间的后面,分配第2程序的60毫秒的运算时间中50毫秒的运算时间。另外,分配部305将第七个基准期间内未能分配的第2程序剩余的10毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
由于向第七个基准期间的运算时间的分配已结束,所以图1所示的分配部305如图9所示,尝试设置第八个基准期间,并将第1~第4程序的各个运算时间按运算周期从短到长的顺序分配到第八个基准期间中。分配部305首先在第八个基准期间的前头分配第1程序的运算时间。另外,分配部305使第1程序的剩余运算次数再减1,变为2。
另外,分配部305在第八个基准期间内的第1程序的运算时间的后面,分配第七个基准期间中未能分配的第2程序剩余的10毫秒的运算时间。由此,第2程序的第4次运算完成,所以分配部305再使第2程序的剩余运算次数减少1,变为1。
另外,分配部305在第八个基准期间内的第2程序的运算时间的后面,分配第六个基准期间中未能分配的第3程序的剩余10毫秒的运算时间。由此,第3程序的第2次运算完成,所以分配部305再使第3程序的剩余运算次数减1,变为0。之后,第八个基准期间内剩余空闲时间30毫秒。
于是,分配部305在第八个基准期间内的第3程序的运算时间的后面,分配第四个基准期间中未能分配的第4程序剩余的70毫秒的运算时间。但由于第八个基准期间只剩余空闲时间30毫秒,所以分配部202只分配第4程序剩余的70毫秒的运算时间中最初的30毫秒的运算时间。另外,分配部305将第八个基准期间内未能分配的第4程序的剩余的40毫秒的运算时间仍作为应分配到后面的基准期间中的运算时间进行保持。
由于向第八个基准期间的运算时间的分配已结束,所以图1所示的分配部305如图10所示,尝试设置第九个基准期间,并将剩余运算次数未变为0的第1、第2及第4程序的各个运算时间按运算周期从短到长的顺序分配到第九个基准期间中。分配部305首先在第九个基准期间的前头分配第1程序的运算时间。另外,分配部305使第1程序的剩余运算次数再减1,变为1。
另外,分配部305在第九个基准期间内的第1程序的运算时间的后面,分配第2程序的60毫秒的运算时间中50毫秒的运算时间。另外,分配部305将第九个基准期间内未能分配的第2程序的剩余10毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
由于向第九个基准期间的运算时间的分配已结束,所以图1所示的分配部305如图11所示,尝试设置第十个基准期间,并将剩余运算次数未变为0的第1、第2及第4程序的各个运算时间按运算周期从短到长的顺序分配到第十个基准期间中。分配部305首先在第十个基准期间的前头分配第1程序的运算时间。另外,分配部305使第1程序的剩余运算次数再减1,变为0。
另外,分配部305在第十个基准期间内的第1程序的运算时间的后面,分配第九个基准期间中未能分配的第2程序剩余的10毫秒的运算时间。由此,第2程序的第5次运算完成,所以分配部305再使第2程序的剩余运算次数减少1,变为0。
运算周期次于第2程序短的第3程序的剩余运算次数已变为0。因此,分配部305在第十个基准期间中不进行第3程序的运算时间的分配。而且,分配部305在第十个基准期间内的第2程序的运算时间的后面,分配第八个基准期间中未能分配的第4程序剩余的40毫秒的运算时间。由此,第4程序的第1次运算完成,分配部305从运算次数计算部303算出的第4程序的合计运算次数中减1,使第4程序剩余的运算次数变为0。
在向第十个基准期间的运算时间的分配结束的时刻,到达图1所示的完成时间计算部302算出的完成时间。另外,直到达到运算次数计算部303算出的完成时间为止,使运算装置400运算第1~第4程序的每一个的合计运算次数达到。因此,分配部30结束第1~第4程序的各个运算时间的分配时间表的生成。
运算装置400从调度器300接收分配部305生成的如图11所示的第1~第4程序的各个运算时间的分配时间表。另外,如图1所示的运算装置400从程序存储装置330读出第1~第4程序。还有,运算装置400根据接收的如图11所示的分配时间表运算第1~第4程序。另外,在第十个基准期间运算结束后,返回第一个基准期间重复第1~第4程序的运算。而且,图1所示的运算装置400并不一定等待如图11所示的分配时间表的完成,再运算第1~第4程序。例如运算装置400也可与调度器300的分配时间表的生成并行地,根据分配给第一个基准期间的前头的程序执行运算。
如图1所示的数据总线500上还连接暂时存储装置331、输入装置312及输出装置313。暂时存储装置331通过调度器300及运算装置400处理的结果被逐次保存。输入装置312上被输入程序存储装置330保存的程序等。输出装置313输出调度器300生成的程序的分配时间表及运算装置400运算的程序的运算结果等。
通过以上说明的有关第1实施方式的信息处理装置,能够使多个程序的运算时间按各个运算周期且高效地进行调度。还有,通过有关第1实施方式的信息处理装置,由于在各基准期间上连续地分配程序的运算时间,也能够省去运算装置400的处理能力的浪费。
(第2实施方式)
在有关第2实施方式的如图12所示的信息处理装置的程序存储装置330中,保存着与第1实施方式相同的第1~第3程序。另外,在有关第2实施方式的程序存储装置330中例如包含30个用1000毫秒的运算周期进行运算的功能模块的第5程序被保存以代替第4程序。当用运算装置400运算1个功能模块所需的运算时间为2毫秒时,对第5程序进行一次运算所需的运算时间为60毫秒。
还有,在有关第2实施方式的程序存储装置330中,在开始了其他程序的运算后、保存了由用户指定的第1时机指定程序以便例如从300毫秒到400毫秒间的时机进行运算。第1时机指定程序例如包含5个功能模块。此时,对第1时机指定程序进行一次运算所需的运算时间为10毫秒。
另外,在有关第2实施方式的程序存储装置330中,在开始了其他程序的运算后,保存了由用户指定的第2时机指定程序以便例如从800毫秒到900毫秒间的时机进行运算。第2时机指定程序例如包含15个功能模块。此时,对第2时机指定程序进行一次运算所需的运算时间为30毫秒。
单位时间计算部301与第1实施方式相同,计算出第1~第3程序及第5程序的各个运算周期的最大公约数作为单位时间。这里,作为单位时间被算出的最大公约数为100毫秒。另外,运算次数计算部303计算出第1~第3程序及第5程序的各个运算周期的最小公倍数作为至少第1~第3程序及第5程序的总运算完成一次所需的完成时间。这里,作为完成时间被算出的最小公倍数为1000毫秒。
运算次数计算部303计算出到完成时间为止,运算装置400运算第1~第3程序及第5程序的每一个的合计运算次数。这里,第1程序的合计运算次数为10次,第2程序的合计运算次数为5次,第3程序的合计运算次数为2次,第5程序的合计运算次数为1次。
有关第2实施方式的调度器300,还具备优先分配部304。优先分配部304分别从单位时间计算部301及完成时间计算部302接收单位时间及完成时间。还有,优先分配部304将完成时间除以单位时间而得的数目算出并作为多个基准期间的数目。这里,完成时间除以单位时间所得的数目为10,所以优先分配部304如图13所示,设定第一个~第十个基准期间。另外,如图12所示的优先分配部304从程序存储装置中读出被第1及第2时机指定程序指定的运算时机和运算时间。
接着,优先分配部304在如图13所示的第一个~第十个基准期间中分配第1~第3程序及第5程序的运算时间前,分配第1及第2时机指定程序的运算时间。这里,第1时机指定程序被指定成从300毫秒到400毫秒间的时机进行运算。因此,优先分配部304在第四个基准期间的前头,分配第1时机指定程序的10毫秒的运算时间。另外,第2时机指定程序被指定成从800毫秒到900毫秒间的时机进行运算。因此,优先分配部304在第九个基准期间的前头,分配第2时机指定程序的30毫秒的运算时间。
在第2实施方式中,如图12所示的分配部305,优先分配部304将第1及第2时机指定程序的各个运算时间分配到第一个~第十个基准期间中后,在第一个~第十个基准期间中分配第1~第3程序及第5程序的各个运算时间。具体的说,分配部305如图14所示,首先在第一个~第三个基准期间中与第1实施方式相同地,分配第1~第3程序的运算时间。
另外,由于在第四个基准期间的最初的10毫秒,第1程序时机指定程序的运算时间已经被分配,所以分配部305尝试在第四个基准期间内的第1时机指定程序的运算时间的后面,按运算周期从短到长的顺序分配第1~第3程序及第5程序的各个运算时间。因此,分配部305在第1时机指定程序的运算时间的后面,首先分配第1程序的运算时间。
另外,分配部305在第四个基准期间内的第1程序的运算时间的后面,分配第三个基准期间中不能分配的第2程序剩余的10毫秒的运算时间。另外,分配部305在第四个基准期间内的第2程序的运算时间的后面,分配第二个基准期间中不能分配的第3程序剩余的10毫秒的运算时间。之后,第四个基准期间中剩余空闲时间20毫秒。
于是,分配部305尝试在第四个基准期间内的第3程序的运算时间的后面,分配运算周期次于第3程序短的第5程序的运算时间。但对第5程序进行一次运算所需的运算时间为60毫秒。因此,分配部305在第四个基准期间中,仅分配第5程序的60毫秒的运算时间中最初的20毫秒的运算时间。另外,如图12所示的分配部305将第四个基准期间内不能分配的第5程序剩余的40毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。
之后,分配部305如图15所示,在第五~第七基准期间中与第1实施方式同样地,分配第1~第3程序的运算时间。接着,分配部305在第八个基准期间中与第1实施方式同样地,首先分配第1~第3程序的运算时间。之后,第八个基准期间中剩余空闲时间30毫秒。
于是,分配部305尝试在第八个基准期间内的第3程序的运算时间的后面,分配第四基准期间中不能分配的第5程序剩余的40毫秒的运算时间。但是,由于第八基准期间空闲时间只剩余30毫秒,所以分配部202只分配第5程序剩余的40毫秒的运算时间中最初的30毫秒的运算时间。另外,如图12所示的分配部305,将第八个基准期间内不能分配的第5程序剩余的10毫秒的运算时间仍作为应分配到后面的基准期间中的运算时间进行保持。
接着,如图16所示,第九个基准期间的最初的30毫秒已被分配为第2时机指定程序的运算时间。因此,分配部305尝试在第九个基准期间内的第2时机指定程序的运算时间的后面、按运算周期从短到长的顺序分配第1~第3程序及第5程序的各个运算时间。于是,分配部305在第2时机指定程序的运算时间的后面,首先分配第1程序的运算时间。
另外,分配部在第九个基准期间内的第1程序的运算时间的后面、分配第2程序的60毫秒运算时间中20毫秒的运算时间。然后,图12所示的分配部305将第九个基准期间内不能分配的第2程序的剩余的40毫秒的运算时间作为应分配到后面的基准期间中的运算时间进行保持。接着,分配部305在第十个基准期间中首先分配第1程序的运算时间,在第1程序的运算时间的后面分配第九个基准期间中不能分配的第2程序剩余的40毫秒的运算时间。另外,分配部305在第十个基准期间内的第2程序的运算时间的后面,分配第八个基准期间中不能分配的第5程序剩余的10毫秒的运算时间,结束运算时间的分配时间表的生成。
有关第2实施方式的信息处理装置的其他构成要素与第1实施方式相同,所以其说明省略。程序的运算时间的分配优选自动进行方式,但对一部分程序,也存在用户想指定分配运算时间的时机的情况。与此相对,通过有关第2实施方式的信息处理装置,能够对时机指定程序按用户的指定分配运算时间,而对其他程序自动实施高效的运算时间的分配。
(其他实施方式)
如上所述,由实施方式记载了本发明,但实现此公开的一部分的记述及附图不应理解为限定此发明。根据此公开本领域的技术人员应得到各种替代方式、实施例及运用技术。例如向图1所述的程序存储装置330追加新的程序、变更被保存的程序的运算周期、或删除被保存的程序时,调度器300自动地再调度程序的运算时间的分配。另外,实施方式所示的运算周期及运算时间等始终只用于例示。例如,在程序存储装置330中保存用100毫秒的运算周期进行运算的程序和用250毫秒的运算周期进行运算的程序时,单位时间为50毫秒,完成时间为500毫秒。这样,本发明应理解为包含这里未记载的各种实施方式等。因此本发明从该公开中只被可靠的权利要求范围的发明特定特征限定。

Claims (9)

1.一种信息处理装置,其特征在于,具备:
单位时间计算部,其计算出多个程序的各个运算周期的最大公约数作为单位时间;
分配部,其将上述多个程序的各个运算时间按上述运算周期从短到长的顺序,分别分配到具有上述单位时间的多个连续的基准期间的每一个中,且将在上述多个基准期间中的一个基准期间中运算未完成的程序的剩余运算时间按上述运算周期从短到长的顺序,分配到上述一个基准期间后面的基准期间中;
运算部,其对在上述多个基准期间中分别被分配了上述运算时间的上述多个程序进行运算;
完成时间计算部,其计算出上述多个程序的各个运算周期的最小公倍数作为上述多个程序的总运算至少完成1次所需的完成时间;以及
运算次数计算部,其通过上述完成时间除以上述多个程序的每一个的运算周期,计算出到上述完成时间为止,分别运算上述多个程序的合计运算次数。
2.一种调度器,其特征在于,具备:
单位时间计算部,其计算出多个程序的各个运算周期的最大公约数作为单位时间;
分配部,其将上述多个程序的各个运算时间按上述运算周期从短到长的顺序,分别分配到具有上述单位时间的多个连续的基准期间的每一个中,且将在上述多个基准期间中的一个基准期间中运算未完成的程序的剩余运算时间按上述运算周期从短到长的顺序,分配到上述一个基准期间后面的基准期间中;
完成时间计算部,其计算出上述多个程序的各个运算周期的最小公倍数作为上述多个程序的总运算至少完成1次所需的完成时间;以及
运算次数计算部,其通过上述完成时间除以上述多个程序的每一个的运算周期,计算出到上述完成时间为止,分别运算上述多个程序的合计运算次数。
3.根据权利要求2所述的调度器,其特征在于,
上述多个连续的基准期间的合计时间为上述完成时间。
4.根据权利要求2或3所述的调度器,其特征在于,
上述分配部将上述多个程序的各个运算时间分配到上述多个基准期间中,直到在上述多个程序的各个运算次数达到上述合计运算次数为止。
5.根据权利要求2所述的调度器,其特征在于,
还具备优先分配部,该优先分配部将指定了运算的时机的时机指定程序分配到上述多个基准期间的至少一个中,直到上述分配部将上述多个程序的各个运算时间分别分配到上述多个基准期间中为止。
6.一种调度方法,其特征在于,包含如下步骤:
计算出多个程序的各个运算周期的最大公约数作为单位时间;
将上述多个程序的各个运算时间按上述运算周期从短到长的顺序,分别分配到具有上述单位时间的多个连续的基准期间的每一个中,且将在上述多个基准期间中的一个基准期间中运算未完成的程序的剩余运算时间按运算周期从短到长的顺序,分配到上述一个基准期间后面的基准期间中的步骤;
计算出上述多个程序的各个运算周期的最小公倍数作为上述多个程序的总运算至少完成1次所需的完成时间的步骤;以及
通过上述完成时间除以上述多个程序的各个运算周期,计算出到上述完成时间为止,分别运算上述多个程序的合计运算次数的步骤。
7.根据权利要求6所述的调度方法,其特征在于,
上述多个连续的基准期间的合计时间为上述完成时间。
8.根据权利要求6或7所述的调度方法,其特征在于,
上述分配的步骤中,将上述多个程序的各个运算时间分配到上述多个基准期间中,直到在上述多个程序的各个运算次数达到上述合计运算次数为止。
9.根据权利要求6所述的调度方法,其特征在于,
还包含在将上述多个程序的各个运算时间分别分配到上述多个基准期间中之前,将指定了运算的时机的时机指定程序分配到上述多个基准期间的至少一个中的步骤。
CN2010100030121A 2009-01-07 2010-01-06 信息处理装置、调度器及调度方法 Active CN101799769B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-001375 2009-01-07
JP2009001375A JP2010160600A (ja) 2009-01-07 2009-01-07 情報処理装置、スケジューラ、及びスケジューリング方法

Publications (2)

Publication Number Publication Date
CN101799769A CN101799769A (zh) 2010-08-11
CN101799769B true CN101799769B (zh) 2013-10-02

Family

ID=42312563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010100030121A Active CN101799769B (zh) 2009-01-07 2010-01-06 信息处理装置、调度器及调度方法

Country Status (5)

Country Link
US (1) US8327366B2 (zh)
JP (1) JP2010160600A (zh)
KR (1) KR101093286B1 (zh)
CN (1) CN101799769B (zh)
TW (1) TWI402752B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009055752A1 (de) * 2009-11-25 2011-05-26 Robert Bosch Gmbh Verfahren zum Ermöglichen einer sequentiellen, nicht blockierenden Abarbeitung von Anweisungen in nebenläufigen Tasks in einer Steuereinrichtung
KR101880452B1 (ko) * 2012-02-06 2018-08-17 삼성전자주식회사 커널 수행 순서 스케줄링 방법 및 장치
JP2014006788A (ja) * 2012-06-26 2014-01-16 Azbil Corp 情報処理装置およびプログラム実行方法
JP2014142823A (ja) * 2013-01-24 2014-08-07 Azbil Corp データ作成装置および方法
JP6163842B2 (ja) * 2013-04-11 2017-07-19 富士電機株式会社 プログラマブルコントローラの支援装置、そのプログラム、プログラマブルコントローラシステム
CN105049173B (zh) * 2015-08-27 2017-12-22 南京南瑞继保电气有限公司 异步装置的同步方法
TWI584667B (zh) 2015-11-27 2017-05-21 財團法人工業技術研究院 多請求的排程方法及排程裝置
JP7331774B2 (ja) 2020-05-12 2023-08-23 株式会社デンソー 電子制御装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103847A1 (en) * 2001-02-01 2002-08-01 Hanan Potash Efficient mechanism for inter-thread communication within a multi-threaded computer system
CN1838077A (zh) * 2005-03-25 2006-09-27 株式会社东芝 可调度性确定方法和实时系统
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
WO2007104330A1 (en) * 2006-03-15 2007-09-20 Freescale Semiconductor, Inc. Task scheduling method and apparatus

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2589791B2 (ja) 1988-12-14 1997-03-12 日本たばこ産業株式会社 ループ制御装置
EP1050808B1 (en) * 1999-05-03 2008-04-30 STMicroelectronics S.A. Computer instruction scheduling
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
JP2002351509A (ja) 2001-05-25 2002-12-06 Mitsubishi Electric Corp プログラミングツール及びプログラミング方法
US7475222B2 (en) * 2004-04-07 2009-01-06 Sandbridge Technologies, Inc. Multi-threaded processor having compound instruction and operation formats
JP2006099332A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP2007233930A (ja) * 2006-03-03 2007-09-13 Shimadzu System Solutions Co Ltd 分散制御システム用シミュレータ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
US20020103847A1 (en) * 2001-02-01 2002-08-01 Hanan Potash Efficient mechanism for inter-thread communication within a multi-threaded computer system
CN1838077A (zh) * 2005-03-25 2006-09-27 株式会社东芝 可调度性确定方法和实时系统
WO2007104330A1 (en) * 2006-03-15 2007-09-20 Freescale Semiconductor, Inc. Task scheduling method and apparatus

Also Published As

Publication number Publication date
KR20100081928A (ko) 2010-07-15
US20100175069A1 (en) 2010-07-08
CN101799769A (zh) 2010-08-11
TW201032135A (en) 2010-09-01
US8327366B2 (en) 2012-12-04
JP2010160600A (ja) 2010-07-22
KR101093286B1 (ko) 2011-12-14
TWI402752B (zh) 2013-07-21

Similar Documents

Publication Publication Date Title
CN101799769B (zh) 信息处理装置、调度器及调度方法
CN101166208B (zh) 一种维护作业自动化的方法及系统
CN112132546A (zh) 一种对生产进行排程的方法及装置
CN114996018A (zh) 面向异构计算的资源调度方法、节点、系统、设备及介质
CN101217418B (zh) 用于网络性能测试的多任务调度方法
CN101533490A (zh) Job-shop离散型生产的车间排产方法
EP0992868B1 (en) Device and method for calculating required quantity of material
US6434708B1 (en) Programmable timer & methods for scheduling time slices executed by a controller circuit
CN106790332A (zh) 一种资源调度方法、系统及主节点
CN105137817A (zh) 控制程序处理器的片上系统及其控制程序执行方法
CN110214477A (zh) 用于在装配线上优化产量地生产电路板的控制装置和方法
CN116126501A (zh) 任务分配方法、装置、智能设备和存储介质
CN115438952A (zh) 一种排产方法及其相关设备
Kasımoğlu et al. An Application: A Model with Sequence Dependent Setup Times for Parallel Machines for the Die House Station in a White Goods Manufacturing Company
Eberlein et al. A pull principle for the material supply of low-volume mixed-model assembly lines
JP6005535B2 (ja) 生産計画作成装置、生産計画作成方法および生産計画作成プログラム
CN112286631A (zh) 一种Kubernetes资源调度方法、装置与电子设备
Xiao et al. A MILP-based batch scheduling for two-stage hybrid flowshop with sequence-dependent setups in semiconductor assembly and test manufacturing
CN113407322A (zh) 多终端的任务分配方法、装置、电子设备及可读存储介质
Li et al. Methodologies for synchronised scheduling of assembly and air transportation in a consumer electronics supply chain
JP2010160599A (ja) スケジューラ、情報処理装置およびスケジューリング方法
JPH0850551A (ja) リアルタイムアプリケーションタスクスケジューリング及び処理システム
WO2023176846A1 (ja) 生産計画立案装置、生産計画立案方法、及びプログラム
Hassani et al. Planning and scheduling of production system in conditioning line: industrial application, optimization and simulation approach
Farkas et al. Workload balancing using the concept of operation types

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: AZBIL CORPORATION

Free format text: FORMER OWNER: YAMATAKE K. K.

Effective date: 20120518

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120518

Address after: Tokyo, Japan, Japan

Applicant after: Azbil Corporation

Address before: Tokyo, Japan, Japan

Applicant before: Yamatake Corp.

C14 Grant of patent or utility model
GR01 Patent grant