系统架构设计师案例分析试题加答案5.docx
《系统架构设计师案例分析试题加答案5.docx》由会员分享,可在线阅读,更多相关《系统架构设计师案例分析试题加答案5.docx(9页珍藏版)》请在冰豆网上搜索。
系统架构设计师案例分析试题加答案5
2017年系统架构设计师案例分析试题加答案(5)
系统架构设计师考试属于软考中的一项高级资格考试,考试分综合知识、案例分析和论文3个科目。
下午的案例分析是考试的一大难点,希赛小编为大家整理了几道系统架构设计师案例分析试题,希望对大家有所帮助。
阅读以下关于嵌入式软件体系架构的叙述,在答题纸上回答问题。
希赛公司承担了一项宇航嵌入式设备的研制任务。
本项目除对硬件设备环境有很高的要求外,还要求支持以下功能:
①设备由多个处理机模块组成,需要时外场可快速更换(即LRM结构);②应用软件应与硬件无关,便于软硬件的升级:
③由于宇航嵌入式设备中要支持不同功能,系统应支持完成不同功能任务间的数据隔离;④宇航设备可靠性要求高,系统要有故障处理能力。
公司在接到此项任务后,进行了反复论证,提出三层栈(TLS)软件总体架构,如图所示,并将软件设计工作交给了李工,要求其在三周内完成软件总体设计工作,给出总体设计方案。
13、用150字以内的文字,说明公司制定的TLS软件架构的层次特点,并针对上述功能需求①~④,说明架构中各层的内涵。
14、在TLS软件架构的基础上,关于选择哪种类型的嵌入式操作系统问题,李工与总工程师发生了严重分歧。
李工认为,宇航系统是实时系统,操作系统的处理时间越快越好,隔离意味着以时间作代价,没有必要,建议选择类似于VxWorks5.5的操作系统;总工程师认为,应用软件间隔离是宇航系统安全性要求,宇航系统在选择操作系统时必须考虑这一点,建议选择类似于Linux的操作系统。
请说明两种操作系统的主要差异,完成表中的空白部分,并针对本任务要求,用200字以内的文字说明你选择操作系统的类型和理由。
15、故障处理是宇航系统软件设计中极为重要的组成部分。
故障处理主要包括故障监视、故障定位、故障隔离和系统容错(重组)。
用150字以内的文字说明嵌入式系统中故障主要分哪几类?
并分别给出两种常用的故障滤波算法和容错算法。
阅读以下软件系统架构选择的问题,回答问题。
参考答案
13、TLS结构框架的主要特点如下。
①应用软件仅与操作系统服务相关,不直接操作硬件。
②操作系统通过模块支持原软件访问硬件,可与具体硬件无关。
③模块支持层将硬件抽象成标准操作。
④通过三层栈的划分可实现硬件的快速更改与升级,应用软件的升级不会引起硬件的变更。
TLS结构框架的各层内涵如下。
①应用层主要完成宇航设备的具体工作,由多个功能任务组成,各功能任务间的隔离由操作系统层实现。
②操作系统层实现应用软件与硬件的隔离,为应用软件提供更加丰富的计算机资源服务。
操作系统为应用软件提供标准的API接口(如POSIX),确保了应用软件的可升级性。
③模块支持层为操作系统管理硬件资源提供统一管理方法,用一种抽象的标准接口实现软件与硬件的无关性,达到硬件的升级要求,便于硬件的外场快速更换。
[解析]这是一道嵌入式系统架构试题,题目以宇航嵌入式设备的研制为背景。
考查软件需求分析、软件架构、框架设计、可靠性设计以及与嵌入式操作系统相关的一些知识。
题目所述的项目中提出了一种新型的架构TLS,由于是项目中提出的架构,大家必然对这种架构感觉比较陌生,但从图中,可以很明显地看到,架构是分层的结构。
这也就回到了我们熟悉的技术框架之内了。
要求说明“公司制定的TLS软件架构的层次特点”,这需要从层次型架构的特点以及题目已给出的说明两方面着手进行说明。
总的来说,层次型架构的特点有:
下层为上层提供服务,层次与层次之间有着良好的独立性,结合题目的说明,具体说明如下。
①应用软件仅与操作系统服务相关,不直接操作硬件。
②操作系统通过模块支持原软件访问硬件,可与具体硬件无关。
③模块支持层将硬件抽象成标准操作。
④通过三层栈的划分可实现硬件的快速更改与升级,应用软件的升级不会引起硬件的变更。
基于这种思想,TLS结构框架实现了宇航设备中软件功能服务,这样考生就可以完整地叙述各层软件的设计内涵如下。
①应用层主要完成宇航设备的具体工作,由多个功能任务组成,各功能任务间的隔离由操作系统层实现。
②操作系统层实现应用软件与硬件的隔离,为应用软件提供更加丰富的计算机资源服务。
操作系统为应用软件提供标准的API接口(如:
POSIX),确保了应用软件的可升级性。
③模块支持层为操作系统管理硬件资源提供统一管理方法,用一种抽象的标准接口实现软件与硬件的无关性,达到硬件的升级要求,便于硬件的外场快速更换。
14、两种操作系统的差异如表所示。
选择类似于Linux的嵌入式操作系统,理由如下。
①Linux操作系统是一种安全性较强的操作系统。
内核工作在系统态,应用软件工作在用户态,可以有效地防止应用软件对操作系统的破坏。
②Linux操作系统调度的最小单位是线程,线程归属于进程,进程具有自己独立的资源。
进程通过存储器管理部件(MMU)实现多功能应用间隔离。
③嵌入式Linux操作系统支持硬件抽象,可有效地实现TLS结构,并将硬件抽象与操作系统分离,可方便实现硬件的外场快速更换。
考查嵌入式操作系统的相关知识。
简单地说,实时系统可以看成对外部事件能够及时响应的系统。
这种系统最重要的特征是时间性,也就是实时性,实时系统的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这些结果的时间。
在现实世界中,并非所有的嵌入式系统都具有实时特性,所有的实时系统也不一定都是嵌入式的。
但这两种系统并不互相排斥,兼有这两种系统特性的系统称为实时嵌入式系统。
嵌入式操作系统(EmbeddedOperatingSystem,EOS)是指运行在嵌入式系统上,支持嵌入式应用程序的操作系统,是用于控制和管理嵌入式系统中的硬件和软件资源、提供系统服务的软件集合。
EOS是嵌入式软件的一个重要组成部分,它的出现提高了嵌入式软件开发的效率和应用软件的可移植性,有力地推动了嵌入式系统的发展。
①嵌入式操作系统的特点
与通用操作系统相比,嵌入式操作系统主要有以下特点。
·微型化:
嵌入式操作系统的运行平台不是通用计算机,而是嵌入式计算机系统。
这类系统一般没有大容量的内存,几乎没有外存,因此,嵌入式操作系统必须做得小巧,以尽量少占用系统资源。
为了提高系统的执行速度和系统的可靠性,嵌入式系统中的软件一般都固化在存储器芯片中,而不是存放在磁盘等载体中。
·代码质量高:
在大多数应用中,存储空间依然是宝贵的资源,这就要求程序代码的质量要高,代码要尽量精简。
·专业化:
嵌入式系统的硬件平台多种多样,处理器的更新速度快,每种处理器都是针对不同的应用领域而进行专门设计。
因此,嵌入式操作系统要有很好的适应性和移植性,还要支持多种开发平台。
·实时性强:
嵌入式系统广泛应用于过程控制、数据采集、通信、多媒体信息处理等要求实时响应的场合,因此实时性成为嵌入式操作系统的又一特点。
·可裁减、可配置:
应用的多样性要求嵌入式操作系统具有较强的适应能力,能够根据应用的特点和具体的要求进行灵活配置和合理裁减,以适应微型化和专业化的要求。
②嵌入式操作系统的分类
嵌入式操作系统的种类繁多,可以从不同角度对其进行分类。
从嵌入式操作系统的获得形式上,可以分为商业型和免费型两类。
·商业型。
商业型嵌入式操作系统一般功能稳定、可靠,有完善的技术支持、齐全的开发工具和售后服务。
如WindRiver公司的VxWorks、pSOS和Palm公司的PalmOS等。
但价格昂贵,用户通常得不到系统的源代码。
·免费型。
免费型嵌入式操作系统的优势在于价格方面,另外,应用系统开发者可以获得系统源代码,给开发带来了方便。
但免费型的操作系统功能简单、技术支持差、系统的稳定性也不够好。
典型的代表系统有嵌入式Linux、uC/OS等。
从嵌入式操作系统的实时性上,可以分为实时嵌入式操作系统和非实时嵌入式操作系统两类。
·实时嵌入式操作系统(Real-TimeEmbeddedOS,RTEOS)。
实时嵌入式操作系统支持实时系统工作,其首要任务是调度一切可利用资源,以满足对外部事件响应的实时时限,其次着眼于提高系统的使用效率。
实时嵌入式操作系统主要用在控制、通信等领域。
目前,大多数商业嵌入式操作系统都是实时操作系统。
·非实时嵌入式操作系统。
这类操作系统不特别关注单个任务响应时限,其平均性能、系统效率和资源利用率一般较高,适合于实时性要求不严格的消费类电子产品,如个人数字助理、机顶盒等。
③如何选择嵌入式操作系统
在选择嵌入式操作系统时,也需要做以下几方面的考虑。
·嵌入式操作系统的功能。
根据项目需要的嵌入式操作系统功能来选择嵌入式操作系统产品,要考虑系统支持嵌入式操作系统的全部功能还是部分功能,是否支持文件系统和人机界面,是实时系统还是分时系统,以及系统是否可裁减等因素。
·配套开发工具。
有些实时操作系统只支持该系统供应商的开发工具。
也就是说,还必须向嵌入式操作系统供应商获取编译器和调试器等;有些嵌入式操作系统使用广泛,且有第三方工具可用,因此,选择的余地比较大。
·嵌入式操作系统的可移植性。
嵌入式操作系统到硬件的移植是一个重要的问题,是整个系统能否按期完工的关键因素,因此,要选择那些可移植性程度高的嵌入式操作系统,从而避免嵌入式操作系统难以向硬件移植而带来的种种困难,以加速系统的开发进度。
·嵌入式操作系统的内存需求。
均衡考虑是否需要额外RAM或EEPROM来迎合嵌入式操作系统对内存的较大要求。
有些嵌入式操作系统对内存的要求是目标相关的,例如,Tornado/VxWorks等,开发人员能按照应用需求分配所需的资源,而不是为嵌入式操作系统分配资源。
·嵌入式操作系统附加软件包。
嵌入式操作系统是否包含所需的软件部件,例如,网络协议栈、文件系统和各种常用外设的驱动等。
·嵌入式操作系统的实时性如何。
有些嵌入式操作系统只能提供软实时性能,对于需要达到硬实时性能要求的系统就不适用;有些嵌入式操作系统既可满足软实时要求,也能满足硬实时要求,例如,MSWindowsCE2.0等。
·嵌入式操作系统的灵活性。
嵌入式操作系统是否具有可剪裁性,即能否根据实际需要进行系统功能的剪裁。
有些嵌入式操作系统具有较强的可剪裁性,例如,嵌入式Linux和ECos等。
④VxWorks和Linux的比较
VxWorks和Linux两个常见的嵌入式操作系统,其特点如表所示。
通过比较,显然选用类似于Linux的嵌入式操作系统适用本题要求。
理由包括以下三点。
①Linux操作系统是一种安全性较强的操作系统。
内核工作在系统态,应用软件工作在用户态(这点是系统安全性要求),可以有效防止应用软件对操作系统的破坏。
②Linux操作系统凋度的最小单位是线程,线程归属于进程,进程具有自己独立的资源。
进程通过存储器管理部件(MMU)实现多功能应用问隔离。
③嵌入式Linux操作系统支持硬什抽象,可有效地实现TLS结构,并将硬件抽象与操作系统分离,可方便实现硬件的外场快速更换。
15、①嵌入式系统中故障分为如下几种。
·硬件故障:
如CPU、存储器和定时器等。
·应用软件故障:
如数值越界、异常和超时等。
·操作系统故障:
如越权访问、死锁和资源枯竭等。
②滤波算法有如下几种。
·门限算法。
·递减算法。
·递增算法。
·周期滤波算法。
③容错算法有如下几种。
·N+1备份。
·冷备。
·温备。
·热备。
作为宇航系统的嵌入式设备,硬/软件故障是宇航系统最为关注的内容,根据宇航系统的特点和系统组成,故障一般分为三类,即硬件故障、应用软件故障和操作系统故障,在设计中,应考虑这三类故障的处理方法。
硬件故障一般包括CPU运算错误、存储器访问/越界错误、MMU配置错误、定时器计数错误和内总线错误等;应用软件故障一般包括计算越界、除0、溢出和超时等各种异常情况:
操作系统故障一般包括越权访问、死锁、资源枯竭、调度超时、配置越界和操作系统异常等。
一般情况下,宇航系统的故障分为瞬态故障和永久故障,瞬态故障是指偶然发生的错误,而永久故障是指发生后不可消失的错误。
在容错系统中,故障一般是由瞬态故障向永久故障转变,将鉴别瞬态故障和永久故障的算法称为滤波算法。
在嵌入式实时系统中,常用的滤波算法包括门限算法、递减算法、递增算法和周期滤波算法等。
故障鉴别的目的是实现宇航系统的容错与重构。
常用的容错算法是N+1备份,冷备、温备和热备。
N+1备份是指N个通用模块之一的任何一个模块发生故障后,将故障模块的任务迁移到备份模块运行:
冷备、温备和热备是三种备份方式,可根据宇航系统的总体备份时间或重要程度安排不同的备份算法。