本发明属于计算机操作系统领域,具体涉及一种软硬件结合的操作系统实时性优化方法。
背景技术:
1、在计算机系统中,程序是保存在存储器当中,存储器包括寄存器、高速缓存、主存和磁盘。当操作系统运行程序时,会先将程序从磁盘中拷贝到主存当中,高速缓存会从主存中读取程序信息,并将程序的指令信息和数据信息传输给cpu中的寄存器,cpu开始执行任务。
2、应用程序当中会包含多个处理任务,在操作系统进行任务切换时,cpu寄存器中任务指令位置,需要先保存起来,接着将任务的上下文包括虚拟内存、栈、全局变量等用户空间资源,还包括了内核堆栈、寄存器等内核空间的状态等信息保存到主存当中,然后将切换的任务加载到cpu当中,刷新任务的虚拟内核和用户栈。
3、根据操作系统对任务的处理时限要求的特点,可以将操作系统分为软实时操作系统和硬实时操作系统两类。在嵌入式应用领域中,l inux操作系统占用很大的市场份额,但是它属于软实时操作系统,对任务的时限没有严格的要求。在l inux操作系统环境中,会有一些实时性优化的解决方案,可以缩短任务响应的时限,但相对于硬实时性的任务响应时限,还是会有一些不能满足时限要求的情况出现,对于一般行业还是可以满足需求,不会产生比较大的事故,但是对于工控领域,例如工业制造控制、导弹飞机导航、电力设备监控等,需要对任务的执行时限有严格的把控,禁止出现任务执行时限不可控的情况。如果直接使用实时操作系统,例如vxworks、rt-thread,对于特殊的应用软件环境而言,实时操作系统无法满足开发需求,且软件运行环境适配的工作难度大等问题,因此需要找到一种解决方案,即能够满足应用软件所需的运行环境,同时还可以保证任务的硬实时性。
技术实现思路
1、(一)要解决的技术问题
2、本发明要解决的技术问题是如何提供一种软硬件结合的操作系统实时性优化方法,以解决软实时操作系统在某些情况下,对时限有要求的任务无法在严格的时间内完成的问题。
3、(二)技术方案
4、为了解决上述技术问题,本发明提出一种软硬件结合的操作系统实时性优化方法,该方法包括:
5、硬件方面,在芯片中增加一组专用寄存器,专用寄存器连接到cpu,用于在操作系统进行任务切换时,保存关键任务的cpu寄存器信息内容;
6、软件方面,将cpu中的部分cache缓存空间进行重新分配,并命名为cache专用缓存空间,cache专用缓存空间用于将关键任务的代码段和数据段锁定在cache中,在进行任务切换时,并不会将该段的内容进行替换;
7、在多任务应用程序编写阶段,应用程序中的任务使用“storecache”关键字进行声明;“storecache”关键字用于将用该关键字声明的任务定义为关键任务,当对应用程序进行编译时,编译器会将声明的任务切换为关键任务。
8、进一步地,编译器检查应用程序中的其他任务有没有使用“storecache”关键字,关键任务在一个应用程序中只能声明一次。
9、进一步地,编译器根据关键任务占用的空间大小,在cpu的cache缓存中的高地址空间中,申请相应的缓存空间,定义为专用缓存空间,并对该空间进行格式化。
10、进一步地,如果关键任务占用空间超过规定的空间大小时,在编译时,编译器会报告错误来反馈。
11、进一步地,编辑器将关键任务的专用缓存空间的结构格式化为三个部分,分别是代码段存储体、数据段存储体、有效位;关键任务的代码段内容存储在专用缓存空间的代码段存储体中,关键任务的数据段内容存储在专用缓存空间的数据段存储体中,将专用缓存空间的有效位设置为有效。
12、进一步地,操作系统会将关键任务的上下文内容保存到专用寄存器组中,数据准备好后,关键任务将等待操作系统将cpu的控制权移交给关键任务。
13、进一步地,专用寄存器组包括:通用寄存器、指令寄存器、数据寄存器、地址寄存器和程序状态寄存器。
14、进一步地,操作系统执行普通任务时,专用寄存器中保存着关键任务的代码段指令,cache专用缓存空间中保存着关键任务的代码段信息和数据段信息,等待操作系统调度;操作系统调度到关键任务时,操作系统开始将cpu控制权交给关键任务时,首先将当前正在执行的普通任务进行现场保护操作,将普通任务的cpu寄存器中的信息与专用寄存器中的关键任务的上下文内容进行交换,此时cpu中的上下文为关键任务的信息,随后cpu从cache专用缓存空间中获取代码段和数据段的内容,执行关键任务。
15、进一步地,当普通任务的任务信息过多时,操作系统会将普通任务多余的任务信息存储在任务栈中。
16、进一步地,关键任务执行完毕后,cpu寄存器从专用寄存器中恢复普通任务信息,并从任务栈中恢复多余的任务信息,cpu控制权交还给普通任务,专用缓存空间和专用寄存器中继续保存关键任务的任务信息。
17、(三)有益效果
18、本发明提出一种软硬件结合的操作系统实时性优化方法,采用本发明对操作系统进行实时性优化后,关键任务不再从主存中读取任务信息,操作系统切换关键任务的时间也得到很明显的改善,完全可以在微秒级的时间内完成任务的切换。该方法能够大幅度改善软实时操作系统无法在严格的时间内完成,保障操作系统的实时性能够达到硬实时操作系统的水平。本发明实现简单有效,满足应用的要求。
1.一种软硬件结合的操作系统实时性优化方法,其特征在于,该方法包括:
2.如权利要求1所述的软硬件结合的操作系统实时性优化方法,其特征在于,编译器检查应用程序中的其他任务有没有使用“storecache”关键字,关键任务在一个应用程序中只能声明一次。
3.如权利要求1所述的软硬件结合的操作系统实时性优化方法,其特征在于,编译器根据关键任务占用的空间大小,在cpu的cache缓存中的高地址空间中,申请相应的缓存空间,定义为专用缓存空间,并对该空间进行格式化。
4.如权利要求3所述的软硬件结合的操作系统实时性优化方法,其特征在于,如果关键任务占用空间超过规定的空间大小时,在编译时,编译器会报告错误来反馈。
5.如权利要求3所述的软硬件结合的操作系统实时性优化方法,其特征在于,编辑器将关键任务的专用缓存空间的结构格式化为三个部分,分别是代码段存储体、数据段存储体、有效位;关键任务的代码段内容存储在专用缓存空间的代码段存储体中,关键任务的数据段内容存储在专用缓存空间的数据段存储体中,将专用缓存空间的有效位设置为有效。
6.如权利要求1所述的软硬件结合的操作系统实时性优化方法,其特征在于,操作系统会将关键任务的上下文内容保存到专用寄存器组中,数据准备好后,关键任务将等待操作系统将cpu的控制权移交给关键任务。
7.如权利要求6所述的软硬件结合的操作系统实时性优化方法,其特征在于,专用寄存器组包括:通用寄存器、指令寄存器、数据寄存器、地址寄存器和程序状态寄存器。
8.如权利要求1-7任一项所述的软硬件结合的操作系统实时性优化方法,其特征在于,操作系统执行普通任务时,专用寄存器中保存着关键任务的代码段指令,cache专用缓存空间中保存着关键任务的代码段信息和数据段信息,等待操作系统调度;操作系统调度到关键任务时,操作系统开始将cpu控制权交给关键任务时,首先将当前正在执行的普通任务进行现场保护操作,将普通任务的cpu寄存器中的信息与专用寄存器中的关键任务的上下文内容进行交换,此时cpu中的上下文为关键任务的信息,随后cpu从cache专用缓存空间中获取代码段和数据段的内容,执行关键任务。
9.如权利要求8所述的软硬件结合的操作系统实时性优化方法,其特征在于,当普通任务的任务信息过多时,操作系统会将普通任务多余的任务信息存储在任务栈中。
10.如权利要求9所述的软硬件结合的操作系统实时性优化方法,其特征在于,关键任务执行完毕后,cpu寄存器从专用寄存器中恢复普通任务信息,并从任务栈中恢复多余的任务信息,cpu控制权交还给普通任务,专用缓存空间和专用寄存器中继续保存关键任务的任务信息。