2017-2018-1 20155321 《信息安全系统设计基础》第八周学习总结
教材学习内容总结
-
本周主要学习网络编程、多进程和多线程编程
-
网络编程
- 学习打印了自己虚拟机的DNS
- 知识点:gethostbyaddr()返回对应于给定地址的包含主机名字和地址信息的hostent结构指针
- 服务器-客户端模型编程(参考资料)
- 学习打印了自己虚拟机的DNS
-
多进程编程
- 函数fork()用来创建一个新的进程,这个新的进程几乎完全是当前进程的一个复制版本;而在代码执行的过程中,父进程和子进程都要调用函数fork()函数下面的代码,而恰恰可以利用fork()函数对父子进程的不同返回值然后用if...else...语句来实现让父子进程完成不同的功能
- 函数族exec()是用来启动另外的进程以取代当前运行的进程。
-
多线程编程
- 之所以要用到多线程,主要是因为创建一个进程相比,创建一个线程是一种非常"节俭"的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。但是运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,不仅如此,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间
教材学习中的问题和解决过程
无
代码托管
上周考试错题总结
-
(多选题)假设用ADD指令完成C表达式t=a+b的功能,有关条件码寄存器的说法正确的是()
A.若t==0 ,则ZF=1
B.若t<0, 则CF=1
C.若t<0, 则SF=1
D.若(a<0==b<0)&&(t<0!=a<0),则OF=1
E.若(a<0==b<0)&&(t<0 != a<0), 则CF=1
F.leaq指令不影响条件码寄存器
G.cmp指令不影响条件码寄存器
-
正确答案:ADF
-
(多选题)假设%rax中的值为x,%rcx中的值为y,关于leaq指令,下面正确的()
A.leaq 6(%rax), %rdx; %rdx中值为6+x
B.leaq 6(%rax), %rdx; %rdx中值为6x
C.leaq 7(%rax,%rax,8),%rdx;%rdx中值为9x
D.leaq 7(%rax,%rax,8),%rdx;%rdx中值为63x
E.leaq 7(%rax,%rax,8),%rdx;%rdx中值为15x
-
正确答案:AC
-
(多选题)以下代码是将void decode1(long *xp, long yp,longzp)反汇编的结果,下面说法正确的是()
A.从汇编代码看出,decode1的参数先入栈的是zp
B.从汇编代码看出,decode1的参数先入栈的是xp
C.函数功能等价于 t=x; x=y; y=z; z=t;
D.函数功能等价于 x=y; y=z; z=x;
-
正确答案: C
-
(多选题)有关exec系列函数,下面说法正确的是()
A.可以用char[][] 来传递argv
B.进程调用了exec系列函数后,pid会变
C.进程调用了exec系列函数后,代码会改变
D.system()和exec系列等价
E.exec系列函数中带e的要传入环境变量参数
F.exec系列函数中带v的要传入环境变量参数
-
正确答案: C E
-
(多选题)从程序员角度看进程状态有( )
A.运行B.就绪
C.停止
D.终止
-
正确答案:ACD
-
(单选题)Unix/Linux中通过调用()可以获取子进程PID
A.getpid()
B.getppid()
C.getcpid()
D.fork()
-
正确答案: D
-
(单选题)进程提供给应用程序的关键抽象让我们的程序感觉独占了处理器和内存。()提供了独占处理器的假象
A.地址空间
B.虚拟内存
C.逻辑控制流
D.指令控制流
-
正确答案:C
-
(多选题)有关异常,下面说法正确的是()
A.系统中的异常由异常名唯一确定
B.异常表中存放的是异常处理程序
C.异常表的起始地址存放在异常表基址寄存器中
D.异常处理程序运行在内核模式下
-
正确答案: CD
本周结对学习情况
- 20155330
- 结对学习内容
- 书本第十二章的内容
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 20篇 | 400小时 | |
第八周 | 44/572 | 1/10 | 15/105 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:12小时
-
实际学习时间:15小时
-
改进情况:改善自学看书的方法,提高看书学习效率
(有空多看看现代软件工程 课件 软件工程师能力自我评价表)