电子设备以及信息处理方法

文档序号:10654324阅读:257来源:国知局
电子设备以及信息处理方法
【专利摘要】本发明提供一种电子设备以及信息处理方法。本发明的电子设备具备:存取对象,被多个任务存取;以及处理器。处理器使存取计数器、高优先级任务及低优先级任务进行动作,存取计数器具有初始值,并回避对存取对象的存取的竞争,高优先级任务在开始进行对存取对象的存取时将存取计数器加一,在对存取对象的存取完成时将存取计数器减一,低优先级任务在存取计数器具有初始值时对存取对象进行存取。根据本发明,能够以简便的方法进行竞争回避控制。
【专利说明】
电子设备以及信息处理方法
技术领域
[0001]本发明涉及控制对存取对象的多个存取的竞争的电子设备以及信息处理方法。
【背景技术】
[0002]为了避免多个进程同时对存取对象、例如存储器上的特定区域等进行存取而产生竞争,设想了各种各样的办法。另外,在下文中将这些设想称为竞争回避控制。
[0003]例如,在具有打印机功能和复印功能的典型的图像形成装置中,为复印功能设定比打印机功能更高的对图像形成部的优先级,以免当两个功能被同时利用时,对由两个功能共享利用的图像形成部的存取产生竞争。
[0004]又例如,提出了如下技术方案:预先为多个输入端口确定优先级,当产生对输出端口的竞争时,首先对来自具有最高优先级的输入端口的输入允许对输出端口的存取。
[0005]另外,作为使用存取数的控制,例如提出了如下技术方案:统计对文件或文件夹的存取数,根据存取数的多寡来调整在画面上显示各文件夹的顺序。
[0006]例如,在典型的图像形成装置中,在用于判断相竞争的功能间的优先级的竞争回避控制中,使用了标记。
[0007]但是,在使用标记时,如果相竞争的功能的数量增加,则用于竞争回避控制的标记的数量也必须增加,为了确认不产生竞争,必须对全部标记进行检查。

【发明内容】

