用于在操作系统中动态地控制抢占分区的设备和方法

文档序号:6383582阅读:162来源:国知局
专利名称:用于在操作系统中动态地控制抢占分区的设备和方法
用于在操作系统中动态地控制抢占分区的设备和方法
本申请要求于2011年12月7日提交的第10-2011-0130407号韩国专利申请的利益,该申请的整个公开通过引用包含于此用于所有目的。技术领域
以下描述涉及一种在操作系统中根据应用或服务动态地管理抢占分区的技术。
背景技术
计算机技术的发展伴随着操作系统的进步。操作系统已经被设计为针对特定应用最优化,并可被分类为用于最大化性能的操作系统和用于最大化实时处理的操作系统。用于最大化性能的操作系统的示例包括Windows、Linux、Android、MacOS等,用于最大化实时处理的操作系统包括Nucleus、RTLinux> Vxfforks等。
随着最近IT汇聚的趋势,在未来期望广泛使用各种应用共存的计算环境。然而,由于传统操作系统已经被设计为针对特定目的而最优化,因此传统操作系统满足各种应用的需要的能力有限,其中,所述各种应用包括需要实时处理的应用(诸如智能汽车或个人健康设备)以及需要高处理效率的应用。发明内容
根据一方面,一种动态地控制抢占分区的设备包括:抢占管理器,被配置为:监视系统上下文是否改变;如果系统上下文已经改变,则根据改变的系统上下文设置当前抢占模式以动态地控制内核的抢占分区。
当前抢占模式可以是非抢占模式、一般抢占模式或全抢占模式;可以根据系统上下文需要的实时处理的程度来分类非抢占模式、一般抢占模式和全抢占模式。
可以根据系统上下文需要实时处理的程度将非抢占模式、一般抢占模式和全抢占模式中的每个抢占模式子分类为多个抢占级;抢占管理器还可以被配置为在当前抢占模式的抢占级中设置针对当前抢占模式的抢占级以动态地控制内核的抢占分区。
所述设备还可以包括:中断上下文管理器,被配置为根据当前抢占模式动态地改变处理中断服务例程(ISR)的方法。
当产生了硬件中断时,中断上下文管理器可检查当前抢占模式;如果当前抢占模式是非抢占模式,则中断上下文管理器可使得在中断上下文模式下继续执行ISR;如果当前抢占模式不是非抢占模式,则中断上下文管理器可使得在中断线程模式下执行I SR。
所述设备还可以包括:抢占点管理器,被配置为当内核的内核服务例程的执行到达内核服务例程中的抢占点时,动态地控制是否检查是否需要重新调度当前线程。
抢占点可以包括用于检查是否需要重新调度当前线程的代码段;抢占点管理器还可以被配置为根据当前抢占模式阻止执行用于检查是否需要重新调度当前线程的代码段或允许执行用于检查是否需要重新调度当前线程的代码段。
抢占点管理器还可以被配置为当内核服务例程的执行到达抢占点时,确定当前抢占模式是否是非抢占模式;如果确定的结果是当前抢占模式是非抢占模式,则阻止执行用于检查是否需要重新调度当前线程的代码段;如果确定的结果是当前抢占模式不是非抢占模式,则允许执行用于检查是否需要重新调度当前线程的代码段。所述设备还可以包括:抢占锁管理器,被配置为当内核执行具有自旋锁的任务时根据当前抢占模式动态地使得内核使用自旋锁或互斥执行所述任务。所述设备还可以包括:抢占IPC/SysCall管理器,被配置为:当进程间通信(IPC)被处理时,根据当前抢占模式动态地控制IPC的超时;当系统调用被产生时,使得根据当前抢占模式同步或异步地执行系统调用。抢占IPC/SysCall管理器还可以被配置为:确定当前抢占模式是否是非抢占模式;如果确定的结果是当前抢占模式是非抢占模式,则使得异步地执行系统调用;如果确定的结果是当前抢占模式不是非抢占模式,则使得同步地执行系统调用。所述设备还可以包括:抢占HW管理器,被配置为根据当前抢占模式动态地设置转换后备缓冲器(TLB)锁定,从而需要实时处理的任务不从TLB被清理。根据一方面,一种动态地控制抢占分区的方法包括:监视系统上下文是否改变;如果系统上下文已经改变,则根据改变的系统上下文设置当前抢占模式以动态地控制内核的抢占分区。当前抢占模式可以是非抢占模式、一般抢占模式或全抢占模式;可以根据系统上下文需要的实时处理的程度来分类非抢占模式、一般抢占模式和全抢占模式。可以根据系统上下文需要实时处理的程度将非抢占模式、一般抢占模式和全抢占模式中的每个抢占模式子分类为多个抢占级;设置当前抢占模式的设置可以包括在当前抢占模式的抢占级中设置针对当前抢占模式的抢占级以动态地控制内核的抢占分区。可以根据当前抢占模式动态地改变处理中断服务例程(ISR)的方法。动态地改变处理ISR的方法可以包括:当产生了硬件中断时,检查当前抢占模式;如果当前抢占模式是非抢占模式,则使得在中断上下文模式下继续执行ISR;如果当前抢占模式不是非抢占模式,则使得在中断线程模式下执行ISR。所述方法还可以包括:当内核服务例程的执行到达内核服务例程中的抢占点时,动态地控制是否检查是否需要重新调度当前线程。抢占点可以包括用于检查是否需要重新调度当前线程的代码段;动态地控制是否检查是否需要重新调度当前线程的步骤可以包括:根据当前抢占模式阻止执行用于检查是否需要重新调度当前线程的代码段或允许执行用于检查是否需要重新调度当前线程的代码段。当内核服务例程的执行到达抢占点时的阻止或允许的步骤可以包括:确定当前抢占模式是否是非抢占模式;如果确定的结果是当前抢占模式是非抢占模式,则阻止执行用于检查是否需要重新调度当前线程的代码段;如果确定的结果是当前抢占模式不是非抢占模式,则允许执行用于检查是否需要重新调度当前线程的代码段。所述方法还可以包括:当内核执行具有自旋锁的任务时,根据当前抢占模式动态地使得内核使用自旋锁或互斥执行所述任务。所述方法还可以包括:当进程间通信(IPC)被处理时,根据当前抢占模式动态地控制IRC的超时;当系统调用被产生时,使得根据当前抢占模式同步或异步地执行系统调用。使得同步或异步地执行系统调用的步骤可以包括:确定当前抢占模式是否是非抢占模式;如果确定的结果是当前抢占模式是非抢占模式,则使得异步地执行系统调用;如果确定的结果是当前抢占模式不是非抢占模式,则使得同步地执行系统调用。所述方法还可以包括:根据当前抢占模式动态地设置转换后备缓冲器(TLB)锁定,从而需要实时处理的任务不从TLB被清理。从以下详细描述、附图和权利要求,其它特点和方面将变得明显。


