信息安全系统设计基础期中学习总结

重难点知识梳理:

                       

 

 

 

 

 

课本大章

第一章 计算机系统漫游

信息=+上下文

第二章 信息的表示和处理

第二章整体即为进制转换,对于无符号数与有符号数之间的转换,以及OP操作,本质而言为模运算。

第三章 程序的机器级表示

汇编中循环的实现:

1.do-while循环

通用形式:

do
  body-statement
  while(test-expr);

循环体body-statement至少执行一次。

可以翻译成:

loop
  body-statement
  t = test-expr;
  if(t)
          goto loop;

即先执行循环体语句,再执行判断。

2.while循环

通用形式:

while (test-expr)
  body-statement

GCC的方法是,使用条件分支,表示省略循环体的第一次执行:

if(test-expr
  goto done;do
          body-statement
          while(test-expr);done:

接下来:

t = test-expr;if(!t)
  goto done:
loop
  body-statement
  t = test-expr;
  if(t)
          goto loop;done:

归根究底,还是要把循环改成do-while的样子,然后用goto翻译。

栈的操作:

对于一个栈首先进行栈的建立:push %ebp;   mov  %esp,%ebp

然后进行大小进行申请:sub  $xx,%esp     ,紧接着进行数据的存储

当进行调用时保存返回地址,即下一条指令的地址,调用call指令

即一个函数的栈帧。整体而言与c语言中函数的调用极其相似。

第四章 处理器体系结构

第四章整体总结见难点梳理。

第六章存储器层次结构

局部性原理:

  • 时间局部性
  • 空间局部性

存储器层次结构每层存储设备都是下一层的缓存

缓存不命中的种类

(1)强制性不命中/冷不命中

即第k层的缓存是空的(称为冷缓存),对任何数据对象的访问都不会命中。

(2)冲突不命中

由于一个放置策略:将第k+1层的某个块限制放置在第k层块的一个小的子集中,这就会导致缓存没有满,但是那个对应的块满了,就会不命中。

(3)容量不命中

当工作集的大小超过缓存的大小时,缓存会经历容量不命中,就是说缓存太小了,不能处理这个工作集。

高速缓存存储器

高速缓存是一个高速缓存组的数组,它的结构可以用元组(S,E,B,m)来描述:

S:这个数组中有S=2^s个高速缓存组E:每个组包含E个高速缓存行
B:每个行是由一个B=2^b字节的数据块组成的m:每个存储器地址有m位,形成M=2^m个不同的地址

除此之外还有标记位和有效位:

有效位:每个行有一个有效位,指明这个行是否包含有意义的信息
标记位:t=m-(b+s)个,唯一的标识存储在这个高速缓存行中的块
组索引位:s
块偏移位:b

总结:

   对于这门课程来说,我觉得知识点的联系非常重要。每学完一个章节,要进行一下复习,善于总结每个章节之间的联系,有助于我们更好地理解和学习这门课程。比如第三章和第四章,对于函数栈桢的每条指令,我们联系一下4.3节,各个指令的具体作用,有助于我们更好的理解%esp,%ebp的具体操作,使我们更好的理解栈桢的使用。

posted @ 2015-11-01 19:54  20135302魏静静  阅读(191)  评论(0编辑  收藏  举报