2017-2018-1 学号20155239 《信息安全系统设计基础》第一周学习总结
教材学习内容总结
计算机系统是由硬件和系统软件组成的。信息=二进制(位串)+上下文,源程序实际上由值0和1组成的位序列。
C语言代码转汇编代码命令:gcc -S hello.i -o hello.s
源程序翻译过程:源程序文本 → 预处理器(预处理) → 编译器(编译) → 汇编器(汇编) → 链接器(链接) → 可执行目标程序(二进制)
GCC编译:
预处理:gcc –E hello.c –o hello.i; gcc –E调用预处理器
编 译:gcc –S hello.i –o hello.s; gcc –S调用编译器
汇 编:gcc –c hello.s –o hello.o; gcc -c 调用汇编器
链 接:gcc hello.o –o hello ; gcc -o 调用链接器
系统的硬件组成
1、总线:传送定长字节块。字中的字节数(即字长)是一个基本的系统参数,各个系统中都不尽相同。
2、I/O设备:是系统与外部世界的联系通道。每个I/O 设备都通过一个控制器或适配器与I/O 总线相连。
3、主存:主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。存储器是一个线性的字节数组,每个字节都有其唯一的地址。
4、处理器(CPU):中央处理单元。具有加载、存储、操作、跳转过程。
问题和解决过程
-
问题1:Amdahl定律的推导过程
-
问题1解决方案:
-
(1)在MIMD系统中,P是处理器的数目;
(2)在SIMD系统中,P是正在处理的数据数目;
(3)在流水方式工作的SIMD系统中,P是矢量速度和标量速度的比;
(4)在流水方式工作的MIMD系统中,P是流水线功能段的数目。
代码调试中的问题和解决过程
教材学习中的问题:
一、计算机可计算的二进制最多多少位?
二、本书中,异常控制流章节中,Linux/IA32系统中的异常小节里,首先提到了除0是一种故障,既四种异常中的第三种
然后又在信号这一小节中,提到当一个进程试图除以0,因此内核会发送给它一个SIGFPE信号。
那么我的疑问是:
1.除以零后,是先从异常表,找到除以零的异常处理方式,然后在给此进程发送信号么?
2.这本书提到,进程的上下文切换管理,是基于这四种底层异常的。那信号和这四种底层异常又有什么关系?比如上面提到的除零。
三、如何把学习过的数据结构知识同硬件知识结合?
章节提出的问题
第一章
hello world是怎样工作的?
预处理器、编译器、汇编器、链接器是怎样把.c 的源程序分别修改为.i、.s.、.o的程序的?
第二章
反码和补码在作用上有什么区别?
第三章
直到型循环和当行循环有什么异同?
第四章
Y86指令集体系结构是怎样的?
第五章
循环的低效率是怎样产生的?
第六章
高速缓存有哪些类型?
第七章
处理目标文件有哪些工具?
第八章
什么是异常事件?
第九章
虚拟存储器有哪些作用?
虚拟存储器作为缓存工具是怎样工作的?
第十章
什么是高速缓存污染和异常控制流?
第十一章
网络编程中为什么要用结构体来存放IP地址 ?
第十二章
多线程并发机制的实现?
问题及解决
上周考试错题总结
- 错题1及原因,理解情况
- 错题2及原因,理解情况
- ...
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
其他(感悟、思考等,可选)
xxx
xxx
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:XX小时
-
实际学习时间:XX小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)