CN101295273A - 看门狗设计方法及看门狗 - Google Patents
看门狗设计方法及看门狗 Download PDFInfo
- Publication number
- CN101295273A CN101295273A CNA2008101153263A CN200810115326A CN101295273A CN 101295273 A CN101295273 A CN 101295273A CN A2008101153263 A CNA2008101153263 A CN A2008101153263A CN 200810115326 A CN200810115326 A CN 200810115326A CN 101295273 A CN101295273 A CN 101295273A
- Authority
- CN
- China
- Prior art keywords
- count value
- program
- house dog
- startup
- constantly
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013461 design Methods 0.000 title abstract description 5
- 238000012544 monitoring process Methods 0.000 claims abstract description 23
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了看门狗设计方法及看门狗。方法包括:看门狗启动,从0开始计数,看门狗检测到***读取计数值,计算计数值除以预设值后所得的余数,看门狗从该余数起重新开始计数。本发明避免了看门狗在到达预设值后发出信号而引起***响应该信号情况的发生,降低了***的处理负担。本发明可用于监测多个启动程序的先后顺序、监测相邻程序之间的启动时间间隔、跟踪多个应用程序的运行时长或结束时刻等。
Description
技术领域
本发明涉及定时器技术领域,具体涉及看门狗设计方法及看门狗。
背景技术
看门狗是一种设备或电子卡,如果一个***出现故障且在预定时长内不能自动恢复,则看门狗就会执行特殊操作。例如:对于一台机器或者操作***,如果其内部两个部件或者程序出现冲突,或者在操作***中出现内存管理问题时,***就会挂起,在某些情况下,***最终将会自己恢复,但是从挂起到恢复可能需要很长一段时间,此时,可将看门狗设置成如下模式:当在预定时长内***对外设部件如:鼠标、键盘的动作都没有反应时,看门狗就执行热启动。看门狗还有其他用途,例如:在浏览网页时,若输入网址之后的预定时长内网页都未完全装载,此时,看门狗就自动开启网页上的刷新按钮来执行刷新动作。
目前,看门狗都是通过以下原理设计的:看门狗内包含一个计数器,该计数器从一个预设值开始以不变的速度减到0,或者从0加到预设值,当***发生异常后,若在计数器从预设值减到0或从0加到预设值之前***未恢复,则看门狗就会向指定的电路发送信号,通知电路执行相应动作,同时返回初始值。
可以看出,目前看门狗主要用于检测***异常以帮助***恢复。实际上,在其他应用中也需用到看门狗,例如:在某些***的启动过程中,需要保证多个启动程序的先后顺序,可能还需要保证相邻程序之间的启动时间间隔不大于预设间隔;或者,在***的多个应用程序的运行过程中,需要跟踪各个应用程序的运行时长或结束时刻。这两种情况下,若采用现有的看门狗设计方案,则看门狗每减少到0或增加到预设值都要发出信号,***都要来响应该信号,但此时可能并不是程序的启动或结束时刻,***响应该信号是无用的,这显然给***增加了无谓的处理负担。
发明内容
本发明提供看门狗设计方法及看门狗,以降低***处理负担。
本发明的技术方案是这样实现的:
一种看门狗设计方法,包括:
看门狗启动,从0开始计数,看门狗检测到***读取计数值,计算计数值除以预设值后所得的余数,看门狗从该余数起重新开始计数。
看门狗预先设置一个最大计数值,
且,所述方法进一步包括:看门狗检测到计数值到达最大计数值,则从0开始重新计数。
所述看门狗从0开始重新计数的同时进一步包括:看门狗向***发出复位信号。
所述看门狗检测到***读取计数值之前进一步包括:
***检测到一个程序启动,从看门狗读取计数值;
且,***根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的启动时刻;
当所有程序都启动后,***根据所有程序的启动时刻,确定程序启动的先后顺序是否正确。
所述***将该总计数值作为当前程序的启动时刻之后进一步包括:
***计算当前程序的启动时刻与前一程序的启动时刻的差值,判断该差值是否不大于预设最大启动时间间隔,若是,确定当前程序与前一程序的启动间隔正常;否则,确定当前程序与前一程序的启动间隔异常。
所述述看门狗检测到***读取计数值之前进一步包括:
***检测到一个程序结束,从看门狗读取计数值;
且,***根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的结束时刻。
所述***将总计数值作为当前程序的结束时刻之后进一步包括:
***计算当前程序的结束时刻与前一程序的结束时刻的差值,将该差值作为当前程序的运行时长。
一种看门狗,包括:计数器和重启模块,其中:
计数器,启动时,从0开始计数;接收到重启模块发来的余数,从该余数起开始重新计数;
重启模块,检测到***从计数器读取计数值,计算计数值除以预设值后所得的余数,将该余数发送给计数器。
该看门狗进一步包括:
复位模块,检测到计数器的计数值到达预先设置的最大计数值,则向计数器发送复位指示;
且,所述计数器收到该复位指示后,从0开始重新计数。
所述复位模块进一步用于,在检测到计数器的计数值到达预先设置的最大计数值时,向***发出复位信号。
一种应用看门狗的***,包括:
看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除以预设值后所得的余数,从该余数起重新开始计数;
程序启动监测模块,检测到一个程序启动,读取看门狗的计数值,将该计数值发送出去;
程序启动时刻确定模块,接收程序启动监测模块发来的计数值,计算看门狗的当前总计数值,将该总计数值作为当前程序的启动时刻,记录该启动时刻;
程序启动时刻记录模块,记录每个程序的启动时刻;
程序启动顺序检测模块,从程序启动时刻记录模块获取各程序的启动时刻,根据该启动时刻确定程序启动的先后顺序是否正确。
所述***进一步包括:
启动间隔监测模块,从程序启动时刻记录模块读取各程序的启动时刻,计算相邻程序的启动时刻之差,将该差值与预设最大启动时间间隔比较,以确定该相邻程序的启动间隔是否正常。
一种应用看门狗的***,包括:
看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除以预设值后所得的余数,从该余数起重新开始计数;
程序结束监测模块,检测到一个程序结束,读取看门狗的计数值,将该计数值发送出去;
程序结束时刻确定模块,接收程序结束监测模块发来的计数值,计算看门狗的当前总计数值,将该总计数值作为当前程序的结束时刻。
该***进一步包括:
程序结束时刻记录模块,记录每个程序的结束时刻;
程序运行时长确定模块,从程序结束时刻记录模块读取当前程序与前一程序的结束时刻,计算当前程序与前一程序的结束时刻之差,该差值即为当前程序的运行时长。
与现有技术相比,本发明通过在看门狗检测到***读取计数值时,计算计数值除以预设值后所得的余数,从该余数起重新开始计数,避免了看门狗在到达预设值后发出信号而引起***响应该信号情况的发生,降低了***的处理负担。本发明可用于监测多个启动程序的先后顺序、监测相邻程序之间的启动时间间隔、跟踪多个应用程序的运行时长或结束时刻等。
附图说明
图1为本发明实施例提供的看门狗设计方法流程图;
图2为本发明实施例提供的看门狗设计方法的应用一流程图;
图3为本发明实施例提供的看门狗设计方法的应用二流程图;
图4为本发明实施例提供的看门狗的结构示意图;
图5为应用本发明实施例提供的看门狗的***一组成示意图;
图6为应用本发明实施例提供的看门狗的***二组成示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本发明实施例提供的看门狗设计方法流程图,如图1所示,其具体步骤如下:
步骤101:看门狗启动,从0开始计数。
步骤102:看门狗检测到***读取计数值M,计算计数值M除以预设值a后所得的余数r,即:r=M%a,其中,%为取余运算符。
预设值a即***设定的看门狗检测到***异常,开始从0计数后,应该发出信号时的计数值。
步骤103:看门狗从该余数r起重新开始计数,返回步骤102。
在实际应用中,看门狗还可以设置一个最大计数值,若计数值到达了最大计数值后,***仍未读取该计数值,则看门狗认为***发生异常,则从0重新开始计数,同时向***发出复位信号。
以下给出本发明实施例提出的看门狗设计方法的两个具体应用:
应用一、在***的启动过程中,需要保证多个启动程序的先后顺序,且需要保证相邻程序之间的启动时间间隔不能大于预设最大启动时间间隔。如图2所示,其具体步骤如下:
步骤201:***设置看门狗总计数值Csum,并初始化Csum=0。
步骤202:***检测到一个程序n(n≥1且n为整数)启动,去读取看门狗的计数值count。
步骤203:***计算看门狗的当前总计数值b:b=(Csum%a)*a+count,以b更新Csum。
其中,a为看门狗的预设值。
步骤204:***将Csum作为当前程序的启动时刻Tsta(n),并记录Tsta(n)。
步骤205:***根据记录的Tsta(1)~Tsta(N),确定各启动程序的先后顺序是否准确。
例如:假设程序1~N的启动顺序依次为:1、2、3、...、N,则程序1~N的启动时刻应该满足:Tsta(1)<Tsta(2)<Tsta(3)<...<Tsta(N)。
步骤206:***计算t(n)=Tsta(n)-Tsta(n-1),其中,1≤n≤N。
步骤207:***判断t(n)≤Tmax(n)是否成立,若是,执行步骤208;否则,执行步骤209。
其中,Tmax(n)为预设的程序n与程序n-1之间的最大启动时间间隔。
步骤208:***确定程序n与程序n-1之间的启动时间间隔正常。
步骤209:***确定程序n与程序n-1之间的启动时间间隔异常,进行相应处理。
应用二、在***的多个应用程序的运行过程中,需要跟踪各个应用程序的运行时长。如图3所示,其具体步骤如下:
步骤301:***设置看门狗总计数值Csum,并初始化Csum=0。
步骤302:***检测到一个程序n(n≥1且n为整数)结束,去读取看门狗的计数值count。
步骤303:***计算看门狗的当前计数值b:b=(Csum%a)*a+count,以b更新Csum。
其中,a为看门狗的预设值。
步骤304:***将Csum作为当前程序的结束时刻Tend(n),并记录Tend(n)。
步骤305:***计算当前应用程序的运行时长R(n):R(n)=Tend(n)-Tend(n-1),并记录R(n)。
图4为本发明实施例提供的看门狗的结构示意图,如图4所示,其主要包括:计数器41和重启模块42,其中:
计数器41:启动时,从0开始计数;接收到重启模块42发来的余数r,从r起开始重新计数。
重启模块42:检测到***从计数器41读取计数值M,计算计数值M除以预设值a后所得的余数r,即:r=M%a,将r发送给计数器41。
在实际应用中,看门狗还可以包括一个复位模块,用于在检测到计数器41的计数值到达预先设置的最大计数值后,向计数器41发送复位指示,并向***发出复位信号。计数器41在收到该复位指示后,则从0开始重新计数。
图5为本发明实施例提供的应用看门狗的***一的组成示意图,如图5所示,其主要包括:看门狗50、程序启动监测模块51、程序启动时刻确定模块52、程序启动时刻记录模块53、程序启动顺序检测模块54和启动间隔监测模块55,其中:
看门狗50:启动时,从0开始计数,检测到程序启动监测模块51读取自身的计数值M,计算计数值M除以预设值a后所得的余数r,从r起开始重新计数。
程序启动监测模块51:检测到一个程序n(n≥1且n为整数)启动,去读取看门狗50的计数值count,将count发送给程序启动时刻确定模块52。
程序启动时刻确定模块52:设置看门狗50总计数值Csum,并初始化Csum=0,接收程序启动监测模块51发来的count,计算看门狗50的当前总计数值b:b=(Csum%a)*a+count,以b更新Csum,将Csum作为当前程序n的启动时刻Tsta(n),并将Tsta(n)记录到程序启动时刻记录模块53。
程序启动时刻记录模块53:保存每个程序的启动时刻Tsta(1)~Tsta(N),N为启动程序的总数。
程序启动顺序检测模块54:从程序启动时刻记录模块53获取各程序的启动时刻,根据该启动时刻确定程序启动的先后顺序是否正确。
启动间隔监测模块55:从程序启动时刻记录模块53读取Tsta(n-1)和Tsta(n),计算t(n)=Tsta(n)-Tsta(n-1),判断t(n)≤Tmax(n)是否成立,若是,确定程序n与程序n-1之间的启动时间间隔正常;否则,确定程序n与程序n-1之间的启动时间间隔异常,通知相应模块进行处理。其中,1<n≤N,Tmax(n)为预设的程序n与程序n-1之间的最大启动时间间隔。
图6为本发明实施例提供的应用看门狗的***二的组成示意图,如图6所示,其主要包括:看门狗50、程序结束监测模块61、程序结束时刻确定模块62、程序结束时刻记录模块63和程序运行时长确定模块64,其中:
看门狗50:启动时,从0开始计数,检测到程序结束监测模块61读取自身的计数值M,计算计数值M除以预设值a后所得的余数r,从r起开始重新计数。
程序结束监测模块61:检测到一个程序n(n≥1且n为整数)结束,去读取看门狗50的计数值count,将count发送给程序结束时刻确定模块62。
程序结束时刻确定模块62:设置看门狗50总计数值Csum,并初始化Csum=0,接收程序结束监测模块61发来的count,计算看门狗50的当前总计数值b:b=(Csum%a)*a+count,以b更新Csum,将Csum作为当前程序n的结束时刻Tend(n),并将Tend(n)记录到程序结束时刻记录模块63。
程序结束时刻记录模块63:保存每个程序的结束时刻Tsta(1)~Tsta(N),N为程序的总数。
程序运行时长确定模块64:从程序结束时刻记录模块63读取Tend(n-1)和Tend(n),计算程序n的运行时长R(n):R(n)=Tend(n)-Tend(n-1),记录R(n)。
本发明实施例中提到的***可以为嵌入式***等。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1、一种看门狗设计方法,其特征在于,该方法包括:
看门狗启动,从0开始计数,看门狗检测到***读取计数值,计算计数值除以预设值后所得的余数,看门狗从该余数起重新开始计数。
2、如权利要求1所述的方法,其特征在于,看门狗预先设置一个最大计数值,
且,所述方法进一步包括:看门狗检测到计数值到达最大计数值,则从0开始重新计数。
3、如权利要求2所述的方法,其特征在于,所述看门狗从0开始重新计数的同时进一步包括:看门狗向***发出复位信号。
4、如权利要求1所述的方法,其特征在于,所述看门狗检测到***读取计数值之前进一步包括:
***检测到一个程序启动,从看门狗读取计数值;
且,***根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的启动时刻;
当所有程序都启动后,***根据所有程序的启动时刻,确定程序启动的先后顺序是否正确。
5、如权利要求4所述的方法,其特征在于,所述***将该总计数值作为当前程序的启动时刻之后进一步包括:
***计算当前程序的启动时刻与前一程序的启动时刻的差值,判断该差值是否不大于预设最大启动时间间隔,若是,确定当前程序与前一程序的启动间隔正常;否则,确定当前程序与前一程序的启动间隔异常。
6、如权利要求1所述的方法,其特征在于,所述述看门狗检测到***读取计数值之前进一步包括:
***检测到一个程序结束,从看门狗读取计数值;
且,***根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的结束时刻。
7、如权利要求6所述的方法,其特征在于,所述***将总计数值作为当前程序的结束时刻之后进一步包括:
***计算当前程序的结束时刻与前一程序的结束时刻的差值,将该差值作为当前程序的运行时长。
8、一种看门狗,其特征在于,该看门狗包括:计数器和重启模块,其中:
计数器,启动时,从0开始计数;接收到重启模块发来的余数,从该余数起开始重新计数;
重启模块,检测到***从计数器读取计数值,计算计数值除以预设值后所得的余数,将该余数发送给计数器。
9、如权利要求8所述的看门狗,其特征在于,该看门狗进一步包括:
复位模块,检测到计数器的计数值到达预先设置的最大计数值,则向计数器发送复位指示;
且,所述计数器收到该复位指示后,从0开始重新计数。
10、如权利要求8所述的看门狗,其特征在于,所述复位模块进一步用于,在检测到计数器的计数值到达预先设置的最大计数值时,向***发出复位信号。
11、一种应用看门狗的***,其特征在于,该***包括:
看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除以预设值后所得的余数,从该余数起重新开始计数;
程序启动监测模块,检测到一个程序启动,读取看门狗的计数值,将该计数值发送出去;
程序启动时刻确定模块,接收程序启动监测模块发来的计数值,计算看门狗的当前总计数值,将该总计数值作为当前程序的启动时刻,记录该启动时刻;
程序启动时刻记录模块,记录每个程序的启动时刻;
程序启动顺序检测模块,从程序启动时刻记录模块获取各程序的启动时刻,根据该启动时刻确定程序启动的先后顺序是否正确。
12、如权利要求11所述的***,其特征在于,所述***进一步包括:
启动间隔监测模块,从程序启动时刻记录模块读取各程序的启动时刻,计算相邻程序的启动时刻之差,将该差值与预设最大启动时间间隔比较,以确定该相邻程序的启动间隔是否正常。
13、一种应用看门狗的***,其特征在于,该***包括:
看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除以预设值后所得的余数,从该余数起重新开始计数;
程序结束监测模块,检测到一个程序结束,读取看门狗的计数值,将该计数值发送出去;
程序结束时刻确定模块,接收程序结束监测模块发来的计数值,计算看门狗的当前总计数值,将该总计数值作为当前程序的结束时刻。
14、如权利要求13所述的***,其特征在于,该***进一步包括:
程序结束时刻记录模块,记录每个程序的结束时刻;
程序运行时长确定模块,从程序结束时刻记录模块读取当前程序与前一程序的结束时刻,计算当前程序与前一程序的结束时刻之差,该差值即为当前程序的运行时长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101153263A CN101295273B (zh) | 2008-06-20 | 2008-06-20 | 看门狗设计方法及看门狗装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101153263A CN101295273B (zh) | 2008-06-20 | 2008-06-20 | 看门狗设计方法及看门狗装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101295273A true CN101295273A (zh) | 2008-10-29 |
CN101295273B CN101295273B (zh) | 2010-06-23 |
Family
ID=40065569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101153263A Expired - Fee Related CN101295273B (zh) | 2008-06-20 | 2008-06-20 | 看门狗设计方法及看门狗装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101295273B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631695A (zh) * | 2013-12-19 | 2014-03-12 | 北京经纬恒润科技有限公司 | 时间监测方法及装置 |
CN112416673A (zh) * | 2020-11-13 | 2021-02-26 | 宁波拓普集团股份有限公司 | 一种前后触发型周期运行任务的硬件监控装置及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100405307C (zh) * | 2005-02-01 | 2008-07-23 | 艾默生网络能源有限公司 | 看门狗控制方法 |
CN100419696C (zh) * | 2006-08-10 | 2008-09-17 | 北京中星微电子有限公司 | 一种看门狗装置及看门狗中断预警方法 |
CN100541438C (zh) * | 2007-12-29 | 2009-09-16 | 上海华为技术有限公司 | 一种控制看门狗电路复位的方法和装置 |
-
2008
- 2008-06-20 CN CN2008101153263A patent/CN101295273B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631695A (zh) * | 2013-12-19 | 2014-03-12 | 北京经纬恒润科技有限公司 | 时间监测方法及装置 |
CN103631695B (zh) * | 2013-12-19 | 2017-02-08 | 北京经纬恒润科技有限公司 | 时间监测方法及装置 |
CN112416673A (zh) * | 2020-11-13 | 2021-02-26 | 宁波拓普集团股份有限公司 | 一种前后触发型周期运行任务的硬件监控装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101295273B (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101539803B (zh) | 待机管理方法及其相关待机管理模块 | |
WO2015081700A1 (zh) | 一种上报传感器数据的方法和终端 | |
CN104335175A (zh) | 基于***性能度量在***节点之间标识和迁移线程的方法和*** | |
CN100472468C (zh) | 计算机***、计算机网络及其方法 | |
CN109738719B (zh) | 静电释放esd检测方法及相关产品 | |
CN103221899B (zh) | 触觉输入设备、微处理器***和控制触觉输入设备的方法 | |
CN111104272B (zh) | 一种基于rx和tx的can总线控制器测试方法 | |
CN103488721B (zh) | 主备板的数据库双向同步方法和*** | |
CN101853191B (zh) | 检测操作***中任务死循环的方法及*** | |
CN112631820A (zh) | 软件***的故障恢复方法及装置 | |
CN101295273B (zh) | 看门狗设计方法及看门狗装置 | |
CN102915260B (zh) | 固态硬盘容错的方法及其固态硬盘 | |
CN100429626C (zh) | 信息处理设备和错误检测方法 | |
CN102929761A (zh) | 一种应对崩溃性错误的***及方法 | |
CN106708675A (zh) | 一种计算机启动前故障检测方法 | |
JP6040894B2 (ja) | ログ生成装置、及びログ生成方法 | |
CN101661332A (zh) | 按键处理方法及计算机*** | |
CN103455448A (zh) | 服务器防震方法及*** | |
CN110008105B (zh) | 一种bmc时间保留方法、装置及电子设备和存储介质 | |
CN105354491B (zh) | 智能终端待机状态检测方法及装置 | |
CN109933418B (zh) | 一种时间戳同步方法、电子设备及异构设备 | |
CN106528311A (zh) | 嵌入式***及其控制方法 | |
CN106774397A (zh) | 一种四余度飞行控制计算机同步方法 | |
CN101369238A (zh) | Usb设备中异常监控复位处理方法 | |
CN101582816A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100623 Termination date: 20120620 |