2017-2018-1 20155328 《信息安全系统设计基础》第1周学习总结
教材学习内容总结
第一章 计算机系统漫游
-
系统中所有信息都是由一串比特表示的,读到数据对象时的上下文是区分不同数据对象的唯一方法。
-
.c程序通过预处理、编译、汇编及链接产生可执行文件。
-
高速缓存存储器作为暂时的季节区域,用于存放处理器近期可能会需要的信息。存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。
-
一个进程实际上可以由多个称为线程的执行单元组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。
-
Amdahl定律的主要思想是:当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。
第七章 链接
-
为了构造可执行文件,链接器必须完成符号解析和重定位。
-
Linux链接器处理多重定义符号名的规则为:
不允许有多个同名的强符号
;如果有一个强符号和多个弱符号同名,则选择强符号
;假如有多个弱符号同名,则从中任意选择一个
。 -
可以加载而无需重定位的代码成为位置无关代码。
教材学习中的问题和解决过程
- 问题1:对重定位不太理解。
- 问题1解决方案:经查询资料:《重定位和链接》:
在重定位步骤中,将合并输入模块,并为每个符号分配运行时地址。
- 问题2:位置无关代码
- 问题2解决方案:如果有多个(调用相同库函数的) 进程在内存中同时运行,内存中就有多份相同库函数代码,故占内存空间较大。
所以产生了动态库,在程序装载入内存时才真正把库函数代码链接进来确定它们的地址。并且在上面2的情况下,内存中也只存有一份函数代码(但动态库的数据可能有多份副本,当某一连接到动态库的进程要修改库的数据时,OS就复制一份数据的副本,然后修改进程的地址空间映射,使其指向新的数据副本)。动态库的代码需要能够被加载到不同进程的不同地址,故其代码要经过特别的编译处理,这种代码即位置无关代码。
浏览每一章提出的问题
- 第一章:计算机系统漫游
处理器读取并解释存在内存中的指令是怎样实现的?
- 第二章:信息的表示和处理
算数运算的数学特性有哪些?
- 第三章:程序的机器级表示
减轻缓冲区溢出威胁的措施有哪些?
- 第四章:处理器体系结构
为什么五阶段处理器流水线更加实用?
- 第五章:优化程序性能
如何根据一个程序的图形化表示中的关键路径来测量一个程序可能的性能?
- 第六章:存储器层次结构
如何通过改善程序的时间局部性和空间局部性来提高应用程序的性能?
- 第七章:链接
如何利用共享库?
- 第八章 异常控制流
如何理解并发?
- 第九章 虚拟内存
虚拟内存相比主存有什么优势?
- 第十章 系统级IO
标准I/O与UnixI/O有什么区别和联系?
- 第十一章 网络编程
-in后缀表示?
- 第十二章:并发编程
可重入性是一种什么样的属性?
代码调试中的问题和解决过程
暂未遇到。
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
还未考试,因而没有错题。
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- [20155325](http://www.cnblogs.com/GDDFZ/)
- 结对照片
- 结对学习内容
- 第一、七章内容
- 虚拟机的基本操作及快捷键
- ...
其他(感悟、思考等,可选)
这学期的学习是基于C语言的基础上,除了巩固基础之外,希望自己能熟练掌握虚拟机的使用。本学期也希望自己能调节好学习各种科目与其余事项的平衡,分清主次。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 40/40 | 1/1 | 10/10 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:15小时
-
实际学习时间:10小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)