2017-2018-1 20155235 《信息安全系统设计基础》第六周学习总结
2017-2018-1 20155235 《信息安全系统设计基础》第六周学习总结
教材学习内容总结
第八章 异常控制流
8.1 异常
8.1.1 异常处理
8.1.2 异常的类别
8.1.3 Linux/x86-64 系统中的异常
8.2 进程
8.2.1 逻辑控制流
8.2.2 并发流
8.2.3 私有地址空间
8.2.4 用户模式和内核模式
8.2.5 上下文切换
8.3 系统调用错误处理
8.4 进程控制
8.4.1 获取进程ID
8.4.2 创建和终止进程
8.4.3 回收子进程
8.4.4 让进程休眠
8.4.5 加载并运行程序
8.4.6 利用fork和execve运行程序
8.5 信号
8.5.1 信号术语
8.5.2 发送信号
8.5.3 接收信号
8.5.4 阻塞和解除阻塞信号
8.5.5 编写信号处理程序
8.5.6 同步流以避免讨厌的并发错误
8.5.7 显式地等待信号
8.6 非本地跳转
8.7 操作进程的工具
8.8 小结
第十章 系统级I/O
10.1 Unix I/O
10.2 文件
10.3 打开和关闭文件
10.4 读和写文件
10.5 用RIO包健壮地读写
10.5.1 RIO的无缓冲的输入输出函数
10.5.2 RIO的带缓冲的输入函数
10.6 读取文件元数据
10.7 读取目录内容
10.8 共享文件
10.9 I/O重定向
10.10 标准I/O
10.11 综合:我该使用哪些I/O函数?
10.12 小结
教材学习中的问题和解决过程
- 问题1:setjmp和longjmp函数的使用顺序
- 问题1解决方案:
setjmp函数在env缓冲区中保存当前的调用环境,以供longjmp使用,返回0。
longjmp函数从env缓冲区恢复调用环境,然后触发一个从最近一次初始化env的setjmp调用的返回。然后sejmp返回带有非零的返回值retval
课上测试
一、ch02
1.参考附图代码,编写一个程序 “week0601学号.c",判断一下你的电脑是大端还是小端。
- 提交运行结果”学号XXXX的笔记本电脑是X端“的运行截图,要全屏,包含自己的学号信息
二、ch02
-
调用附图代码,编写一个程序 “week0602学号.c",用show_int(), show_float()打印一下你的4位学号,参考教材P33打印出匹配的位序列。
-
提交运行结果截图,要全屏,要包含自己的学号信息
三、ch02
-
编写一个程序 “week0603学号.c",运行下面代码:
1 short int v = -学号后四位
2 unsigned short uv = (unsigned short) v
3 printf("v = %d, uv = %u\n ", v, uv); -
在第三行设置断点用gdb调试,用p /x v; p /x uv 查看变量的值,提交调试结果截图,要全屏,要包含自己的学号信息
四、ch03
1 通过输入gcc -S -o main.s main.c 将下面c程序”week0603学号.c“编译成汇编代码
return x+3;
}
int f(int x){
int i = 学号后两位;
return g(x)+i;
}
int main(void){
return f(8)+1;
}````
![](http://a3.qpic.cn/psb?/sa14V13XUrfN0cNZzN32ad139a106e64eead01140b1645b0b73714V11ups9g246cYM/XEUf6PiXYyodyWFcrWti2tOw6mi1bma5inJLWOq5aaA!/b/dA0BAAAAAAAA&bo=.AAgAQAAAAADB*s!&rf=viewer_4)
##代码问题
- 问题1:![](http://a3.qpic.cn/psb?/V13XUrfN0VY20D/Lr.*7HlqLDfanW9P2lsffHxgvgkhhkTWVbiIWZJIsME!/b/dB8BAAAAAAAA&bo=PgJzAAAAAAADB20!&rf=viewer_4)
- 解决方法:尝试解决
## [代码托管](https://gitee.com/bestiisjava2017/xxy20155211java)
(statistics.sh脚本的运行结果截图)
## 上周考试错题总结
## 结对及互评
### 点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
### 本周结对学习情况
- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
## 其他(感悟、思考等,可选)
xxx
xxx
## 学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
| -------- | :----------------:|:----------------:|:---------------: |:-----:|
| 目标 | 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 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:[软件工程软件的估计为什么这么难](http://www.cnblogs.com/xinz/archive/2011/04/05/2005978.html),[软件工程 估计方法](http://www.cnblogs.com/xinz/archive/2011/04/06/2007294.html)
- 计划学习时间:XX小时
- 实际学习时间:XX小时
- 改进情况:
(有空多看看[现代软件工程 课件
软件工程师能力自我评价表](http://www.cnblogs.com/xinz/p/3852177.html))
## 参考资料
- [《深入理解计算机系统V3》学习指导]([http://www.cnblogs.com/rocedu/p/5826467.html])
- ...