zoukankan      html  css  js  c++  java
  • 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小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    java通过LinkedList实现堆栈和队列数据结构
    华硕笔记本无法调节屏幕亮度
    Java8新特性
    GitLab使用记录
    Java IO流关闭问题之原理简析
    gradle build docker image
    mysql安装及使用
    前端div层级控制
    Could not get dialect instance.
    Starting a Gradle Daemon, 5 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details FAILURE: Build failed with an exception. * What went wrong: Could not dispatch
  • 原文地址:https://www.cnblogs.com/20155204wh/p/7751655.html
Copyright © 2011-2022 走看看