2016年上半年软考选择题

'''

2019.5.13首更

'''

(1)

直接映射:一个内存地址能被映射到cache是固定的,就如每个人的停车位是固定分配好的,可以直接找到,缺点是:因为人多车少,很可能几个人争用同一个车位,导致cache淘汰换出频繁,需要频繁的从主存读取数据到cache,这个代价比较高

全相联映射:主存中的一个地址可被映射进任意cache,问题是:当寻找一个地址是否已经被cache时,需要遍历每一个cache来寻找,这个代价很高。就像停车位可以大家随便停一样,停的时候简单,找车的时候需要一个一个停车位的找了。

主存中任何一块都可以映射到Cache中的任何一块位置上。

全相联映射方式比较灵活,主存的各块可以映射到Cache的任一块中,Cache的利用率高,块冲突概率低,只要淘汰Cache中的某一块,即可调入主存的任一块。但是,由于Cache比较电路的设计和实现比较困难,这种方式只适合于小容量Cache采用。

组相联映射:组相联映射实际上是直接映射和全相联映射的折中方案

主存和Cache都分组,主存中一个组内的块数与Cache中的分组数相同,组间采用直接映射,组内采用全相联映射。也就是说,将Cache分成2^u组,每组包含2^v块,主存块存放到哪个组是固定的,至于存到该组哪一块则是灵活的。即主存的某块只能映射到Cache的特定组中的任意一块。主存的某块b与Cache的组k之间满足以下关系:k=b%(2^u).


(2)

逻辑左移=算数左移,右边统一添0 

逻辑右移,左边统一添0 

算数右移,左边添加的数和符号有关

e.g:1010101010,其中[]是添加的位

逻辑左移一位:010101010[0]

算数左移一位:010101010[0]

逻辑右移一位:[0]101010101

算数右移一位:[1]101010101

循环左移/右移:就是把数值变成二进制然后循环移动 例如 char c=0x49; 换成二进制也就是 0100 1001 循环右移一位是 1010 0100 循环左移一位是1001 0010


(3)

中间代码:是一种复杂性介于源程序语言和机器语言一种表示形式

好处中间代码与具体机器无关,对中间代码进行与机器无关的优化

形式:逆波兰记号,三元式,四元式,树形表示

 

 

符号表:

在编译程序中符号表用于存放语言程序中出现的有关标识符的属性信息,这些信息集中反映了标识符的语义特征属性。在词法分析及语法在分析过程中不断积累和更新表中的信息,并在词法分析到代码生成的各阶段,按各自的需要从表中获取不同的属性信息。不论编译策略是否分趟,符号表的作用和地位是完全一致的。


(4)


(4)

UML各种图

用例图;

  • 参与者可以是人或其他外界系统。
  • 参与者时用力的启动者,参与者处于用例的外部并且能够初始化一个用例并参与用例的执行过程,但它并不是系统的一部分。
  • 用例是一组动作序列(业务工作流程)的描述,系统执行该动作序列为系统的参与者产生一个可观察的结果。

 

2,组件图(http://www.360doc.com/content/17/0922/03/9824753_689086290.shtml

组件图又称为构建图,组件图包括组件,接口,以及各种关系。组件图显示组件以及它们之间的依赖关系

(3)配置图

配置图又称为部署图:描述系统的软件如何映射到将要运行它的硬件上,用来显示系统软件和硬件的物理架构。

 

3,时序图(序列图)

时序图显示多个对象之间的动态协作,重点是显示对象之间发送消息的时间顺序。时序图也显示对象之间的交互,即在系统执行时,某个制定时间点将发生的事情。时序图的一个用途是表示用例中的行为顺序,当实行一个用例行为时,时序图中的每一条消息对应了一个类操作或状态机中引起转换的触发事件。用时序图说明系统的动态视图。 

4,协作图(通信图)

协作图包括对象,链接,消息

5,活动图

用来描述事物或对象的活动变化流程

image

活动图的组成元素:

活动,动作流,分支与合并,分叉与汇合,泳道,对象流

 

 


(5)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值