图1是示出在操作系统中动态地控制抢占分区的设备的示例的示图。图2是示出在操作系统中动态地控制抢占分区的方法的示例的流程图。图3是示出动态地控制中断服务例程(ISR)处理的方法的示例的流程图。图4是示出动态地控制抢占点执行过程的方法的示例的流程图。图5是用于解释动态地控制系统锁方法的方法的示例的示图。图6是示出动态地控制系统调用执行方法的方法的示例的流程图。图7是示出动态地设置转换后备缓冲器(TLB)锁定的方法的示例的流程图。
具体实施例方式提供以下描述以帮助读者获得对这里描述的方法、设备和/或系统的全面理解。然而,这里描述的方法、设备和/或系统的各种改变、修改和等同物将对于本领域普通技术人员而言是明显的。此外,为了增加清楚和简明,可省略对本领域普通技术人员公知的功能和结构的描述。贯穿附图和详细描述,相同附图标号表示相同元件。为了清楚、说明和方便,可夸大这些元件的相对大小和描绘。图1是示出在操作系统中动态地控制抢占分区的设备100的示例的示图。设备100可以是硬件、软件或硬件和软件的组合,并且在图1中示出的设备100的单个组件,gp,在下面被详细描述的各个管理器110、120、130、140、150、160和170可被实施为硬件组件、软件组件或者硬件和软件的组合的组件。如图1中所示,动态地控制抢占分区的设备100包括抢占管理器110。操作区段中的抢占分区是这样的操作系统的区段:在特定条件下,当前正被执行的处理可被抢占以使得另一处理被执行。抢占管理器110监视当前系统上下文是否改变。如果抢占管理器110确定当前系统上下文已改变,则抢占管理器110根据改变的系统上下文设置当前抢占模式以控制内核的抢占分区。系统上下文可包括用户偏好、装置上下文(例如,装置和传感器的状态)、服务上下文(例如,当前QoS(服务质量))、外围环境(例如,实时任务、系统开销、位置等)等。也就是说,抢占管理器110根据系统上下文确定内核将以哪种抢占模式操作。例如,抢占管理器Iio可根据内核的架构被实施为可在用户层操作或可在内核层操作。更详细地说,抢占管理器110监视系统上下文是否改变(诸如,实时任务何时被注册或装置上下文何时被改变),并设置适合于改变的系统上下文的当前抢占模式。可根据需要的实时处理的程度将抢占模式宽泛地分类为三个阶段:非抢占模式、一般抢占模式和全抢占模式。然而,该分类仅仅是示例,并且可由用户或开发商根据由系统处理的系统上下文(即,应用、任务、中断等)需要的实时处理的程度来预先将抢占模式分类为预定数量的阶段。可在需要高处理效率而非实时处理的应用(诸如嵌入式服务器或数据流应用)正被执行的环境中设置非抢占模式。可在一般应用(诸如多媒体应用、游戏等)与需要普通实时处理的应用一起正被执行的环境中设置一般抢占模式。可在实时处理比处理效率重要得多的应用(诸如医疗保健监视、驾驶员监视、汽车碰撞警报等)正被执行的环境中设置全抢占模式。如果假设操作系统在抢占分区期间可使用的全部可用资源为100%,则全抢占模式可被设置为在抢占分区期间使用100%的可用资源,一般抢占模式被设置可被设置为在抢占分区期间使用80%的可用资源,非抢占模式可被设置为在抢占分区期间使用20%的可用资源。因此,通过根据系统上下文的类型不同地分类抢占模式,可在各种操作系统中最优地满足各种应用环境的需要。然而,以上列出的特定百分比仅仅是示例,并且可根据具体情况使用其它百分比。非抢占模式、一般抢占模式和全抢占模式中的每个抢占模式可被子分类为多个抢占级。也就是说,虽然所有应用都被设置为在抢占分区期间允许使用100%可用资源的全抢占模式,但是所述应用可具有不同实时处理的程度的需要。例如,可根据对实时处理的需要的程度将全抢占模式在80 %到100%的范围内子分类为多个抢占级(例如,以1%、5%或10%为单位)。类似地,可根据对平衡实时处理和处理效率的需要的程度将一般抢占模式在20%到80%的范围内子分类为多个抢占级(例如,以1%、5%或10%为单位)。此外,可根据对处理效率的需要的程度将非抢占模式在0%到20%的范围内子分类为多个抢占级(例如,以1%、5%或10%为单位)。抢占管理器110可设置当前抢占模式并还可设置当前抢占模式的抢占级,以动态地控制内核的抢占分区。然而,以上列出的特定百分比仅仅是示例,并且可根据具体情况使用其它百分比。动态管理抢占分区的设备100还可包括中断上下文管理器120。中断上下文管理器120根据由抢占管理器110设置的当前抢占模式动态地改变处理中断服务例程(ISR)的方法。更详细地说,当产生了硬件中断时,中断上下文管理器120检查当前抢占模式,并且如果当前抢占模式是非抢占模式,则中断上下文管理器120允许在中断上下文模式下继续执行ISR。如果当前抢占模式不是非抢占模式,例如,如果当前抢占模式是一般抢占模式或全抢占模式,则中断上下文管理器120使得在中断线程模式下执行ISR。当特定中断被施加到系统时,中断分支到由硬件设置的中断矢量,并且中断预处理器在中断上下文模式下执行识别当前抢占模式的操作。中断矢量是具有能够处理产生的中断的中断服务例程的地址的空间。如果当前抢占模式是非抢占模式,则由于非抢占模式用于实时处理不重要的环境,因此在中断上下文模式下处理ISR。然而,如果当前抢占模式是一般抢占模式或全抢占模式,则调度中断线程,从而ISR在中断线程模式下被处理,并随后在中断线程模式下处理ISR。当使用了中断线程时,中断本身被处理为线程,从而可在任何时候抢占中断,并还允许基于优先级的调度改变。因此,虽然可能在中断线程模式中需要消极影响处理效率的更多开销,但是可确保高水平的实时处理。
动态地控制抢占分区的设备100还可包括抢占点管理器130。抢占点管理器130根据当前抢占模式动态地控制是否在被插入到内核服务例程中的抢占点处检查是否需要重新调度当前线程。抢占点可被插入需要长执行时间的内核服务例程的开始部分,并可包括用于检查是否需要重新调度当前线程的代码段。当对内核服务例程的执行达到抢占点时,抢占点管理器130确定当前抢占模式是否是非抢占模式。如果确定的结果是当前抢占模式是非抢占模式,则抢占点管理器130阻止内核服务例程执行用于检查是否需要重新调度当前线程的代码段,使得内核服务例程继续执行当前线程。如果确定的结果是当前抢占模式不是非抢占模式(即,是全抢占模式或一般抢占模式),则抢占点管理器130允许内核服务例程执行用于检查是否需要重新调度当前线程的代码段。作为结果,在当前抢占模式是非抢占模式时,不确定是否需要重新调度当前线程,从而以实时处理为代价来提高处理效率。动态地控制抢占分区的设备100还可包括抢占锁管理器140。在内核执行具有自旋锁的任务时,抢占锁管理器140根据由抢占管理器110设置的当前抢占模式动态地使用自旋锁或互斥(相互排斥)来处理所述任务。自旋锁继续检查锁并等待,直到通过另一线程释放该锁为止。互斥是用于独立地执行具有临界区(critical section)的线程以使得线程的执行时间彼此不重叠的技术。锁和解锁被用于控制对共享资源的多个处理器的访问。自旋锁和互斥在本领域中是公知的,因此为了简洁将不在此详细描述。如果当前抢占模式是全抢占模式,则抢占锁管理器140可使用互斥而非自旋锁。这允许当正在执行具有自旋锁的低优先级任务时需要实时处理的任务抢占低优先级任务,从而在低优先级之前执行需要实时处理的任务。然而,由于互斥需要消极影响处理效率的开销,因此当抢占管理器110将当前抢占模式设置为非抢占模式时,抢占锁管理器140可将互斥代码段改变为指向自旋锁代码段以进入繁忙等待状态。因此,不需要实时处理或需要有限实时处理的任务可使用自旋锁,自旋锁在处理效率方面具有相对出色的性能。动态地控制抢占分区的设备100还可包括抢占IPC/SysCall管理器150。当进程间通信(IPC)被处理时,抢占IPC/SysCall管理器150根据由抢占管理器110设置的当前抢占模式动态地控制IPC的超时,或者当执行系统调用(SysCall)时,抢占IPC/SysCall管理器150根据当前抢占模式动态地控制是同步地还是异步地执行系统调用。例如,当系统调用被执行时,抢占IPC/SysCall管理器150可确定当前任务是否是需要实时处理的任务。也就是说,如果由抢占管理器110设置的当前抢占模式是指示当前任务是需要实时处理的任务的全抢占模式,则抢占IPC/SysCall管理器150可使得异步地执行系统调用,而如果当前抢占模式是指示当前任务是不需要实时处理或需要有限实时处理的任务时,则抢占IPC/SysCall管理器150可使得同步地执行系统调用。动态地控制抢占分区的设备100还可包括抢占HW (硬件)管理器160。抢占HW管理器160可动态地设置或释放转换后备缓冲器(TLB)锁定,从而根据由抢占管理器110设置的当前抢占模式而确定的需要实时处理的任务不从TLB被清理(flush)。此外,抢占HW管理器160可钉住(pin)时间上关键的存储器分页,从而在实时任务中不产生分页错误。TLB是用于减少分页表转换开销的有限硬件资源,其中,在操作系统和应用的虚拟地址被转换为物理地址时产生所述分页表转换开销。由于TLB清理根据内部算法操作,因此在实时处理重要的时刻产生的TLB清理可产生延迟。因此,如果当前抢占模式是全抢占模式,则抢占HW管理器160可针对需要实时处理的应用执行动态TLB锁定,从而所述应用将总被包括在TLB中。TLB、TLB清理和TLB锁定在本领域中是公知的,因此为了简洁在此将不详细描述。动态地控制抢占分区的设备100还可包括用户级服务器和任务管理器170。在抢占管理器Iio设置当前抢占模式时,用户级服务器和任务管理器170根据当前抢占模式动态地控制用户级的抢占器、中断线程、分页器(pager)、调度器等的执行方法。图2是示出在操作系统中动态地控制抢占分区的方法的示例的流程图。将参照图1和图2详细地描述动态地控制抢占分区的方法。首先,抢占管理器110监视当前系统上下文是否改变(111)。如果确定当前系统上下文改变,则抢占管理器110分析改变的系统上下文(121)。然后,抢占管理器110在(131)确定改变的系统上下文是否是实时处理比处理效率重要得多的环境,例如是当诸如医疗保健监视、驾驶员监视、汽车碰撞警报等的应用正被执行的环境。如果在(131)中确定的结果是改变的系统上下文是实时处理比处理效率重要得多的环境,则抢占管理器110将当前抢占模式设置为全抢占模式(141)。如果在(131)中确定的结果是改变的系统上下文不是实时处理比处理效率重要得多的环境,则抢占管理器110在(132)确定改变的系统上下文是否是需要高处理效率而非实时处理的应用正被执行的环境(诸如嵌入式服务器或数据流应用)。如果在(132)确定的结果是改变的系统上下文是需要高处理效率而非实时处理的应用正被执行的环境,则抢占管理器110将当前抢占模式设置为非抢占模式(142)。如果在(132)确定的结果是改变的系统上下文不是需要高处理效率而非实时处理的应用正被执行的环境,则抢占管理器Iio将当前抢占模式设置为一般抢占模式(143)。如上所述,可根据系统上下文的类型将全抢占模式、非抢占模式和一般抢占模式中的每个抢占模式子分类为多个抢占级。更详细地说,当改变的系统上下文是一般环境(即,既不是需要关键实时处理的环境也不是需要很高处理效率的环境)时,也就是说,当改变的系统上下文是各种应用共存的环境时,可将一般抢占模式子分类为各种抢占级。图3是示出动态地控制中断服务例程(ISR)处理的方法的示例的流程图。将参照图1和图3详细描述根据当前抢占模式动态地控制ISR处理的方法。首先,当在执行期间在硬件中产生中断时(210),该执行分支到中断矢量(220)。然后,中断上下文管理器120在中断上下文模式下检查当前抢占模式(230),并在(240)确定当前抢占模式是否是非抢占模式。如果在(240)的确定结果是当前抢占模式是指示实时处理不重要的环境的非抢占模式,则中断上下文管理器120使得在中断上下文模式下处理ISR(290)。如果在(240)的确定结果是当前抢占模式不是非抢占模式(即,是一般抢占模式或全抢占模式),则中断上下文管理器120激活中断线程以使得在中断线程模式下处理ISR(250)。然后,操作系统在(260)根据优先级确定是否需要重新调度中断线程。如果在(260)确定需要重新调度中断线程,则重新调度中断线程(270),并随后根据重新调度在适当时间在中断线程模式下执行ISR(280)。如果在(260)根据优先级确定不需要重新调度当前线程,则在中断线程模式下执行 ISR(280)。因此,如上所述,当使用中断线程时,中断本身被处理为线程,从而可在任何时间抢占中断,并且还允许基于优先级的调度改变。因此,虽然在中断线程模式下可能需要消极影响处理效率的更多开销,但是可确保高水平的实时处理。图4是示出动态地控制抢占点执行过程的方法的示例的流程图。参照图1和图4,可将抢占点插入需要长执行时间的内核服务例程的开始部分。抢占点可包括用于检查是否需要重新调度当前线程的代码段。当内核服务例程的执行到达抢占点时(310),抢占点管理器130在(320)确定当前抢占模式是否是非抢占模式。如果在(320)的确定结果是当前抢占模式是非抢占模式,则抢占点管理器130阻止内核服务例程执行用于检查是否需要重新调度当前线程的代码段,使得内核服务例程继续执行当前线程并执行下一操作(350)。如果在(320)的确定结果是当前抢占模式不是非抢占模式(即,是全抢占模式或一般抢占模式),则抢占点管理器130允许内核服务例程执行用于检查是否需要重新调度当前线程的代码段。如果在(330)检查的结果是需要重新调度当前线程,则内核服务例程重新调度当前线程(340)。如果在(350)检查的结果是不需要重新调度当前线程,则内核服务例程继续执行当前线程并执行下一操作(350)。因此,如上所述,如果当前抢占模式是非抢占模式,则不确定是否需要重新调度当前线程,从而以实时处理为代价提高处理效率。图5是用于解释动态地控制系统锁方法的示例的示图。参照图1和图5,当内核执行具有自旋锁的任务时,抢占锁管理器140可根据当前抢占模式使内核动态地使用自旋锁或互斥执行任务。例如,如果当前抢占模式是全抢占模式,则抢占锁管理器140可使得内核使用互斥而非自旋锁。也就是说,如果在内核正在执行具有自旋锁的低优先级任务的同时输入了需要实时处理的任务,则抢占锁管理器140可使得内核在所述低优先级任务之前执行需要实时处理的任务。由于互斥需要消极影响处理效率的开销,从而当抢占管理器110将当前抢占模式设置为非抢占模式时,由于自旋锁在处理效率方面具有相对出色的性能,因此抢占锁管理器140可将互斥代码段改变为指向自旋锁代码段以进入繁忙等待状态。图5中示出的自旋锁和互斥的特定细节在本领域中是公知的,因此为了简洁在此将不进行详细描述。图6是示出动态地控制系统调用执行方法的示例的流程图。当进程间通信(IPC)被处理时,抢占IPC/SysCall管理器150根据当前抢占模式动态地控制IPC的超时。此外,当系统调用被执行时,抢占IPC/SysCall管理器150使得根据当前抢占模式同步地或异步地执行系统调用。参照图6,将详细描述根据当前抢占模式执行系统调用的处理。首先,当产生系统调用时(410),抢占IPC/SysCall管理器150检查当前抢占模式(420)。然后,抢占IPC/SysCall管理器150在(430)确定当前抢占模式是否是非抢占模式。如果在(430)的确定结果是当前抢占模式是指示当前正被执行的任务是需要实时处理的任务的非抢占模式,则抢占IPC/SysCall管理器150使得异步地执行系统调用(440)。如果在(430)的确定结果是当前抢占模式不是非抢占模式(即,是全抢占模式或一般抢占模式),则抢占IPC/SysCall管理器150使得同步地执行系统调用(450)。图7是示出动态设置TLB锁定的方法的示例的流程图。参照图1和图7,抢占HW管理器160根据当前抢占模式动态地设置或释放TLB锁定,从而需要实时处理的任务不从TLB被清理。此外,抢占HW管理器160可钉住时间上关键的存储器分页,从而在需要实时处理的任务中不产生分页错误。更详细地说,在动态地设置TLB锁定的方法中,当需要实时处理的任务被注册时(510),抢占HW管理器160在(520)通过确定当前抢占模式是否是非抢占模式来确定是否需要TLB锁定。如果在(520)的确定结果是当前抢占模式是非抢占模式,则抢占HW管理器160使得正常地处理需要实时处理的任务(550)。如果在(520)的确定结果是当前抢占模式不是非抢占模式(即,是全抢占模式或一般抢占模式),则抢占HW管理器160在(530)确定需要实时处理的任务是否具有高优先级,从而需要实时处理的重要应用或任务可总被包括在TLB中。如果在(530)的确定结果是需要实时处理的任务具有高优先级,则抢占HW管理器160针对需要实时处理的任务设置TLB锁定(540)。如果在(530)的确定结果是需要实时处理的任务不具有高优先级,则抢占HW管理器160使得正常地处理需要实时处理的任务,而不需要针对需要实时处理的任务设置TLB锁定(550)。可使用一个或多个硬件组件、一个或多个软件组件或一个或多个硬件组件和一个或多个软件组件的组合来实施图1中的各个管理器110、120、130、140、150、160和170。硬件组件可以是例如物理地执行一个或多个操作的物理装置,但不限于此。硬件组件的示例包括算法元件、运算元件、功能元件、寄存器、总线、存储器装置和处理装置。可例如通过由软件或指令控制的处理装置实现软件组件以执行一个或多个操作,但不限于此。计算机、控制器或其它控制装置可使得处理装置运行软件或执行指令。可通过一个处理装置来实现一个软件组件,或者可通过一个处理装置来实现两个或更多个软件组件,或者可通过两个或更多个处理装置来实现一个软件组件,或者可通过两个或更多个处理装置来实现两个或更多个软件组件。可使用一个或多个通用或专用计算机(诸如,例如,处理器、控制器和算术逻辑单元、数字信号处理器、微计算机、现场可编程阵列、可编程逻辑单元、微处理器或能够运行软件或执行指令的任何其它装置)来实现处理装置。处理装置可运行操作系统(OS),并可运行在OS下操作的一个或多个软件应用。当运行软件或执行指令时,处理装置可访问、存储、操纵、处理并创建数据。为了简洁,可在描述中使用单数术语“处理装置”,但是本领域普通技术人员将理解处理装置可包括多个处理元件以及多种类型的处理元件。例如,处理装置可包括一个或多个处理器、或者一个或多个处理器和一个或多个控制器。此外,不同处理配置(诸如并行处理器或多核处理器)是可行的。配置为实现软件组件以执行操作A的处理装置可包括编程为运行软件或执行指令以控制处理器执行操作A的处理器。此外,配置为实现用于执行操作A、操作B和操作C的软件组件的处理装置可具有各种配置,诸如,例如配置为实现用于执行操作A、操作B和操作C的软件组件的处理器;配置为实现用于执行操作A的软件组件的第一处理器以及配置为实现用于执行操作B和操作C的软件组件的第二处理器;配置为实现用于执行操作A和操作B的软件组件的第一处理器以及配置为实现用于执行操作C的软件组件的第二处理器;配置为实现用于执行操作A的软件组件的第一处理器、配置为实现用于执行操作B的软件组件的第二处理器以及配置为实现用于执行操作C的软件组件的第三处理器;配置为实现用于执行操作A、操作B和操作C的软件组件的第一处理器以及配置为实现用于执行操作A、操作B和操作C的软件组件的第二处理器,或者每个都实现操作A、操作B和操作C中的一个或多个操作的一个或多个处理器的任意其他组合。尽管这些示例提到三个操作A、B和C,但可实现的操作的数量不限于三个,而是,可实现的操作的数量可以是实现期望的结果或执行期望的任务所需的任意数量的操作。用于控制处理装置来实现软件组件的软件或指令可包括用于独立地或共同地指示或配置处理装置执行一个或多个期望的操作的计算机程序、一段代码、指令或它们的某些组合。软件或指令可包括可由处理装置直接执行的机器代码(诸如由编译器产生的机器代码)和/或可由处理装置使用解释器执行的更高级代码。软件或指令以及任何相关数据、数据文件和数据结构可永久地或暂时地在能够将指令或数据提供给处理装置或可由处理装置解释的任意类型的机器、组件、物理或虚拟设备、计算机存储介质或装置、或者传播的信号波中实施。软件或指令以及任何相关数据、数据文件和数据结构还可分布在联网的计算机系统上,从而所述软件或指令以及任何相关数据、数据文件和数据结构以分布式方式被存储和执行。例如,软件或指令以及任何相关数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质可以是能够存储软件或指令以及任何相关数据、数据文件和数据结构的任何数据存储装置,从而所述软件或指令以及任何相关数据、数据文件和数据结构可被计算机系统或处理装置读取。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘或对于本领域普通技术人员而言已知的任何其他非暂时性计算机可读存储介质。用于实现在此公开的示例的功能程序、代码和代码段可被所述示例所属领域的编程人员基于在此提供的图1中的框图和图2至图7中的流程图以及它们的相应描述而容易地解释。尽管本公开包括特定示例,但本领域普通技术人员将理解的是,在不脱离权利要求及其等同物的精神和范围的情况下,可对这些示例进行形式和细节上的各种改变。在此描述的示例将仅被视为描述性的意义,而不是为了限制的目的。每个示例中的特征或方面的描述将被视为适用于其他示例中的类似特征或方面。如果以不同的顺序执行描述的技术,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式组合和/或被其他组件或其等同物代替或补充,则会实现合适的结果。因此,本公开的范围不由详细描述限定,而是由权利要求及其等同物限定,并且权利要求及其等同物的范围内的所有变化将被解释为包括在本公开中。
权利要求
1.一种动态地控制抢占分区的设备,所述设备包括: 抢占管理器,被配置为: 监视系统上下文是否改变; 如果系统上下文已经改变,则根据改变的系统上下文设置当前抢占模式以动态地控制内核的抢占分区。
2.如权利要求1所述的设备,其中,当前抢占模式是非抢占模式、一般抢占模式或全抢占模式; 根据系统上下文需要的实时处理的程度来分类非抢占模式、一般抢占模式和全抢占模式。
3.如权利要求2所述的设备,其中,根据系统上下文需要实时处理的程度将非抢占模式、一般抢占模式和全抢占模式中的每个抢占模式子分类为多个抢占级; 抢占管理器还被配置为在当前抢占模式的抢占级中设置针对当前抢占模式的抢占级以动态地控制内核的抢占分区。
4.如权利要求1所述的设备,还包括:中断上下文管理器,被配置为根据当前抢占模式动态地改变处理中断服务例程(ISR)的方法。
5.如权利要求1所述的设备,其中,当产生了硬件中断时,中断上下文管理器检查当前抢占模式; 如果当前抢占模式是非抢占模式,则中断上下文管理器使得在中断上下文模式下继续执行ISR ; 如果当前抢占模式不是非抢占模式,则中断上下文管理器使得在中断线程模式下执行ISR。
6.如权利要求1所述的设备,还包括:抢占点管理器,被配置为当内核的内核服务例程的执行到达内核服务例程中的抢占点时,动态地控制是否检查是否需要重新调度当前线程。
7.如权利要求6所述的设备,其中,抢占点包括用于检查是否需要重新调度当前线程的代码段; 抢占点管理器还被配置为根据当前抢占模式,阻止执行用于检查是否需要重新调度当前线程的代码段或允许执行用于检查是否需要重新调度当前线程的代码段。
8.如权利要求7所述的设备,其中,抢占点管理器还被配置为当内核服务例程的执行到达抢占点时: 确定当前抢占模式是否是非抢占模式; 如果确定的结果是当前抢占模式是非抢占模式,则阻止执行用于检查是否需要重新调度当前线程的代码段; 如果确定的结果是当前抢占模式不是非抢占模式,则允许执行用于检查是否需要重新调度当前线程的代码段。
9.如权利要求1所述的设备,还包括:抢占锁管理器,被配置为当内核执行具有自旋锁的任务时根据当前抢占模式动态地使得内核使用自旋锁或互斥执行所述任务。
10.如权利要求1所述的设备,还包括:抢占IPC/SysCall管理器,被配置为: 当进程间通信(IPC)被处理时,根据当前抢占模式动态地控制IPC的超时;当系统调用被产生时,使得根据当前抢占模式同步或异步地执行系统调用。
11.如权利要求10所述的设备,其中,抢占IPC/SysCall管理器还被配置为: 确定当前抢占模式是否是非抢占模式; 如果确定的结果是当前抢占模式是非抢占模式,则使得异步地执行系统调用; 如果确定的结果是当前抢占模式不是非抢占模式,则使得同步地执行系统调用。
12.如权利要求1所述的设备,还包括:抢占HW管理器,被配置为根据当前抢占模式动态地设置转换后备缓冲器(TLB)锁定,从而需要实时处理的任务不从TLB被清理。
13.一种动态地控制抢占分区的方法,所述方法包括: 监视系统上下文是否改变; 如果系统上下文已经改变,则根据改变的系统上下文设置当前抢占模式以动态地控制内核的抢占分区。
14.如权利要求13所述的方法,其中,当前抢占模式是非抢占模式、一般抢占模式或全抢占模式; 根据系统上下文需要实时处理的程度来分类非抢占模式、一般抢占模式和全抢占模式。
15.如权利要求13所述的方法,其中,根据系统上下文需要实时处理的程度将非抢占模式、一般抢占模式和全抢占模式中的每个抢占模式子分类为多个抢占级; 设置当前抢占模式的步骤包括:在当前抢占模式的抢占级中设置针对当前抢占模式的抢占级以动态地控制内核的抢占分区。
16.如权利要求13所述的方法,还包括:根据当前抢占模式动态地改变处理中断服务例程(ISR)的方法。
17.如权利要求16所述的方法,其中,动态地改变处理ISR的方法包括: 当产生了硬件中断时,检查当前抢占模式; 如果当前抢占模式是非抢占模式,则使得在中断上下文模式下继续执行ISR ; 如果当前抢占模式不是非抢占模式,则使得在中断线程模式下执行ISR。
18.如权利要求13所述的方法,当内核服务例程的执行到达内核服务例程中的抢占点时,动态地控制是否检查是否需要重新调度当前线程。
19.如权利要求18所述的方法,其中,抢占点包括用于检查是否需要重新调度当前线程的代码段; 动态地控制是否检查是否需要重新调度当前线程的步骤还包括:根据当前抢占模式,阻止执行用于检查是否需要重新调度当前线程的代码段或允许执行用于检查是否需要重新调度当前线程的代码段。
20.如权利要求19所述的方法,其中,当内核服务例程到达抢占点时的阻止或允许的步骤包括: 确定当前抢占模式是否是非抢占模式; 如果确定的结果是当前抢占模式是非抢占模式,则阻止执行用于检查是否需要重新调度当前线程的代码段; 如果确定的结果是当前抢占模式不是非抢占模式,则允许执行用于检查是否需要重新调度当前线程的代码段。
21.如权利要求13所述的方法,还包括:当内核执行具有自旋锁的任务时,根据当前抢占模式动态地使得内核使用自旋锁或互斥执行所述任务。
22.如权利要求13所述的方法,还包括: 当进程间通信(IPC)被处理时,根据当前抢占模式动态地控制IPC的超时; 当系统调用被产生时,使得根据当前抢占模式同步或异步地执行系统调用。
23.如权利要求12所述的方法,其中,使得同步或异步地执行系统调用的步骤包括: 确定当前抢占模式是否是非抢占模式; 如果确定的结果是当前抢占模式是非抢占模式,则使得异步地执行系统调用; 如果确定的结果是当前抢占模式不是非抢占模式,则使得同步地执行系统调用。
24.如权利要求13所述的方法,还包括:根据当前抢占模式动态地设置转换后备缓冲器(TLB)锁定,从而需要 实时处理的任务不从TLB被清理。
全文摘要
提供了一种用于在操作系统中动态地控制抢占分区的设备和方法。一种动态地控制抢占分区的设备包括抢占管理器,被配置为监视系统上下文是否改变;如果系统上下文已经改变,则根据改变的系统上下文设置当前抢占模式以动态地控制内核的抢占分区。因此,即使是需要实时处理的应用(诸如医疗保健应用)与普通应用共存,也可确保最优的性能。
文档编号G06F9/48GK103218258SQ201210526148
公开日2013年7月24日 申请日期2012年12月7日 优先权日2011年12月7日
发明者朴赞主, 李圣民 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1