CN110192183A - 计算机装置、任务启动方法以及任务启动程序 - Google Patents
计算机装置、任务启动方法以及任务启动程序 Download PDFInfo
- Publication number
- CN110192183A CN110192183A CN201780083766.2A CN201780083766A CN110192183A CN 110192183 A CN110192183 A CN 110192183A CN 201780083766 A CN201780083766 A CN 201780083766A CN 110192183 A CN110192183 A CN 110192183A
- Authority
- CN
- China
- Prior art keywords
- operating system
- task
- interrupt
- mark
- computer installation
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
计算机装置(100)具有OS执行部(120)、OS依赖中断处理部(110)以及OS独立中断处理部(130)。OS独立中断处理部(130)在产生因设备(200)的状态而引起的OS独立中断(201)时判定是否启动任务(145)。在启动任务(145)的情况下,OS独立中断处理部(130)将标志(141)设为有效并且使OS执行部(120)产生OS依赖中断(202)。OS依赖中断处理部(110)在产生OS依赖中断(202)时判定标志(141)是否有效,在标志(141)有效的情况下,启动任务(145)并且将标志(141)设为无效。
Description
技术领域
本发明涉及计算机装置、任务启动程序以及任务启动方法。
背景技术
在非专利文献1中公开了利用了面向嵌入式设备的实时OS(Operating System:操作系统)的计算机系统。非专利文献1的计算机系统具有依赖于OS的内核管理中断处理程序(interrupt handler)和独立于OS的内核管理外中断处理程序这两种中断处理程序。内核管理中断处理程序也被称作OS依赖中断处理程序(OS-dependent interrupt handler)。此外,内核管理外中断处理程序也被称作OS独立中断处理程序(OS-independent interrupthandler)。
OS依赖中断处理程序能够在OS依赖中断处理程序内发行OS的服务调用。但是,在服务调用处理中产生的OS依赖中断会延迟至能够接受OS依赖中断。
OS独立中断处理程序无法在OS独立中断处理程序内发行OS的服务调用。但是,在服务调用处理中产生的OS独立中断在无法受理OS依赖中断的区间也能够被受理。
现有技术文献
专利文献
专利文献1:日本特开2001-092676号公报
非专利文献
非专利文献1:M3T-MR30/4V.4.01用户手册(3.6中断)
非专利文献2:三菱电机技术报告2003年2月号「第3代便携电话技术」(专集论文:W-CDMA便携机的基本软件)
发明内容
发明要解决的课题
在家电产品和马达控制这样的小规模的嵌入式设备中,在无法允许由于使用OS依赖中断而带来的中断的延迟的情况下,需要使用OS独立中断。
因此,存在以下技术:OS独立中断处理程序借助OS依赖中断处理程序而启动由OS管理的任务的处理。具体而言,像专利文献1那样,存在以下技术:利用通过周期性的计时器中断而产生的OS依赖中断来实施在想要利用OS独立中断来启动任务的情况下会被更新的标志的状态监视,根据需要而启动任务。
然而,在专利文献1的技术中,在标志没有被置位、即无需启动任务时也,也必须定期地启动OS依赖中断。由此,CPU(Central Processing Unit:中央处理单元)使用率产生浪费。
此外,由于必须始终周期性地产生OS依赖中断,因此无法采用非专利文献2所公开的无滴答计时器(tickless timer)方式,计算机装置的功耗被浪费。无滴答计时器方式是指能够仅在必要时产生系统时钟中断的方式。
本发明的目的在于,采用无滴答计时器(tickless timer)方式作为OS的时间管理方式,从OS独立中断处理程序经由非周期性的OS依赖中断处理程序而启动由OS管理的任务。
用于解决课题的手段
本发明的计算机装置与设备连接,具有OS执行部,该OS执行部执行OS并且产生OS依赖中断,其中,该计算机装置具有:存储部,其存储标志;OS独立中断处理部,其在产生因所述设备的状态而引起的OS独立中断时判定是否启动任务,在启动所述任务的情况下,将所述标志设为有效并且使所述OS执行部产生所述OS依赖中断;以及OS依赖中断处理部,其在由所述OS执行部产生所述OS依赖中断时判定所述标志是否有效,在所述标志有效的情况下,启动所述任务并且将所述标志设为无效。
发明效果
在本发明的计算机装置中,OS独立中断处理部在产生OS独立中断时判定是否启动任务,在启动任务的情况下,将标志设为有效并且使OS执行部产生OS依赖中断。此外,OS依赖中断处理部在产生OS依赖中断时判定标志是否有效,在标志有效的情况下,启动任务并且将标志设为无效。由此,根据本发明的计算机装置,能够在产生了OS独立中断的情况下不定期地产生OS依赖中断,由OS依赖中断处理部启动任务,因此能够提高CPU的使用效率并且也能够削减功耗。
附图说明
图1是实施方式1的计算机装置100的结构图。
图2是实施方式1的标志141的排列的结构例。
图3是实施方式1的标志141的要素编号与标志值的对应图。
图4是示出实施方式1的计算机装置100的任务启动方法510和任务启动程序520的任务启动处理S100的流程图。
图5是示出实施方式1的OS依赖中断处理S10的流程图。
图6是示出实施方式1的OS独立中断处理S20的流程图。
图7是示出在实施方式1的OS依赖中断处理S10的具体例中假定的中断的产生时机的图。
图8是示出与图7对应的超时队列和任务管理信息的图。
图9是示出仅产生了OS依赖中断的情况下的OS依赖中断处理的具体例的图。
图10是示出在图9的处理之后在从周期的开始时刻起经过3ms的T1时刻产生了OS独立中断的情况下的OS依赖中断处理的具体例的图。
图11是实施方式1的变形例的计算机装置100的结构图。
具体实施方式
以下,使用附图对本发明的实施方式进行说明。另外,在各图中,对相同或相当的部分标注相同的标号。在实施方式的说明中,省略或简化对相同或相当的部分的说明。
实施方式1.
***结构的说明***
使用图1对本实施方式的计算机装置100的结构进行说明。
计算机装置100与设备200连接。设备200产生因设备200的状态而引起的OS独立中断201。具体而言,设备200是马达210或传感器220。马达210或传感器220这样的设备200产生由于包含动作完成或错误在内的状态变更而引起的中断,作为OS独立中断201。此外,计算机装置100也可以代替使设备200产生OS独立中断201,而使用计时器周期性地产生OS独立中断以监视设备200的状态变更。
如图1所示,计算机装置100是计算机。
计算机装置100具有处理器910、存储装置920、输入输出接口930、中断计时器160以及时钟计时器170这样的硬件。存储装置920包含存储器921和辅助存储装置922。
计算机装置100具有OS依赖中断处理部110、OS独立中断处理部130、OS执行部120以及存储部140作为功能结构。OS依赖中断处理部110具有任务启动判定部111、系统时刻管理部112、超时处理部113以及超时设定部114。OS独立中断处理部130具有任务启动请求部131和计时器设定部132。
OS依赖中断处理部110是OS依赖中断处理程序。OS独立中断处理部130是OS独立中断处理程序。
任务启动判定部111、系统时刻管理部112、超时处理部113以及超时设定部114是由作为OS依赖中断处理程序的OS依赖中断处理部110调用的。任务启动请求部131和计时器设定部132是由作为OS独立中断处理程序的OS独立中断处理部130调用的。
任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的功能是通过软件而实现的。
存储部140是由存储器921和辅助存储装置922而实现的。此外,存储部140也可以仅由存储器921或仅由辅助存储装置922而实现。存储部140的实现方法是任意的。标志141、上次执行时刻Tp以及超时队列143存储于存储器921中。在超时队列143中设定有剩余时间144。任务145存储于辅助存储装置922中。
处理器910经由信号线与其他硬件连接,对该其他硬件进行控制。处理器910是进行运算处理的IC(Integrated Circuit:集成电路)。处理器910是CPU(Central ProcessingUnit:中央处理单元)或MPU(Micro-Processing Unit:微处理单元)。
具体而言,辅助存储装置922是ROM(Read Only Memory:只读存储器)、闪存或HDD(Hard Disk Drive:硬盘驱动器)。具体而言,存储器921是RAM(Random Access Memory:随机存取存储器)。
输入输出接口930作为输入接口而发挥功能并且作为输出接口而发挥功能。
在作为输入接口而发挥功能的情况下,输入输出接口930是与鼠标、键盘、触摸面板这样的输入装置连接的端口。具体而言,输入输出接口930是USB(Universal SerialBus:通用串行总线)端子。另外,输入输出接口930也可以是与LAN(Local Area Network:局域网)连接的端口。输入输出接口930与设备200连接,从设备200受理OS独立中断201。
在作为输入接口而发挥功能的情况下,输入输出接口930是与显示器这样的显示设备的缆线连接的端口。具体而言,输出接口是USB端子或HDMI(注册商标)(HighDefinition Multimedia Interface:高清多介质接口)端子。具体而言,显示器是LCD(Liquid Crystal Display:液晶显示器)。
在辅助存储装置922中存储有实现任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的功能的程序。实现任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的功能的程序也被称作任务启动程序520。该程序被加载到存储器921中,被读入到处理器910中而由处理器910执行。此外,在辅助存储装置922中存储有OS。OS的至少一部分被加载到存储器921中。而且,处理器910一边执行OS一边执行任务启动程序520。通过由OS使用中断计时器160而提供的服务调用来启动任务145。
计算机装置100可以仅具有一个处理器910,也可以具有多个处理器910。多个处理器910可以协同执行实现任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的功能的程序。
表示任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的处理的结果的信息、数据、信号值以及变量值存储于计算机装置100的辅助存储装置922、存储器921、或者处理器910内的寄存器或高速缓冲存储器中。
实现任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的功能的程序也可以存储于磁盘、软盘、光盘、高密度盘、蓝光(注册商标)盘、DVD(Digital Versatile Disc:数字通用光盘)这样的可移动记录介质中。
另外,任务启动程序产品是指记录有任务启动程序520的存储介质和存储装置。任务启动程序产品是指无关外观地加载有计算机能够读取的程序的产品。
***功能结构的说明***
接下来,对图1的各功能结构进行说明。
OS执行部120在计算机装置100中进行任务145的执行管理。此外,OS执行部120在计算机装置100中提供启动任务145的功能。
设备200根据包含动作完成或错误在内的状态变更而产生OS独立中断201。
中断计时器160用于使OS执行部120产生OS依赖中断202。即,OS依赖中断202是通过中断计时器160的功能而产生的。中断计时器160也被称作系统时钟中断用计时器。
时钟计时器170是对系统时刻进行计时的计时器。时钟计时器170也被称作系统时刻计时用计时器。具体而言,时钟计时器170是采用了自由运行计时器功能的计时器。
任务启动请求部131在产生了因设备200的状态而引起的OS独立中断201时判定是否启动任务145。在启动任务145的情况下,任务启动请求部131将标志141设为有效,并且使OS执行部120产生OS依赖中断202。任务145是由OS管理的任意的任务。将标志141设为有效是指将标志置位,具体而言,是将值设定为“1”。
标志141由能够在其被任务启动请求部131置位的情况下判定其与哪个设备200对应的数据构造构成。此外,标志141的数据构造也能够判定在存在多个任务145的情况下应该启动哪个任务145。此外,标志141可以存在多个。标志141也被称作通知请求标志。
使用图2对本实施方式的标志141的排列的结构例进行说明。如图2所示,在标志141中,要素编号与标志值是对应起来的。这里,要素编号预先与各设备关联。在需要针对各设备启动任务的情况下,将与各设备对应的要素编号的标志值设为“1”。
图3是示出本实施方式的标志141的要素编号与标志值的对应关系的图。如图3所示,与要素编号对应的标志值为“0”的情况是指不存在与要素编号关联的设备的通知请求。此外,与要素编号对应的标志值为“1”的情况是指存在与要素编号关联的设备的通知请求。
通过将标志141设为上述那样的结构,任务启动判定部111能够确定通知请求与哪个设备相关,然后能够启动适当的任务。
计时器设定部132通过在中断计时器160中设定计数器值而使OS执行部120产生OS依赖中断202。具体而言,计时器设定部132在中断计时器160中设定像0ms、1ms或0.5ms那样计数器值马上会变为0的值作为计数器值。
OS执行部120使用中断计时器160而产生OS依赖中断202。具体而言,OS执行部120在中断计时器160的计数器值变为0的情况下产生OS依赖中断202。
任务启动判定部111在由OS执行部120产生了OS依赖中断202时判定标志141是否有效。在标志141有效的情况下,任务启动判定部111启动任务145并且将标志141设为无效。将标志141设为无效是指将标志清零,具体而言,将值设定为“0”。即,任务启动判定部111根据标志141的状态而使任务145启动并且将标志141设为无效。具体而言,在标志141中设定“0”。
系统时刻管理部112根据当前时刻和上次执行时刻Tp来计算经过时间,该当前时刻是从时钟计时器170取得的当前的系统时刻,该上次执行时刻Tp是上次取得的系统时刻。
超时处理部113进行任务或计时器事件处理程序的超时处理。计算机装置100具有超时队列143,该超时队列143对任务或计时器事件处理程序的剩余时间144进行管理。超时处理部113根据当前时刻和上次启动任务的上次执行时刻Tp而再次设定超时队列143的剩余时间144。具体而言,计时器事件处理程序是μITRON规格实时OS中的周期处理程序或警报处理程序这样的处理程序。
超时设定部114对任务的超时队列或计时器事件处理程序队列进行管理。以下,超时队列143是指任务的超时队列或计时器事件处理程序队列。超时设定部114计算产生OS依赖中断202的下次中断时刻,以使得会在下次中断时刻产生OS依赖中断202的方式在中断计时器160中设定计数器值。
***动作的说明***
图4是示出本实施方式的计算机装置100的任务启动方法510和任务启动程序520的任务启动处理S100的流程图。任务启动程序520使作为计算机的计算机装置100执行以下所示的各处理。
任务启动处理S100具有OS依赖中断处理S10和OS独立中断处理S20。
在步骤S1中,计算机装置100在产生了OS依赖中断202的情况下前进到OS依赖中断处理S10。此外,计算机装置100在产生了OS独立中断201的情况下前进到OS独立中断处理S20。此外,计算机装置100在任何中断都没产生的情况下重复步骤S1。
<OS依赖中断处理S10>
图5是示出本实施方式的OS依赖中断处理S10的流程图。
在产生基于系统时钟的中断计时器160的OS依赖中断202时开始OS依赖中断处理S10。当借助中断计时器160而产生OS依赖中断202时,通过处理器910的OS执行部120所具有的中断功能,使OS依赖中断处理程序启动。然后,OS依赖中断处理程序调用任务启动判定部111。
在OS依赖中断处理S10中,OS依赖中断处理部110在由OS执行部120产生了OS依赖中断202时判定标志141是否有效。在标志141有效的情况下,OS依赖中断处理部110启动任务145并且将标志141设为无效。
在步骤S11中,任务启动判定部111判定标志141是否被置位。在标志141被置位的情况下,处理前进到步骤S12。在标志141无效的情况下,处理前进到步骤S13。
在步骤S12中,任务启动判定部111使用由OS提供的服务调用来起动要执行的任务145,将标志141设为无效。处理转移到由系统时刻管理部112执行的步骤S13。
接着,在步骤S13中,系统时刻管理部112从系统时刻的时钟计时器170取得当前的系统时刻作为执行时刻Tn。
在步骤S14中,系统时刻管理部112取得在上次的中断产生时预先存储于存储部140中的上次执行时刻Tp。系统时刻管理部112对上次执行时刻Tp和执行时刻Tn进行比较,计算从上次执行时刻Tp至执行时刻Tn的经过时间Tk。上次执行时刻Tp的初始值为0。处理转移到由超时处理部113执行的步骤S15。
在步骤S15中,超时处理部113根据系统时刻管理部112计算出的经过时间Tk,而进行任务或警报处理程序的超时处理。后文对超时处理的具体例进行说明。处理转移到由超时设定部114执行的步骤S16。
在步骤S16中,超时设定部114将在系统时刻管理部112中取得的执行时刻Tn作为上次执行时刻Tp存储于存储部140中。
然后,在步骤S17中,超时设定部114调查在超时队列143的先头要素中设定的剩余时间144,根据最小的剩余时间144来计算下次中断时刻Tf。
最后,在步骤S18中,超时设定部114设定中断计时器160的计数器值,以使得在下次中断时刻Tf产生系统时钟的中断计时器160的中断。
以上,结束OS依赖中断处理S10。
<OS独立中断处理S20>
图6是示出本实施方式的OS独立中断处理S20的流程图。
在任务启动请求处理S21中,当从设备200产生OS独立中断201时,OS独立中断处理程序启动。然后,OS独立中断处理程序调用任务启动请求部131。
在OS独立中断处理S20中,OS独立中断处理部130在产生因设备200的状态而引起的OS独立中断201时,判定是否要启动任务145。在要启动任务145的情况下,OS独立中断处理部130将标志141设为有效并且使OS执行部120产生OS依赖中断202。
在步骤S21中,任务启动请求部131判定是否需要启动任务145。任务启动请求部131根据任意的条件而判定是否启动任务145。在需要启动任务145的情况下,处理前进到步骤S22。在无需启动任务145的情况下,处理结束。
在步骤S22中,任务启动请求部131将标志141置位。处理转移到由计时器设定部132执行的步骤S23。
在步骤S23中,计时器设定部132以覆盖的方式设定中断计时器160的计数器值,以使得马上产生OS依赖中断202。具体而言,计时器设定部132将中断计时器160设定为0ms、1ms或2ms这样的计数器值,以使得会马上产生OS依赖中断202。
以上,结束OS独立中断处理程序处理S20。
另外,由计时器设定部132设定的中断计时器160的计数器值可以根据任意条件而动态地决定。具体而言,在自上次改写计数器值的时刻起的经过时间短的情况下,计时器设定部132也可以有意地设置较大的计数器值。或者,计时器设定部132也可以不实施计数器值的覆盖处理。这样的计数器值的设定处理也可以作为计时器设定部132的功能的一部分而提供。或者,用于判定是否实施计数器值的决定的处理部也可以是执行计数器值的设定处理。此外,用于判定是否实施计数器值的改写的处理部也可以执行计数器值的设定处理。
此外,在本实施方式中,任务启动判定部111在伴随着计时器中断而产生的OS依赖中断的处理内实施了判定是否需要启动任务的处理。但是,任务启动判定部111也可以在因其他要因而产生的中断的处理内实施判定是否需要启动任务的处理。
这里,使用图7至图10对本实施方式的计算机装置100进行的OS依赖中断处理S10的具体例进行说明。
在图7中示出了在本具体例中假定的中断的产生时机。示出了以下情形:在中断计时器160中设定了周期10ms,在从周期的开始时刻起经过3ms的时刻T1产生了OS独立中断201。另外,在图7至图10中,将OS依赖中断202记作kernel_int,将OS独立中断201记作nonkernel_int。
此外,在图8中,示出了超时队列和任务管理信息。将任务管理信息记作TCB(TaskControl Block:任务控制块)。超时队列是按照超时顺序将TCB连起来的信息。OS根据超时队列的剩余时间,在设定为需要执行任务的时机参照对应的TCB的内容而执行任务的处理。
图9是示出仅产生了OS依赖中断的情况下的OS依赖中断处理的具体例的图。使用图9对仅产生了OS依赖中断的情况下的图5的步骤S15至步骤S18的处理的具体例进行说明。此外,以下的(11)至(13)对应于图9所示的(11)至(13)。
在步骤S15中,超时处理部113确认有无已过了执行时间的任务,当存在已过了执行时间的任务的情况下,使OS执行该任务的处理。如果存在符合剩余时间-经过时间≤0的任务,则超时处理部113使OS执行该任务的处理。如图9的(11)所示,超时队列的先头的剩余时间为10ms,经过时间Tk为10ms,10-10=0,因此超时处理部113使OS执行任务1的处理。然后,超时处理部113将超时队列的先头指针的所指的地址更新为下一要素。如图9的(12)所示,超时处理部113将超时队列的先头指针所指的地址从要素0的地址变更为要素1的地址。
在步骤S16中,超时处理部113将执行时刻Tn作为上次执行时刻Tp存储于存储部140中。
在步骤S17中,超时处理部113计算下次中断时刻Tf。有时在超时队列中存在计时器事件处理程序用和警报处理程序用这样的多个超时队列。由此,超时处理部113对全部的超时队列的先头块的剩余时间进行比较以计算下次中断时刻Tf。
在步骤S18中,超时处理部113在中断计时器160中设定计数器值。以使得会在下次中断时刻Tf产生OS依赖中断的方式来设定中断计时器160的计数器值。如图9的(13)所示,超时处理部113在中断计时器160中设定7ms。
图10是示出在图9的处理之后在从周期的开始时刻起经过3ms的T1时刻产生了OS独立中断的情况下的OS依赖中断处理的具体例的图。
使用图10对在T1时刻产生了OS独立中断的情况下的图5的步骤S15至步骤S18的处理的具体例进行说明。此外,以下的(21)至(23)对应于图10的(21)至(23)。另外,在图10的情况下,从周期的开始时刻起的经过时间Tk为3ms。
在步骤S15中,超时处理部113确认有无已过了执行时间的任务,当存在已过了执行时间的任务的情况下,使OS执行该任务的处理。如果存在符合(剩余时间-经过时间)≤0的任务,则超时处理部113使OS执行该任务的处理。如图10的(21)所示,超时队列的先头的剩余时间为7ms,经过时间Tk为3ms,7-3=4,因此不存在超时处理部113要执行的任务。超时处理部113更新超时队列的剩余时间。如图10的(22)所示,由于自上次执行时刻Tp起经过了Tk=3ms,因此将剩余时间从7ms更新为(7-3)=4ms。
在步骤S16中,超时处理部113将执行时刻Tn作为上次执行时刻Tp存储于存储部140中。
在步骤S17中,超时处理部113计算下次中断时刻Tf。
在步骤S18中,超时处理部113在中断计时器160中设定计数器值。以使得会在下次中断时刻Tf产生OS依赖中断的方式在中断计时器160中设定计数器值。如图10的(23)所示,超时处理部113在中断计时器160设定4ms。
以上,结束对本实施方式的计算机装置100进行的OS依赖中断处理S10的具体例的说明。
***其他结构***
另外,计算机装置100也可以具有通信装置。通信装置具有接收器和发射器。具体而言,通信装置是通信芯片或NIC(Network Interface Card:网络接口卡)。通信装置作为通信数据的通信部而发挥功能。接收器作为接收数据的接收部而发挥功能,发射器作为发送数据的发送部而发挥功能。
此外,在本实施方式中,任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的功能是通过软件而实现的。但是,作为变形例,任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的功能也可以通过硬件而实现。
使用图11对本实施方式的变形例的计算机装置100的结构进行说明。
如图11所示,计算机装置100具有处理电路909、输入输出接口930、中断计时器160以及时钟计时器170这样的硬件。
处理电路909是实现上述的任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132、OS执行部120的功能以及存储部140的专用的电子电路。具体而言,处理电路909是单一电路、复合电路、程序化的处理器、并行程序化的处理器、逻辑IC、GA、ASIC或FPGA。GA是Gate Array(门阵列)的缩写。ASIC是Application Specific Integrated Circuit(专用集成电路)的缩写。FPGA是Field-Programmable Gate Array(现场可编程门阵列)的缩写。
任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120的功能可以由一个处理电路909实现,也可以分散于多个处理电路909而实现。
作为另一变形例,计算机装置100的功能也可以通过软件与硬件的组合而实现。即,也可以是,计算机装置100的一部分的功能通过专用的硬件而实现,其余功能通过软件而实现。
将计算机装置100的处理器910、存储装置920以及处理电路909统称为“处理电路”。即,无论计算机装置100的结构是图1和图11中的哪个图所示的结构,任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132、OS执行部120的功能以及存储部140也能够通过处理电路而实现。
也可以将“部”替换为“工序”或“过程”或“处理”。此外,也可以通过固件来实现“部”的功能。
***本实施方式的效果的说明***
根据本实施方式的计算机装置100,将标志置位并且产生OS依赖中断。因此,即使不通过周期性的OS依赖中断来监视标志,也能够在任意时间使任务启动。由此,根据本实施方式的计算机装置100,能够采用无滴答计时器方式作为OS的时间管理方式,并且能够抑制CPU使用率和功耗。而且,根据本实施方式的计算机装置100,无需周期性地检查标志,因此能够利用中断计时器以能够设定的最短时间响应通知请求。
根据本实施方式的计算机装置100,能够比由超时设定部设定的时刻早地产生OS依赖中断,能够启动任务。
根据本实施方式的计算机装置100,具有对系统时刻进行管理的系统时刻管理部。由此,根据本实施方式的计算机装置100,即使在通过计时器设定部而覆盖了中断计时器的计数器值的情况下,也能够使任务和警报处理程序在正确的时间工作。而且,本实施方式的计算机装置100具有对任务的超时队列和事件处理程序队列进行管理并且设定中断计时器的计数器值的超时设定部。由此,根据本实施方式的计算机装置100,即使在通过计时器设定部而覆盖了中断计时器的计数器值的情况下,也能够使OS依赖中断在正确的时间工作。
在本实施方式中,能够将任务启动判定部111、系统时刻管理部112、超时处理部113、超时设定部114、任务启动请求部131、计时器设定部132以及OS执行部120分别作为独立的功能块而构成计算机装置100。但是,也可以不是上述的实施方式那样的结构,计算机装置100的结构是任意的。此外,只要能够实现在上述的实施方式中所说明的功能,则计算机装置100的功能块可以是任意的。也可以通过这些功能块的其他的任何组合而构成计算机装置。此外,也可以通过任意的块结构而将这些功能块构成计算机装置。
此外,计算机装置可以是一个装置,也可以是由多个装置构成的计算机系统。
对实施方式1进行了说明,但也可以组合该实施方式中的多个部分而实施。或者,也可以实施该实施方式中的一个部分。此外,也可以将该实施方式的多个部分作为整体或部分地任意组合而实施。
另外,上述的实施方式本质上是优选的例示,并不意图限制本发明、其应用物以及用途的范围,能够根据需要而进行各种变更。
标号说明
100:计算机装置;110:OS依赖中断处理部;130:OS独立中断处理部;120:OS执行部;140:存储部;111:任务启动判定部;112:系统时刻管理部;113:超时处理部;114:超时设定部;131:任务启动请求部;132:计时器设定部;141:标志;143:超时队列;144:剩余时间;145:任务;160:中断计时器;170:计时器;200:设备;210:马达;220:传感器;201:OS独立中断;202:OS依赖中断;510:任务启动方法;520:任务启动程序;S10:OS依赖中断处理;S20:OS独立中断处理;S100:任务启动处理;Tp:上次执行时刻;Tn:执行时刻;Tf:下次中断时刻;Tk:经过时间;909:处理电路;910:处理器;920:存储装置;921:存储器;922:辅助存储装置;930:输入输出接口。
Claims (6)
1.一种计算机装置,其与设备连接,具有操作系统执行部,该操作系统执行部执行操作系统并且产生操作系统依赖中断,其中,
该计算机装置具有:
存储部,其存储标志;
操作系统独立中断处理部,其在产生因所述设备的状态而引起的操作系统独立中断时判定是否启动任务,在启动所述任务的情况下,将所述标志设为有效并且使所述操作系统执行部产生所述操作系统依赖中断;以及
操作系统依赖中断处理部,其在由所述操作系统执行部产生所述操作系统依赖中断时判定所述标志是否有效,在所述标志有效的情况下,启动所述任务并且将所述标志设为无效。
2.根据权利要求1所述的计算机装置,其中,
所述计算机装置具有中断计时器,
所述操作系统执行部使用所述中断计时器而产生所述操作系统依赖中断,
所述操作系统独立中断处理部通过在所述中断计时器中设定计数器值,从而使所述操作系统执行部产生所述操作系统依赖中断。
3.根据权利要求2所述的计算机装置,其中,
所述计算机装置具有对剩余时间进行管理的超时队列,
所述操作系统依赖中断处理部根据当前时刻和上次启动所述任务的上次执行时刻而再次设定所述超时队列的所述剩余时间。
4.根据权利要求2或3所述的计算机装置,其中,
所述操作系统依赖中断处理部计算产生所述操作系统依赖中断的下次中断时刻,以使得会在所述下次中断时刻产生所述操作系统依赖中断的方式在所述中断计时器中设定计数器值。
5.一种计算机装置的任务启动方法,该计算机装置与设备连接,具有操作系统执行部,该操作系统执行部执行操作系统并且产生操作系统依赖中断,其中,
操作系统独立中断处理部在产生因所述设备的状态而引起的操作系统独立中断时判定是否启动任务,在启动所述任务的情况下,将标志设为有效并且使所述操作系统执行部产生所述操作系统依赖中断,
操作系统依赖中断处理部在由所述操作系统执行部产生所述操作系统依赖中断时判定所述标志是否有效,在所述标志有效的情况下,启动所述任务并且将所述标志设为无效。
6.一种计算机装置的任务启动程序,该计算机装置与设备连接,具有操作系统执行部,该操作系统执行部执行操作系统并且产生操作系统依赖中断,,
所述任务启动程序使作为计算机的所述计算机装置执行以下处理:
操作系统独立中断处理,在产生因所述设备的状态而引起的操作系统独立中断时判定是否启动任务,在启动所述任务的情况下,将标志设为有效,并且使所述操作系统执行部产生所述操作系统依赖中断;以及
操作系统依赖中断处理,在由所述操作系统执行部产生所述操作系统依赖中断时判定所述标志是否有效,在所述标志有效的情况下,启动所述任务并且将所述标志设为无效。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/002498 WO2018138798A1 (ja) | 2017-01-25 | 2017-01-25 | 計算機装置、タスク起動方法およびタスク起動プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110192183A true CN110192183A (zh) | 2019-08-30 |
CN110192183B CN110192183B (zh) | 2023-07-07 |
Family
ID=62069404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780083766.2A Active CN110192183B (zh) | 2017-01-25 | 2017-01-25 | 计算机装置、任务启动方法以及计算机可读的存储介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10983823B2 (zh) |
JP (1) | JP6316522B1 (zh) |
CN (1) | CN110192183B (zh) |
DE (1) | DE112017006454B4 (zh) |
TW (1) | TW201828046A (zh) |
WO (1) | WO2018138798A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6972437B2 (ja) * | 2019-06-27 | 2021-11-24 | 三菱電機株式会社 | 電子制御ユニット及びプログラム |
CN113742059B (zh) * | 2021-07-15 | 2024-03-29 | 上海朋熙半导体有限公司 | 任务分配方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001092676A (ja) * | 1999-09-22 | 2001-04-06 | Kenwood Corp | 組み込みプログラムにおけるタスク管理システム |
JP2002073350A (ja) * | 2000-08-31 | 2002-03-12 | Matsushita Electric Ind Co Ltd | 割り込み管理装置及び割り込み管理方法 |
CN101639791A (zh) * | 2009-08-31 | 2010-02-03 | 浙江大学 | 一种改善嵌入式实时操作系统中断延迟的方法 |
CN103176841A (zh) * | 2013-03-06 | 2013-06-26 | 深圳市文鼎创数据科技有限公司 | 实时操作系统Tick时钟的实现方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0795276B2 (ja) * | 1990-11-19 | 1995-10-11 | 株式会社東芝 | 情報処理装置 |
US5845133A (en) * | 1995-07-06 | 1998-12-01 | Cyrix Corporation | Virtualized functions within a microprocessor |
JPH10143378A (ja) | 1996-11-15 | 1998-05-29 | Mitsubishi Electric Corp | コンピュータ装置、およびコンピュータ装置における緊急プロセスのプリエンプション方法 |
FR2760103B1 (fr) * | 1997-02-25 | 2000-02-04 | Sextant Avionique | Architecture modulaire de pilotage d'un aerodyne presentant un faible cout tout en etant apte a assurer un niveau eleve de securite de fonctionnement |
JP3930116B2 (ja) * | 1997-08-29 | 2007-06-13 | 株式会社東芝 | コンピュータシステム |
US6038632A (en) | 1997-05-07 | 2000-03-14 | Kabushiki Kaisha Toshiba | Interrupt control on SMM |
JPH11184712A (ja) * | 1997-12-24 | 1999-07-09 | Toshiba Corp | 情報処理装置 |
JP2000047880A (ja) | 1998-07-31 | 2000-02-18 | Canon Inc | オペレーティングシステム、その時間管理方法、情報処理装置および記憶媒体 |
US6466998B1 (en) * | 1999-08-25 | 2002-10-15 | Intel Corporation | Interrupt routing mechanism for routing interrupts from peripheral bus to interrupt controller |
US6792492B1 (en) | 2001-04-11 | 2004-09-14 | Novell, Inc. | System and method of lowering overhead and latency needed to service operating system interrupts |
US6910381B2 (en) * | 2002-05-31 | 2005-06-28 | Mykrolis Corporation | System and method of operation of an embedded system for a digital capacitance diaphragm gauge |
US20040088704A1 (en) | 2002-10-30 | 2004-05-06 | Advanced Simulation Technology, Inc. | Method for running real-time tasks alongside a general purpose operating system |
JP2004199393A (ja) | 2002-12-18 | 2004-07-15 | Matsushita Electric Ind Co Ltd | タスク制御装置及びタスク制御方法 |
JP2005190207A (ja) * | 2003-12-25 | 2005-07-14 | Matsushita Electric Ind Co Ltd | 割り込み制御装置、制御方法 |
JP4072503B2 (ja) | 2004-02-04 | 2008-04-09 | シャープ株式会社 | 補助演算用コプロセッサ内蔵型icカード及びその制御方法 |
JP4829177B2 (ja) | 2007-06-11 | 2011-12-07 | ルネサスエレクトロニクス株式会社 | ディスパッチ装置 |
JP2009261865A (ja) | 2008-04-25 | 2009-11-12 | Haruo Kitamura | ぞうり編み機 |
KR20150058618A (ko) * | 2013-11-18 | 2015-05-29 | 한국전자통신연구원 | 실시간 임베디드 시스템에서의 지연 보상 방법 및 그 장치 |
JP6354333B2 (ja) | 2014-05-27 | 2018-07-11 | 富士通株式会社 | 情報処理装置及びタイマ設定方法 |
-
2017
- 2017-01-25 US US16/466,180 patent/US10983823B2/en active Active
- 2017-01-25 CN CN201780083766.2A patent/CN110192183B/zh active Active
- 2017-01-25 JP JP2017563144A patent/JP6316522B1/ja not_active Expired - Fee Related
- 2017-01-25 WO PCT/JP2017/002498 patent/WO2018138798A1/ja active Application Filing
- 2017-01-25 DE DE112017006454.6T patent/DE112017006454B4/de not_active Expired - Fee Related
- 2017-04-11 TW TW106111995A patent/TW201828046A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001092676A (ja) * | 1999-09-22 | 2001-04-06 | Kenwood Corp | 組み込みプログラムにおけるタスク管理システム |
JP2002073350A (ja) * | 2000-08-31 | 2002-03-12 | Matsushita Electric Ind Co Ltd | 割り込み管理装置及び割り込み管理方法 |
CN101639791A (zh) * | 2009-08-31 | 2010-02-03 | 浙江大学 | 一种改善嵌入式实时操作系统中断延迟的方法 |
CN103176841A (zh) * | 2013-03-06 | 2013-06-26 | 深圳市文鼎创数据科技有限公司 | 实时操作系统Tick时钟的实现方法及装置 |
Non-Patent Citations (2)
Title |
---|
RENESAS ELECTRONICS CORPORATION: "Real-time OS RI600/4 for RX600 Series Application Note: Application Transition Guide (from M3T-MR30/4 to RI600/4)", 《HTTPS://WWW2.RENESAS.CN/CN/ZH/PRODUCTS/MICROCONTROLLERS-MICROPROCESSORS/OTHER-MCUS-MPUS/R8C-FAMILY-MCUS/R8C36E-16-BIT-MICROCONTROLLERS-R8C-CPU-CORE-NON-PROMOTION#OVERVIEW》 * |
邹昌伟等: "面向嵌入式的协程与脚本化机制", 《计算机应用》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018138798A1 (ja) | 2018-08-02 |
US20200004581A1 (en) | 2020-01-02 |
JP6316522B1 (ja) | 2018-04-25 |
CN110192183B (zh) | 2023-07-07 |
TW201828046A (zh) | 2018-08-01 |
JPWO2018138798A1 (ja) | 2019-02-07 |
DE112017006454B4 (de) | 2020-06-10 |
DE112017006454T5 (de) | 2019-10-02 |
US10983823B2 (en) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190155770A1 (en) | Deferred inter-processor interrupts | |
TW201015289A (en) | Coordinated link power management | |
US20120185776A1 (en) | Analyzing resource consumption of software executing during a usage scenario | |
US9477293B2 (en) | Embedded controller for power-saving and method thereof | |
US7694164B2 (en) | Operating system-independent method and system of determining CPU utilization | |
US20210334228A1 (en) | Managing network interface controller-generated interrupts | |
WO2022179486A1 (zh) | 多核处理器任务调度方法、装置及设备、存储介质 | |
KR20120115398A (ko) | 전자 디바이스에서 전력을 제어하는 시스템 및 방법 | |
CN110192183A (zh) | 计算机装置、任务启动方法以及任务启动程序 | |
CN109685465A (zh) | 任务发布方法及装置 | |
WO2019028986A1 (zh) | 应用升级方法、装置、终端设备及计算机可读存储介质 | |
CN108292236A (zh) | 一种信息处理方法及装置 | |
CN107292142B (zh) | 业务操作处理方法、业务操作处理装置及业务终端 | |
US10061676B2 (en) | Remotely located timing method and device for a processing unit in an information processing system | |
WO2023213118A1 (zh) | 任务调度的方法、装置和设备 | |
TW201349120A (zh) | 在無系統管理中斷機制下執行基本輸入輸出系統工具程式之方法 | |
CN112131297A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111175573A (zh) | 交流电压频率的检测方法、装置、设备及介质 | |
US8572619B2 (en) | System and method for integrating software schedulers and hardware interrupts for a deterministic system | |
CN115826731B (zh) | 休眠控制方法及装置、存储介质和计算设备 | |
Kurian et al. | Restructuring a pattern language which supports time-triggered co-operative software architectures in resource-constrained embedded systems | |
Barde et al. | SEPIA: A framework for optimizing energy consumption in Android devices | |
CN102122192B (zh) | 一种多任务操作系统下的高精度定时器 | |
JP2006163983A (ja) | リアルタイムosシミュレーション方式 | |
CN105630714B (zh) | 接口资源分析装置及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |