2017-2018-1 20155204 《信息安全系统设计基础》第六周学习总结

2017-2018-1 20155204 《信息安全系统设计基础》第六周学习总结

教材学习内容总结

  1. 异常的类别:
    (1)中断:中断是异步发生的,是来自处理器外部的I/O设备的信号的结果。
    (2)陷阱和系统调用:陷阱是有意的异常,是执行一条指令的结果。
    (3)故障:故障由错误情况引起,它可能能够被故障处理程序修正。
  2. 进程:系统中的每个程序都运行在某个进程的上下文中。上下文是由程序正确运行所需的状态组成的。 并发:多个流并发的执行、
  3. fork:函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事
  4. exec:用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID,exec启动一个新程序,替换原有的进程,因此这个新的被exec执行的进程的PID不会改变,和调用exec函数的进程一样。
  5. wait、waitpid:wait()函数用于使父进程(也就是调用wait()的进程)阻塞,直到一个子进程结束或该进程接收到一个指定的信号为止。如果该父进程没有子进程或它的子进程已经结束,则wait()就会立即返回。waitpid()的作用和wait()一样,但它并不一定要等待一个终止的子进程,它还有若干选项,如可提供一个非阻塞版本的wait()功能,也能支持作用控制。实际上,wait()函数只是waitpid()函数的一个特例,在Linux内部实现wait()函数时直接调用的就是waitpid()函数。
  6. exit:在调用处强行退出程序,运行一次程序就结束。
  7. getpid:功能是取得进程识别码,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。
  8. sleep:执行挂起一段时间
  9. setenv:用来改变或增加环境变量的内容。参数name为环境变量名称字符串。
  10. unsetenv:删除name的定义。即使name没有定义也不返回错误。
  11. pipe:管道是Linux 支持的最初Unix IPC形式之一,具有以下特点:
    管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系 统,并且只存在与内存中。 数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。
  12. dup、dup2:复制旧的文件描述符oldfd,新的文件描述符和旧的文件描述符指向“打开文件描述表”的相同入口,所以他们拥有相同的offset和status。但新文件描述符和旧文件描述符的flags不相同。close-on-exec这个标记在新文件描述符上被关闭。dup使用“未使用的数值最小的”文件描述符作为新的文件描述符。dup2使用参数newfd作为新的文件描述符。

教材学习中的问题和解决过程

  • 问题1:exec1.c中为什么不输出最后printf的那一句?
  • 问题1解决方案:因为在系统处理器中,在执行execvp( "ls" , arglist );语句时,已经将最后的打印语句覆盖掉了,处理器中并没有这句打印语句。

代码托管

做实验的时候ubuntu出了问题,现在一直停留在这个命令行,文件也几乎找不到了,老师我会尽快安好然后补上代码。

本周结对学习情况

- [20155203](http://www.cnblogs.com/xhwh/p/7750261.html)
- 结对学习内容
    课下练习、一起读书。

另附本周课下练习博客链接:缓冲区溢出漏洞实验

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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
第五周 200/1500 2/11 10/100
第六周 200/1700 2/13 10/110

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:10小时

  • 实际学习时间:10小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2017-10-29 22:25  20155204王昊  阅读(119)  评论(0编辑  收藏  举报