CN105224886B - 一种移动终端安全隔离方法、装置及移动终端 - Google Patents
一种移动终端安全隔离方法、装置及移动终端 Download PDFInfo
- Publication number
- CN105224886B CN105224886B CN201410299147.5A CN201410299147A CN105224886B CN 105224886 B CN105224886 B CN 105224886B CN 201410299147 A CN201410299147 A CN 201410299147A CN 105224886 B CN105224886 B CN 105224886B
- Authority
- CN
- China
- Prior art keywords
- resource
- application process
- partitioning
- resource partitioning
- clock
- 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.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种移动终端安全隔离方法、装置及移动终端,所述移动终端安全隔离方法包括:分区划分步骤:根据应用进程与资源分区的对应关系及应用进程的资源需求,将所述移动终端的资源区划分为若干个资源分区,其中,每个资源分区中的运行资源能够满足对应于所述资源分区的应用进程的资源需求;资源分配步骤:在接收到应用进程的资源请求时,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程,以使得所述应用进程根据所述运行资源运行。本发明提供的技术方案,针对应用进程采用分区的思想进行管理调度,实现了应用进程的隔离,避免了安全隐患,且结构简单。
Description
技术领域
本发明涉及通信领域,尤其涉及一种移动终端安全隔离方法、装置及移动终端。
背景技术
目前,移动终端中越来越多地涉及到商业秘密和个人隐私等敏感信息,如在手机支付方面、通讯方面等关键应用部分,移动终端作为移动互联网时代最主要的载体,面临着严峻的安全挑战。在Android平台上,尤其由于山寨手机的使用,资费消耗、恶意扣费、隐私窃取类病毒大行其道,严重影响移动电子商务的发展和客户的信息安全。因此如何进行移动终端的安全防范是当前发展移动电子商务和手机支付等移动互联应用的关键。
现有技术中,对于这类问题的解决采用的方案一般为虚拟化技术。但虚拟化本身是概念性的术语,其具体的开发形式并不唯一,故最后形成的实现方案与测试效果也会取得不同的结果,其系统架构如图1所示:
1.在硬件平台上同时运行两个操作系统,操作系统作为Hypervisor的一个独立任务运行在Hypervisor上;
2.根据需要,修改操作系统源代码,对操作系统进行虚拟化处理。
此方案的优势在于,操作系统之间仅存在硬件资源分配的问题,互相之间并不会造成直接的影响,所有的监控和资源的调度由Hypervisor进行,提高了系统的安全性,将通信功能和重要数据放置于RTOS系统上,即时智能操作系统上的应用软件崩溃,也不会影响到通信功能。但在此方案中,一方面未曾提及其实现是否遵循一定的业界标准尤其是软件安全标准,另一方面所采用的实时(RTOS)系统方案,使得本系统中涉及到两套操作系统的修改,形成的整个系统体积庞大,工程量复杂,对智能终端的整体运行要求较高。
发明内容
为了解决上述技术问题,本发明提供了一种移动终端安全隔离方法、装置及移动终端,针对应用进程采用分区的思想进行管理调度,实现了应用进程的隔离,避免了安全隐患,且结构简单。
为了实现上述目的,本发明提供了一种移动终端安全隔离方法,包括:分区划分步骤:根据应用进程与资源分区的对应关系及应用进程的资源需求,将所述移动终端的资源区划分为若干个资源分区,其中,每个资源分区中的运行资源能够满足对应于所述资源分区的应用进程的资源需求;资源分配步骤:在接收到应用进程的资源请求时,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程,以使得所述应用进程根据所述运行资源运行。
上述的移动终端安全隔离方法,所述分区划分步骤之前还包括:根据用户操作指令,创建应用进程与资源分区的对应关系,每个资源分区对应于至少一个应用进程。
上述的移动终端安全隔离方法,所述每个资源分区具有固定的优先级;所述资源分配步骤进一步在当接收到对应于不同资源分区的多个应用进程的资源请求时,根据每个应用进程对应的资源分区的优先级,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
上述的移动终端安全隔离方法,所述每个资源分区都对应一个虚拟时钟,所述虚拟时钟用于记录资源分区所对应的应用进程的执行开始时间及预设的执行时间,以使得每个资源分区均对应一段时间槽来运行应用进程;所述资源分配步骤之后还包括:中断产生步骤:根据所述资源分区对应的虚拟时钟中记录的执行开始时间及预设的执行时间产生时钟中断;中断处理步骤:在产生时钟中断时,根据所述时钟中断对应的资源分区中的运行资源,将所述时钟中断作为事件进行处理。
上述的移动终端安全隔离方法,所述多个资源分区之间通过命名管道和/或共享内存进行通信。
本发明还提供了一种移动终端安全隔离装置,包括:分区划分模块用于根据应用进程与资源分区的对应关系及应用进程的资源需求,将所述移动终端的资源区划分为若干个资源分区,其中,每个资源分区中的运行资源能够满足对应于所述资源分区的应用进程的资源需求;资源分配模块,用于在接收到应用进程的资源请求时,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程,以使得所述应用进程根据所述运行资源运行。
上述的移动终端安全隔离装置,还包括:对应关系创建模块,用于根据用户操作指令,创建应用进程与资源分区的对应关系,每个资源分区对应于至少一个应用进程。
上述的移动终端安全隔离装置,还包括:调用接口模块,用于向应用进程提供接口;所述资源分配模块进一步用于通过所述调用接口模块将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
上述的移动终端安全隔离装置,所述每个资源分区具有固定的优先级;所述资源分配模块进一步用于当接收到对应于不同资源分区的多个应用进程的资源请求时,根据每个应用进程对应的资源分区的优先级,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
上述的移动终端安全隔离装置,所述每个资源分区都对应一个虚拟时钟,所述虚拟时钟用于记录资源分区所对应的应用进程的执行开始时间及预设的执行时间,以使得每个资源分区均对应一段时间槽来运行应用进程;所述装置还包括:中断产生模块用于根据所述资源分区对应的虚拟时钟中记录的执行开始时间及预设的执行时间产生时钟中断;中断处理模块用于在产生时钟中断时,根据所述时钟中断对应的资源分区中的运行资源,将所述时钟中断作为事件进行处理。
上述的移动终端安全隔离装置,所述中断产生模块进一步用于通过菊花链方式将产生的时钟中断传递给所述中断处理模块进行处理。
上述的移动终端安全隔离装置,所述多个资源分区之间通过命名管道和/或共享内存进行通信。
本发明还提供了一种移动终端,包括如上所述的移动终端安全隔离装置。
本发明的上述技术方案的有益效果如下:
本发明提供了一种移动终端安全隔离方法、装置及移动终端,针对应用进程采用分区的思想进行管理调度,实现了应用进程的隔离,避免了安全隐患,且结构简单。
附图说明
图1为现有技术中采用Hypervisor虚拟化的系统架构示意图。
图2为本发明实施例1提供了的移动终端安全隔离方法流程示意图。
图3为本发明提供的移动终端的系统架构图。
图4为分区各种状态之间的转换图。
图5为本发明提供的移动终端安全隔离装置有限状态机示意图。
图6为时钟中断处理流程图。
图7为中断延迟时间示意图。
图8a为android系统调用执行路线图。
图8b为接口函数调用执行路线图。
图9为任务调度延迟时间示意图。
图10为FIFO的最低吞吐率示意图。
图11为FIFO的平均吞吐率示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明实施例针对现有技术中移动终端所面临的安全隐患问题,提供了一种移动终端安全隔离方法、装置及移动终端,针对应用进程采用分区的思想进行管理调度,实现了应用进程的隔离,避免了安全隐患,且结构简单。
本发明实施例1提供了一种移动终端安全隔离方法,如图2所示,包括:
步骤S200,分区划分步骤:根据应用进程与资源分区的对应关系及应用进程的资源需求,将所述移动终端的资源区划分为若干个资源分区,其中,每个资源分区中的运行资源能够满足对应于所述资源分区的应用进程的资源需求;
步骤S202,资源分配步骤:在接收到应用进程的资源请求时,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程,以使得所述应用进程根据所述运行资源运行。
本发明提供的移动终端安全隔离方法通过将移动终端内的资源划分为若干个资源分区,使得对应于不同资源分区的应用进程互不影响,实现了不同资源分区之间的空间隔离。
资源分区实际上是一个可执行的环境,每一个资源分区都可以对应于一个或多个并行的进程,这些进程共享处理器和其他一些资源,其组成形式需要根据这些进程的不同需求来确定。本发明提供的移动终端安全隔离方法中可以定义两类资源分区:一类是应用分区,另一类是系统分区(或称根分区)。
系统分区可以管理、监测整个系统和其他分区的状态,对应的应用进程主要用于关键的进程管理、内存管理等,可以实现线程调度、同步机制、时钟和通信机制,处理一些虚拟硬件资源,如虚拟的中断、异常、内存和时钟等。系统分区与应用分区一样只能使用该系统分区对应的资源,而不能访问其他分区的资源。
应用分区又可以分区关键资源分区和非关键资源分区,关键资源分区对应的应用进程主要来实现关键的功能。移动终端中的一些关键服务或应用(例如手机支付)等的进程也可以对应于关键资源分区,该关键资源分区与非关键资源分区相隔离,根据配置文件中设定的值,保证关键资源分区的私有数据和上下文信息都保存在其独立的空间中,从而,提高了移动终端的安全性,避免了对应于其他资源分区的应用进程所带来的安全隐患。
和传统的资源管理不同,本发明提供的移动终端安全隔离方法的资源管理并不涉及到底层的资源分配策略和资源管理方式,主要负责将移动终端中的资源划分为多个资源分区,每个资源分区中的资源应该满足与所述资源分区对应的应用进程的资源需求。
当然,资源分区中的资源可以调整,即在运行过程中,可以动态申请更多的资源,可直接从移动终端中预留的资源区域获取,而不用等待底层的资源分配策略。这种方式可以避免由于资源紧张而造成资源分区无法立即获取资源的情况,对于资源相对缺乏的某些移动终端而言可以有效提高其资源利用率。其中,资源主要包括在资源分区创建过程中分配的资源分区的代码空间、堆空间以及页目录表等。
每一资源分区中的资源应该能够满足对应的应用进程的资源需求,而当一应用程序第一次安装到移动终端时,需要指定该应用程序中的应用进程与移动终端中的资源分区的对应关系,因此,上述的移动终端安全隔离方法,所述分区划分步骤之前还包括:根据用户操作指令,创建应用进程与资源分区的对应关系,每个资源分区对应于至少一个应用进程。
上述操作的目的是,在移动终端第一次添加一个应用进程时,为该应用进程指定对应的资源分区,从而,在该应用进程执行时,能够从对应的资源分区中获取资源,无论该应用进程执行了何种操作都不会影响到其他资源分区所对应的应用进程。
在为应用进程指定对应的资源分区时,可以根据该应用进程的重要性来进行,例如对于一些重要性较高的关键应用,可以运行在关键资源分区中。
现有技术中,通常采用最早截止时间优先算法或单调速率调度算法等复杂的调度机制,对于移动终端而言开销较大,因此,上述的移动终端安全隔离方法,所述每个资源分区具有固定的优先级;所述资源分配步骤进一步在当接收到对应于不同资源分区的多个应用进程的资源请求时,根据每个应用进程对应的资源分区的优先级,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
上述操作的目的是,当需要调度应用进程来执行时,会选择一个优先级最高的资源分区对应的应用进程来运行,直到该应用进程执行完毕或主动放弃处理器或有更高优先级的资源分区所对应的应用进程出现。
上述的移动终端安全隔离方法,所述每个资源分区都对应一个虚拟时钟,所述虚拟时钟用于记录资源分区所对应的应用进程的执行开始时间及预设的执行时间,以使得每个资源分区均对应一段时间槽来运行应用进程;所述资源分配步骤之后还包括:中断产生步骤:根据所述资源分区对应的虚拟时钟中记录的执行开始时间及预设的执行时间产生时钟中断;中断处理步骤:在产生时钟中断时,根据所述时钟中断对应的资源分区中的运行资源,将所述时钟中断作为事件进行处理。
上述操作的目的是,通过虚拟时钟控制每个资源分区所对应的应用进程的执行开始时间和预设的执行时间,使得该应用进程在一预设的时间槽内运行,从而,无论该应用进程执行了何种操作都不会影响到在其他时间槽内运行的应用进程。
本发明提供的移动终端的安全隔离方法中,选择时间戳计数器(Time StampCounter,TSC)作为系统的时钟源,可编程定时器(Programmable Interval Timer,PIT)作为时钟事件设备,为系统产生时钟中断,每个资源分区在创建时,都会为其分配一个虚拟时钟。虚拟时钟并不用于记录时间,而是用于定时:包括设定资源分区对应的应用进程的执行开始时间以及设定执行时间。真实时钟对于移动终端的操作系统来说是唯一的,真实时钟的值来自底层的硬件时钟源。根据虚拟时钟记录的应用进程的执行开始时间以及设定执行时间产生时钟中断,时钟中断的工作模式可以为单触发模式(Oneshot Mode)而非传统的周期模式。在单触发模式下,每向虚拟时钟写入一次值,只能产生一次时钟中断,而不会自动将写入值作为周期。如果希望再次产生时钟中断,则需要再向虚拟时钟中写入相应值。这种非固定周期的模式同传统模式相比增加了产生时钟中断的灵活性。在此基础上,本发明提供的移动终端的安全隔离方法中,把所有资源分区的虚拟时钟都组织到一个最小二叉堆中,最早到期的应用进程对应的资源分区总排在堆的顶端,从而能够快速查找到即将运行的资源分区,触发时钟中断的应用进程对应的资源分区的虚拟时钟将被从二叉堆中取出,二叉堆中资源分区的虚拟时钟将被重新排列,当与该资源分区对应的应用进程的下一次发生时钟中断的时间再次确定后,该资源分区的虚拟时钟重新加入二叉堆中参与排序。这一机制保证每一个资源分区都拥有其所需的运行时间,并能够按照预先设计的调度模型一次运行,从而实现时间隔离。
为了提高资源分区之间的作业协作能力,上述的移动终端安全隔离方法,所述多个资源分区之间通过命名管道和/或共享内存进行通信。
本发明提供的移动终端的安全隔离方法中,存在两种数据通信方式,一种是针对数据流的命名管道(FIFO),另外一种是针对块数据的共享内存。命名管道是一种简单的流数据传输工具,采用先进先出的策略,不同于PIPE(管道),命名管道有固定的存储介质和名称,它可以被与任何资源分区对应的应用进程通过名称打开和关闭。而管道只有存储介质没有名称。管道的存在依附于创建管道的任务,当任务退出时,管道也就相应的被销毁了。而命名管道一经创建将会永久存在,直到用户将其删除。
共享内存是不同于命名管道的数据通信模式,用户可以像打开普通文件一样打开共享内存,并且可以指定共享内存大小。与命名管道相比,共享内存是块设备,即任务可以随机的访问共享内存区间的任何地址的数据,并且不会因为地址的不同而使访问时间有所差别。
FIFO类似流数据通信方式,数据的传输和访问必须有一个先后顺序。因此,命名管道与共享内存虽然目的相同,但是在使用时定要正确评估应用场景。本发明提供的移动终端的安全隔离方法中提供了3种类型的FIFO实现,其中FIFO V1.0采用了阻塞性同步竞争条件和系统调用的方法实现,FIFO V2.0通过无锁(Lock-Free)机制实现和FIFO V3.0则采用了内存映射机制。
本发明提供的移动终端的安全隔离方法中,当FIFO没有数据时,如果任务试图从里面读取数据时,任务会直接返回;当FIFO被写满后,继续执行写操作的任务会直接返回;FIFO可以是双向操作,即与任何资源分区对应的应用进程可以对同一个FIFO进行读或者写操作;对于资源竞争访问,对同一内存N,一次只允许一个读/写操作。
当资源分区对应于多个应用进程时,多个应用进程之间的交互操作通过buffer和blackboard来实现,这两种方式都支持在多个源进程和目标进程之间发送单一消息。buffer是一个队列,而blackboard只能存储一条消息。进程间的同步是由semaphore和event实现的。semaphore是计数信号量,用于控制对贡献资源的访问。event可用于允许向进程通知发生的事件,这些事件可能是进程等待的事件。
本发明还提供了一种移动终端安全隔离装置,包括:分区划分模块用于根据应用进程与资源分区的对应关系及应用进程的资源需求,将所述移动终端的资源区划分为若干个资源分区,其中,每个资源分区中的运行资源能够满足对应于所述资源分区的应用进程的资源需求;资源分配模块,用于在接收到应用进程的资源请求时,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程,以使得所述应用进程根据所述运行资源运行。
在划分资源分区时,分区划分模块可以通过移动终端的操作系统内核中的proc文件系统获取到每个资源分区所需的内存空间,并据此划分资源分区使得每个资源分区对应足够的内存空间,被分配的内存空间只能被其对应的资源分区所见,从而保证了不同资源分区之间内存空间的隔离性。空闲的内存空间保存到一个表示空闲页的链表中,当有资源分区需要获取内存时,就直接从中取出页面。
上述的移动终端安全隔离装置,还包括:对应关系创建模块,用于根据用户操作指令,创建应用进程与资源分区的对应关系,每个资源分区对应于至少一个应用进程。
上述的移动终端安全隔离装置,还包括:调用接口模块,用于向应用进程提供接口;所述资源分配模块进一步用于通过所述调用接口模块将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
系统调用是操作系统通用的一种重要机制,系统调用将操作系统分为两个部分:内核空间和用户空间。用户程序可以通过系统调用接口从用户空间陷入内核空间,这种机制有助于虚拟内存的实现,并且还可以提高系统的可靠性、安全性、健壮性。
在本发明提供的移动终端安全隔离装置中,提供了调用接口模块,类似于系统调用的机制,通过该调用接口模块,资源分配模块为上层的应用进程分配运行资源,所有的调用接口函数被保存在一个调用接口表中,如下段代码所示:
用户新定义的调用接口函数指针就可以添加到该表中。
上述的移动终端安全隔离装置,所述每个资源分区具有固定的优先级;所述资源分配模块进一步用于当接收到对应于不同资源分区的多个应用进程的资源请求时,根据每个应用进程对应的资源分区的优先级,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
上述的移动终端安全隔离装置,所述每个资源分区都对应一个虚拟时钟,所述虚拟时钟用于记录资源分区所对应的应用进程的执行开始时间及预设的执行时间,以使得每个资源分区均对应一段时间槽来运行应用进程;所述装置还包括:中断产生模块用于根据所述资源分区对应的虚拟时钟中记录的执行开始时间及预设的执行时间产生时钟中断;中断处理模块用于在产生时钟中断时,根据所述时钟中断对应的资源分区中的运行资源,将所述时钟中断作为事件进行处理。
上述的移动终端安全隔离装置,所述中断产生模块进一步用于通过菊花链方式将产生的时钟中断传递给所述中断处理模块进行处理。
上述的移动终端安全隔离装置,所述多个资源分区之间通过命名管道和/或共享内存进行通信。
本发明还提供了一种移动终端,包括如上所述的移动终端安全隔离装置。
图3为本发明提供的移动终端的系统架构图,如图所示,该系统包括:应用区30、内核31及资源区32,其中,
应用区30可以分为:
系统应用300:主要包括系统进程,用于内存管理、线程调度等,如果该移动终端采用的是Android系统,则可以将Android系统作为系统应用,该系统应用处于管理员模式,可以与其他应用并存,负责系统启动;
关键应用301:主要包括关键应用进程,如用于实现手机支付、通信等功能;
非关键应用302:包括其他应用进程,如游戏类进程。
对应于该应用区的分类,资源区32分为:
系统资源分区320:对应于系统应用的资源分区;
关键应用资源分区321:对应于关键应用的资源分区;
非关键应用资源分区322:对应于非关键应用的资源分区;
资源分区具有空间隔离性和时间隔离性,空间隔离性通过根据配置文件中设定的值,保证每个资源分区对应的应用进程的私有数据和上下文信息都保存在独立的空间中;时间隔离性由固定优先级调度策略来保证,每个资源分区的优先级都是由配置文件预先设定的。
内核31包括本发明提供的移动终端安全隔离装置310,该装置中包括:
调用接口3100:提供给应用区30的调用接口,应用区通过该调用接口实现对底层资源的访问;
Hypervisor模块3101:Hypervisor模块用于实现上述的分区划分模块、资源分配模块、中断产生模块及中断处理模块的功能,根据应用区内的应用进程将资源区32划分为对应的分区,为每个资源分区都分配一虚拟时钟,该虚拟时钟被与资源分区对应的应用区内的应用进程使用;为应用区内的应用进程分配相应的资源;接管内核中所有的开/关中断指令;加入若干钩子函数,用于虚拟中断和硬件定时器,为应用区提供虚拟中断函数来处理中断。
上述资源分区可以有四种状态:启动、运行、挂起及终止,可以在四种状态之间转换,各种状态之间的转换如图4所示,例如通过suspend_partition可以从运行状态进入挂起状态,而再经过pass_event又可以进入运行状态,其中,处于运行状态的资源分区对应的应用进程数是非负的,且所有资源分区所对应的应用进程都能够处于运行状态。其中,suspend_partition为挂起分区,exit_domain为设置分区状态为终止,load_partition为加载分区,pass_event为通过事件唤醒分区。
对于本发明提供的移动终端安全隔离装置可以采用有限状态机(Ω,α,Si,S0,θ,F)来进行验证,其中:
Ω是系统配置。
α是可接收的输入事件集合(硬件中断、异常和超级调用)。
Si是有限非空的状态集合。这些有限状态是调度的结果。每一个状态对应一个调度计划的分区的执行。
S0是初始状态,它对应启动装载分区后的状态。
θ是状态转移函数,表示为:δ:S×Σ→S。函数fΩ(Si)提取关于Si状态的硬件参数集合。
F是终止状态,对应于系统停止。
如图5所示,以3个分区来说明分区调度的状态转换,3个分区分别为P1、P2及P3,每个Si对应一个执行的资源分区Pi的状态,从一个状态到下一个状态的转换,是由下一时间片引发,这个事件是关于时间片的硬件中断,时间片定义在调度计划中。当该中断事件到达后,前一个资源分区对应的应用进程的上下文环境将被保存,下一个资源分区将被选择,如果选择的资源分区处于就绪状态,则控制被转移到该资源分区。
为了实现空间隔离,硬件提供一些机制来防止违反空间隔离的行为,保证一个资源分区对应的应用进程在运行时,该资源分区的硬件机制被设置为占用值,任一资源分区中的处理不会进入到该资源分区内存地址范围外的地址。
假设当前处于Si状态,下一状态为Sj,此时Hypervisor的输入当前状态相关硬件信息的值,输出为下一状态相关硬件信息的值。相关硬件信息包括中断向量、IO保护、读写保护和定时器。对于空间隔离,这一属性需被满足。
除了初始状态和最终状态,当集合α中的事件发生时,在Hypervisor入口以及运行分区时,IO保护标志被设置为1,表示禁止其他事件使用IO;在不存在运行分区时,IO保护标志为0表示其他事件可使用IO。对于空间隔离,这一属性也需被满足。
为了实现时间隔离,需要设计一个时间计划并保证该时间计划按规定运行,通过调度策略来保证时间计划正确运行,定义了一个周期调度的全局调度器及基于固定优先级的抢占策略的分区调度器。保证每个资源分区对应的应用进程只运行在调度计划规定的时隙中。时隙大小由Hypervisor唯一的计时器控制,并不能被分区计时器影响。需满足状态Si的任意时刻,时钟的值都在规定的时间片时隙区间内这一属性。
通过对本发明提供的方法模型进行验证,主要对任务调度延迟、中断延迟、FIFO传输速度、接口函数调用延迟等指标进行评估,相对于现有技术,本发明提供的移动终端在性能上有较大的改善。
延迟是指事件的发生时刻与事件被检测到的时刻之间的时间间隔。中断延迟就是指从设备发生中断到进入该设备为中断提供的服务函数之间的时间间隔。在很多操作系统中,设备中断服务是进入相应的设备中断函数就开始了。中断延迟可能受到中断控制器,中断掩码,以及操作系统的中断处理方法等多方面的影响。不同于传统的单操作系统,在本发明提供的移动终端的系统中,中断服务函数具有多点分布的特点,也就是说一个中断的处理可能是由内核处理,也可能是由某个或多个资源分区对应的应用进程处理,甚至是内核和资源分区对应的应用进程都会响应。例如时钟中断发生后,发生中断的应用进程要响应来完成对应的资源分区的调度,同时,被调度的资源分区与也要响应,低优先级资源分区也会在被调度的时候去响应该事件,时钟中断处理流程如图6所示,当发生定时中断时,当前的应用进程即图中所示的定时中断服务程序接收到中断事件后,中断服务,通知调度器调度相应的资源分区,调度器通过分区定时器来调度相应的分区,当为Android分区即系统分区时,分区定时器为系统Android分区定时器,当为非Android分区即非系统分区时,时钟中断由虚拟时钟触发,调度器需要选择触发时钟中断的非Android分区进行执行。因此,对每一个资源分区来说,都在为同一个中断服务,但是,它们的服务时刻是存在时间显著差别的,从而导致延迟的多点分布特点。
鉴于此,针对本发明提供的移动终端的中断延迟,采用“取重去轻”的策略,中断延迟的测量只包含内核中Hypervisor模块的中断延迟,以及具有最高优先级资源分区的中断延迟,舍弃对其它资源分区的中断延迟测量。因此,在构建时间获取点时,主要包含一个起始点:中断触发时刻,以及两个结束:Hypervisor定时器中断服务程序的入口地址以及具有最高优先级资源分区的定时器中断服务程序入口。图7给出了两种中断服务程序对应的最差和平均中断延迟时间。
接口函数调用延迟与中断延迟、调度延迟是实时系统中三个主要延迟。接口函数调用虽然是一种特殊的“中断”,但是由于其处理方法不一样,相应数值也会存在差异。系统调用延迟的定义是用户程序开始执行到进入系统调用服务函数之间的时间间隔。接口函数的特点是用户看到的接口函数调用接口与产生接口函数陷阱的函数是同一个。但是在Android系统中,用户程序调用的函数通常是在libc里面进行了封装,通过参数处理之后才真正进入引起中断的函数中。图8a及图8b分别给出了Android系统中的系统调用和接口函数调用的执行路线图。通过比较二者,可以看出接口函数省去了很多预处理的部分,直接简化了操作,提高了性能。表1给出了接口函数的调用延迟时间。
Hypercalls | Min.(us) | Max.(us) | Avg.(us) | SDev | Cost dependence |
exit_partition | 0.56 | 0.96 | 0.66 | 0.11 | N/A |
load_partition | 14.84 | 27.89 | 18.5 | 2.31 | Number of partitions |
unload_partition | 17.58 | 56.74 | 39.85 | 13.09 | Number of partitions |
suspend_partition | 0.56 | 1.02 | 0.68 | 0.10 | N/A |
sync_events | 0.56 | 0.90 | 0.70 | 0.10 | N/A |
pass_event | 0.56 | 1.00 | 0.69 | 0.11 | N/A |
get_time | 0.47 | 0.73 | 0.60 | 0.03 | N/A |
set_timer | 1.34 | 4.08 | 2.85 | 0.79 | N/A |
get_cpu_khz | 0.45 | 0.71 | 0.59 | 0.08 | N/A |
write_scr | 0.44 | 0.70 | 0.57 | 0.07 | N/A |
enable_hwirq | 0.43 | 1.43 | 1.00 | 0.21 | N/A |
表1接口函数调用延迟时间
较之中断延迟和接口函数调用延迟,任务调度延迟有些复杂,它的定义是指从任务唤醒信号产生到任务调度器获得CPU之间的时间间隔。产生唤醒任务信号的组件可能是硬件,也可能是某个任务。最常见的就是时钟中断和SLEEP系统调用。因此,任务调度延迟包含上面介绍的中断延迟和即可函数调用延迟。图9为调度延迟测试结果,该测试的任务延迟是由时钟硬件中断引起的。
从图9中可知任务调度延迟大约是7.8us,并且,在多任务负载时,调度延迟也相当稳定,最差情况是当8个分区任务并行运行时,但是,测试具有的调度延迟也仅仅有8.3us,其中每个分区可以视为一个任务。
通过对中断、调度、接口函数调用延迟的测量,可以看出本发明提供的移动终端具有较低的延迟,并且相当稳定,尤其是在任务负载增加的情况下,结果并不是受到很大影响。
不同的FIFO具有不同的机制和功能,通过使用同样的测试程序对FIFO进行吞吐率的测量,得出了不同的FIFO的吞吐率,如图10和图11所示。
从图中可以看出FIFO V3.0的最低吞吐率最高,尤其是当数据块的大小是1024Bytes的时候。当数据块大于1024Bytes的时候,吞吐率将会下降,这主要是因为由于数据块太大,导致数据块在传输过程中被中断。但是在平均吞吐率的图表中,平均吞吐率一直在增加,这反映出中断是偶然性的问题,并不是在数据传输中频繁出现的。另外,从图上可以看出,当数据块小于4096Bytes的时候,FIFO V3.0的平均吞吐率一直领先,但是当数据块大小为4096Bytes的时候,却出现了FIFO V1.0比FIFO V3.0还要高的情况,这是由于采用阻塞的机制可以保证数据传输中不被中断,尤其是在长时间任务处理中。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种移动终端安全隔离方法,其特征在于,包括:
选择时间戳计数器作为系统的时钟源,可编程定时器作为时钟事件设备,为系统产生时钟中断,每个资源分区在创建时,都会为其分配一个虚拟时钟,其中,定义有两类资源分区:一类是应用分区,另一类是系统分区,系统分区与应用分区一样只能使用该系统分区对应的资源,而不能访问其他分区的资源;
分区划分步骤:根据应用进程与资源分区的对应关系及应用进程的资源需求,将所述移动终端的资源区划分为若干个资源分区,其中,每个资源分区中的运行资源能够满足对应于所述资源分区的应用进程的资源需求;
资源分配步骤:在接收到应用进程的资源请求时,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程,以使得所述应用进程根据所述运行资源运行。
2.如权利要求1所述方法,其特征在于,所述分区划分步骤之前还包括:
根据用户操作指令,创建应用进程与资源分区的对应关系,每个资源分区对应于至少一个应用进程。
3.如权利要求1所述方法,其特征在于,所述每个资源分区具有固定的优先级;
所述资源分配步骤进一步在当接收到对应于不同资源分区的多个应用进程的资源请求时,根据每个应用进程对应的资源分区的优先级,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
4.如权利要求1所述方法,其特征在于,所述每个资源分区都对应一个虚拟时钟,所述虚拟时钟用于记录资源分区所对应的应用进程的执行开始时间及预设的执行时间,以使得每个资源分区均对应一段时间槽来运行应用进程;所述资源分配步骤之后还包括:
中断产生步骤:根据所述资源分区对应的虚拟时钟中记录的执行开始时间及预设的执行时间产生时钟中断;
中断处理步骤:在产生时钟中断时,根据所述时钟中断对应的资源分区中的运行资源,将所述时钟中断作为事件进行处理。
5.如权利要求1所述方法,其特征在于,所述多个资源分区之间通过命名管道和/或共享内存进行通信。
6.一种移动终端安全隔离装置,其特征在于,包括:
选择时间戳计数器作为系统的时钟源,可编程定时器作为时钟事件设备,为系统产生时钟中断,每个资源分区在创建时,都会为其分配一个虚拟时钟,其中,定义有两类资源分区:一类是应用分区,另一类是系统分区,系统分区与应用分区一样只能使用该系统分区对应的资源,而不能访问其他分区的资源;
分区划分模块用于根据应用进程与资源分区的对应关系及应用进程的资源需求,将所述移动终端的资源区划分为若干个资源分区,其中,每个资源分区中的运行资源能够满足对应于所述资源分区的应用进程的资源需求;
资源分配模块,用于在接收到应用进程的资源请求时,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程,以使得所述应用进程根据所述运行资源运行。
7.如权利要求6所述装置,其特征在于,还包括:
对应关系创建模块,用于根据用户操作指令,创建应用进程与资源分区的对应关系,每个资源分区对应于至少一个应用进程。
8.如权利要求6所述装置,其特征在于,还包括:
调用接口模块,用于向应用进程提供接口;
所述资源分配模块进一步用于通过所述调用接口模块将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
9.如权利要求6所述装置,其特征在于,所述每个资源分区具有固定的优先级;
所述资源分配模块进一步用于当接收到对应于不同资源分区的多个应用进程的资源请求时,根据每个应用进程对应的资源分区的优先级,将与所述应用进程对应的资源分区中的运行资源分配给所述应用进程。
10.如权利要求6所述装置,其特征在于,所述每个资源分区都对应一个虚拟时钟,所述虚拟时钟用于记录资源分区所对应的应用进程的执行开始时间及预设的执行时间,以使得每个资源分区均对应一段时间槽来运行应用进程;
所述装置还包括:
中断产生模块用于根据所述资源分区对应的虚拟时钟中记录的执行开始时间及预设的执行时间产生时钟中断;
中断处理模块用于在产生时钟中断时,根据所述时钟中断对应的资源分区中的运行资源,将所述时钟中断作为事件进行处理。
11.如权利要求10所述装置,其特征在于,所述中断产生模块进一步用于通过菊花链方式将产生的时钟中断传递给所述中断处理模块进行处理。
12.如权利要求6所述装置,其特征在于,所述多个资源分区之间通过命名管道和/或共享内存进行通信。
13.一种移动终端,其特征在于,包括如权利要求6-12任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410299147.5A CN105224886B (zh) | 2014-06-26 | 2014-06-26 | 一种移动终端安全隔离方法、装置及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410299147.5A CN105224886B (zh) | 2014-06-26 | 2014-06-26 | 一种移动终端安全隔离方法、装置及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224886A CN105224886A (zh) | 2016-01-06 |
CN105224886B true CN105224886B (zh) | 2018-12-07 |
Family
ID=54993848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410299147.5A Active CN105224886B (zh) | 2014-06-26 | 2014-06-26 | 一种移动终端安全隔离方法、装置及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224886B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180057036A (ko) * | 2016-11-21 | 2018-05-30 | 삼성전자주식회사 | 효율적인 리소스 관리를 위한 전자 장치 및 이의 방법 |
US10073783B2 (en) * | 2016-11-23 | 2018-09-11 | Advanced Micro Devices, Inc. | Dual mode local data store |
CN108241527B (zh) * | 2016-12-26 | 2021-10-08 | 成都理想境界科技有限公司 | 一种任务调度方法及电子设备 |
CN108509788B (zh) * | 2018-03-29 | 2021-03-23 | Oppo广东移动通信有限公司 | 信息共享方法和装置、计算机可读存储介质、终端 |
CN110691002B (zh) * | 2018-07-05 | 2021-07-23 | 武汉斗鱼网络科技有限公司 | 一种中断检测方法及装置 |
CN111245741A (zh) * | 2019-12-31 | 2020-06-05 | 厦门美域中央信息科技有限公司 | 一种基于软件死锁和高负载跳转技术的网络流量分流方法 |
CN117273834B (zh) * | 2023-01-04 | 2024-06-04 | 深圳市速达非科技有限公司 | 一种基于物流场景可配置账单的计费引擎及其方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103797465A (zh) * | 2011-09-14 | 2014-05-14 | 阿尔卡特朗讯 | 用于提供隔离的虚拟空间的方法与设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441498B (zh) * | 2007-11-19 | 2010-06-09 | 联想(北京)有限公司 | 虚拟机监视器、虚拟机系统及其时钟分配使用方法 |
US9195512B2 (en) * | 2012-01-06 | 2015-11-24 | International Business Machines Corporation | Relocating related resource partitions |
CN103853598B (zh) * | 2014-02-21 | 2017-03-01 | 北京神舟航天软件技术有限公司 | 实现嵌入式虚拟机硬实时虚拟定时器响应的方法 |
-
2014
- 2014-06-26 CN CN201410299147.5A patent/CN105224886B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103797465A (zh) * | 2011-09-14 | 2014-05-14 | 阿尔卡特朗讯 | 用于提供隔离的虚拟空间的方法与设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105224886A (zh) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224886B (zh) | 一种移动终端安全隔离方法、装置及移动终端 | |
JP6383518B2 (ja) | 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法 | |
CN104866374B (zh) | 基于多任务的离散事件并行仿真及时间同步方法 | |
CN103955403B (zh) | 机会性的多任务处理 | |
WO2023071172A1 (zh) | 任务调度方法、装置、设备、存储介质、计算机程序及计算机程序产品 | |
CN103927225B (zh) | 一种多核心架构的互联网信息处理优化方法 | |
US7694310B2 (en) | Method for implementing MPI-2 one sided communication | |
US20090100200A1 (en) | Channel-less multithreaded DMA controller | |
WO2013041366A1 (en) | Concurrent processing of queued messages | |
WO2023246044A1 (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
CN107066292A (zh) | 服务器环境部署方法和装置 | |
CN106250217A (zh) | 一种多虚拟处理器间的同步调度方法及其调度系统 | |
CN106062716A (zh) | 在单任务系统中实现多任务的方法、装置及单任务系统 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
WO2021046932A1 (zh) | 基于实时操作系统的消息驱动方法和装置 | |
CN114546642A (zh) | 任务执行方法、装置、计算机设备、存储介质和程序产品 | |
Nutt | A parallel processor operating system comparison | |
CN108958903A (zh) | 嵌入式多核中央处理器任务调度方法与装置 | |
CN111309494A (zh) | 一种多线程事件处理组件 | |
CN107463829B (zh) | 一种密码卡中dma请求的处理方法、系统及相关装置 | |
CN110381150A (zh) | 区块链上的数据处理方法、装置、电子设备及存储介质 | |
CN106681812A (zh) | 一种分区调度方法 | |
CN113254143B (zh) | 虚拟化网络功能网元编排调度方法、装置和系统 | |
CN109426562A (zh) | 优先级加权轮转调度器 | |
CN111209079A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |