2021-2022-1学期 20212424《网络空间安全专业导论》第三周学习总结

学习收获
一,第六章
6·1计算机操作:

计算机的定义:

能够存储,检索和处理数据的可编程电子设备。

可编程的(programmable)

存储(store)

检索(retrieve)

处理(process)

存储,检索和处理是计算机对数据能够执行的动作。

6·2机器语言:

机器语言(machine language):由计算机直接使用的二进制编码指令构成的语言。

虚拟机(virtual computer machine):为了模拟真实机器的重要特征而设计的假象机器。

*Pep/9的基本特性:

程序计数器(PC),包含下一条即将被执行的指令的地址。
指令寄存器(IR),包含正在被执行指令的一个副本。
累加器(A),用来存储数据和运算的结果。
Pep/9的CPU

Pep/9的存储器

Pep/9的指令格式:

指令说明符(instruction specifier)8位

操作数说明符(operand specifier)16位

操作代码(operation code)4位或8位操作码,寄存器,寻址模式说明符(addressing mode specifier)+指令的指令说明符部分

一些示例指令:

Pep/9的输入/输出:

遵循的设计原则是内存映射输入/输出(memory-mapped I/O)将输入设备与主存中特定的、固定的地址联系起来。在Pep/9中输入设备地址在FC15,输出设备在地址FC16。

模型:

将输入设备中的值载入累加器中,将字符载入累加器中,将累加器中的值存储到输出设备的地址中。使用ASCII字符集来表示字符,我们可以通过使用载入字节和存储字节的操作来实现Pep/9的输入和输出。
6·4汇编语言

汇编语言(assembly language):一种低级语言,用助记码表示特定计算机的机器语言指令。

汇编器(assembler):把汇编语言程序翻译成机器代码的程序。

Pep/9汇编语言:

操作数用0x和十六进制表示,接下来是逗号,最后是寻址模式(由字母i(立即寻址)或d(直接寻址)说明)。

汇编器指令(assembler directive):有时也称为伪操作(pseudo-operation),翻译程序时用的指令。

Pep/9汇编器忽视在分号后面的任何字符,这就允许我们在指令旁边添加注释(comment):为读者提供解释性的文字。

数字数据、分支、标签:

分支(branch):指出执行下一条指令的指令。

标签(label):对内存位置起的名字,可以将这个名字当作操作数。标签和它对应的地址会在代码清单后以符号表(symbol table)的形式进行展示。

打印错误信息的标签:BRLT指令被用来在累加器包含附属的时候进行跳转。在打印错误信息后,一条无条件分支将会跳转到程序的最后,标签为finish。

汇编语言中的循环:程序首先从用户那里读取一个数字,用来说明将会有多少个数被加到sum中。每一次循环,计数器都加1并使用BREQ指令检查它是否到达极限,如果到了极限值,那么循环终止,程序停止。如果没有,那么回到循环顶部继续处理下一个值。

6·5表达算法

算法(algorithm):解决方案的计划或概要,或解决问题的逻辑步骤顺序。

伪代码(pseudocode):一种表达算法的语言。
6·6测试

测试计划(test plan):说明如何测试整个程序的文档。

代码覆盖(明箱)测试法(code-coverage(clear-box testing):通过执行代码中所有语句的程序或子程序的测试法。

数据覆盖(暗箱)测试法(data-coverage(black-box)testing):把代码作为一个暗箱,基于所有可能的输入数据测试程序或子程序的方法。

测试计划实现(test-plan implementation):用测试计划中规定的测试用例验证程序是否输出预期的结果。

第七章、问题求解与算法设计

7·1如何解决问题

提出问题:

寻找相似的情况

分治法

算法(解决方案):在有限的时间内,用有限的数据解决问题或子问题的明指令集合。
7·2有简单变量的算法

简单变量是指那些不能被分开的变量,是储存在一个地方的值。

带有选择的算法 Determine

带有循环的算法:

1·计数控制循环:使用一个特殊的变量叫做循环控制变量(loop control variable)

第一部分是初试化,第二部分是测试,第三部分是增量

while循环被称为前测试循环(pretest loop)

2`事件控制循环

事件必须初始化,事件必须被测试,事件必须更新

嵌套结构(nested structure): 控制结构嵌入另一个控制结构,又称为嵌套逻辑(nested logic)

3`平方根

抽象步骤(abstract step):细节仍未明确的算法步骤。

具体步骤(concrete step):细节完全明确的算法步骤。

7·3复杂变量

数组是同构项目中的有名集合,可以通过单个项目在集合中的位置访问它们。项目在集合中的位置叫做索引。

记录是异构项目中的有名集合,可以单独访问其中的项目。所谓异构,就是指集合中的元素不必相同。集合可以包括 整数或其他类型的数据。

第三个复合数据结构,是面向编程对象中的类。

7·4搜索算法

顺序搜索

有序数组中的顺序搜索

二分检索(binary search)

7`5排序

选择排序法,只有三个抽象步骤,即确定数组是否已经排好序了、找到最小元素索引、和互换两者位置

冒泡排序法:从数组的最后一个元素开始,比较相邻的元素对,如果下面的元素小于上面的元素,则交换两者位置。

在进入循环之前,我们把一个不二变量设为FALSE,发生交换操作,便把它设置为TURE,若布尔变量仍未=为FALSE,则数组有序。

插入排序 类似于冒泡过程。

7·6递归算法

递归(recursion):算法调用它本身的能力。

子程序语句

递归阶乘

递归二分检索

7·7几个重要思想

信息屏蔽(informaiton hiding):隐蔽模块中的细节以控制对这些细节的访问的做法。  

抽象(abstraction):复杂系统的一种模型,只包括对观察者来说必须的细节。

数据抽象(data abstraction):把数据的逻辑视图和它的实现分离开。

过程抽象(procedural abstraction):把动作的逻辑数据区和它的实现分离开。

控制抽象(control abstraction):把控制结构的逻辑视图和它的实现分离开。

控制结构(control structure):用于改变正常的顺序控制流的语句。

                 学习问题

1.第六、七章的内容很抽象很复杂。
2.知识点难以理解。
解决方法
与同学交流,上课时将不懂的地方提出来。

上一篇:2019-2020-1学期 20212420《网络空间安全专业导论》


下一篇:2021-2022-1学期 20212327 《网络空间安全转移导论》第三周学习总结