单处理器3级电子飞行包的制作方法

文档序号:6360206阅读:161来源:国知局
专利名称:单处理器3级电子飞行包的制作方法
单处理器3级电子飞行包相关申请的交叉引用本申请要求于2010年2月23日提交的美国临时申请61/307,012的利益并且通过结合引用在此。
背景技术
本发明涉及在飞机中提供辅助计算机功能的电子飞行包(EFB),并且具体地涉及 永久安装在飞机上并适合同时托管并执行A级、B级以及C级应用的3级EFB。EFB是设计为使机组人员更简单、更有效并使用更少的纸张来执行飞行管理任务的计算机系统。EFB的通常的计算平台g在減少或代替纸质參考资料如飞机操作手册、导航图及其他传统上需要的被机组人员带上飞机的在飞行员的手提飞行包中的物品。在美国,EFB设备由联邦航空管理局(FAA)依照咨询通告(AC) 120-76A来控制,并且在欧洲,由欧洲航空安全局(EASA)依照临时指导单页(TGL) 36来控制,以上内容通过结合引用在此。在许多情况中,已开发了被设计为提供g在代替纸质參考的数据并电子地将其显示在EFB上的应用程序,用干与商用现货(COTS)操作系统(OSes)及软件组件一起使用,例如具有.NET框架组件的微软Windows OS。这些应用的实例是用于显示手册及參考文件的文件阅读器、终端图表浏览器及电子记录应用。随着EFB的成熟及流行,在驾驶员座舱中的具有显示器的附加计算机系统的可用性被充分发挥,以提供与主飞行显示器系统及多功能显示器传统上相关联的附加功能性。这些内容包括显示与飞机的当前状态(包括位置、方向及飞行计划)相关的航空电子设备数据。除了 EFB的传统功能之外,这些附加的功能被分为三类应用A级、B级及C级。A级应用包括传统呈现在纸件格式上的预先构成的数据的固定展现(电子飞行员手册、參考文件、设备清单及维护手册)。B级应用包括可操纵动态数据及展现(終端图表、性能计算、机舱视频)的交互式应用。C级应用包括典型地与主飞行显示器相关联的项目,并且会影响飞行安全及机组人员工作量。C级应用的一个实例为显示本机位置的交互式移动地图或者与为跟踪过程或合并与分割(M&S)提供指导的广播式自动相关监视(ADS-B)处理器交互的应用,以上内容通过结合引用在此。每个AC-120-76A,C级应用需要通过其失败对机组人员安全及工作量的影响所决定的严密性的飞机认证服务(AIR)设计经过批准。航空无线电技术委员会(RTCA)公布了D0-178B “机载系统中的软件设计考虑及设备认证”,这是FAA接受的为获取在航空电子设备中使用的软件的设计经过批准的指导。RTCA有限公司是一家在美国华盛顿DC的私营的非盈利性公司。D0-178B是获取FAA设计保证批准的ー种手段,但并不是唯一手段。每个AC120-76A,物理EFB硬件基于安装及用途被分为三级之一。这些级是I级、2级及3级。I级的EFB通常是便携式的并且不能附装到飞机上的基于COTS的系统(如便携式电脑或平板电脑)。2级的EFB通常也是基于COTS的系统并且是便携式的,但是在正常运行中被连接到飞机上。3级的EFB是安装的航空电子设备,并且与I级及2级的EFB不同的是其需要满足依照其在飞机上的预期功能的管理要求。RTCA有限公司公布了 D0-160F “机载设备的环境条件及测试过程”,这是ー个FAA批准接受的为获取在航空电子设备中使用的硬件的AIR批准的指导,以上内容通过结合引用在此。A级和/或B级(此后为A/B级)应用可被托管在任何级的EFB上,并且不需要设计经过批准。然而,C级应用不需要设计经过批准,并且只可托管在3级的EFB上,除了在应用具有技术标准规定(TSO)并且其他托管在I级或2级的EFB上的应用具有较小的或不具有安全性影响及不干扰具有TSO的C级应用的那些情况下。当在一个单个3级的EFB上托管A/B级应用及C级应用吋,重要的是将设计经过批准的C级应用及飞机接ロ从A/B级应用相隔离,从而使得不存在对飞机上的连接到或托
管在EFB上的任何挑剔安全性的组件或软件的来自A/B级应用的反效果或干扰。当前用于隔离设计经过批准的软件并保护连接到EFB上的飞机组件的ー种方法是在一个单ー的EFB中使用两个单独处理器,ー个处理器托管ー个如基于Linux用户的操作系统及C级应用的设计经过批准的操作系统,而另ー个处理器托管ー个COTS操作系统,如美国华盛顿的微软公司制造的Window過操作系统。连接这两个处理器的电路通过该设计经过批准的操作系统提供对COTS操作系统的硬件控制,允许其控制、监测及限制其运行以保护连接到该EFB上的飞机接ロ。由这两个単独的处理器提供的物理隔离提供了 C级应用从A/B级应用的充分隔离。

