推荐等级:
发布时间: 2021-12-14 07:43
扫码用手机做题
阅读以下关于数据管理的方案设计,在答题纸上回答问题1至问题3。
【说明】
互联网公司因业务发展要建立网上平台为用户提供一个对网络文化产品进行评论 (小说,电影等)交流的平台,该平台的部分功能如下
(a)用户帖子的评论计数器
(b)支持粉丝列表功能
(c)支持标签管理
(d )支持共同好友功能
(e)提供排名功能
(f)用户的信息结构化存储
(g)提供好友信息的发布/订阅功能。
该系统在性能上需要考虑高性能,并发,以支持大量的用户同时访问,经过考虑,在数据管理上,决定采用Redis+数据库的解决方案。
【问题1】
Recdis支持丰富的类型,请选择题干描述的(a)-(g)功能选项。填入表4-1中(1)-(5)空白处。
【问题2】
缓存中存储当前的热点数据Redis为每个key值都设置了过期时间,以提高缓存命中率,为了消除非热点数据Redis选择了定期删除加惰性删除策略。如果该策略失效Redis内存使用率会越来越高,一般采用内存淘汰机制来解决。 请用100字以内的文字,简要描述该策略的失效场景,并给出三种内存淘汰机制。
本题解析:
问题1
(1)a (2)b (3) c d (4)f (5)e
问题2
由于redis定期删除是周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度,不可能扫描清除掉所有过期的key并删除,而惰性策略就是在客户端访问这个key的时候,对过期时间进行检查,如果过期了就立即删除。如果一些key定期删除没有抽取到,惰性删除也未触发,这样redis的内存占用会越来越高,此时就需要内存淘汰机制。
常用的内存淘汰机制:
(1)volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。
(2)volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。
(3)volatile-random:从已设置过期时间的数据集中任意选择数据淘汰。
(4)volatile-lfu:从已设置过期时间的数据集挑选使用频率最低的数据淘汰。
(5)allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
(6)allkeys-lfu:从数据集中挑选使用频率最低的数据淘汰。
(7)allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
(8)no-enviction(驱逐):禁止驱逐数据,这也是默认策略。
(任选其中三种)
某公司拟开发一套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统的重要功能包括代码编辑、语法高亮显示、代码编译、系统调试、代码仓库管理等,在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能。
b)在正常负载情况下,系统应该在0.2s内对用户的界面操作请求进行响应
c)系统应该具备完善的安全防护措措施,能够对黑客的攻击行为进行检测和防御
d)系统主站点断电后应在3s内将请求重定向到备用站点
e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符
f)系统宕机后,需要在15s内发现错误,并启用备用系统
g)在正常负载情况下,户的代码提交请求应在0.5s内完成
h)系统支持硬件设备灵活扩容,应保证在2人天内完成
i)系统需要针对代码仓库的所有操作进行详细记录;便于后期查阅与审计
j)更改系统web界面风格需要在4人天内完成
k)系统本身需要提供远程调试接口,支持开发团队进行远程排错
在对系统需求质量属性和架构特性进行分析的基础上,该公司的系统架构师给出了两种方案,分别是管道-过滤器和仓库风格。
【问题1】(13分)
请问该需求应该采用哪一种风格。表1-1是对这两种风格分别从数据处理方式、系统拓展方式和处理性能三个方面进行了比较,请填写表1-1中(1)~(4)处的空白。
问题2】(12分)
1、请分析题干中的需求描述,填写图1-2中(1)~(6)处的空白。
本题解析:
【问题1】
1.应该采用仓库风格。(5分)
2.表(1)-(4)空的空白分别为:(8分)
(1)文件或模型驱动机制,处理流程事先不确定,交互性强
(2)数据与处理紧耦合,以接口适配方式实现扩展
(3)中央系统构件体现系统状态,系统执行没有确定的顺序,效能调低?
(4)共享中心数据,加载共享数据,性能调高?
【问题2】(12分)
(1)安全性
(2)可修改性
(3)g
(4)i
(5)f
(6)j
某软件公司承担了某项国家重点项目的研制工作,任务重点是参考国外汽车电子发展趋势,开发某汽车公司的企业汽车电子基础软件的架构,逐步实现汽车企业未来技术发展规划。
该软件公司接收此项任务后,调动全体技术人员深入收集国外相关技术资料,经过多方调研和分析,公司提出遵照国际组织最新推出的AUTOSAR规范,按统筹规划、分步骤实施的原则,实现汽车公司的基础软件架构设计。图3-1给出了AUTOSAR规范所定义的工作包,图中灰色部分代表本项目工作所包含的内容,即软件架构和基础软件。
图3-1 AUTOSAR定义的工作包
【问题1】(7分)
AUTOSAR规范中要求,汽车电子软件开发流程应尽量满足并发、可多次迭代的特性。为了定义汽车电子的软件开发过程,公司李工和王工分别提出了两种软件开发流程,其开发流程见图3-2和3-3(图中ECU是指汽车电子中的电子控制单元)。请说明李工和王工谁定义的流程更符合AUTOSAR的规定,并说明理由。
图3-2 李工设计的流程
图3-3 王工设计的流程
【问题2】(10分)
图3-1中的II-1.1.1项中定义了软件架构和操作系统的要求,图3-4是满足AUTOSAR定义的操作系统各功能模块的层次结构,请说明(1)~(5)箭头所标的具体操作含义。
图3-4 AUTOSAR定义的操作系统结构
【问题3】(8分)
AUTOSAR是一种开放式架构,用150字以内的文字,说明采用AUTOSAR架构的主要优点,并说明汽车电子ECU覆盖汽车的哪三个领域。
本题解析:
【问题1】
李工设计的流程符合AUTOSAR要求,理由是:
李工定义的流程是将软件组件描述、系统描述和ECU资源描述同时定义,而王工定义的流程仅仅只做系统描述;
王工定义的流程没有考虑软件组件的描述,只是简单将软件组件作为第4步被集成;
李工定义的ECU软件开发流程的优势是明确了顶层定义阶段,并行度高,迭代清晰。
【问题2】
(1)操作系统的警报管理发现ECU系统出错时,启动错误处理程序;
(2)错误处理程序将具体动作交由进程管理完成对发生错误的任务进行处理;
(3)错误处理程序产生一个错误事件;
(4)任务控制块处理程序调用资源管理功能,实现硬件资源重分配;
(5)任务控制块处理程序通知事件管理,对错误事件进行应答。
【问题3】
采用AUTOSAR开放式架构的优点是:
(1)可以有效支持多厂家汽车电子基础软件的研制;
(2)有利于软件的重用,可根据不同的ECU结构,通过数据配置,自动生成各种ECU软件组件;
(3)AUTOSAR定义的软件框架,支持了汽车电子软件的全生存周期,包括构架、开发、测试、验证、授权、版本和接口;
AUTOSAR规范覆盖整个汽车电子的三大领域:动力、底盘、车身。
某软件公司开发一项基于数据流的软件,其系统的主要功能是对输入的数据进行多次分析、处理和加工,生成需要的输出数据。需求方对该系统的软件可靠性要求很高,要求系统能够长时间无故障运行。该公司将该系统设计交给王工负责。王工给出该系统的模块示意图如图5-1所示。王工解释:只要各个模块的可靠度足够高,失效率足够低,则整个软件系统的可靠性是有保证的。
图5-1 王工建议的软件系统模块示意图
李工对王工的方案提出了异议。李工认为王工的说法有两个问题:第一,即使每个模块的可靠度足够高,假设各个模块的可靠度均为0.99,但是整个软件系统模块之间全部采用串联,则整个软件系统的可靠度为0.994=0.96,即整个软件系统的可靠度下降明显;第二,软件系统模块全部采用串联结构,一旦某个模块失效,则意味着整个软件系统失效。
李工认为,应该在软件系统中采用冗余技术中的动态冗余或者软件容错的N版本程序设计技术,对容易失效或者非常重要的模块进行冗余设计,将模块之间的串联结构部分变为并联结构,来提高整个软件系统的可靠性。同时,李工给出了采用动态冗余技术后的软件系统模块示意图,如图5-2所示。
图5-2 李工建议的系统模块示意图
刘工建议,李工方案中M1和M4模块没有采用容错设计,但M1和M4发生故障有可能导致严重后果。因此,可以在M1和M4模块设计上采用检错技术,在软件出现故障后能及时发现并报警,提醒维护人员进行处理。
注:假设各个模块的可靠度均为0.99
【问题1】(4分)
在系统可靠性中,可靠度和失效率是两个非常关键的指标,请分别解释其含义。
【问题2】(13分)
请解释李工提出的动态冗余和N版本程序设计技术,给出图5-1中模块M2采用图5-2动态冗余技术后的可靠度。
请给出采用李工设计方案后整个系统可靠度的计算方法,并计算结果。
【问题3】(8分)
请给出检错技术的优缺点,并说明检测技术常见的实现方式和处理方式。
本题解析:
【问题1】
可靠度就是系统在规定的条件下、规定的时间内不发生失效的概率。
失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。
【问题2】
动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。
N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。
M2采用动态冗余后的可靠度为:
R = 1 -(1-0.99)3 =0.999999
李工给出的方案同时采用了串联和并联方式,其计算方法为首先计算出中间M2和M3两个并联系统的可靠度,再按照串联系统的计算方法计算出整个系统的可靠度。
R = 0.99×0.999999×0.999999× 0.99 = 0.98
【问题3】
检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。
检错技术常见的实现方式:最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选用。
检错技术的处理方式,大多数都采用“查处故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。
某公司拟开发一个商业情报处理系统,使公司能够及时针对市场环境的变化及时调整发展战略,以获取最大的商业利益。项目组经过讨论,决定采用结构化分析和设计方法。在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模,项目组成员分别给出了自己的设计思路:
(1)小张提出先构建系统流程图(System Flowcharts),以便更精确地反映系统的业务处理过程及数据的输入和输出;
(2)小李提出先构建系统数据流图(Data Flow Diagrams),来展现系统的处理过程和定义业务功能边界,并给出了情报分类子系统的0层和1层数据流图,后者如图2-1所示。
图2-1 情报分类子系统的1层数据流图
项目组经讨论确定以数据流图作为本阶段的建模手段。工程师老王详细说明了流程图和数据流图之间的区别与联系,并指出了图2-1的数据流图中存在的错误。
【问题1】(11分)
流程图和数据流图是软件系统分析设计中常用的两种手段,请用300字以内文字简要说明流程图与数据流图的含义及其区别,并说明项目组为何确定采用数据流图作为建模手段。
【问题2】(8分)
请分析指出图2-1所示的数据流图中存在的错误及其原因,并针对图2-1的1层数据流图绘制出情报分类子系统的0层数据流图。
【问题3】(6分)
高质量的数据流图是可读的、内部一致的并能够准确表示系统需求。请用300字以内文字说明在设计高质量的数据流图时应考虑的三个原则。
本题解析:
【问题1】
数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。
流程图以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。
两者的区别主要包括:
(1)数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。
(2)数据流图展现系统的数据流;流程图展现系统的控制流。
(3)数据流图展现全局的处理过程,过程之间遵循不同的计时标准;流程图中处理过程遵循一致的计时标准。
(4)数据流图适用于系统分析中的逻辑建模阶段;流程图适用于系统设计中的物理模阶段。
【问题2】
如图所示的数据流图中存在的错误有以下4种:
(1)“分类训练”加工:只有输入没有输出,产生数据黑洞;
(2)“分类处理”加工:有输出没有输入,无中生有;
(3)“规则文件”数据流:外部实体没有经过加工处理,直接到数据存储;
(4)“配置信息”数据流:外部实体之间没有加工处理,存在直接数据流。
【问题3】
高质量数据流图设计时应考虑的三个原则:
(1)复杂性最小化原则。DFD分层结构就是把信息划分为小的且相对独立的一大批子集例子,这样就可以单独考查每一个DFD。如果要了解某个过程更加详的信息,可以跳转到该过程的下一层;如果要知道一个DFD如何与其他DFD相关联,可以跳转到上一层的DFD进行考查。
(2)接口最小化原则。接口最小化是复杂性最小化的一种具体规则。在设计模式时,应使得模型中各个元素之间的接口数或连接数最小化。
(3)数据流一致性原则。一个过程和它的过程分解在数据流内容中是否有差别 是否存在有数据流出但没有相应的数据流入的加工 是否存在有数据流入但没有相应的数据流出的加工
RMO是一家运动服装制造销售公司,计划在五年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制订战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统CRSS。RMO公司决定由其技术部成立专门的项目组负责CRSS的开发和维护工作。
项目组在仔细调研和分析了系统需求的基础上,确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘工建议采用分布式的数据架构,并提出在开发中通过“局部数据库+缓存”的读写分离结构实现,具有较好的运行性能和可扩展性。
项目组经过集体讨论,考虑到公司的未来发展规划,最终采用了刘工的建议。
【问题1】(8分)
请用300字以内的文字,说明张工和刘工提出的数据架构的基本思想。
【问题2】(13分)
在刘工建议的基础上,为了避免CRSS系统的单点故障,请用200字以内文字简要说明如何建立CRSS的数据库系统;对于数据的读取、添加、更改和删除操作分别如何实现。
【问题3】(4分)
RMO公司销售区域将在未来五年大面积扩展,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性。请分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性。
本题解析:
【问题1】
(1)张工提出的集中式数据架构是由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,它被物理地定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。
(2)刘工提出的分布式数据架构使用多个计算机系统上的多个局部数据库系统构成,数据可以在多个不同的局部数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。
【问题2】
读写分离架构利用了数据库的复制技术,将数据的读和写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。
CRSS的分布式数据库系统需要由多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。局部数据库负责数据的写入,多个热备份数据库系统用以解决单点故障的问题,数据缓存负责为应用提供所读取的数据。
(1)读取数据:应用访问缓存,如果命中则返回,否则从局部数据库系统中读取数据并将数据加载到缓存后返回。
(2)添加数据:采用延迟加载策略,应用将数据直接写入局部数据库。
(3)更改数据:应用更改局部数据库中的数据,将缓存中的数据标记为失效。
(4)删除数据:应用删除局部数据库中的数据,将缓存中的数据标记为失效。
【问题3】
张工提出的集中式数据架构通过向上扩展(Scale Up)提升系统的可扩展性。具体的实现方式包括硬件扩容(增加CPU数量、内存容量、磁盘数量)和硬件升级(更换为高端主机或高速磁盘等)。
刘工提出的分布式数据架构通过向外扩展(Scale Out)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。
某公司欲针对Linux操作系统开发一个KWIC(Key Word in Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其他方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其他的方法实现这一功能。
在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。
【问题1】(7分)
在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。
【问题2】(12分)
请完成表1-1中的空白部分(用+表示优、-表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。
表1-1 王工与李工的架构风格评价
【问题3】(6分)
图1-1是李工给出的架构设计示意图,请将恰当的功能描述填入图中的(1)~(4)。
图1-1 李工给出的架构示意图
本题解析:
【问题1】
软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。
管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。
【问题2】
根据题干描述:“用户后续还有可能采用其它方式展示帮助内容”,因此KWIC系统对功能变更要求较高;
根据题干描述:“…,后续还将采用其它的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高。
KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高。
KWIC系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。
综合上述分析,可以看出应该采用李工提出的管道-过滤器架构风格。
【问题3】
某公司拟开发一个市场策略跟踪与分析系统,根据互联网上用户对公司产品信息的访问情况和产品实际销售情况来追踪各种市场策略的效果。其中互联网上用户对公司产品信息的访问情况需要借助两种不同的第三方Web分析软件进行数据采集与统计,并生成不同格式的数据报表;公司产品的实际销售情况则需要通过各个分公司的产品销售电子表格或数据库进行采集与汇总。得到相关数据后,还要对数据进行分析与统计,并通过浏览器以在线的方式向市场策略制定者展示最终的市场策略效果。
在对市场策略跟踪与分析系统的架构进行设计时,公司的架构师王工提出采用面向服务的系统架构,首先将各种待集成的第三方软件和异构数据源统一进行包装,然后将数据访问功能以标准Web服务接口的形式对外暴露,从而支持系统进行数据的分析与处理,前端则采CSS等技术实现浏览器数据的渲染与展示。架构师李工则认为该系统的核心在于数据的定位、汇聚与转换,更适合采用面向资源的架构,即首先为每种数据元素确定地址,然后将各种数据格式统一转换为JSON格式,通过对JSON数据的组合支持数据的分析与处理任务,处理结果经过渲染后在浏览器的环境中进行展示。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了李工的方案。
【问题1】(7分)
请根据题干描述,对市场策略跟踪与分析系统的数据源特征与数据操作方式进行分析,完成表4-1中的(1)~(3),并用200字以内的文字说明李工方案的优点。
表4-1 系统数据源特征与数据操作方式
【问题2】(12分)
请从数据获取方式、数据交互方式和数据访问的上下文无关性三个方面对王工和李工的方案进行比较,并用500字以内的文字说明为什么没有采用王工的方案。
【问题3】(6分)
表现层状态转换(REST)是面向资源架构的核心思想,请用200字以内的文字解释什么是REST,并指出在REST中将哪三种关注点进行分离。
本题解析:
【问题1】
通过对系统的数据源特征和数据操作方式进行分析可以看出,待集成的数据均为持久型数据(文件或数据库),系统对数据的访问均为只读非实时性的。针对上述应用特征,李工提出的面向资源的架构方式以对数据资源的只读访问为核心,通过数据唯一标识直接对各种数据进行访问与获取,系统架构清晰、实现简单、效率较高。
【问题2】
从数据获取方式看,王工的方案需要将现有的多个系统和异构的数据源包装为服务,采用Web服务暴露数据接口,客户端需要通过服务调用获取数据,这种方法工作量大,复杂度较高。李工的方案则绕开了复杂的功能封装,只需要明确数据的位置与标识,通过特定的网络协议直接使用标识定位并获取数据,与王工的方案相比工作量小,实现简单。
从数据交互方式看,王工的方案采用远程过程调用和异步XML消息等模式实现数据交互,这种方式适合于系统之间功能调用时进行的少量数据传输,而在进行单纯的数据访问时效率不高,稳定性也较差。李工的方案则以数据资源为核心,在对数据资源进行标识的基础上,通过标识符直接对数据资源进行访问与交互,实现简单且效率较高。
从数据访问的上下文无关性看,王工的方案中数据访问是上下文有关的,具体表现在每次客户端进行数据请求都需要附加唯一的请求标识,并且服务端需要区分不同的客户端请求,效率较低。李工的方案中数据访问是上下文无关的,客户端通过全局唯一的统一资源标识符(URI)请求对应的数据资源,服务端不需要区分不同的客户端请求。
【问题3】
REST从资源的角度来定义整个网络系统结构,分布在各处的资源由统一资源标识符(URI)确定,客户端应用程序通过URI获取资源的表现,并通过获得资源表现使得其状态发生改变。
REST中将资源、资源的表现和获取资源的动作三者进行分离。
某公司承接了某机载嵌入式系统的研制任务。该机载嵌入式系统由数据处理模块、大容量模块、信号处理模块、数据交换模块和电源模块等组成。数据处理模块有2个,分别完成数据融合和导航通讯任务;大容量模块主要功能是存储系统数据,同时要记录信号处理模块、数据处理模块的自检测、维护数据,向数据处理模块提供地图数据;信号处理模块的处理器为专用的DSP,接收红外、雷达等前端传感器数据并进行处理,将处理后的有效数据(数据带宽较大)发送给数据处理模块;数据交换模块主要负责系统的数据交换;电源模块主要负责给其他模块供电,电源模块上没有软件。
要求该机载嵌入式系统符合综合化、模块化的设计思想,并考虑系统在生命周期中的可靠性和安全性,以及硬件的可扩展性和软件可升级性,还要求系统通讯延迟小,支持多模块上的应用任务同步。
【问题1】(14分)
在设计系统架构时,李工提出了如图3-1所示的系统架构,即模块间的网络通信采用光纤通信(Fiber Channel,FC)技术,而王工认为应采用VME总线架构,如图3-2所示。王工的理由是公司多年来基于VME总线技术设计了多个产品,技术成熟,且费用较小。但公司经过评审后,决定采用李工的方案。
请用500字以内的文字,说明VME和FC各自的特点,并针对机载嵌入式系统的要求,指出公司采用李工方案的理由。
【问题2】(5分)
公司依据ARINC653标准,设计了满足ARINC653标准的操作系统,该操作系统对系统中可能发生的模块级、分区级和进程级的错误进行处理,实现了如图3-3所示的系统健康监控机制,请分别将备选答案中的各种错误和健康监控部件填入图3-3中的(1)~(5)。
备选答案:分区健康监控、分区初始化阶段出现的分区配置错误、分区切换时出现的错误、应用进程错误、进程健康监控。
注:ARINC653标准(Avionics Application Software Standard Interface)是美国航空电子工程协会AEEC于1997年为航空民用飞机的模块化综合航空电子系统定义的应用程序接口标准,该标准提出了分区(Partition)的概念以及健康监控(health monitoring)机制。分区是应用的一种功能划分,也是操作系统调度的基本单位,严格按预先分配的时间片调度。分区间具有时空隔离特点。分区内的每一执行单元称为进程。
【问题3】(6分)
为了实现满足ARINC653标准的操作系统的时空分区隔离机制,项目组选择了PowerPC作为数据处理模块的处理器(CPU)。这样,当一个分区出现故障时,不会蔓延到模块中同一处理器的其他分区。请用500字以内的文字,说明如何采用PowerPC实现应用与内核以及诸应用之间的隔离和保护。
本题解析:
【问题1】
1、VME总线采用存储映射方式,多主机仲裁机制,同一时刻由单一主机控制,同时仲裁机制为菊花链方式。针对本系统要求,采用VME方案存在如下问题:
(1)当多主机设备仲裁时,按菊花链的连接次序一个主机处理完成后,才能将控制权交给另一主机控制总线,导致任务执行延时大,不能满足“系统通讯延迟小”以及“支持多模块上的应用任务同步”的要求。
(2)VME总线方式限制了可扩展性。与FC相比,VME总线实时性差,带宽低。
2、FC采用消息包交换机制,支持广播和组播。针对本系统要求,采用FC方案有以下优点:
(1)由于采用消息包交换机制,支持广播和组播,任务执行并发性好,能满足“系统通讯延迟小”以及“支持多模块上的应用任务同步”的要求。
(2)FC的误码率低,可靠性高。与 VME比较,FC实时性好,带宽高。
(3)允许在同一接口上传输多种不同的协议,对上层应用实现提供了便利。
(4)FC采用消息机制,FC可扩展性好,如模块较多可采用多个FC网络交换模块级联。
(5)FC的传输距离远,当与外部其他设备相连时,比较方便。
(6)系统采用统一的FC网络代替了VME底板总线,降低总线驱动的功耗,简化了底板。
【问题2】
【问题3】
采用PowerPC实现系统隔离和保护的两种机制是:
第一种是内存管理机制(MMU)。MMU能够实现逻辑地址到物理地址的转化,并且对访问权进行控制,既可以保护系统内核不受应用软件有意或无意的破坏,也可有效防止各用用软件之间的互相破坏。
第二种是TRAP系统调用机制。操作系统为实现对内核以及应用之间的保护,提供了用户态和系统态两种运行形态。操作系统内核在系统态运行,因此用户态的应用不能直接调用系统内核提供的功能接口,必须通过TRAP系统调用的方式进行。因此可以实现应用与内核之间的隔离与保护。
某软件公司成立项目组为某高校开发一套教职工信息管理系统。与教职工信息相关的数据需求和处理需求如下:
(1)数据需求:在教职工信息中能够存储学校所有在职的教工和职工信息,包括姓名、所属部门、出生年月、工资编号、工资额和缴税信息;部门信息中包括部门编号、部门名称、部门人数和办公地点信息。
(2)处理需求:能够根据编制内或外聘教职工的工资编号分别查询其相关信息;每个月的月底统一核发工资,要求系统能够以最快速度查询出教工或者职工所在部门名称、实发工资金额;由于学校人员相对稳定,所以数据变化及维护工作量很少。
项目组王工和李工针对上述应用需求分别给出了所设计的数据模型(如图2-1和图2-2所示)。王工遵循数据库设计过程,按照第三范式对数据进行优化和调整,所设计的数据模型简单且基本没有数据冗余;而李工设计的数据模型中存在大量数据冗余。
图2-1 王工设计的数据模型
项目组经过分析和讨论,特别是针对数据处理中对数据访问效率的需求,最终选择了李工给出的数据模型设计方案。
【问题1】(9分)
请用300字以内的文字,说明什么是数据库建模中的反规范化技术,指出采用反规范化技术能获得哪些益处,可能带来哪些问题。
【问题2】(8分)
请简要叙述常见的反规范化技术有哪些。
【问题3】(8分)
请分析李工是如何应用反规范化技术来满足教职工信息管理需求的。
本题解析:
【问题1】
规范化设计后,数据库设计者希望牺牲部分规范化来提高性能,这种从规范化设计的回退方法称为反规范化技术。
采用反规范化技术的益处:降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,能够提高查询效率。
可能带来的问题:数据的重复存储,浪费了磁盘空间;可能出现数据的完整性问题,为了保障数据的一致性,增加了数据维护的复杂性,会降低修改速度。
【问题2】
(1)增加冗余列:在多个表中保留相同的列,通过增加数据冗余减少或避免查询时的连接操作。
(2)增加派生列:在表中增加可以由本表或其他表中数据计算生成的列,减少查询时的连接操作并避免计算或使用集合函数。
(3)重新组表:如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
(4)水平分割表:根据一列或多列数据的值,把数据放到多个独立的表中,主要用于表数据规模很大、表中数据相对独立或数据需要存放到多个介质上时使用。
(5)垂直分割表:对表进行分割,将主键与部分列放到一个表中,主键与其他列放到另一个表中,在查询时减少I/O次数。
【问题3】
在教职工信息管理系统的需求中,能够根据编制内或外聘教职工的工资编号分别查询其相关信息,数据查询要求有很高的处理效率。李工所设计的数据模型中采用了三种反规范化技术:
(1)增加冗余列:增加“部门名称”列,消除了数据查询中“教职工信息”表和“部门信息”表之间的连接;
(2)增加派生列:增加“实发工资”列,消除了实发工资的计算过程;
(3)水平分割表:将教职工信息表分割为“编制内教职工信息”表和“外聘教职工信息”表,减少了数据查询的范围。
试卷分类:高级系统规划与管理师
练习次数:66次
试卷分类:中级系统集成项目管理工程师
练习次数:81次
试卷分类:中级软件设计师
练习次数:78次
试卷分类:中级网络工程师
练习次数:95次
试卷分类:初级网络管理员
练习次数:95次
试卷分类:中级数据库系统工程师
练习次数:86次
试卷分类:中级软件评测师
练习次数:74次
试卷分类:中级信息安全工程师
练习次数:67次
试卷分类:中级信息安全工程师
练习次数:64次
试卷分类:中级软件设计师
练习次数:73次