2017-2018-1 20155210 《信息安全系统设计基础》第十一周学习总结
2017-12-03 20:25
302 查看
2017-2018-1 20155210 《信息安全系统设计基础》第十一周学习总结
教材学习内容总结
一、虚拟存储器的概念和作用
虚拟内存是对主存的一个抽象。虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。
虚拟内存的三个重要功能:
1、它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存。
2、它为每个进程提供了一致的地址空间,从而简化了内存管理。
3、它保护了每个进程的地址空间不被其他进程破坏。
二、地址翻译的概念
地址翻译是一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理地址空间(PAS)中的元素之间的映射。地址翻译符号:
MMU利用页表来实现映射
地址翻译的过程必须和系统中所有的的硬件缓存的操作集成在一起。大多数页表条目位于L1高速缓存中。
三、存储器的映射
Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容,这个过程为内存映射。共享对象:
私有对象:
参数的可视化解释:
四、动态存储器分配的方法
动态内存分配的两种基本风格:函数使用:
通过调用malloc函数从堆中分配块:
include <stdlib.h> void *malloc(size_t size);
使用sbrk函数显示地分配和释放堆内存:
#include <unistd.h> void *sbrk(intptr_t incr);
调用free函数释放已分配的内存:
#include <stdlib.h> void free(void *ptr);
分配器的要求和目标:
带边界标记的合并
五、垃圾收集概念
应用通过调用malloc和free来分配和释放堆块。应用要负责释放所有不再需要的已分配块。函数使用:
收集过程:
六、C语言中与存储器有关的错误
1、间接引用坏指针2、读未初始化的内存
3、允许栈缓冲区溢出
4、假设指针和它们指向的对象是相同大小的
5、造成错位错误
6、引用指针,而不是它所指向的对象
7、误解指数运算
8、引用不存在的变量
9、引用空闲堆块中的数据
10、引起内存泄漏
教材学习中的问题和解决过程
问题1:对于栈缓冲区溢出的理解存在问题
问题1解决方案:
缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。
其原理是通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。
预防方法:
1、关闭端口或服务。管理员应该知道自己的系统上安装了什么,并且哪些服务正在运行
2、安装软件厂商的补丁,漏洞一公布,大的厂商就会及时提供补丁
3、在防火墙上过滤特殊的流量,无法阻止内部人员的溢出攻击
4、自己检查关键的服务程序,看看是否有可怕的漏洞
5、以所需要的最小权限运行软件
代码调试中的问题和解决过程
问题1:实验时使用的代码无法在终端中正确运行。
问题1解决方案:
使用第一次实验中的Linux虚拟机。
代码托管
(statistics.sh脚本的运行结果截图)结对及互评
点评模板:
博客中值得学习的或问题:xxx
xxx
...
代码中值得学习的或问题:
xxx
xxx
...
其他
本周结对学习情况
- [20155233](博客链接) - 结对照片 - 结对学习内容 - XXXX - XXXX - ...
其他(感悟、思考等,可选)
1、学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
第九周 | / | 3/17 | 12/144 |
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:12小时
实际学习时间:20小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
《深入理解计算机系统V3》学习指导...
相关文章推荐
- # 2017-2018-1 20155210 《信息安全系统设计基础》第四周学习总结
- 2017-2018-12 20155307 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 学号20155209 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 20155210 《信息安全系统设计基础》第13周学习总结
- # 2017-2018-1 20155319 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 20155333 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 20155327 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 20155210 《信息安全系统设计基础》第3周学习总结
- 2017-2018-1 20155210 《信息安全系统设计基础》第7周学习总结
- 2017-2018-1 20155208 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 20155235 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 20155217 《信息安全系统设计基础》第十一周学习总结
- 20155325 2017-2018 1 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 20155210 《信息安全系统设计基础》第14周学习总结
- 2017-2018-1 20155227 《信息安全系统设计基础》第十一周学习总结