发明内容
本发明提供了一种可在ー个单处理器上执行A/B级及C级应用的3级EFB (电子飞行包),由此提供了在重量、功耗、及成本上的实质性的节约。通过识别A/B级应用可能干扰C级应用执行的ー组机制,本发明人已通过对限制对存储器、进程、及显示器资源的访问的操作系统的修改实现了硬件隔离的效果。这些修改允许具有与多处理器系统等效的隔离的单处理器架构。确切地,本发明提供了ー种3级电子飞行包,该电子飞行包具有包括至少ー个核的一个单处理器及与该处理器通信并保持一个操作系统的电子存储系统。该电子飞行包提供了与飞机数据网络通信的一个网络接ロ,以连接到包括导航系统及与该处理器通信的显示器的其他飞机设备上。根据由该操作系统强制执行的预定规则,在该电子存储系统中的A/B级应用对该电子存储器、显示器、及处理器的访问被限制,从而阻塞A/B级应用的执行与C级应用的执行所造成的潜在干扰。因此,本发明的至少ー个实施方案的特征是提供执行在一个单处理器上的重要的和不重要的应用之间的分离,而不需要単独的处理器。该操作系统可限制用于通信的套接字缓冲区的总大小,例如,通过将套接字缓冲区的总大小限制为ー个预定的每套接字最大数据分配以及将总套接字数量限制为ー个预定的最大套接字数量。如通常在本领域所理解,套接字缓冲区是在计算机存储器中的用于计算机执行的进程之间的通信的存储区域。因此,本发明的至少ー个实施方案的特征是防止A/B级应用的过量套接字缓冲区分配(这样的缓冲区典型地在操作系统的存储空间中)干扰操作系统运行。操作系统可禁止网络广播式消息。因此,本发明的至少ー个实施方案的特征是保证消息是处于可被监测以防止电子欺骗的定义的特定端点之间。电子存储系统可包括非易失性数据存储并且每个应用程序可被分配到ー个具有读及执行但无写权限的ー个分区。因此,本发明的至少ー个实施方案的特征是防止A/B级应用通过磁盘覆盖改变C级应用使用的数据。易失性数据存储的保留可被限制在每个应用的一个预定的最大存储量上。只有在所有的C级应用已保留了易失性数据存储后,每个A/B级应用才能保留易失性数据存储。进ー步地,本发明的至少ー个实施方案的特征是防止A/B级应用使用的过量易失性存储器通过拒绝易失性存储器到C级应用而干扰C级应用。易失性数据存储的保留可被限制在所有应用的ー个预定的总最大存储量上。因此,本发明的至少ー个实施方案的特征是防止由易失性存储器的过分配导致的系统不稳定性。该操作系统可通过将寄存器加载到控制访问该易失性数据存储的一个存储管理単元中来强制实施该预定的总最大值及ー个预定的每应用最大值。因此,本发明的至少ー个实施方案的特征是采用ー个存储管理単元以通过A/B级应用的运行来强制执行抗损坏的存储器分区。访问该存储管理单元设置可限制在该操作系统中。操作系统可为了应用程序的不同进程的执行来控制单处理器的调度并且为每个应用程序提供ー个有限的最大调度百分比。因此,本发明的至少ー个实施方案的特征是通过A/B级应用的执行来采用ー个抗全侵占的进程调度算法。这些应用的不同进程为该单处理器排队,从而使得C级应用的进程在该队列中被给予优先权。因此,本发明的至少ー个实施方案的特征是保证C级应用运行在应用的混合环境中。相对于当这些进程历史上没有使用它们全部的调度百分比时,当它们历史上使用它们全部的调度百分比吋,这些进程在该队列中被较低地放置。因此,本发明的至少ー个实施方案的特征是通过ー个特定的应用防止该单处理器的垄断。该电子飞行包可进ー步包括具有多个配置寄存器的外围设备,并且该第一操作系统可以阻塞A/B级应用到这些寄存器的访问。因此,本发明的至少ー个实施方案的特征是通过A/B级应用防止外围设备运行的损坏。该电子飞行包可进ー步包括ー个提供与该单处理器通信的显示器系统,从而为该显示器提供数据,该操作系统为至少ー个C级及ー个A/B级应用中的每ー个管理一个单独的缓冲区并在这些缓冲区中通过操作系统控制进行选择,从而使得该A/B级应用不会覆盖该C级应用的缓冲区的数据。因此,本发明的至少ー个实施方案的特征是防止A/B级应用通过如果使用ー个单个缓冲区时可发生的覆盖输出而不可逆地损害从C级应用输出的临界图。
这些单独的缓冲区可处于由不同应用唯一可写的存储位置。因此,本发明的至少ー个实施方案的特征是防止视频缓冲区超限防止通过C级应用的图形数据的输出。该操作系统可进一步在该单处理器上执行从而为该显示器提供数据。该操作系统可随后管理一个应用的从ー个应用接收标准显示数据的视频缓冲区,以及ー个从C级应用接收更高优先级显示数据的叠加视频缓冲区,并且可组合这些缓冲区的内容,从而使得在显示时,该应用缓冲区不能从该叠加缓冲区封闭数据。因此,本发明的至少ー个实施方案的特征是保证临界图不被不知何故保持焦点的A级/B应用(或C级应用)所封闭。这些缓冲区可被划分为多个功能区域,并且该显示器系统可取决于该显示器的指 示方位为不同的功能区域不同地在该显示器上重新安排缓冲区位置与空间位置之间的关系O因此,本发明的至少ー个实施方案的特征是取决于显示器的定向提供对该显示器的复杂的重新格式化,而不需要分别对两个不同的显示格式编程。该电子存储系统还可保持ー个第二操作系统,并且该A/B级应用可被该第二操作系统通过该操作系统实现的虚拟化而执行。例如,该第一操作系统可以是ー个授权的开源操作系统,而该第二操作系统可以是ー个专利的操作系统,如Windows 。因此,本发明的至少ー个实施方案的特征是在没有危及有待用于设计经过批准的应用的电子飞行包的能力时,允许A/B级应用的使用只可执行在ー个不可被设计经过批准的专利的操作系统上。操作系统的分离及虚拟化将专利的操作系统划分,从而使得包含不正确的行为。这些具体的目的及优势可仅应用到落在权利要求书范围内的一些实施方案中,并且因此不限定本发明的范围。


