2017-2018-12 20155307 《信息安全系统设计基础》第十一周学习总结
教材学习内容总结
虚拟内存简介
虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。
虚拟存储器是计算机系统最重要的概念之一,它是对主存的一个抽象。
物理和虚拟寻址
物理寻址是主存被组织成一个由M个连续字节大小的单元组成的数组,依次类推的寻址方式称为物理寻址。
虚拟寻址是CPU生成一个虚拟地址(VA)来访问主存,在被传送到存储器之前先转换成适当的物理地址。地址翻译通过CPU芯片上的存储器管理单元完成。
地址空间
虚拟地址空间:cpu从一个有 N=2^n 个地址的地址空间中生成虚拟地址。
物理地址空间:与系统中的物理存储器的M个字节相对应。
地址空间是一个非负整数地址的有序集合:{0,1,2,......}
execve函数
使用execve函数将a.out程序加载到存储器的过程Execve("ut",NULL,NULL);
具体经过的步骤如下:
删除已存在的用户区域-映射私有区域-映射共享区域-设置程序计数器。
用户级存储器映射相关函数
Unix进程可以使用void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offest);
来创建新的虚拟存储器区域,并将对象映射到这些区域当中。函数参数、返回值不在此处赘述。
int munmap(void *start,size_t length);删除虚拟存储器的区域。
了解C语言中与存储器有关的错误
读未初始化的存储器
允许栈缓冲区溢出
假设指针和指向他们的对象大小是相同的
引用指针,而不是他所指向的对象
误解指针运算
引用不存在的变量
引用空闲堆块中的数据
教材学习中的问题和解决过程
问题一:使用动态存储器分配的好处有哪些?
问题1解决:在程序实际运行时,我们可能不知道某些数据结构的大小,所以推荐使用动态存储器,这样可以很好的适合程序。
代码托管
上周考试错题总结
我觉得答案好像有点问题吧...我觉得acd就是正确的,
不同层之间以块大小为传送单元来回复制
其实LRU策略指的是替换策略的缓存不会选择最后被访问时间距现在最远的块
本周结对学习情况
- [20155338常胜杰](http://www.cnblogs.com/Hdywan/p/7967780.html)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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 | |
第五周 | 400/1700 | 2/11 | 30/90 | |
第六周 | 300/2000 | 3/14 | 30/90 | |
第七周 | 200/2200 | 3/17 | 15/105 | |
第八周 | 300/2500 | 1/18 | 17/122 | |
第九周 | 300/2800 | 3/21 | 15/137 | |
第十周 | 200/3000 | 3/24 | 12/159 | |
第十一周 | 200/3200 | 2/26 | 11/170 |
-
计划学习时间:15小时
-
实际学习时间:11小时