CN110134504A - 一种基于有限状态机的操作系统需求层形式化建模方法及装置 - Google Patents
一种基于有限状态机的操作系统需求层形式化建模方法及装置 Download PDFInfo
- Publication number
- CN110134504A CN110134504A CN201910351821.2A CN201910351821A CN110134504A CN 110134504 A CN110134504 A CN 110134504A CN 201910351821 A CN201910351821 A CN 201910351821A CN 110134504 A CN110134504 A CN 110134504A
- Authority
- CN
- China
- Prior art keywords
- state
- task
- sub
- operating system
- mode
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- 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
Abstract
本发明提供了一种基于有限状态机的操作系统需求层形式化建模方法及装置,属于嵌入式操作系统领域。该方法响应于对操作系统需求层进行建模的请求,从操作系统功能模块数据库中,获取操作系统对应的多个功能模块、各功能模块对应的至少两种子状态及引起各功能模块子状态发生变化的至少一种操作,从而确定操作系统的系统状态及引起系统状态变化的触发事件;根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型。本发明具有良好的复用性、适应性和灵活性,可以准确地描述操作系统的运行过程,为下一步形式化验证奠定基础,以便更早地发现是否有潜在的错误,有助于完成整个操作系统的形式化验证。
Description
技术领域
本发明涉及一种基于有限状态机的操作系统需求层形式化建模方法及装置,属于嵌入式操作系统领域。
背景技术
随着航天事业的迅猛发展,空间任务的规模及复杂度上升,空间飞行器上的软件规模也随之增加。这就对硬件提出更高的要求,但是空间计算机硬件资源有限,如何使计算机硬件资源得到更有效地利用就成为一个关键难题。因此,引入空间操作系统就成为了必然趋势。操作系统是紧靠硬件的第一层软件,是所有高层应用软件运行的支撑和基础,是计算机系统里最重要的软件。操作系统中的任何一个微小的错误都可能导致整个系统的崩溃,因此操作系统应该是一个高可靠、高可信的软件系统,这是保证所有应用软件能可靠运行的基础。传统软件开发方法为了避免错误的出现,采用软件测试的方法来检测软件中可能存在的隐患。测试要依靠测试人员设计测试用例,经过长时间的大量测试来检测系统是否有错误,可靠性和可信性只能靠堆积测试时间和测试量来加强。然而软件测试只能发现问题,不能确保测试用例涵盖所有情况,因此不能保证系统没有问题。
形式化方法是建立在严格数学基础上的用以对软硬件系统进行说明、设计和验证的语言、技术和工具的总称,形式化验证是使用逻辑推理来保证计算机程序正确性的方法之一,可以通过形式化的程序逻辑来验证一个程序是否满足已给定的规范。对于空间飞行器来说,安全性是第一要素。操作系统是管理飞行器系统的基础核心,决定了硬件系统是否能够正常运行,应用软件是否能够完成预定任务。因此空间操作系统的形式化验证具有重大的理论和实际意义。
目前,针对操作系统的形式化验证,主要针对边设计边验证的方法,构建的控制访问模型缺乏详细的需求层模型,无法完成从需求层开始的自顶向下的验证。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种基于有限状态机的操作系统需求层形式化建模方法,确保准确地描述操作系统的运行过程,为下一步形式化验证奠定基础,以便更早地发现是否有潜在的错误,有助于完成整个操作系统的形式化验证。
本发明的技术解决方案是:
一种基于有限状态机的操作系统需求层形式化建模方法,包括:
响应于对操作系统需求层进行建模的请求,从操作系统功能模块数据库中,获取操作系统对应的多个功能模块、各功能模块对应的至少两种子状态及引起各功能模块子状态发生变化的至少一种操作,其中所述操作系统功能模块数据库中存储有操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系;
根据各所述功能子模块的子状态确定操作系统的系统状态,根据各所述子模块对应的引起子状态发生变化的操作,确定引起系统状态变化的触发事件;
根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型。
在一可选实施例中,所述操作系统功能模块数据库的建立方法包括:
根据操作系统需求文档,确定操作系统各功能模块及其对应的自然语言需求;
根据所述各功能模块的自然语言需求确定各功能模块的子状态及引起各功能模块子状态变化的至少一种操作;
建立操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系,得到操作系统功能模块数据库。
在一可选实施例中,所述操作系统对应的多个功能模块包括任务管理模块、中断管理模块和时间管理模块。
在一可选实施例中,所述任务管理模块的子状态包括运行态、就绪态和挂起态三种任务状态;所述中断管理模块的子状态包括控制周期中断和时间片中断两种状态;所述时间管理模块的子状态包括累计计数时间和任务启动点两种状态。
在一可选实施例中,引起各功能模块子状态发生变化的至少一种操作,包括:
引起任务管理模块子状态发生变化的操作包括任务挂起、任务调度、任务创建、任务重启动或任务恢复;
引起中断管理模块子状态发生变化的操作包括开中断或关中断;
引起时间管理模块子状态发生变化的操作包括累计计数或清零。
在一可选实施例中,所述根据各所述功能子模块的子状态确定操作系统的系统状态,包括:
根据所述任务管理模块的子状态确定操作系统的任务列表,所述任务列表中包含所述任务管理模块中各类任务的任务状态;
根据所述中断管理模块和时间管理模块的子状态确定操作系统的时间片中断信息,所述时间片中断信息中包含时间片中断开关状态及累计计数的时间t;
根据所述任务列表及时间片中断信息确定操作系统的系统状态。
在一可选实施例中,所述引起系统状态变化的触发事件,包括:
控制周期中断、时间片中断和任务提前结束。
在一可选实施例中,根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型,包括:
操作系统初始化之后处于初始状态S0,所述操作系统中包括系统任务、N个应用任务和1个空闲任务,N≥3,此时初始任务列表中只有空闲任务处于运行态,其他任务处于挂起态;并且,时间片中断信息中时间片中断关、未开启累计计数;
当控制周期中断发生,且时间片中断开、开始累计计数为0,则第1个应用任务的状态由挂起态变为运行态,空闲任务的状态由运行态变为就绪态,系统状态由初始状态S0转换到状态S1;
在第1个应用任务运行,且时间片中断发生、累计计数的时间t为新任务启动点时,第1个应用任务的状态由运行态变为挂起态,第n个应用任务的状态由挂起态变为运行态,系统状态由状态S1转换为状态Sn,其中,2≤n≤N-1;
在第1个应用任务提前结束,且时间片中断开时,第1个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态S1转换到状态M;
在第n个应用任务运行,且时间片中断发生、累计计数的时间t不是新任务启动点时,第n个应用任务继续运行,其他任务状态保持不变,系统状态保持状态Sn;
在第n个应用任务运行,且时间片中断发生、累计计数的时间t是新任务启动点时,第n个应用任务的状态由运行态变为挂起态,第n+1个应用任务的状态由挂起态变为运行态,系统状态由状态Sn变为Sn+1;
空闲任务在运行,且时间片中断发生、累计计数的时间t不是新任务启动点时,空闲任务继续运行,其他任务状态保持不变,系统状态保持状态M;
空闲任务在运行时,且时间片中断发生、累计计数的时间t是新任务启动点时,空闲任务状态由运行态变为就绪态,第n个应用任务或第n+1个应用任务由挂起态变为运行态,系统状态由状态M变为Sn或Sn+1;
第n个应用任务提前结束时,第n个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态Sn转化为状态M;
第n+1个应用任务提前结束时,第n+1个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态Sn+1转化为状态M;
进入状态SN后,时间片中断关,第N个应用任务提前结束时,第N个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态SN转换到状态S0。
在一可选实施例中,所述操作系统功能模块数据库中还包括操作系统全局性质,所述方法还包括:
判断所述模型是否满足全局性质,若满足,则所述操作系统需求层可靠,若否,则所述操作系统需求层不可靠。
本发明实施例还提供了一种基于有限状态机的操作系统需求层形式化建模装置,包括:
获取模块,用于响应于对操作系统需求层进行建模的请求,从操作系统功能模块数据库中,获取操作系统对应的多个功能模块、各功能模块对应的至少两种子状态及引起各功能模块子状态发生变化的至少一种操作,其中所述操作系统功能模块数据库中存储有操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系;
确定模块,用于根据各所述功能子模块的子状态确定操作系统的系统状态,根据各所述子模块对应的引起子状态发生变化的操作,确定引起系统状态变化的触发事件;
建模模块,用于根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型。
在一可选实施例中,所述操作系统功能模块数据库的建立方法包括:
根据操作系统需求文档,确定操作系统各功能模块及其对应的自然语言需求;
根据所述各功能模块的自然语言需求确定各功能模块的子状态及引起各功能模块子状态变化的至少一种操作;
建立操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系,得到操作系统功能模块数据库。
在一可选实施例中,所述操作系统对应的多个功能模块包括任务管理模块、中断管理模块和时间管理模块。
在一可选实施例中,所述任务管理模块的子状态包括运行态、就绪态和挂起态三种任务状态;所述中断管理模块的子状态包括控制周期中断和时间片中断两种状态;所述时间管理模块的子状态包括累计计数时间和任务启动点两种状态。
在一可选实施例中,引起各功能模块子状态发生变化的至少一种操作,包括:
引起任务管理模块子状态发生变化的操作包括任务挂起、任务调度、任务创建、任务重启动或任务恢复;
引起中断管理模块子状态发生变化的操作包括开中断或关中断;
引起时间管理模块子状态发生变化的操作包括累计计数或清零。
在一可选实施例中,所述根据各所述功能子模块的子状态确定操作系统的系统状态,包括:
根据所述任务管理模块的子状态确定操作系统的任务列表,所述任务列表中包含所述任务管理模块中各类任务的任务状态;
根据所述中断管理模块和时间管理模块的子状态确定操作系统的时间片中断信息,所述时间片中断信息中包含时间片中断开关状态及累计计数的时间t;
根据所述任务列表及时间片中断信息确定操作系统的系统状态。
在一可选实施例中,所述引起系统状态变化的触发事件,包括:
控制周期中断、时间片中断和任务提前结束。
在一可选实施例中,根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型,包括:
操作系统初始化之后处于初始状态S0,所述操作系统中包括系统任务、N个应用任务和1个空闲任务,N≥3,此时初始任务列表中只有空闲任务处于运行态,其他任务处于挂起态;并且,时间片中断信息中时间片中断关、未开启累计计数;
当控制周期中断发生,且时间片中断开、开始累计计数为0,则第1个应用任务的状态由挂起态变为运行态,空闲任务的状态由运行态变为就绪态,系统状态由初始状态S0转换到状态S1;
在第1个应用任务运行,且时间片中断发生、累计计数的时间t为新任务启动点时,第1个应用任务的状态由运行态变为挂起态,第n个应用任务的状态由挂起态变为运行态,系统状态由状态S1转换为状态Sn,其中,2≤n≤N-1;
在第1个应用任务提前结束,且时间片中断开时,第1个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态S1转换到状态M;
在第n个应用任务运行,且时间片中断发生、累计计数的时间t不是新任务启动点时,第n个应用任务继续运行,其他任务状态保持不变,系统状态保持状态Sn;
在第n个应用任务运行,且时间片中断发生、累计计数的时间t是新任务启动点时,第n个应用任务的状态由运行态变为挂起态,第n+1个应用任务的状态由挂起态变为运行态,系统状态由状态Sn变为Sn+1;
空闲任务在运行,且时间片中断发生、累计计数的时间t不是新任务启动点时,空闲任务继续运行,其他任务状态保持不变,系统状态保持状态M;
空闲任务在运行时,且时间片中断发生、累计计数的时间t是新任务启动点时,空闲任务状态由运行态变为就绪态,第n个应用任务或第n+1个应用任务由挂起态变为运行态,系统状态由状态M变为Sn或Sn+1;
第n个应用任务提前结束时,第n个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态Sn转化为状态M;
第n+1个应用任务提前结束时,第n+1个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态Sn+1转化为状态M;
进入状态SN后,时间片中断关,第N个应用任务提前结束时,第N个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态SN转换到状态S0。
在一可选实施例中,所述操作系统功能模块数据库中还包括操作系统全局性质,所述装置还包括:
验证模块,用于将所述操作系统全局性质输入建立的基于有限状态机的操作系统需求层形式化模型中,判断所述模型是否满足全局性质,从而验证操作系统需求层是否可靠。
本发明与现有技术相比具有如下优点:
(1)本发明实施例提供的基于有限状态机的操作系统需求层形式化建模方法,通过根据操作系统各功能模块对应的子状态及引起子状态发生变化的操作,确定操作系统的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型,可以准确地描述操作系统的运行过程,为下一步对操作系统需求层进行形式化验证奠定了基础;
(2)本发明不仅适用于航天器操作系统,对其他嵌入式安全关键系统同样适用,具有良好的复用性、适应性和灵活性;
(3)选择三个子模块构成了最小系统,可以反映操作系统最基本的行为特征,针对安全关键系统的操作系统模式可以完全覆盖,这样既简化了系统模型,又涵盖了所有核心要素,便于建模与验证。
附图说明
图1为本发明实施例提供的基于有限状态机的操作系统需求层形式化建模方法的流程图;
图2为本发明实施例提供的基于有限状态机的操作系统需求层形式化模型的状态转移图;
图3为本发明实施例提供的基于有限状态机的操作系统需求层形式化建模装置示意图;
图4为本发明一具体实施例提供的模型的状态转移图。
具体实施方式
以下将结合附图和具体实施例对本发明的具体实施方式做进一步详细说明。
本发明实施例提供了一种基于有限状态机的操作系统需求层形式化建模方法,包括:
步骤101:响应于对操作系统需求层进行建模的请求,从操作系统功能模块数据库中,获取操作系统对应的多个功能模块、各功能模块对应的至少两种子状态及引起各功能模块子状态发生变化的至少一种操作,其中所述操作系统功能模块数据库中存储有操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系;
具体地,本发明实施例中,操作系统可以按功能划分为七个部分:初始化、任务管理、中断管理、时间管理、内存管理、任务间通信管理和外设管理等七个功能模块,所述操作系统功能模块数据库可以根据操作系统的需求确定操作系统具有的功能模块;功能模块子状态是指表征该功能模块工作情况的状态,例如任务管理模块的运行状态、内存管理模块的写入状态等;相应地,引起子状态发生变化的操作是指,使功能模块由第一子状态转变为第二子状态的操作,例如,任务挂起操作可以使任务管理模块从运行状态变化为挂起状态;所述操作系统功能模块数据库可以根据操作系统的需求确定各功能模块子状态及对应的操作;
本发明实施例中,操作系统功能模块数据库可以存储在本地存储介质中,也可以存储在服务器中;
步骤102:根据各所述功能子模块的子状态确定操作系统的系统状态,根据各所述子模块对应的引起子状态发生变化的操作,确定引起系统状态变化的触发事件;
具体地,本发明实施例中,可以根据预先建立的各功能模块子状态序列与系统状态对应关系表,确定操作系统的系统状态;根据引起各功能模块子状态发生变化的操作序列与触发事件的对应关系表,确定引起系统状态变化的触发事件;其中,各功能模块子状态序列与系统状态对应关系表以及引起各功能模块子状态发生变化的操作序列与触发事件的对应关系表均可以根据操作系统要求确定;
步骤103:根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型。
本发明实施例提供的建模方法可以通过MATLAB结合simulink实现。
本发明实施例提供的基于有限状态机的操作系统需求层形式化建模方法,通过根据操作系统各功能模块对应的子状态及引起子状态发生变化的操作,确定操作系统的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型,可以准确地描述操作系统的运行过程,为下一步对操作系统需求层进行形式化验证奠定了基础。
在一可选实施例中,所述操作系统功能模块数据库的建立方法包括:
a、根据操作系统需求文档,确定操作系统各功能模块及其对应的自然语言需求;
其中,操作系统需求文档,例如可以为星载嵌入式操作系统需求规格说明的文档,详细描述了操作系统的功能需求及规格说明,根据描述可以确定各功能模块及其对应的自然语言需求。
b、根据所述各功能模块的自然语言需求确定各功能模块的子状态及引起各功能模块子状态变化的至少一种操作;
c、建立操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系,得到操作系统功能模块数据库。
在一可选实施例中,所述操作系统对应的多个功能模块包括任务管理模块、中断管理模块和时间管理模块。
这三个模块构成了最小系统,可以反映操作系统最基本的行为特征,针对安全关键系统的操作系统模式可以完全覆盖,这样既简化了系统模型,又涵盖了所有核心要素,便于建模与验证。
进一步地,所述任务管理模块的子状态包括运行态、就绪态和挂起态三种任务状态;所述中断管理模块的子状态包括控制周期中断和时间片中断两种状态;所述时间管理模块的子状态包括累计计数时间和任务启动点两种状态。
上述各模块变量足够描述安全关键系统的操作系统各模块状态,能够确保准确地描述系统状态。
进一步地,引起任务管理模块子状态发生变化的操作包括任务挂起、任务调度、任务创建、任务重启动或任务恢复;引起中断管理模块子状态发生变化的操作包括开中断或关中断;引起时间管理模块子状态发生变化的操作包括累计计数或清零。
上述各模块操作足够描述安全关键系统的操作系统各模块的变化行为,能够确保准确地描述系统状态的变化。
在一可选实施例中,所述根据各所述功能子模块的子状态确定操作系统的系统状态,包括:
根据所述任务管理模块的子状态确定操作系统的任务列表,所述任务列表中包含所述任务管理模块中各类任务的任务状态;
根据所述中断管理模块和时间管理模块的子状态确定操作系统的时间片中断信息,所述时间片中断信息中包含时间片中断开关状态及累计计数的时间t;
根据所述任务列表及时间片中断信息确定操作系统的系统状态。
进一步地,所述引起系统状态变化的触发事件,包括:
控制周期中断、时间片中断和任务提前结束。
如图1所示,在一可选实施例中,根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型,包括:
操作系统初始化之后处于初始状态S0,所述操作系统中包括系统任务、N个应用任务和1个空闲任务,N≥3,此时初始任务列表中只有空闲任务处于运行态,其他任务处于挂起态;并且,时间片中断信息中时间片中断关、未开启累计计数;
当控制周期中断发生,且时间片中断开、开始累计计数为0,则第1个应用任务的状态由挂起态变为运行态,空闲任务的状态由运行态变为就绪态,系统状态由初始状态S0转换到状态S1;
在第1个应用任务运行,且时间片中断发生、累计计数的时间t为新任务启动点时,第1个应用任务的状态由运行态变为挂起态,第n个应用任务的状态由挂起态变为运行态,系统状态由状态S1转换为状态Sn,其中,2≤n≤N-1;
在第1个应用任务提前结束,且时间片中断开时,第1个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态S1转换到状态M;
在第n个应用任务运行,且时间片中断发生、累计计数的时间t不是新任务启动点时,第n个应用任务继续运行,其他任务状态保持不变,系统状态保持状态Sn;
在第n个应用任务运行,且时间片中断发生、累计计数的时间t是新任务启动点时,第n个应用任务的状态由运行态变为挂起态,第n+1个应用任务的状态由挂起态变为运行态,系统状态由状态Sn变为Sn+1;
空闲任务在运行,且时间片中断发生、累计计数的时间t不是新任务启动点时,空闲任务继续运行,其他任务状态保持不变,系统状态保持状态M;
空闲任务在运行时,且时间片中断发生、累计计数的时间t是新任务启动点时,空闲任务状态由运行态变为就绪态,第n个应用任务或第n+1个应用任务由挂起态变为运行态,系统状态由状态M变为Sn或Sn+1;
第n个应用任务提前结束时,第n个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态Sn转化为状态M;
第n+1个应用任务提前结束时,第n+1个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态Sn+1转化为状态M;
进入状态SN后,时间片中断关,第N个应用任务提前结束时,第N个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态SN转换到状态S0。
进一步地,所述操作系统功能模块数据库中还包括操作系统全局性质,所述方法还包括:
判断所述模型是否满足所述全局性质,若满足,则所述操作系统需求层可靠。
例如,所述全局性质为系统中有且只有一个任务状态为运行态等全局需要满足的属性。
如图3所示,本发明实施例还提供了一种基于有限状态机的操作系统需求层形式化建模装置,包括:
获取模块10,用于响应于对操作系统需求层进行建模的请求,从操作系统功能模块数据库中,获取操作系统对应的多个功能模块、各功能模块对应的至少两种子状态及引起各功能模块子状态发生变化的至少一种操作,其中所述操作系统功能模块数据库中存储有操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系;
确定模块20,用于根据各所述功能子模块的子状态确定操作系统的系统状态,根据各所述子模块对应的引起子状态发生变化的操作,确定引起系统状态变化的触发事件;
建模模块30,用于根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型。
本发明实施例与上述方法实施例一一对应,具体效果及描述详见上述方法实施例,在此不再赘述。
以下为本发明提供的一具体实施例:
如图4所示,本实施例提供了一种针对应用在空间站工程某航天器的操作系统需求层形式化模型,具体包括以下方法:
在顶层对需求层进行抽象,忽略掉具体细节,建立了带时间的事件驱动任务转移系统模型,包括了任务管理模块、时间管理模块和中断管理模块。
在形式化建模中采用有限状态机方法,其中系统状态包括两大部分,一是任务状态列表,也就是各个应用任务的状态;二是外部中断开关的状态(时间片中断信息)。状态转换的触发事件包括三种:控制周期中断IntControl、时间片中断IntTimeslice和任务提前结束TaskEnd。假设航天器控制计算机中,应用软件需要以T为控制周期,以timeslice为时间片进行任务的调度。以空间站工程某航天器为例,操作系统软件中通常存在三类任务,应用任务,空闲任务以及系统任务。本方法以N=10个应用任务为例,描述操作系统需求层形式化建模方法。假设在每个控制周期T=160ms,时间片timeslice=4ms,每个周期共40个时间片(tick),初始时间片计数tick=0,期间实现11个任务的固定时间点的调度执行。
具体方法如下:
1)获取操作系统需求文档,分析操作系统及其功能子模块的自然语言需求及全局性质:
11)操作系统的需求是硬件加电后能够执行软件,在规定的资源和时间要求下调度器对任务进行调度执行,并且能够响应紧急事件。按照功能划分,最小操作系统内核分为三个部分:任务管理、中断管理、时间管理;全局性质包括系统中有且只有一个任务状态为运行态等。
12)任务管理模块:通过一定的调度机制对任务进行调度执行和管理任务生命周期并实现任务状态转换;
13)中断管理模块:对外部中断(控制周期中断和时间片中断)进行响应管理;
14)时间管理模块:对实时时钟和定时器的管理;
2)根据所述各功能模块的自然语言需求确定各功能模块的变量(子状态):
21)任务管理模块的变量包括三种任务状态:运行态、就绪态和挂起态;
22)中断管理模块的变量包括控制周期中断和时间片中断;
23)时间管理模块的变量包括累计计数时间t和任务启动点ts。
3)根据所述各功能模块的自然语言需求确定各功能模块对应的引起变量变化的操作:
31)任务管理模块的操作包括任务挂起、任务调度、任务创建、任务重启动或任务恢复;
32)中断管理模块的操作包括开中断和关中断;
33)时间管理模块的操作包括累计计数和清零。
4)根据各所述功能子模块的变量确定操作系统的系统状态,操作系统状态由三个子模块的变量组合而成,包含两部分:任务列表和时间片中断信息:
41)任务列表tasklist是所有任务的任务状态列表,每个系统状态对应一个任务列表;
42)时间片中断信息TS_status,包含时间片中断开关状态机累计计数的时间t,时间片中断开关TS_status分为enable(t)和disable两种情况;
5)根据各所述子模块对应的引起变量变化的操作,确定引起操作系统状态变化的触发事件:
51)控制周期中断IntControl;
52)时间片中断IntTimeslice;
53)任务提前结束TaskEnd;
6)根据确定的操作系统状态及引起操作系统状态变化的触发事件,确定操作系统需求层形式化模型,所得模型的具体状态转移图如图2所示:
61)操作系统在初始化时创建了12个任务,包括10个应用任务,1个空闲任务和1个系统任务,其中系统任务始终处于挂起态;初始状态下只有空闲任务处于运行态,其他任务处于挂起态,因此初始任务列表定义为:init_tasklist::=(S,S,S,S,S,S,S,S,S,S,E,S)。并且初始状态在等待控制周期中断到来,不允许时间片中断,所以初始状态s0定义为:
init_state(s0)::={tasklist=init_tasklist,TS_status=disable}
62)控制周期中断发生,开始时间片计数为0,时间片中断开enable;任务1的状态由挂起态变为运行态,空闲任务的状态由运行态变为就绪态,系统状态由S0转换到S1;
63)在时间片中断到来之前,时间片中断开enable,任务1提前结束,任务1的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由S1转换到SM;
64)任务n在运行时,时间片中断发生,但此时时间t不是新任务启动点,任务n继续运行,保持Sn状态(1≤n≤10);
65)任务n在运行时,时间片中断发生,此时时间t是新任务启动点,任务n的状态由运行态变为挂起态,任务n+1的状态由挂起态变为运行态,系统状态由Sn转换到Sn+1(1≤n<10);
66)空闲任务在运行时,时间片中断发生,此时时间t不是新任务启动点,空闲任务继续运行,保持SM状态;
67)空闲任务在运行时,时间片中断发生,此时时间t是新任务启动点,空闲任务状态由运行态变为就绪态,任务n由挂起态变为运行态,系统状态由SM转换到Sn(2≤n≤10);
68)任务n在运行时,提前结束放弃CPU,任务n的状态由运行态变为挂起态,空闲任务的状态由运行态变为运行态,系统状态由Sn转换到SM(2≤n<10);
69)进入S10状态后,时间片中断关(disable),任务10提前结束时,任务10的状态由运行态变为挂起态,空闲任务的状态由运行态变为运行态,系统状态由S10转换到S0。
判断如图2所示的上述模型只有一个任务状态为运行态,从而验证操作系统需求层可靠。
以上所述,仅为本发明一个具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明未详细说明部分属于本领域技术人员公知常识。
Claims (10)
1.一种基于有限状态机的操作系统需求层形式化建模方法,其特征在于,包括:
响应于对操作系统需求层进行建模的请求,从操作系统功能模块数据库中,获取操作系统对应的多个功能模块、各功能模块对应的至少两种子状态及引起各功能模块子状态发生变化的至少一种操作,其中所述操作系统功能模块数据库中存储有操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系;
根据各所述功能子模块的子状态确定操作系统的系统状态,根据各所述子模块对应的引起子状态发生变化的操作,确定引起系统状态变化的触发事件;
根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型。
2.根据权利要求1所述的基于有限状态机的操作系统需求层形式化建模方法,其特征在于,所述操作系统功能模块数据库的建立方法包括:
根据操作系统需求文档,确定操作系统各功能模块及其对应的自然语言需求;
根据所述各功能模块的自然语言需求确定各功能模块的子状态及引起各功能模块子状态变化的至少一种操作;
建立操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系,得到操作系统功能模块数据库。
3.根据权利要求1或2所述的基于有限状态机的操作系统需求层形式化建模方法,其特征在于,所述操作系统对应的多个功能模块包括任务管理模块、中断管理模块和时间管理模块。
4.根据权利要求3所述的基于有限状态机的操作系统需求层形式化建模方法,其特征在于:
所述任务管理模块的子状态包括运行态、就绪态和挂起态三种任务状态;
所述中断管理模块的子状态包括控制周期中断和时间片中断两种状态;
所述时间管理模块的子状态包括累计计数时间和任务启动点两种状态。
5.根据权利要求4所述的基于有限状态机的操作系统需求层形式化建模方法,其特征在于,引起各功能模块子状态发生变化的至少一种操作,包括:
引起任务管理模块子状态发生变化的操作包括任务挂起、任务调度、任务创建、任务重启动或任务恢复;
引起中断管理模块子状态发生变化的操作包括开中断或关中断;
引起时间管理模块子状态发生变化的操作包括累计计数或清零。
6.根据权利要求5所述的基于有限状态机的操作系统需求层形式化建模方法,其特征在于,所述根据各所述功能子模块的子状态确定操作系统的系统状态,包括:
根据所述任务管理模块的子状态确定操作系统的任务列表,所述任务列表中包含所述任务管理模块中各类任务的任务状态;
根据所述中断管理模块和时间管理模块的子状态确定操作系统的时间片中断信息,所述时间片中断信息中包含时间片中断开关状态及累计计数的时间t;
根据所述任务列表及时间片中断信息确定操作系统的系统状态。
7.根据权利要求6所述的基于有限状态机的操作系统需求层形式化建模方法,其特征在于,所述引起系统状态变化的触发事件,包括:
控制周期中断、时间片中断和任务提前结束。
8.根据权利要求7所述的基于有限状态机的操作系统需求层形式化建模方法,其特征在于,根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型,包括:
操作系统初始化之后处于初始状态S0,所述操作系统中包括系统任务、N个应用任务和1个空闲任务,N≥3,此时初始任务列表中只有空闲任务处于运行态,其他任务处于挂起态;并且,时间片中断信息中时间片中断关、未开启累计计数;
当控制周期中断发生,且时间片中断开、开始累计计数为0,则第1个应用任务的状态由挂起态变为运行态,空闲任务的状态由运行态变为就绪态,系统状态由初始状态S0转换到状态S1;
在第1个应用任务运行,且时间片中断发生、累计计数的时间t为新任务启动点时,第1个应用任务的状态由运行态变为挂起态,第n个应用任务的状态由挂起态变为运行态,系统状态由状态S1转换为状态Sn,其中,2≤n≤N-1;
在第1个应用任务提前结束,且时间片中断开时,第1个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态S1转换到状态M;
在第n个应用任务运行,且时间片中断发生、累计计数的时间t不是新任务启动点时,第n个应用任务继续运行,其他任务状态保持不变,系统状态保持状态Sn;
在第n个应用任务运行,且时间片中断发生、累计计数的时间t是新任务启动点时,第n个应用任务的状态由运行态变为挂起态,第n+1个应用任务的状态由挂起态变为运行态,系统状态由状态Sn变为Sn+1;
空闲任务在运行,且时间片中断发生、累计计数的时间t不是新任务启动点时,空闲任务继续运行,其他任务状态保持不变,系统状态保持状态M;
空闲任务在运行时,且时间片中断发生、累计计数的时间t是新任务启动点时,空闲任务状态由运行态变为就绪态,第n个应用任务或第n+1个应用任务由挂起态变为运行态,系统状态由状态M变为Sn或Sn+1;
第n个应用任务提前结束时,第n个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态Sn转化为状态M;
第n+1个应用任务提前结束时,第n+1个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态Sn+1转化为状态M;
进入状态SN后,时间片中断关,第N个应用任务提前结束时,第N个应用任务的状态由运行态变为挂起态,空闲任务的状态由就绪态变为运行态,系统状态由状态SN转换到状态S0。
9.根据权利要求1所述的基于有限状态机的操作系统需求层形式化建模方法,其特征在于,所述操作系统功能模块数据库中还包括操作系统全局性质,所述方法还包括:
判断所述模型是否满足所述全局性质,若满足,则所述操作系统需求层可靠。
10.一种基于有限状态机的操作系统需求层形式化建模装置,其特征在于,包括:
获取模块,用于响应于对操作系统需求层进行建模的请求,从操作系统功能模块数据库中,获取操作系统对应的多个功能模块、各功能模块对应的至少两种子状态及引起各功能模块子状态发生变化的至少一种操作,其中所述操作系统功能模块数据库中存储有操作系统、功能模块、功能模块子状态及引起子状态发生变化的操作之间的对应关系;
确定模块,用于根据各所述功能子模块的子状态确定操作系统的系统状态,根据各所述子模块对应的引起子状态发生变化的操作,确定引起系统状态变化的触发事件;
建模模块,用于根据确定的系统状态及引起系统状态变化的触发事件,建立基于有限状态机的操作系统需求层形式化模型。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910351821.2A CN110134504A (zh) | 2019-04-28 | 2019-04-28 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
PCT/CN2020/086378 WO2020221097A1 (zh) | 2019-04-28 | 2020-04-23 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910351821.2A CN110134504A (zh) | 2019-04-28 | 2019-04-28 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110134504A true CN110134504A (zh) | 2019-08-16 |
Family
ID=67575579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910351821.2A Pending CN110134504A (zh) | 2019-04-28 | 2019-04-28 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110134504A (zh) |
WO (1) | WO2020221097A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111553070A (zh) * | 2020-04-24 | 2020-08-18 | 国电南瑞科技股份有限公司 | 一种稳定控制装置动作逻辑的有限状态机建模方法、装置及存储介质 |
WO2020221097A1 (zh) * | 2019-04-28 | 2020-11-05 | 北京控制工程研究所 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
CN115061736A (zh) * | 2022-05-19 | 2022-09-16 | 北京控制工程研究所 | 一种基于服务注册机制的动态任务管理方法及系统 |
CN116450101A (zh) * | 2023-04-27 | 2023-07-18 | 睿珀智能科技有限公司 | 软件架构设计方法、系统及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4975544B2 (ja) * | 2007-07-20 | 2012-07-11 | 富士通セミコンダクター株式会社 | シミュレーション装置及びプログラム |
CN101290588B (zh) * | 2008-03-07 | 2010-06-16 | 重庆邮电大学 | 一种微嵌入式实时任务调度器及调度方法 |
CN109324885A (zh) * | 2018-09-13 | 2019-02-12 | 厦门拓宝科技有限公司 | 一种应用于ups单片机控制的最小操作系统及基于最小操作系统的多任务管理方法 |
CN109684681B (zh) * | 2018-12-06 | 2023-05-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 应用uvm验证平台的高层次化验证方法 |
CN110134504A (zh) * | 2019-04-28 | 2019-08-16 | 北京控制工程研究所 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
-
2019
- 2019-04-28 CN CN201910351821.2A patent/CN110134504A/zh active Pending
-
2020
- 2020-04-23 WO PCT/CN2020/086378 patent/WO2020221097A1/zh active Application Filing
Non-Patent Citations (4)
Title |
---|
WOODCOCK J,ET AL: "Formal methods: practice and experience", 《ACM COMPUTING SURVEYS》 * |
周育逵等: "基于Event-B的中断管理需求", 《空间控制技术与应用》 * |
张锦坤等: "基于有限状态机的操作系统需求层形式化验证", 《空间控制技术与应用》 * |
谭彦亮等: "基于Event-B的SpaceOS2操作系统任务管理", 《空间控制技术与应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020221097A1 (zh) * | 2019-04-28 | 2020-11-05 | 北京控制工程研究所 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
CN111553070A (zh) * | 2020-04-24 | 2020-08-18 | 国电南瑞科技股份有限公司 | 一种稳定控制装置动作逻辑的有限状态机建模方法、装置及存储介质 |
CN115061736A (zh) * | 2022-05-19 | 2022-09-16 | 北京控制工程研究所 | 一种基于服务注册机制的动态任务管理方法及系统 |
CN116450101A (zh) * | 2023-04-27 | 2023-07-18 | 睿珀智能科技有限公司 | 软件架构设计方法、系统及设备 |
CN116450101B (zh) * | 2023-04-27 | 2024-04-09 | 睿珀智能科技有限公司 | 软件架构设计方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020221097A1 (zh) | 2020-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134504A (zh) | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 | |
Sehr et al. | Programmable logic controllers in the context of industry 4.0 | |
Mall | Real-time systems: theory and practice | |
Hermanns et al. | The how and why of interactive Markov chains | |
CN108376221A (zh) | 一种基于aadl模型扩展的软件系统安全性验证与评估方法 | |
Gumzej | Real-time Systems' Quality of Service: Introducing Quality of Service Considerations in the Life Cycle of Real-time Systems | |
Verhoef | Modeling and validating distributed embedded real-time control systems | |
Sun et al. | A pre-order relation for exact schedulability test of sporadic tasks on multiprocessor Global Fixed-Priority scheduling | |
de la Cámara et al. | Verification support for ARINC‐653‐based avionics software | |
Stutsman et al. | Experience with {Rules-Based} Programming for Distributed, Concurrent,{Fault-Tolerant} Code | |
Foughali | Toward a correct-and-scalable verification of concurrent robotic systems: insights on formalisms and tools | |
Carnevali et al. | A formal approach to design and verification of two-level hierarchical scheduling systems | |
Madalinski et al. | Predictability verification with parallel LTL-X model checking based on Petri net unfoldings | |
Gu et al. | A model-checking approach to schedulability analysis of global multiprocessor scheduling with fixed offsets | |
Nahas et al. | Ways for implementing highly-predictable embedded systems using time-triggered co-operative (TTC) architectures | |
Goldberg et al. | Software fault protection with ARINC 653 | |
US20110087922A1 (en) | Test method and tool for master-slave systems on multicore processors | |
de la Cámara et al. | Model extraction for arinc 653 based avionics software | |
Ballerini et al. | Software rejuvenation impacts on a phased-mission system for Mars exploration | |
Yu et al. | Schedulability analysis of multi-processor real-time systems using uppaal | |
Maraninchi et al. | SystemC/TLM semantics for heterogeneous system-on-chip validation | |
Girault et al. | Modeling fault-tolerant distributed systems for discrete controller synthesis | |
Zhao et al. | Optimization of real-time software implementing multi-rate synchronous finite state machines | |
Ravn et al. | Safety‐critical Java with cyclic executives on chip‐multiprocessors | |
Gui et al. | Reliability analysis of real-time fault-tolerant task models |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190816 |