图I是使用単独的处理器以隔离应用的现有技术EFB的硬件方框图;图2是示出了使用依照本发明的单处理器的EFB的与图I相似的硬件方框图;图3是图2中的EFB的功能方框图,示出了存储系统与单处理器之间的通信;图4是示出了图2及图3的EFB的加载和发射的流程图;图5是可在图2及图3中的EFB上执行的用于加载及发射的应用的配置文件及配置表的表不;图6是图2中的存储器的详细表示,示出了各数据结构及文件的分配;图7是不同执行应用使用的由一个图形组合器相组合从而为电子飞行包提供一个显示器的多视频缓冲区的表示;图8是支持两个显示器定向的具有单个ニ进制应用的应用模板的表示;图9是本发明中使用的为将应用进程排队的处理器调度系统的简化图;图10是非易失性磁盘存储器的表示,示出了其的ー个分区表;以及图11是可由本发明实现的虚拟化的图。
具体实施例方式现參见图1,用于飞机12的现有技术EFB 10可包括分别与ー个第一及第ニ存储器15及17通信的ー个第一处理器14以及ー个第二处理器16。第一处理器14可被用于托管在该第一存储器15中保持的ー个第一软件应用18,该第一软件应用可以是例如ー个C级软件应用。第二处理器16可被用于托管在该第二存储器17中保持的ー个第二软件应用20,该第二软件应用可以是例如ー个A/B级软件应用。存储器15及17可包括多个硬盘驱动单元及闪存,以提供非易失性存储器的若干形式。处理器14及16可共享具有一个单ー液晶显示器(IXD)设备26的ー个共同的显示単元22。每个处理器14及16可与其自身的视频控制器24及25通信。第一处理器14可与主视频控制器24通信,并且第二处理器16可与次级视频控制器25通信。这两个视频控制器24及25可通过作为ー个视频转换系统30的一个现场可编程序门阵列(FPGA)系统与IXD设备26通信。FPGA转换系统30可处于ー个单处理器的控制下,例如,第一处理器14 可具有ー个将其连接到转换系统30的主设备总线35,从而使得它可以控制14或16中的哪ー个在视频接ロ 31上处于传送中。当需要显示更重要的航班或飞机相关信息而显示单元22正被使用以显示由在第二处理器16上运行的第二软件应用20提供的不太重要的信息时,可以形成这种条件。转换系统30可与LCD 26通过ー个显示接ロ 31通信,该显示接ロ为IXD显示器26的驱动电路27提供信号并从多个按钮或ー个IXD触摸屏42接收信号。ー个外部键盘36可连接到显示接ロ 31上。处理器14及16还可与一个标准以太网(未示出)通信,从而与如飞机照相机及被本领域所理解的类似设备的其他设备通信。每个处理器14及16还可与其自身的输入接ロ 29通信,该输入接ロ从按钮及IXD触摸屏42或外部键盘36接收信号。再次參见图1,由于相关安全性的担忧,限制飞机12的其他航空电子设备对航空电子设备接ロ 43的访问及可见性有可能是必需的。ー个I/O卡34提供对航空电子设备接ロ 43的访问,从而使得EFB 10可以与安装在飞机12上的其他设备交互。I/O卡34可包括一个微控制器,该微控制器包含嵌入式软件、支持电路及被设计为连接ー种本领域所知的类型的航空电子设备接ロ 43的电路。允许第一处理器14对I/O卡34进行初始化及配置,使第一处理器14能够限制第二处理器16对航空电子设备接ロ 43的访问。这种能力允许EFB 10满足必需的安全性标准。在某些情况下,或者由于第二处理器16的故障,或者由于软件20的软件故障,第一处理器14使第二处理器16无效或重置可能是必要的。可能存在从第一处理器14到第ニ处理器16的一个重置信号33,该重置信号允许第一处理器14使第二处理器16无效或重置。这保证了第一处理器14具有对显示単元22的完全控制(通过转换系统30),第二处理器16也同样。这消除了对第二应用满足严格的FAA标准的昂贵的认证的需要,该严格的FAA标准控制在商用飞机12中的ー个3级EFB上的软件应用的使用。这样,第二软件应用20可代表ー个商用的、现成的软件应用。即使第二软件应用20被提供为ー个定制的软件应用,由于消除了 C级应用需要的昂贵并严格的认证,仍然存在一个明显的优势。这是因为第一处理器14配备有完全夺取显示単元22的控制的能力,并且如可能被需要的,第二处理器16显示重要的信息,或需要ー个直接的操作符响应。现參见图2,本发明提供了ー种EFB 10’,其中双处理器系统及用于提供一个处理器优于另一个处理器的优势的硬件开关的复杂性可由ー个单处理器50避免。该单处理器50使用一个特别修改的操作系统54 (将会在下文描述)执行保持在存储器15中的多应用程序52 (A级、B级或C级应用)。该特别修改的操作系统54控制托管在EFB 10’上的所有其他软件的执行。ー个与EFB 10的内部操作相关的主菜单程序53还可以被保持在存储器15中并由单处理器50执行。为了描述清楚,如在此使用的“操作系统”将会被考虑与附加的根服务、驱动器及通常由多应用使用并且对于应用程序的执行而言是必须的的其他软件联合覆盖操作系统内核。在此架构中,处理器50可与一个接ロ 34通信,而不需要ー个转换系统,并且接ロ34可通过ー个设备总线35与各种输入设备36及42连接,与那些以前描述的相似。接ロ 34还可通过航空电子设备接ロ 43连接到多个航空电子设备系统,包括一个导航単元。处理器50还可以通过接ロ 34与一个视频控制器24通信,该视频控制器具有ー个尽可能小的单图形处理器及到显示单元22的数据。处理器50还可以也通过接ロ 34与输入接ロ 29通信,该输入接ロ从按钮及触摸屏42以及外部键盘36接收信号。
现參见图3,处理器50可以是例如具有多个核56的一个处理器,例如每个核都具有ー个LI高速缓冲存储器58并共享ー个L2高速缓冲存储器60。L2高速缓冲存储器60可通过ー个或多个内部总线与随机访问易失性存储器64及非易失性存储器66相连接,例如后者逻辑上地作为ー个“磁盘”驱动,例如可由闪存实现,这两者都是存储器系统62的一部分。对易失性存储器64的访问可通过ー个存储管理単元68进行,而对非易失性存储器66的访问可通过ー个磁盘控制器70进行,该磁盘控制器的类型被本领域所熟知。现參见图4,处理器50可在毎次使用飞机中的EFB 10’的期间之前及之中执行ー个加载进程76,该加载进程76用于安装及配置所希望的应用程序。在第一歩,如由进程块80所指示,加载进程76启动ー个加载程序。对每个进程块82,加载程序检查有待与和应用程序52相关联的配置文件84 (作为清单文件的一部分)一起使用在电子飞行包10’上的所识别的应用程序52,并将应用程序52识别为如这将会影响它们在磁盘分区中的布局的应用。暂时參见图3及5,配置文件84可具有每个应用程序52的入口 86,这些入口链接到针对那个应用的应用程序可执行文件88。每个配置文件84的入口 86通常将提供ー个识别可执行文件88及其进程(例如具有ー个组标识符)及应用类型92 (例如,A级、B级、或C级)的应用标识符90,并且将为应用96指示有待保留的存储量。来自配置文件84的信息将会在发射操作系统54时被添加到为应用程序52开发的配置表94中。配置表94将添加有待在下文描述的附加信息,该附加信息包括定义ー个权限组的存储管理単元存储分配信息98、与每个应用程序52相关联的视频缓冲区信息102,如将会在下文所讨论。再次參见图4及10,使用在进程块82、进程块106得到的信息,应用程序52在非易失性存储器66中被安装到先前准备的分区99中。分区进程分配了単独的磁盘分区99a-d,这些分区包括ー个保持用于这些应用程序(并且同样用于操作系统)的可执行文件的第一磁盘分区99a,该第一磁盘分区仅提供包含在这个分区中的对这些文件的读访问及执行而没有写访问。ー个第二分区99b提供读/写访问但不提供执行,并且由应用程序用于临时文件和记录上。ー个第三分区99c提供包含在此分区中的文件的只读访问但不提供执行,并且可被用于应用之间共享的数据库。该第四分区99d保持可用的但还未安装的程序,并且不可执行的但是仅仅是对于操作系统而言是读写。通过将这些应用放置在第一磁盘分区99,任何错误应用不会覆盖其他应用的磁盘文件。每个分区99都在ー个分区表110中被描述,如通常由ー个分区表110中的一行所指示的。如被本领域所理解,ー个分区99将包括其自身的文件系统112 (在磁盘上将逻辑地址映射到物理地址)及映射到一个预定及有限的物理地址范围116的其自身的存储区域114,如在磁盘媒介中的操作系统及信息编码所实现。分区表110可为每个分区提供一个逻辑标识符(在此指代为a、b、c、d),为文件系统112提供物理地址信息120,以及指示应用程序52具有对该特定分区的读或写权限的数据访问权限122。为实现访问权限的其他分区方法也被本发明所考虑。通常,每个应用程序52将会被加载到在分区99a中的其自身唯一的文件夹中,并且被提供了ー个防止其看见文件系统112的与其他目录相关联的分区的“根监狱(rootjail) ”。使用如本领域所知的类型的“回环装置”以允许给定的应用程序只访问分区99b及99c的合适的部分。通过限制对磁盘控制器硬件配置寄存器的访问和/或限制可用的操作系统对应用程序的调用,磁盘控制器硬件可提供对这些分区的鲁棒的强制执行,该强制执行防止可能的错误的应用行为,在该错误的应用行为中ー个应用覆盖ー个第二应用或其数据。 再次參见图4,在至少完成一次加载程序76后,处理器50可执行ー个在进程块132开始的发射进程126。该发射进程126通过操作系统54实现,并且将各应用程序52移动到易失性存储器64中从而执行。该发射进程再次由配置表94控制,并且具体地,通过将每个应用程序识别为A级、B级、或C级来控制。在一个优选实施方案中,在每个由进程块134及136绑定的环中,发射进程以C级应用开始,并且只有在所有C级应用都被发射后才发射A级及B级应用。还參见图6,在该发射进程的前几步,保持操作系统54的可执行文件及各应用程序52的易失性存储器被操作系统54所保留。该保留可由一个存储管理単元68 (如图I中所示)强制执行,其方式是通过加载存储管理単元68的控制寄存器及数据来控制易失性存储器64的逻辑地址到物理地址的映射,与操作系统一起控制对每个应用程序52使用的随机访问存储器64的每个地址范围的访问(根据为每个应用程序的进程所分配的组)。这些控制寄存器可具有映射到ー个寄存器存储空间65的逻辑地址存储器,并且对存储管理单元68的这些控制寄存器的访问可由此通过存储管理単元68自身被限制在操作系统54中。在发射进程126的前几步之前,ー个第一地址范围138将会已经被分配给操作系统54,从而保持该操作系统可执行、其数据存储器140、及为套接字缓冲区142所保留的存储器。数据的该第一地址范围138的写权限仅提供给操作系统54,如被操作系统所设置。如所述,在进程块148应用程序52的各自的地址范围也被保留。本发明仅保留每个应用程序52的由配置文件決定的一个预定的固定地址范围152,并且该保留进程以由配置表94识别的C级应用开始。每个所保留的地址范围152必须保持应用程序52自身的目标文件154(保持用于执行的指令),并且在应用程序需要时分配在所保留的地址范围152内的数据空间,如将会在下文所描述。设置了一个应用的所保留的地址范围152的权限,如以上所述,从而使得应用程序52不会写在保持它们的可执行文件88的唯一的地址范围152之外,从而防止应用之间的干扰,以及例如,A/B级应用对C级应用的应用数据的有害的覆盖。如果内存不足以保证所有C级应用可被授权它们的每个配置文件84的所保留的最大存储量,则随后要求更多有待保留的存储的A/B级应用程序52将不会被发射并且宣告并记录错误。为了保证A/B级应用之后不能分配C级应用的正确运行所需的存储,将会评估C级应用的所有限制并且首先发射C级应用。剰余的存储对于A/B级应用将会是可用的。在评估完所有C级应用后,如果为A/B级应用所配置的限制超过可用的那些,将不会发射该应用。使用在该设计经过批准的配置文件中限定的最大限制来进行该评估,而不是当前C级应用所使用的存储量。如被本领域所理解,套接字缓冲区142可被用于在真实的网络上(例如,网络45)或在应用进程之间提供网络式通信,其中这些套接字缓冲区142存储在网络点之间或有待由不同程序或设备访问的应用之间的数据。因为套接字缓冲区142被保持在操作系统54的第一地址范围138内,套接字存储的滥用(例如,如果打开了太多的套接字或套接字太大)会干扰系统的运行。
还參见图4,在进程块156上,每个应用程序52所需的套接字缓冲区142被保留 在第一地址范围138内。为了防止可能的套接字缓冲区142对地址范围138的过分配,如可影响操作系统54或其应用程序52的运行,本发明将套接字缓冲区142的总数量及它们的最大的大小二者限制在从配置数据84获得的预定的值上。以此方式,通过保证地址范围138可保持这个具有预定的最大的大小的套接字的预定的总数量,可以保证套接字缓冲区142不超过可用的存储空间的限制。实际上,在一个应用进程请求套接字连接时,对与存储在操作系统存储器中的每个应用52相关联的结构进行检查。如果这个请求可推送套接字存储器越过边界,该请求将会被操作系统54拒绝。在进程块160,以上描述的视频缓冲区158各自被保留在存储器范围内,该存储器范围针对要求访问显示器系统26的应用被分配给操作系统138。一旦每个应用程序52已被发射而必需的易失性存储器64被保留,操作系统54可每个进程块162为每个应用程序52调度多个进程,现在将描述这种可被操作系统调度程序调度的进程。现參见图9,操作系统调度程序161可为应用程序52产生的进程提供ー个保持进程标识符166的调度队列164。这些进程将会由处理器50根据ー个时间片系统执行,例如,其中在下ー个进程执行前,每个进程可具有一个高达预定的最大值的处理器时间。未完全执行的进程返回到保持所有等待状态的进程的进程表168中。进程表168还保持其他进程产生的进程。逻辑地被描绘,进程表168提供了若干行,其中每行代表一个为了在队列164中的布局的有待被调度程序引擎170调度的进程,以由处理器50按队列顺序执行。每行包括一个进程识别数166、底层应用172的类型(例如,C级)、以及进程174的最近执行历史。调度程序引擎170运行以调度在表168中的在A/B级应用前的任何C级应用,并进ー步地运行以给予在先前调度机会中不使用它们整个时间片(如进程174的历史所示)的进程更高的优先权。这样,调度程序引擎170使用一个惩罚系统以“惩罚”先前拱起CPU的应用52,该CPU推送它们到任务队列后面更远处,强制它们更长地等待以获得CPU的访问。通过在CPU上经常使用分配的时间的最大值的惩罚应用,内核強制它们到任务队列的末端,从而保证每个进程可以访问CPU,并且通过在配置文件中合适地设置可允许的CPU时间最大值,可控制合适的应用优先级。现參见图6及7,目标文件154所代表的每个应用程序52由操作系统54提供了一个单独的本地图形缓冲区158。该图形缓冲区158包括用于存储状态信息及常见的全局构造(纹理、字体等)的存储器,以及ー个帧缓冲区,该帧缓冲区可保持对显示屏26的输出的充分的渲染,从而完整地描述显示屏26的区域上的可视图像。ー个或多个常规图形处理器単元180可处理对操作系统54的图形调用,从而在图形缓冲区158的帧缓冲区部分产生単独的完整渲染的屏幕地图,逐一地提供到显示屏26的像素值映射。这些屏幕地图可随后由图形处理器180通过在这些图形缓冲区158的数据之间进行选择的合成过程(根据操作系统54提供的焦点信息)组合为ー个屏幕缓冲区,从而在显示屏26上显示这些图形缓冲区158之一的数据。该进程保留了每个应用154的底图数据,从而使得其在焦点改变时不丢失,并且重要地,从而使得错误的A/B级应用以ー种不可被操作系统54逆转的方式不能
损害C级应用的数据。操作系统54创建了ー个重叠图形缓冲区158’,该重叠图形缓冲区在合成过程中通常被放置在来自图形缓冲区158的图形信息的“前方”。在该重叠图形缓冲区158’的数据通常是在最前方的和/或可使用透明度參数。该重叠可被用于宣告高优先级系统信息(警告、通知、等),如可由C级应用所生成,并提供全局系统接ロ如触摸屏键盘、数字板或导航按钮。还參见图8,每个图形缓冲区158可被分为不同的功能区190 (在此被描绘为保持图像,但也可能保持更高级的图形指令)。这些功能区190是如为了分离可在显示屏26上被独立単独定位的数据的。图形组合器186可接受ー个指示显示屏的定向的屏幕位置命令196,或者以显示屏26a描绘的竖向模式,或者以显示屏26b描绘的横向模式,后者被安排具有最长的水平维度,而前者具有最长的垂直维度。基于该屏幕位置命令196,例如由配置表94中的设置所提供,图形组合器186将改变这些功能区190的空间位置,以提供最佳的显示安排。这样,例如,功能区190可包括描述触摸屏按钮的功能区190a,及描述图形输出图像的功能区190b。对于横向显示屏26b,衍生自功能区190a的按钮的图像可被放置在衍生自功能区190b的图形输出图像的边上,而对于纵向显示屏26a,衍生自功能区190a的按钮的图像可被放置在衍生自功能区190b的图形输出图像的下面。以此方式,単独的显示布局不需要被硬编码到图形缓冲区158中。可替代地,应当理解的是功能上一致的结果可通过采用ー个图形库来提供,该图形库使用关于屏幕的定向的知识以自动地调整应用所需的图形元素的位置。现參见图11,使用ー个单处理器50运行具有不同的认证水平的多应用程序52的能力可被扩展为允许单处理器50及操作系统54通过虚拟化运行ー个第二操作系统212。该虚拟化允许这些应用程序52中的ー些在ー个不同的操作系统212上执行,而不是该设计经过批准的操作系统54。这样,例如,以上描述的修改可与设计经过批准的基于Linux的应用相关,并且仍有A/B级应用中的ー些可通过执行'Windows 操作系统212源于Windows 操作系统212,如Linux操作系统54的ー个有效应用。在本实施方案中,操作系统54的ー个设计经过批准的基于Linux的内核200可结合一个虚拟器如管理程序210,允许ー个客户操作系统212的执行,典型地是ー个COTS操作系统如'Windows 操作系统。管理程序210为客户操作系统212呈现了一个虚拟硬件平台,允许客户操作系统运行用于冒indows 操作系统的A级和B级应用程序52。Linux内核200可直接执行C级应用程序52。如被本领域所理解,管理程序210通过安装在COTS操作系统上的虚拟装置驱动程序214为真实的硬件提供ー个接ロ以及ー个虚拟化层216,从而将对COTS操作系统212的外形创建为一个真实的物理机器,即,处理器、存储器、及硬件。然而虚拟机的运行由管理程序210及操作系统54 (如以上所修改)所控制,从而约束COTS操作系统212及其处理器50与存储器系统62的真实的物理资源的应用程序52对其的使用,并且作为设计经过批准的操作系统54的辅助。该虚拟机被视为好像是(C0TS操作系统的集合,驱动器及应用被寄存在那)其自身右边的ー个A/B级应用。’Windows 操作系统212如在非易失性存储器66及易失性存储器64中的其他任何应用程序52 —祥可被给出其自身的分区,并且可经受以上描述的与常规应用相关的其他约束。在这个环境中,C级应用程序52可被直接执行在设计经过批准的操作系统54上,并且因此,可能就包括处理器时间及显示空间的资源而言被给予优先权。 虚拟化会带来性能损失,尤其是关于可被至少在部分地实现在软件中或被广泛转化在一个虚拟化的环境中的图形操作。因为这个原因,本发明考虑了在虚拟装置驱动程序到操作系统54的硬件驱动器232之间的的隧道效应220。该隧道效应220可通过对COTS操作系统212进行修改来实现,以避免虚拟装置驱动程序214及虚拟化层216,并通过内核200直接向真实的硬件驱动器232提供命令。以此方式,通过虚拟化层216及管理程序210的工作延迟被消除,并且消除了在图形命令通过虚拟化而不是直接由视频控制器24的硬件执行时发生的延迟。倒转C级应用的优先级到A/B级应用上面的隧道效应的风险通过允许操作系统54开启和关闭隧道效应220而控制,例如通过将驱动器232指向不同的命令缓冲区之间,ー个由虚拟装置驱动程序214及隧道效应220使用,而ー个由托管在设计经过批准的操作系统54上的应用程序52使用。额外的性能増益可以通过使用大大简化的COTS操作系统移除支持而获得,例如,对于未在电子飞行包10’中实现的硬件组件。额外的性能増益可以通过穿过多个不同的COTS操作系统212 (未示出)的运行应用程序52的不同集合获得。不同虚拟机的使用允许每个虚拟机被“调谐”为它们将通过改变分配给由ー个不同的操作系统212表示的每个虚拟机的资源而执行的应用程序52的类型。例如,存储密集的应用程序52可被执行在一个被成比例地给予更多存储的虚拟机上;计算密集的应用可被执行在一个被给予更多的处理器资源的虚拟机64a上。类似地,可这样调整硬件资源如网络访问及类似物。以此方式,资源可被更好地分配,減少了来自虚拟化的性能损失。例如,假设给定的虚拟机的存储可影响对虚拟机之间的存储器的简单均匀划分的效率改进,额外的存储可不成比例地提高处理速度。由于电子飞行包10’的封闭的硬件环境,这类的定制是可能的。特别地,本发明不是g在限制在此包含的实施方案及图示,并且权利要求书应被理解为包括那些实施方案(包括这些实施方案的多个部分)的修改形式及不同实施方案的元素的组合,如在以下的权利要求范围中所达到。在此描述的所有出版物(包括专利及非专利出版物)以其整体通过 引用结合在此。
权利要求
1.ー种3级电子飞行包,包括 ー个单处理器,该单处理器具有至少ー个核; ー个电子存储系统,该电子存储系统与该处理器通信并保持一个操作系统; 一个网络接ロ,该网络接ロ与一个飞机数据网络通信以连接到包括多个导航系统的其他飞机设备上; 一个显示器,该显示器与该处理器通信; 其中根据由该操作系统强制执行的预定规则,该操作系统执行以限制在该电子存储系统中的A/B级应用对该电子存储器、该显示器、及该处理器的访问从而阻塞A/B级应用的执行与C级应用的执行所造成的潜在干扰; 其中该C级应用的设计是经过批准的以与该飞机数据网络进行交互,而该A/B级应用的设计是未经过批准的以与该飞机数据网络进行交互。
2.如权利要求I所述的3级电子飞行包,其中该操作系统限制用于通信的多个套接字缓冲区的总大小。
3.如权利要求2所述的3级电子飞行包,其中这些套接字缓冲区的总大小由一个预定的每套接字最大数据分配及一个预定的最大套接字数量所限制。
4.如权利要求I所述的3级电子飞行包,其中网络广播式消息是被禁止的。
5.如权利要求I所述的3级电子飞行包,其中该电子存储系统包括非易失性数据存储,并且其中每个应用被分配给具有读及执行但无写权限的ー个分区。
6.如权利要求I所述的3级电子飞行包,其中该电子存储系统包括一个易失性数据存储,并且其中只有在所有的C级应用已经是已保留的易失性数据存储后,每个A/B级应用才是已保留的易失性数据存储。
7.如权利要求6所述的3级电子飞行包,其中易失性数据存储的ー个保留被限制在每个应用的一个预定的最大存储量上。
8.如权利要求7所述的3级电子飞行包,其中易失性数据存储的保留被限制在所有应用的ー个预定的总最大存储量上。
9.如权利要求7所述的3级电子飞行包,其中该操作系统通过在一个控制访问该易失性数据存储的存储管理単元中加载多个寄存器来强制执行该预定的总最大值及每个应用的一个预定的最大值。
10.如权利要求I所述的3级电子飞行包,其中该操作系统为这些应用的不同进程的执行控制该单处理器的调度,并且为每个应用提供ー个有限的最大调度百分比。
11.如权利要求10所述的3级电子飞行包,其中这些应用的不同进程为该单处理器排队,从而使得C级应用的进程在该队列中被给予优先权。
12.如权利要求11所述的3级电子飞行包,其中相对于当这些进程历史上没有使用它们全部的调度百分比时,当它们历史上使用它们全部的调度百分比吋,这些进程在该队列中被较低地放置。
13.如权利要求I所述的3级电子飞行包,其中该电子飞行包进ー步包括具有多个配置寄存器的外围设备,并且其中该操作系统阻塞A/B级应用到这些寄存器的访问。
14.如权利要求I所述的3级电子飞行包,其中该操作系统在该单处理器上执行,从而为该显示器提供数据,该操作系统为至少ー个C级及ー个A/B级应用中的每ー个管理ー个単独的缓冲区并在这些缓冲区之间通过操作系统控制进行选择,从而使得该A/B级应用不会覆盖该C级应用的缓冲区的数据。
15.如权利要求14所述的3级电子飞行包,其中単独的缓冲区处于由不同应用唯一可写的存储位置。
16.如权利要求I所述的3级电子飞行包,其中该操作系统在该单处理器上执行,从而为该显示器提供数据,该操作系统管理从ー个应用接收标准显示数据的应用缓冲区及从C级应用接收更高优先级的显示数据的叠加缓冲区,该操作系统合成这些缓冲区的内容,从而使得在显示时,该应用缓冲区不会从该叠加缓冲区封闭数据。
17.如权利要求14所述的3级电子飞行包,其中这些缓冲区被划分为多个功能区域,并且其中该显示器系统取决于该显示器的指示方位为不同的功能区域不同地在该显示器上重新安排缓冲区位置与空间位置之间的关系。
18.如权利要求I所述的3级电子飞行包,其中该电子存储系统还保持ー个第二操作系统,并且其中该A/B级应用被该第二操作系统通过该操作系统实现的虚拟化而执行。
19.如权利要求18所述的3级电子飞行包,其中该操作系统执行该第二操作系统,仿佛该第二操作系统是ー个A/B级应用。
20.如权利要求18所述的3级电子飞行包,其中根据由该操作系统强制执行的预定规贝U,该操作系统限制该第二操作系统对该电子存储器、该显示器、及该处理器的访问,从而阻塞该第二操作系统的执行与C级应用的执行所造成的潜在干扰。
21.如权利要求18所述的3级电子飞行包,其中该操作系统是设计经过批准的操作系统,而该第二操作系统是设计未经过批准的操作系统。
22.如权利要求20所述的3级电子飞行包,其中该第二操作系统是Windows 。
全文摘要
一种为飞机提供计算服务并且与飞机航空电子设备通信的电子飞行包可在一个单处理器上通过对操作系统进行具体的修改来执行飞机设计经过批准的C级应用及设计未经过批准的A/B级应用,从而控制存储器及处理器访问,由此提供与C级应用及A/B级应用在不同的处理器上执行的双处理器系统相媲美的隔离性。
文档编号G06F9/50GK102844741SQ201180019450
公开日2012年12月26日 申请日期2011年2月23日 优先权日2010年2月23日
发明者贾森·舒勒, 乔纳森·斯卡夫, 安德鲁·林格伦, 米迦·菲迪克, 彼得·斯哥芝, 戴维·奥克扎斯基, 拉姆·古浦塔, 丽雅·车仁雅库娃, 尤金·泽巴克, 尼古拉斯·赫鲁彻斯基, 斯蒂芬·楚拉, 马修·亨格福德, 杰弗里·赫林, 戴维·琼斯, 伯纳德·纽曼, 约翰·莱斯滕 申请人:美国宇航公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1