教材学习内容总结
- 物理和虚拟寻址
- 地址空间
- 虚拟内存作为缓存的工具
- 虚拟内存作为内存管理的工具
- 虚拟内存作为内存保护的工具
- 地址翻译
- Intel Core i7/Linux内存系统
- 内存映射
- 动态内存分配
- 垃圾收集
教材学习中的问题和解决过程
- 问题1:关于PTE的理解?
- 问题1解决方案:页表 (Page Table Entry),内存分页存储机制中的构成元素,由PDE(页目录表)指向,每一个表项对应一个物理页;页表是一种特殊的数据结构,放在系统空间的页表区,存放逻辑页与物理页帧的对应关系。 每一个进程都拥有一个自己的页表,PCB表中有指针指向页表。
- 问题2:关于教材P606图的理解,垃圾收集器中的根节点和堆节点是什么?
- 问题2解决方案:大致琢磨了一下,大致意思是当可以从某个根节点到达一个堆节点时,称该堆节点不是垃圾,反之则是垃圾,在ML和JAVA等语言中的垃圾收集器垃圾分类明确,而像C和C++这类的则是保守的,有些还会标记错。
代码调试中的问题和解决过程
- 问题1:尝试运行教材中代码,结果发现无法运行,检查一遍后发现是因为test文件中没有调用相应的头文件mmlib.h
- 问题1解决方案:截图如下
代码托管
上周考试错题总结
- 1.Unix/Linux中,对于代码fd=open("foo",O_WRONLY,0766),umask=022,下面说法正确的是()
- A. 进程对foo是只写的
- B. 同组成员能写foo
- C. 使用者可以执行foo
- D. 任何人都可以写foo
- 【答案】AC 【我的答案】ABCD
- 【解析】九个权限可以用0777表示,07(使用者)7(同组成员)7(其他人)
7(111)(读:写:执行),文件实际权限是mode&~mask,不是任何人都可以写foo - 2.关于open(2),下面说法正确的是( )
- A. flag 参数中O_RDONLY,O_WRONLY,O_RDWR至少要有一个
- B. O_RDONLY|O_WRONLY == O_RDWR
- C. fd=open("foo.txt",O_WRONLY|O_APPEND,0),调用write(fd,buff,n)写入foo.txt的数据不会破坏已有数据。
- D. fd=open("foo.txt",O_WRONLY|O_APPEND,0644),必将导致其他人不能写foo.txt
- 【答案】AC 【我的答案】ACD
- 【解析】 open第三个参数实际是mode & ~umask
结对及互评
本周结对学习情况
- [20155308](博客链接)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)