2017-2018-1 20155235 《信息安全系统设计基础》第十一周学习总结
教材学习内容总结
第九章 虚拟内存
9.1 物理和虚拟寻址
9.2 地址空间
9.3 虚拟内存作为缓存的工具
9.3.1 DRAM缓存的组织结构
9.3.2 页表
9.3.3 页命中
9.3.4 缺页
9.3.5 分配页面
9.3.6 又是局部性救了我们
9.4 虚拟内存作为内存管理的工具
9.5 虚拟内存作为内存保护的工具
9.6 地址翻译
9.6.1 结合高速缓存和虚拟内存
9.6.2 利用TLB加速地址翻译
9.6.3 多级页表
9.6.4 综合:端到端的地址翻译
9.7 案例研究:Intel Core i7/Linux 内存系统
9.7.1 Core i7地址翻译
9.7.2 Linux 虚拟内存系统
9.8 内存映射
9.8.1 再看共享对象
9.8.2 再看fork函数
9.8.3 再看execve函数
9.8.4 使用mmap函数的用户级内存映射
9.9 动态内存分配
9.9.1 malloc和free函数
9.9.2 为什么要使用动态内存分配
9.9.3 分配器的要求和目标
9.9.4 碎片
9.9.5 实现问题
9.9.6 隐式空闲链表
9.9.7 放置已分配的块
9.9.8 分割空闲块
9.9.9 获取额外的堆内存
9.9.10 合并空闲块
9.9.11 带边界标记的合并
9.9.12 综合:实现一个简单的分配器
9.9.13 显式空闲链表
9.9.14 分离的空闲链表
9.10 垃圾收集
9.10.1 垃圾收集器的基本知识
9.10.2 Mark&Sweep垃圾收集器
9.10.3 C程序的保守Mark&Sweep
9.11 C程序中常见的与内存有关的错误
9.11.1 间接引用坏指针
9.11.2 读未初始化的内存
9.11.3 允许栈缓冲区溢出
9.11.4 假设指针和它们指向的对象是相同大小的
9.11.5 造成错位错误
9.11.6 引用指针,而不是它所指向的对象
9.11.7 误解指针运算
9.11.8 引用不存在的变量
9.11.9 引用空闲堆块中的数据
9.11.10 引用内存泄漏
9.12 小结
教材学习中的问题和解决过程
- 问题1:stat显示的3个时间中的最后一个状态改动时间是什么意思?
- 问题1解决方案:状态改动时间是指该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。
代码托管
pwd命令实现代码在码云里
(statistics.sh脚本的运行结果截图)
上周考试错题总结
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
其他(感悟、思考等,可选)
实验真的不好做,PWD实现还算成功吧。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 1/1 | 10/10 | |
第二周 | 200/200 | 1/1 | 20/20 | |
第三周 | ?/200 | 1/1 | 15/20 | |
第四周 | 200/200 | 1/1 | 20/20 | |
第五周 | 100/200 | 1/1 | 20/20 | |
第六周 | 200/200 | 1/1 | 20/30 | |
第七周 | 500/500 | 1/1 | 20/20 | |
第八周 | 300/300 | 1/1 | 15/30 | |
第九周 | 300/300 | 1/1 | 15/20 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
- 计划学习时间:30小时
- 实际学习时间:15小时
- 改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
时间: 2024-11-09 08:44:16