2017-2018-1 20155328 《信息安全系统设计基础》第十一周学习总结
教材学习内容总结
-
如果地址空间的整数是连续的,则它是一个线性地址空间。
-
虚拟页面的集合分为三个不相交的子集:未分配的、缓存的和未缓存的。
-
页表将虚拟页映射到物理页,是一个页表条目的数组。
-
虚拟内存简化了链接和加载、代码和数据共享,以及应用程序的内存分配。
-
地址翻译是一个N元素的虚拟地址空间中的元素和一个M元素的物理地址空间中元素之间的映射。
-
Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容,此过程称为内存映射。虚拟内存区域可以映射到Linux文件系统中的普通文件和匿名文件其中的一种。
-
动态内存分配器将堆视为一组不同大小的块的集合来维护。
教材学习中的问题和解决过程
- 问题1:对垃圾收集不太理解。
- 解决方法:垃圾收集器将内存视为一张有向可达图。不可达的即为垃圾。垃圾收集器的角色是维护可达图的表达式,并通过释放不可达节点且将它们返回给空闲链表,来定期回收他们。
代码调试中的问题和解决过程
暂未遇到。
代码托管
上周考试错题总结
- 下面代码中(C)局部性最差
1 #define N 1000
2 3
typedef struct {
4 int vel[3];
5 int acc[3];
6 } point;
7 8
point p[N];
A .
1 void clear1(point *p, int n)
2 {
3 int i, j;
4 5
for (i = 0; i < n; i++) {
6 for (j = 0; j < 3; j++)
7 p[i].vel[j] = 0;
8 for (j = 0; j < 3; j++)
9 p[i].acc[j] = 0;
10 }
11 }
B .
1 void clear2(point *p, int n)
2 {
3 int i, j;
4 5
for (i = 0; i < n; i++) {
6 for (j = 0; j < 3; j++) {
7 p[i].vel[j] = 0;
8 p[i].acc[j] = 0;
9 }
10 }
11 }
C .
1 void clear3(point *p, int n)
2 {
3 int i, j;
4 5
for (j = 0; j < 3; j++) {
6 for (i = 0; i < n; i++)
7 p[i].vel[j] = 0;
8 for (i = 0; i < n; i++)
9 p[i].acc[j] = 0;
10 }
11 }
D .
不确定
- 下面代码,(A)具有差的空间局部性。
A .
1 int sumvec(int v[N])
2 {
3 int i, sum = 0;
4
5 for (i = 0; i < N; i++)
6 sum += v[i];
7 return sum;
8 }
B .
1 int sumarrayrows(int a[M][N])
2 {
3 int i, j, sum = 0;
4 5
for (i = 0; i < M; i++)
6 for (j = 0; j < N; j++)
7 sum += a[i][j];
8 return sum;
9 }
C .
1 int sumarraycols(int a[M][N])
2 {
3 int i, j, sum = 0;
4 5
for (j = 0; j < N; j++)
6 for (i = 0; i < M; i++)
7 sum += a[i][j];
8 return sum;
9 }
D .
以上都不对
- 下面说法正确的是(CD)
A .
CPU通过内存映射I/O向I/O设备发命令
B .
DMA传送不需要CPU的干涉
C .
SSD是一种基于闪存或Flash的存储技术
D .
逻辑磁盘块的逻辑块号可以翻译成一个(盘面,磁道,扇区 )三元组。
- 有关磁盘操作,说法正确的是()
A .
对磁盘扇区的访问时间包括三个部分中,传送时间最小。
B .
磁盘以字节为单位读写数据
C .
磁盘以扇区为单位读写数据
D .
读写头总处于同一柱面
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- 结对学习内容
教材第九章
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 40/40 | 1/1 | 20/20 | |
第二周 | 40/40 | 1/2 | 18/38 | |
第四周 | 154/194 | 2/4 | 20/58 | |
第五周 | 48/242 | 2/6 | 20/78 | |
第六周 | 59/301 | 2/8 | 19/97 | |
第七周 | 354/655 | 2/9 | 18/115 | | |
第八周 | 455/1100 | 1/10 | 15/130 | |
第九周 | 200/1300 | 2/11 | 18/148 | |
第十一周 | 38/15289 | 2/13 | 18/166 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 | ||||
耗时估计的公式 | ||||
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。 |
-
计划学习时间:20小时
-
实际学习时间:18小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)