[0008]本发明的目的在于提供一种能够以简便的方法进行竞争回避控制的电子设备以及信息处理方法。
[0009]本发明的实施方式所涉及的电子设备具备:存取对象,被多个任务存取;以及处理器。所述处理器使存取计数器、高优先级任务及低优先级任务进行动作。所述存取计数器具有特定的初始值,并回避对所述存取对象的存取的竞争。所述高优先级任务在开始进行对所述存取对象的所述存取时将所述存取计数器加一,在对所述存取对象的所述存取完成时将所述存取计数器减一。所述低优先级任务在所述存取计数器具有所述特定的初始值时对所述存取对象进行存取。
[0010]本发明的实施方式所涉及的信息处理方法通过电子设备来执行。所述信息处理方法包括:通过处理器,(i)使具有特定的初始值的存取计数器进行动作,以回避对被多个任务存取的存取对象的存取的竞争,(ii)使高优先级任务以如下方式进行动作:在开始进行对所述存取对象的所述存取时将所述存取计数器加一,在对所述存取对象的所述存取完成时将所述存取计数器减一,(i ii)使低优先级任务以如下方式进行动作:在所述存取计数器具有所述特定的初始值时对所述存取对象进行存取。
[0011]如上所述,根据本发明,能够以简便的方法进行竞争回避控制。
【附图说明】
[0012]图1示出本发明的实施方式所涉及的电子设备的结构。
[0013]图2示出实施方式所涉及的使用轮询来确认存取计数器的值从而进行竞争回避控制的处理。
[0014]图3示出实施方式所涉及的使用事件信号量来确认存取计数器的值从而进行竞争回避控制的处理。
[0015]图4示出实施方式所涉及的使用事件信号量来进行竞争回避控制时的处理。
【具体实施方式】
[0016]下面参照附图对本发明的实施方式进行说明。
[0017]另外,在以下的说明中,作为多个存取所竞争的存取对象的例子,举出在硬盘驱动器(HDD)等存储装置中存储的文件来进行说明。另外,存取对象并不限于文件,只要是电子设备所具有的资源,则无论何种资源均可。
[0018]此外,在以下的说明中,对于与优先级低的任务及优先级高的任务有关的存取竞争的回避进行说明,而所谓优先级高的任务,例如在图像形成装置(MFP)中可以举出传真功能。这是由于在传真功能中有必须在一定时间以内向对方返回应答这样的限制。此外,所谓优先级低的任务,例如在图像形成装置中可以举出复印功能、打印功能。如此,各个任务根据针对对应功能的限制等特性而被预先确定优先级。
[0019][概要]
[0020]首先,对本发明的概要进行说明。
[0021]在本发明中,如上所述,为了进行用于避免由多个存取带来的竞争的存取控制,代替使用多个标记而使用存取计数器,该存取计数器用于对由优先级高的处理即不希望被来自其他优先级低的处理的存取妨碍而产生延迟的处理针对存取对象的存取数进行统计。
[0022]存取计数器在初始状态下被设定为“O”(特定的初始值)。这意味着没有正在对存取对象进行存取的优先级高的处理。
[0023]在该存取计数器中,优先级高的处理在对存取对象进行存取时,将存取计数器加一后开始进行存取,在存取结束的时点,将存取计数器减一。
[0024]即使优先级高的处理存在有多个时,也针对一个存取计数器进行计数器的加一和减一。
[0025]而且,优先级低的处理在开始进行对存取对象的存取之前,参照存取计数器,如果存取计数器的值为正数(不为特定的初始值),则判断为正在进行由优先级高的处理对存取对象的存取,从而不进行对存取对象的存取。
[0026]此外,优先级低的处理在开始进行对存取对象的存取之前参照存取计数器时,如果存取计数器的值为“O”,则判断为并未进行由优先级高的处理对存取对象的存取,从而进行对存取对象的存取。
[0027]这样,优先级低的处理为了判断自身对存取对象进行存取是否被允许,不考虑正在对当前存取对象进行存取的优先级高的处理的数量,而仅对存取计数器的值是否为正数进行判断即可,因此与对大量标记全部进行确认的情况相比,能够简便地进行竞争回避控制。
[0028]另外,作为优先级低的处理为了对存取对象进行存取而对存取计数器的值已变为“O”进行确认的方法,例如可以举出使用轮询的方法或者使用事件信号量的方法。
[0029]关于使用轮询的方法以及使用事件信号量的方法的详细内容,将在后文描述。此夕卜,关于通常的一般的信号量与事件信号量的差异,也将在后文描述。
[0030]以上对本发明的概要进行了说明。
[0031 ][关于信号量与事件信号量]
[0032]接着,对一般而言被称为信号量的存取控制方法与上述的事件信号量的不同进行说明。
[0033]在存取控制中使用信号量时,例如,假设任务A首先取得信号量,接着,任务B取得信号量,接着,任务C取得信号量,则首先由任务A开始进行针对存取对象的处理,任务B和任务C进入等待信号量状态。
[0034]当任务A的处理完成并释放信号量后,在已进入等待信号量状态的任务B和任务C之中,在较早时期取得信号量的任务B的针对存取对象的处理被开始执行,任务C保持等待信号量状态。
[0035]当任务B的针对存取对象的处理完成并释放信号量后,处于等待信号量状态的任务C的针对存取对象的处理被加以执行。
[0036]与此相对,在存取控制中使用事件信号量时,例如,假设任务A首先取得事件信号量,接着,任务B取得事件信号量,接着,任务C取得事件信号量,则首先由任务A开始进行针对存取对象的处理,任务B和任务C进入等待事件信号量状态。
[0037]当任务A的针对存取对象的处理完成并释放(清除)事件信号量后,处于等待事件信号量状态的全部任务即任务B和任务C的针对存取对象的处理被一次性地开始执行。
[0038]以上对一般而言被称为信号量的存取控制方法与上述的事件信号量的不同进行了说明。另外,事件信号量的功能可以通过操作系统(0S,0perating System)来实现。
[0039][结构]
[0040]接着,对本发明的实施方式所涉及的电子设备的结构进行说明。图1示出本发明的实施方式所涉及的电子设备10的结构。另外,在以下的说明中,对电子设备10被构成为一般的计算机时的具体例进行说明。
[0041 ] 如图1所示,电子设备10具有中央处理器(CI3U,Central Processing Unit)ll、只读存储器(R0M,Read Only ]^111(^5012、随机存取存储器(1^]\1,1^11(10111 Access Memory) 13n操作输入部14、网络接口部15、显示部16以及存储部17,上述各部件经由总线18被连接。
[0042]R0M 12具有固定地存储用于执行各种处理的固件等多个程序及数据的区域。
[0043]RAM 13被用作CPU 11的工作用区域,临时保存OS、正在执行的各种应用程序、正在处理的各种数据以及存取计时器13a。存取计时器13a在用于防止由多个任务带来的存取的竞争的存取控制中被使用。通过在CPU 11中执行程序,从而CPU 11能够使存取计数器13a进行动作并对存取计数器13a的值进行变更。
[0044]存储部17是具有存储区域的例如硬盘驱动器(HDD,Hard Disk Drive)、闪存或其他的非易失性存储器。在存储部17中,除了OS及各种应用程序、各种数据之外,还存储有被多个任务存取的文件17a。
[0045]网络接口部15与用于与图像形成装置20进行信息交互的网络30连接,既从图像形成装置20收集信息,也向图像形成装置20提供所收集的信息。
[0046]CPU 11是用于将在ROM 12及存储部17中保存的多个程序之中的与从操作输入部14发出的命令相对应的程序展开到RAM 13中,并根据该展开后的程序对显示部16和存储部17进行适当控制的控制部。
[0047]通过在CPU 11中执行程序,从而实现高优先级任务H1、高优先级任务H2以及低优先级任务LI等功能块。换目之,在执行程序时,CI3U 11使尚优先级任务Hl、尚优先级任务H2以及低优先级任务LI等功能块进行动作。另外,高优先级任务和低优先级任务无论有多少都可以。
[0048]高优先级任务Hl、高优先级任务H2以及低优先级任务LI等在参照RAM 13上的存取计数器13a来进行存取控制的同时,对存储部17内的文件17a进行存取以进行处理。
[0049]操作输入部14是例如鼠标等的定点设备、键盘、触摸面板或其他操作装置。
[0050]显示部16例如为液晶显示器、电致发光(EL,Electro-Luminescence)显示器、等离子体显示器、阴极射线管(CRT,Cathode Ray Tube)显示器等。显示部16既可以内置于电子设备10,也可以外部连接到电子设备10。
[0051 ]以上对电子设备10的结构进行了说明。
[0052][关于使用轮询的处理]
[0053]接着,对上述的使用轮询来确认存取计数器的值从而进行竞争回避控制的处理进行说明。图2示出使用轮询来确认存取计数器的值从而进行竞争回避控制的处理。
[0054]首先,假设高优先级任务Hl对存储部17内的文件17a进行存取。此时,高优先级任务Hl将存取计数器13a加一(步骤S21)。
[0055]接着,高优先级任务Hl对存储部17内的文件17a进行存取(步骤S22)。
[0056]接着,假设低优先级任务LI为了对文件17a进行存取而获取存取计数器13a的值(步骤S23)。在该时点,由于存取计数器13a已经被高优先级任务Hl加一,因此作为存取计数器13a的值而返回“I”。
[0057]由于作为存取计数器13a的值而返回了正数,因此低优先级任务LI等待对文件17a的存取。
[0058]在获取存取计数器13a的值后经过一定时间之后,低优先级任务LI再次获取存取计数器13a的值(步骤S24)。在该时点,由于存取计数器13a保持已被高优先级任务Hl加一的状态,因此作为存取计数器13a的值也返回“I”。
[0059]接着,假设高优先级任务Hl中的对文件17a的存取处理完成。高优先级任务Hl将存取计数器13a减一(步骤S25)。
[0060]接着,假设高优先级任务H2对存储部17内的文件17a进行存取。此时,高优先级任务H2将存取计数器13&加一(步骤326)。
[0061]这样,在步骤S25与步骤S26之间,存取计数器13a的值为“O”。因而,低优先级任务LI如果在步骤S25与步骤S26之间的时刻获取存取计数器13a的值,则能够检测到值为“O”,据此能够对文件17a进行存取。
[0062]但是,在图2所示的例子中,在步骤S25与步骤S26之间,低优先级任务LI为正在等待下一次轮询时刻的状态,因此无法获知存取计数器13a的值已变为“O”,从而无法对文件17a进行存取。
[0063]接着,假设低优先级任务LI获取了存取计数器13a的值(步骤S27)。在该时点,被高优先级任务Hl减一后的存取计数器13a被高优先级任务H2再次加一,值已变为“I”,因此低优先级任务LI必须等待对文件17a进行存取。
[0064]接着,高优先级任务H2对存储部17内的文件17a进行存取。(步骤S28)。
[0065]在获取存取计数器13a的值后经过一定时间之后,低优先级任务LI再次获取存取计数器13a的值(步骤S29)。在该时点,由于存取计数器13a已被高优先级任务H2加一,因此作为存取计数器13a的值也返回“I”。
[0066]接着,假设高优先级任务H2完成了对文件17a的存取。高优先级任务H2将存取计数器13&减一(步骤330)。
[0067]在获取存取计数器13a的值后经过一定时间之后,低优先级任务LI再次获取存取计数器13a的值(步骤S31)。在该时点,由于存取计数器13a已被高优先级任务H2减一,因此作为存取计数器13a的值而返回“O”。
[0068]由于作为存取计数器13a的值而返回了“O”,因此低优先级任务LI对文件17a进行存取(步骤S32)。
[0069]如上所述,低优先级任务LI由于在步骤S25与步骤S26之间未能检测到存取计数器13a的值已变为“O”,因此必须等待对文件17a的存取,直到步骤S32的时点为止。
[0070]如果在步骤S30中高优先级任务H2将存取计数器13a减一之后,其他的高优先级任务在低优先级任务LI获取存取计数器13a的值之前已将存取计数器13a加一,则低优先级任务LI必须用更长的时间来等待对文件17a的存取。
[0071]以上对使用轮询来确认存取计数器的值从而进行竞争回避控制的处理进行了说明。
[0072][关于使用事件信号量的处理]
[0073]接着,对上述的使用事件信号量来确认存取计数器的值从而进行竞争回避控制的处理进行说明。图3示出使用事件信号量来确认存取计数器的值从而进行竞争回避控制的处理。
[0074]首先,假设高优先级任务Hl对存储部17内的文件17a进行存取。此时,高优先级任务Hl将存取计数器13a加一(步骤SI)。
[0075]接着,高优先级任务Hl对存储部17内的文件17a进行存取(步骤S2)。
[0076]接着,假设高优先级任务H2对存储部17内的文件17a进行存取。此时,高优先级任务H2将存取计数器13a加一(步骤S3)。
[0077]接着,高优先级任务H2对存储部17内的文件17a进行存取(步骤S4)。
[0078]接着,假设低优先级任务LI对存储部17内的文件17a进行存取。此时,低优先级任务LI获取存取计数器13a的值(步骤S5)。在低优先级任务LI获取存取计数器13a的值的时点下,由于两个高优先级任务Hl和H2正在对文件17a进行存取,因此作为存取计数器13a的值而返回“2”。
[0079]当作为存取计数器13a的值而返回了正数时,低优先级任务LI指定超时时间例如100ms,并进入等待事件信号量(即暂时停止)状态(步骤S6)。
[0080]假设在低优先级任务LI正在等待事件信号量的清除的期间,高优先级任务Hl对文件17a的存取完成,则高优先级任务Hl将存取计数器13a减一(步骤S7)。
[0081]减一后,高优先级任务Hl判断存取计数器13a的值作为减一的结果是否已变为“O”。在此,由于存取计数器13a的值为“I”,因此与高优先级任务Hl有关的竞争回避控制完成。
[0082]假设在低优先级任务LI正在等待事件信号量的清除的期间,高优先级任务H2对文件17a的存取完成,则高优先级任务H2将存取计数器13a减一(步骤S8)。
[0083]减一后,高优先级任务H2判断存取计数器13a的值作为减一的结果是否已变为“O”。在此,由于存取计数器13a的值为“O”,因此高优先级任务H2将事件信号量清除(步骤S8.I) ο
[0084]当事件信号量被清除后,处于等待事件信号量状态的全部低优先级任务(在此为低优先级任务LI)的处理被重新开始,针对文件17a的存取被执行(步骤S9)。
[0085]以上对使用事件信号量来确认存取计数器的值从而进行竞争回避控制的处理进行了说明。
[0086]如上所述,在使用事件信号量时,与使用轮询时相比,由于在存取计数器13a的值变为“O”的时点立刻进行事件信号量的清除,因此已进入等待事件信号量状态的低优先级任务能够立刻开始进行针对文件17a的存取。
[0087][关于使用事件信号量时的注意事项]
[0088]接着,对使用事件信号量来进行竞争回避控制时的注意事项进行说明。图4示出使用事件信号量来进行竞争回避控制时的处理。
[0089]首先,假设高优先级任务Hl对存储部17内的文件17a进行存取。此时,高优先级任务Hl将存取计数器13a加一(步骤Sll)。
[0090]接着,高优先级任务Hl对存储部17内的文件17a进行存取(步骤S12)。
[0091]接着,假设低优先级任务LI对存储部17内的文件17a进行存取。此时,低优先级任务LI获取存取计数器13a的值(步骤S13)。在低优先级任务LI获取存取计数器13a的值的时点下,由于一个高优先级任务Hl正在对文件17a进行存取,因此作为存取计数器13a的值而返回“I”。
[0092]接着,假设高优先级任务Hl中的对文件17a的存取处理完成。此时,高优先级任务Hl将存取计数器13a减一(步骤S14)。
[0093]减一后,高优先级任务Hl判断存取计数器13a的值作为减一的结果是否已变为“O”。在此,由于存取计数器13a的值为“O”,因此高优先级任务Hl将事件信号量清除(步骤S14.1)。
[0094]但是,由于低优先级任务LI尚未进入等待事件信号量状态,因此在步骤S14.1中进行的清除不会给低优先级任务LI带来任何效果,低优先级任务LI无法检测到事件信号量已被清除。
[0095]而且,低优先级任务LI由于在步骤S13中获取的值为正数,因此指定超时时间并进入等待事件信号量状态(步骤S15)。
[0096]在经过超时时间之后,低优先级任务LI再次获取存取计数器13a的值(步骤S16)。由于由高优先级任务Hl对文件17a的存取已完成,因此作为存取计数器13a的值而返回“O”。
[0097]由于存取计数器13a的值为“O”,因此低优先级任务LI进行对文件17a的存取(步骤S17)。
[0098]如上所述,如果事件信号量的清除在低优先级任务LI确认存取计数器13a的值之后直到进入等待事件信号量状态为止的期间内被执行,则此后进入等待事件信号量状态的低优先级任务LI的处理将不会被重新开始,直到下一次清除被执行为止。
[0099]但是,直到由高优先级任务进行的存取计数器13a的加一和减一被执行为止,下一次清除不会被执行。
[0100]因此,在低优先级任务LI中,必须在进入等待事件信号量状态时指定等待事件信号量的超时时间,并且每当超时时间到来时必须对存取计数器13a的值进行确认。
[0101]另外,作为低优先级任务LI检测超时时间到来的方法,可以为如下技术方案:从OS接收超时时间到来的通知。
[0102]以上对使用事件信号量来进行竞争回避控制时的注意事项进行了说明。
[0103]此外,本发明并非仅仅限定于上述的实施方式,在不脱离本发明的主旨的范围内可以施加各种变更是不言而喻的。
【主权项】
1.一种电子设备,具备: 存取对象,被多个任务存取;以及 处理器, 所述处理器使存取计数器、高优先级任务及低优先级任务进行动作, 所述存取计数器具有特定的初始值,并回避对所述存取对象的存取的竞争, 所述高优先级任务在开始进行对所述存取对象的所述存取时将所述存取计数器加一,在对所述存取对象的所述存取完成时将所述存取计数器减一, 所述低优先级任务在所述存取计数器具有所述特定的初始值时对所述存取对象进行存取。2.根据权利要求1所述的电子设备, 所述处理器使所述低优先级任务以如下方式进行动作:在所述存取计数器的值不为所述特定的初始值时,每隔特定的时间,对所述存取计数器进行轮询以确认所述存取计数器的值。3.根据权利要求1所述的电子设备, 所述处理器 在所述低优先级任务进入等待事件信号量的状态时,使所述低优先级任务的处理暂时停止, 在所述事件信号量被清除时,使操作系统进行动作,所述操作系统使被暂时停止的所述低优先级任务的处理重新开始, 使所述低优先级任务以如下方式进行动作:在对所述存取对象进行存取之前确认所述存取计数器的值,当所述存取计数器的值不为所述特定的初始值时,进入等待所述事件信号量的状态,在所述事件信号量被清除时,对所述存取对象进行存取, 使所述高优先级任务以如下方式进行动作:在完成对所述存取对象的所述存取并将所述存取计数器减一后,确认所述存取计数器的值,当所述存取计数器的值为所述特定的初始值时,对所述事件信号量进行清除。4.根据权利要求3所述的电子设备, 所述处理器 使所述低优先级任务以如下方式进行动作:在进入等待所述事件信号量的状态时,指定特定的超时时间, 使所述操作系统以如下方式进行动作:在经过所述特定的超时时间后,通知所述低优先级任务已经过了所述特定的超时时间, 使所述低优先级任务以如下方式进行动作:在处于等待所述事件信号量的状态且被通知已经过了所述特定的超时时间时,确认所述存取计数器的值。5.—种信息处理方法,通过电子设备来执行,包括: 通过处理器, 使具有特定的初始值的存取计数器进行动作,以回避对被多个任务存取的存取对象的存取的克争, 使高优先级任务以如下方式进行动作:在开始进行对所述存取对象的所述存取时将所述存取计数器加一,在对所述存取对象的所述存取完成时将所述存取计数器减一, 使低优先级任务以如下方式进行动作:在所述存取计数器具有所述特定的初始值时对所述存取对象进行存取。
【文档编号】G06F9/50GK106020965SQ201610140298
【公开日】2016年10月12日
【申请日】2016年3月11日
【发明人】前园祐矢
【申请人】京瓷办公信息系统株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1