20145238 《信息安全系统设计基础》期中总结

20145238 《信息安全系统设计基础》第9周学习总结

期中内容总结

Linux常用命令

1.man -k

  • man -k k1 | grep k2 | grep k3
    1 Linux中的一般命令
    2 系统调用
    3 库函数,涵盖了C语言的标准函数库

2.cheat

  • 使用du命令对当前目录下的目录或文件按大小排序 的命令是du -sk *| sort -rn

3.grep

  • 使用grep查找当前目录下*.c中main函数在那个文件中的命令是grep main *.c
  • grep -nr xxx/usr/include 查找宏
  • ~/test 文件夹下有很多c源文件,查找main函数在哪个文件中可用命令grep main *.c

vi常用功能键

i 切换到插入模式
a 切换到插入模式,并从目前光标所在位置的下一个位置开始输入文字
o 切换到插入模式,且从行首开始插入新的一行
0(数字0) 光标移到本行的开头
nG 光标移动到第n 行
$ 移动到光标所在行的“行尾”
n<Enter> 光标向下移动n 行
dd 删除光标所在行
ndd 从光标所在行开始向下删除n行
yy 复制光标所在行
nyy 复制光标所在行开始的向下n行
u 恢复前一个动作

GCC

预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
链 接:gcc hello.o –o hello ;gcc -o 调用ld

GDB

  • 设置断点
    break func 设置断点,在函数func()入口处
    info break 查看断点信息。
    r 运行程序
    n 单条语句执行
    c 继续运行程序
    p I 打印变量i的值
    bt 查看函数堆栈。
    finish 退出函数。
    q 退出gdb

使用GCC编译时要加“-g”参数,然后才能够用gdb调试

Makefile

make工具最主要也是最基本的功能就是根据makefile文件中描述的源程序至今的相互关系来完成自动编译、维护多个源文件工程。

  • Makefile的一般写法:
    test(目标文件): prog.o code.o(依赖文件列表)
    tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)
  • Makefile还可以定义和使用宏(也称做变量):
    定义宏的格式为:macroname = macrotext
    使用宏的格式为:$(macroname)

课本内容总结

第1章 计算机系统漫游

  • 1.信息
    位+上下文
    系统中所有信息都是由一串位表示的,区分不同数据对象唯一方法是读到这些数据对象时的上下文。

  • 2.程序被翻译成不同格式
    编译系统
    预处理器、编译器、汇编器、链接器

  • 3.存储设备层次结构
    核心思想:缓存
    操作系统核心抽象:文件、虚存、进程、虚拟机

第2章 信息的表示和处理

  • 字节顺序
    大端法:高对低,低对高
    小端法:高对高,低对低

  • IEEE浮点标准
    V=(-1)^s X 2^E X M 来表示一个数
    符号:s决定这个数是正还是负。
    阶码:E对浮点数加权,权重是2的E次幂。
    尾数:M是一个二进制小数,范围为12-ε或者01-ε。

  • 舍入
    向偶舍入:将数字向上或向下舍入,结果的最低有效数字为偶数。
    能用于二进制小数。(默认)
    向零舍入:把整数向下舍入,负数向上舍入。
    向下舍入:正数和负数都向下舍入。
    向上舍入:正数和负数都向上舍入。

第3章 程序的机器级表示

  • 1.机器级代码
    ISA指令集体系结构

gcc -s hello.c(产生汇编代码)
gcc -c hello.c(编译并汇编该代码)
objdump -d hello.o(反汇编)

  • 2.过程
    栈帧结构
    栈帧——为每一个过程分配的内存空间,它包含两个特殊的参数,栈指针和帧指针。
    栈是向低地址增长的。

帧指针:%ebp,指向栈底。
栈指针:%esp,指向栈顶,栈指针可以移动,来分配或释放空间。
%esp减小——分配空间
%esp增大——释放空间

第4章 处理器体系结构

  • 异常
    halt指令、非法指令、访问非法地址

  • 数字系统
    组合逻辑、存储器元素、时针信号

  • 表达式
    AND:&&
    OR:||
    NOT:!

3.Y86的顺序实现
取指、译码、执行、访存、写回、更新PC

第6章 存储器层次结构

  • 1.随机访问存储器RAM
    分类:SRAM和DRAM

特点:掉电失忆

SRAM比较DRAM

SRAM:供电不变,不刷新,抗干扰,存取快,贵

  • 2.只读存储器ROM
    分类:根据能被重新编写次数和对其编程所用机制分

PROM:编程一次
EPROM:能被擦除和重编1000次
EEPROM:基于EPROM,达10^5次
flash:一类非易失性存储器

特点:非易失性

  • 3.磁盘
    磁盘的容量 = 每扇区大小每磁道扇区数磁道数 2 盘片数量
    访问时间

T(max rotation)=1/RPM * 60secs/1min ——最大旋转延迟时间
T(avg rotation)=1/2 * T(max rotation) ——平均延迟时间
T(avg transfer)=1/RPM * 1/(平均扇区数/磁道) * 60secs/1min ——平均传送时间
T(access)=T(avg seek)+T(avg rotation)+T(avg transfer) ——整个估计的访问时间
访问一个磁盘扇区中512字节主要花在寻道时间和旋转延迟

  • 4.局部性
    ·重复引用同一个变量从的程序有良好的时间局部性;
    ·对于步长为k的引用模式的程序,步长越小,空间局部性越好。具有步长为1的引用模式的程序有很好的空间局部性;
    ·对于取指令来说,循环有很好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。

期中Blog总结

  • 自己学到的知识点如上

  • 自己的收获:
    可能通过上学期的学习,已经接受了这种写博客学习的习惯(虽然感觉还是没有用纸一笔一划写下来有切实感)。但是每周能把老师的任务
    合理的分配到平时,不是在星期天的晚上赶出来。虽然自己计算机基础这方面不是很好,但是每周强迫自己去了解一些知识点,去实践,去发现问题、解决问题,这样循序渐进
    还是了解了关于计算机系统的一点知识,感觉计算机它的每一个动作都是有据可循的,系统性和层次感都非常强,如果真的掌握了这些架构,自己便能掌握许多“软知识”,这对于其他
    计算机方面课程的学习都打下了坚实的基础。其实书本上每个字都是作者精心总结的,认真阅读课本真的非常重要,其次更重要的就是亲手去实践,再全面的知识点也不如自己去亲自动手实践
    的影响深刻。最主要的收获是在枯燥的计算机学习中,找到了他们是怎样运作的会非常高兴,看书真的是去解决问题,带着问题去看书的,而不是为了完成作业而去阅读。

  • 自己的不足:
    合理分配时间这块,总是在上一周提交作业时想法很伟大,但在本周真正落实的却不是很多。还有在实验中遇到问题,总是很容易被打败,无法找到问题,总是会花费很久很久的时间去解决,或者因为
    一遇到问题就很想问其他同学,产生了依赖的毛病,没有自己去思考,因为过程是自己做的,没有人比自己更了解问题出在哪,所以要自己去想,最好别总是问别人,要学会独立思考,解决问题。
    最后就是复习知识点这块非常欠缺,每次考试看到以前看到的知识点,记忆就中断了。以后要时常复习学过的知识,温故知新。

参考资料

每周测试答案解析
教材学习指导

posted @ 2016-11-05 22:58  20145238荆玉茗  阅读(188)  评论(4编辑  收藏  举报