免费智能真题库 > 历年试卷 > 系统分析师 > 2014年上半年 系统分析师 下午试卷 案例
  第3题      
  知识点:   VxWorks   安全性   操作系统   多处理机   多处理机系统   分区   嵌入式系统   实时操作系统   总体设计

 
(共25分)
近年来,分区化(Partitioning)技术已被广泛应用于大型嵌入式系统,此项技术重在解决嵌入式系统中多类应用软件共享计算机资源的安全性问题,同时,也可降低软件开发成本,提高软件的可重用能力。某公司承担了一项宇航计算机系统研制任务,要求将以前采用的多处理机系统精简为由单个处理器系统完成,而整体功能应在原有功能不变的基础上,可灵活扩展,并要求原应用软件可被快速移植到新系统。公司将任务交给王工程师组织并承担总体设计工作。在采用何种嵌入式实时操作系统的选型问题上,王工认为宇航系统强调安全性,原系统应用软件功能分布在各自的处理机上,在保持功能不变的情况下,应适当地维持各个软件的相对独立性,因此采用具有分区能力的操作系统(如:VxWorks653)比较合适。
 
问题:3.1   图3-1给出了具有分区能力的操作系统架构,该架构支持分区和进程两类调度,并提供了分区的时间、空间隔离保障,保证了应用软件可安全共享计算机资源。请用300字以内文字说明该类操作系统中分区化技术的主要特点。

 
问题:3.2   完成该项目总体设计后,王工将软件设计工作交给李工,要求李工在原有软件基础上,完成新环境下的软件设计。经分析,李工统计出了原系统的任务基本情况(见表3-1)。原系统包含三个子系统,为了保证各子系统软件间的相对独立性,将三个子系统移植到新系统的三个分区工作,假设将“显示子系统”、“雷达子系统”和“任务子系统”分别用P1、P2和P3表示,系统的最小时间计时(tick)设为1ms,调度表的主时间框架将是40ms。
根据表3-1给出的原系统各任务周期和最坏执行时间数据,新系统中的所有任务可被调度,请对此进行分析说明,完善表3-2所示的分区调度表的设计,在空(1)~(10)填写正确内容并将解答填入答题纸的对应栏内。
(注:WCET,Worst-CaseExecutionTime)。
 
 
 

   知识点讲解    
   · VxWorks    · 安全性    · 操作系统    · 多处理机    · 多处理机系统    · 分区    · 嵌入式系统    · 实时操作系统    · 总体设计
 
       VxWorks
        VxWorks具有良好的持续发展能力、高性能的内核以及友好的用户开发环境。首先,它十分灵活,具有多达1800个功能强大的应用程序接口(Application Programming Interface, API)。其次,它适用面广,可以适用于从最简单到最复杂的产品设计。再次,它可靠性高,可以用于从防抱死刹车系统到星际探索的关键任务。最后,适用性强,可以用于所有流行的CPU平台。
 
       安全性
        (1)可用性。可用性评价指标及测量,如下表所示。
        
        可用性评价指标及测量
        
        (2)完整性。完整性评价指标及测量,如下表所示。
        
        完整性评价指标及测量
        (3)保密性。保密性评价指标及测量,如下表所示。
        
        保密性评价指标及测量
        
 
       操作系统
        编写嵌入式软件有两种选择:一是自己编写内核;二是使用现成的操作系统。如果嵌入式软件只需要完成一项非常小的工作,例如在电动玩具、空调中,就不需要一个功能完整的操作系统。但如果系统的规模较大、功能较复杂,那么最好还是使用一个现成的操作系统。可用于嵌入式系统软件开发的操作系统有很多,但关键是如何选择一个适合开发项目的操作系统,可以从以下几点进行考虑:
        (1)操作系统提供的开发工具。有些实时操作系统只支持该系统供应商的开发工具,因此,还必须从操作系统供应商处获得编译器、调试器等;而有的操作系统应用广泛,且有第三方工具可用,因此选择的余地比较大。
        (2)操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,以避免因移植带来的种种困难。
        (3)操作系统的内存要求,有些操作系统对内存有较大要求。
        (4)操作系统的可剪裁性、实时性能等。
 
       多处理机
        多处理机系统是由多台处理机组成的系统,每台处理机有属于自己的控制部件,可以执行独立的程序,共享一个主存储器和所有的外部设备。它是多指令流多数据流计算机。在多处理机系统中,机间的互连技术决定着多处理机的性能。多处理机之间的互连,要满足高频带、低成本、连接方式的多样性以及在不规则通信情况下连接的无冲突性。
 
       多处理机系统
               多处理机系统的基本概念
               流水线处理器通过若干级流水的时间并行技术来获得高性能。并行处理器由多台处理机组成,每台处理机执行相同的程序。这两类处理器都是执行单个程序,可对向量或数组进行运算。这种系统结构能高效地执行适合于SIMD的程序,所以这类处理器对某些应用问题非常有效。但是有些大型题目在这种SIMD结构的处理器上运行并不那么有效,原因是这类问题没有对结构化数据进行重复运算的操作,它所要求的操作通常是非结构化的而且是不可预测的。要想解决这类问题并保持高性能,只能在多处理机结构中寻找出路。
               多处理机的系统结构由若干台独立的计算机组成,每台计算机能够独立执行自己的程序。Flynn称这种结构为MIMD(多指令流多数据流)结构。在多处理机系统中,处理机与处理机之间通过互连网络进行连接,从而实现程序之间的数据交换和同步。
               下图给出了多处理机系统的一般模型。系统中有n个处理机(P1到Pn),它们通过一个处理机存储器互连网络(PMIN)连接到一个共享的主存储器上,这些处理机之间通过共享主存储器进行通信。处理机间还可以有一个处理机互连网络(PPIN),PPIN通常用来从一台处理机向处理机发送中断信号,以达到进程同步的目的。此外,这些处理机还通过处理机-I/O互连网络(PIOIN)同各I/O设备连接。有时为了使系统简单,可以把全部I/O设备连接在一台I/O处理机或少数几台处理机上。
               
               多处理机系统模型
               多处理机的特点
               多处理机属于MIMD计算机,它和SIMD计算机的并行处理机相比,有很大的差别。它们的本质差别在于并行性级别的不同:多处理机要实现任务或作业一级的并行,而并行处理机只实现指令一级的并行。下面通过与并行处理机的比较,进一步说明多处理机系统的特点。
               (1)结构灵活性。并行处理机的结构主要是针对数组向量处理算法而设计的。结构特点是:处理单元(PE)数目很多甚至上万,但只需设置有限和固定的互连网络,即可满足一批并行性很高的算法的需要。而多处理机需要有较强的通用性。这就要求多处理机能适应更为多样的算法,具备更为灵活多变的系统结构以实现各种复杂的计算机间互联模式,同时还要解决共享资源的冲突问题。目前,多处理机中处理单元的数目还不可能做得很多。
               (2)程序并行性。并行处理机实现操作一级的并行,其并行性存在于指令内部,一条指令可以同时对整个数组进行处理,再加上系统具有的专用性特点,就使程序并行性的识别较易实现。在多处理机中,并行性存在于指令外部,即表现在多个任务之间,再加上系统通用性的要求,就使程序并行性的识别难度增大。因此,它必须利用多种途径,如算法、程序语言、编译、操作系统以至指令、硬件等,尽量挖掘潜在的并行性。
               (3)并行任务派生。并行处理机依靠单指令流对多数据流实现并行操作,即通过指令本身就可以启动多个PE并行工作。但多处理机处于多指令流操作方式,一个程序中就存在多个并发的程序段,需要采用专门的指令来表示并发关系,因此一个任务开始执行时能够派生出与它并行执行的另一些任务。如果任务数多于处理机数,多余的任务就进入排队器等待。
               (4)进程同步。并行处理机仅有一个控制部件CU,自然是同步的。而多处理机执行不同的指令,工作进度不会也不必保持相同。如果某个处理机先做完,那么就要停下来等待。当然如果发生数据相关和控制相关,那么处理机也要停下来等待。因此,在多处理机系统中要采取特殊的同步措施来确保程序按所要求的正确顺序进行。
               (5)资源分配和进程调度。并行处理机的PE是固定的,采用屏蔽手段可改变实际参加操作的PE数目。多处理机执行并发任务,需要的处理机数目不固定,各个处理机进入或退出任务的时刻不相同,所需共享资源的品种、数量又随时变化。因此提出了资源分配和进程调度问题,它对整个系统的效率有很大的影响。
 
       分区
        现在,数据量的增加已经使得数据不可以仅在单一的计算机系统中存储(分布式的应用),尤其是为了保证数据的可靠性,有时需要复制备份。同时,为了一些规模性的操作(比如负载平衡)或者考虑到一些动态因素的影响(存储结点的改变),在设计中就要考虑“分区”的概念。
        分区的一些主要方法如下:
        (1)内存缓存:缓存技术可以看成一种分区。内存中的数据库系统将使用频率最高的数据复制到缓存中,加快了数据给用户传递的速度,同时也大大减轻了数据库服务器的负担。在分布式缓存中,缓存由很多带有分配好一定内存的进程组成,它们能够放置到不同的机器上并且可以通过配置进行应用。它的协议可以在不同的编程语言中实现,同时在用户的应用中提供了简单的键值存储API。它通过将键值哈希散列到缓存中来存储对象。
        (2)集群:数据库服务器集群在为用户提供服务时的透明性(用户感觉数据像是在同一个地方),是另外一个对数据进行分区的方法。然而,这种方法虽然能在某种程度上扩展系统数据持久层,可是集群本身的特性却仅仅应用在了数据库管理系统的顶层,而并未在分布式最初的设计中得到应用。
        (3)读写分离:指定一台或多台主服务器,所有或部分的写操作被送至此,同时再设一定数量的副本服务器用以满足读请求。如果主服务器向至少一个用户异步复制数据,这是没有写延迟的,可如果主服务器在向最后一个用户写数据还没完成的时候就崩溃了,那么写操作将是无效的;如果主服务器向用户同步复制数据,这是有延迟的,这种更新不会丢失,但读请求却不能送达副本服务器。如果对一致性要求很高的话,无法避免进一步的写延迟。在这种情况下,如果主服务器崩溃了,那么有最新的数据的副本服务器将会成为新的主服务器。这种模型(主/从模型)在读写率很高的时候工作得很好。
        (4)范围分割技术/分片(sharding):指对数据按照如下方式进行分区操作,即对数据的请求和更新在同一个结点上,并且对于分布在不同服务器上的数据存储和下载的量大致相同。从可靠性和负载平衡的观点看,数据的碎片也是需要被复制的,并且允许它们被写入主服务器的副本中和所有需要维护数据分区的副本服务器中。而为了做到这一点,需要在分区和存储结点之间做一个映射。这个映射是动态还是静态取决于用户的应用、主服务器的“映射服务/组件”以及网络中用户应用于网络结点之间的基础结构。在分区场景中,关键在于如何将数据库中的对象映射到服务器上。通常的方法是哈希散列法。
 
       嵌入式系统
        嵌入式计算机系统是与特定功能的设备集成在一起、且隐藏在这个功能系统内部为预定任务而设计的计算机系统。该计算机可对设备的状态进行采集,包括操作者的命令和受控对象的状态,按照设备所要求的、预先设定的特定规律进行计算,计算结果作为命令输出到设备的某些部件,控制某些操作,同时将人所关心的信息显示给操作者。一个典型的嵌入式系统如下图所示。
        
        嵌入式系统组成
        上述嵌入式系统的输入、处理、输出的各个部分,一般情况下都是通过软件运行完成的。因此嵌入式软件是嵌入式系统的重要组成部分,而且体现了系统的思想、方法和规律。
        在当今社会中,嵌入式系统已经和我们的生活息息相关,人们每时每刻都离不了嵌入式系统,如下图所示。
        
        嵌入式系统基本分类
        嵌入式系统一般是实时系统,《牛津计算机字典》对实时系统解释是:“系统的输入对应于一个外部物理世界的运动,而系统输出对应着另外一个物理世界的运动,而这两个运动的时间差必须在可接受的足够小的范围内,实时性就体现在从输入到形成输出所需的时间。”实时系统又进一步定义为硬实时系统和软实时系统两种,如下表所示。
        
        实时系统分类及其特性
        一般认为,嵌入式计算机相对于个人计算机或超级计算机,在软件或硬件上的资源是有限的,硬件资源体现在处理速度、功耗、存储空间等方面,软件资源指有限的应用、有限的操作系统支持、应用代码量少等方面。
        第一款大批量生产的嵌入式系统是美国1961年发布的民兵Ⅰ型导弹内嵌的D-17自动制导计算机。
        随着20世纪60年代早期应用开始,嵌入式系统的价格迅速降低,同时处理功能和能力获得快速提高。以第一款单片机Intel 4004为例,在存储器和外围芯片的配套使用下,实现了计算器和其他小型系统。1978年,美国国家工程制造商协会发布了可编程单片机的“标准”,涵盖了几乎所有以计算机为基础的控制器,如单板计算机、数控设备以及基于事件的控制器,使得微处理器得到了快速发展。
        无一例外,不断发展中的嵌入式计算功能的实现都通过用户需求驱动、顶层定义、硬件定义开始,但核心是软件的算法处理,实际上类似硬件功能通过不同软件的控制就可以实现不同用户所需要的嵌入式功能,如下图所示。
        
        嵌入式计算机的层次化架构
        当基础硬件接口、计算和存储资源、总线与网络乃至各种传感器、作动器、液压等以模块化、通用化、组合化等变得越来越成熟,他们就可以方便地组合成硬件平台。而软件却恰恰相反,基本是为满足人类某种新的设想或应用要求开始进行新的设计。这些设计从诸如领域、实现功能、性能、可靠性、安全性等方面,可以是全新理念设备、或是适应性修改升级等途径,都会导致软件有不同程度的差异。
        嵌入式系统具有以下特征:
        (1)嵌入式系统的时间敏感性。嵌入式实时系统对时间响应都是有要求的。例如对于一个设备的运动控制系统,从操作指令发出,嵌入式计算机根据指令和外部条件计算并输出到动作器的动作,要保证在所有的条件下、在确定的时间内产生所需的输出。这对于设计者来说,一般的实时系统都会围绕这个关键需求进行系统设计。另外为了满足时间敏感性要求,确保在最复杂行为和最大延时情况下,系统操作不发生延迟,要求处理器的利用率要有40%左右的余量。有时为满足某些强实时嵌入式系统的应答时间限定在毫秒级或更低,需要在高级语言中嵌入低级语言编程实现。
        (2)嵌入式系统的可靠性和安全性。嵌入式计算机系统的失效带来的可能是个人娱乐系统故障的微小损失,可能是铁路信号失效的巨额经济损失,也可能是战略武器控制等经济损失以及重大的社会政治影响等。所以在某种设计缺陷被诱发后,对于不同的系统需要采取不同的策略,例如对具有重大影响的系统,要求计算机或计算机软件对设计缺陷、制造缺陷等失效采取“永不放弃”的安全性设计技术,将损失控制在可接受的范围内。在有人为输入情况下,嵌入式系统还需考虑最大可能地减少人为失误所引起的系统失效。这些算法或机制可以是输入有效性合理性检查、硬件容错、软件容错、错误后的系统缓慢降级、系统进入安全模式等。
        (3)嵌入式软件的复杂性。软件复杂度取决于问题规模和复杂度。简单问题的软件可由个人完成,甚至可以进行软件正确性证明;即使过程中更换人员,花费少许时间就可掌握和维护。但如汽车控制、飞机控制等大型复杂软件,其需要根据复杂的外部输入、按照多变量物理规律和人们的预期,实现预定的功能。软件需要根据系统的外部事件及其组合,考虑各种处理、逻辑、时序、边界、超出边界的鲁棒性等进行详细算法和策略研究。还需要考虑如安全性、可靠性、维护性等质量要求。更困难的是大规模软件需要团队联合定义、并行开发、持续维护,同时考虑处理平台限制条件。
 
       实时操作系统
        实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。为了提高系统的响应时间,对随机发生的外部事件应及时做出响应并对其进行处理。
        实时系统分为实时控制系统和实时信息处理系统。实时控制系统主要用于生产过程的自动控制,例如数据自动采集、武器控制、火炮自动控制、飞机自动驾驶和导弹的制导系统等。实时信息处理系统主要用于实时信息处理,例如飞机订票系统、情报检索系统等。实时系统与分时系统除了应用的环境不同,主要有以下三点区别:
        (1)系统的设计目标不同。分时系统是设计成一个多用户的通用系统,交互能力强;而实时系统大多是专用系统。
        (2)交互性的强弱不同。分时系统是多用户的通用系统,交互能力强;而实时系统是专用系统,仅允许操作并访问有限的专用程序,不能随便修改,且交互能力差。
        (3)响应时间的敏感程度不同。分时系统是以用户能接收的等待时间为系统的设计依据,而实时系统是以被测物体所能接受的延迟为系统设计依据。因此,实时系统对响应时间的敏感程度更强。
 
       总体设计
        总体设计也被称为概要设计,是系统开发过程中关键的一步。系统的质量及一些整体特性基本上是由这一步的成果所决定的。总体设计的主要任务是完成对系统总体结构和基本框架的设计。系统总体结构设计包括两方面的内容,系统总体布局设计和系统模块化结构设计。
        模块化设计的工作任务包括如下内容。
        .按需求和设计原则将系统划分为若干功能模块。
        .决定每个模块的具体功能和职责。
        .分析和确定模块间的调用关系。
        .确定模块间的信息传递。
        系统总体布局方案包括系统网络拓扑结构设计和系统资源配置设计方案。
   题号导航      2014年上半年 系统分析师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第3题    在手机中做本题