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

教材学习内容总结

异常控制流概述

  1. 控制转移:从一条指令到下一条指令的过渡。

  2. 控制流:控制转移序列。

     - 最简单的控制流:平滑的序列,每条指令在存储器中都是相邻的。
     - 平滑流的突变:由于跳转、调用和返回等指令造成两条指令不相邻。
    
  3. 异常控制流(Exceptional Control Flow, ECF):现代操作系统通过使控制流发生突变来对系统状态做出反应,这些突变称为异常控制流。

  4. 异常控制流发生在计算机系统的各个层次

     - 硬件层:硬件检测到的事件会触发控制突然装移到异常处理程序
     - 操作系统层:内核通过上下文转换将控制从一个用户进程转移到另一个用户进程。
     - 应用层:一个进程可以发送信号到到另一个进程,而接收者将会控制突然转移到它的一个信号处理程序。
     - 一个程序可以通过回避通常的栈规则,并执行到其它函数中任意位置的非本地跳转来对错误做出反应。
    
  5. ECF是操作系统用来实现I/O、进程和虚拟存器的基本机制。

  6. 应用程序通过使用一个叫做陷阱或者系统调用的ECF形式,向操作系统请求服务。

  7. 操作系统为应用程序提供了强大的ECF机制,用来创建新进程、等待进程终止、通知其他进程中系统的异常事件、检测和相应这些事件。

  8. ECF是计算机系统中实现并发的基本机制。

  9. 软件异常允许程序进行非本地跳转来响应错误情况。非本地跳转是一种应用层ECF,在C中通过setjump和longjmp提供。

系统级I/O

1.输入输出I/O

输入输出I/O是在主存和外部设备(如磁盘,网络和终端)之间拷贝数据的过程。
- 输入就是从I/O设备拷贝数据到贮存
- 输出就是从主存拷贝数据到I/O设备

2.Unix I/O

一个Unix文件就是一个m个字节的序列:B0,B1,...,Bk,...,B(m-1)
  • 所有的I/O设备,如网络、磁盘、和终端,都被模型化为文件,而所有的输入和输出都被当做想对应的文件的读写来执行。这种将设备优雅的映射为文件的方式,允许Unix内核引出一个简单、低级的应用接口,称为UnixI/O,这使得所有的输入和输出都能以一种统一且一致的方式来执行。1.打开文件

  • 一个应用程序通过要求内核来打开文件,内核返回一个小的非负整数(描述符),内核记录有关这个文件的所有的信息,应用程序只需要记住这个描述符。

      Unix外壳创建的每个进程开始时都有三个打开的文件:
      - 标准输入(描述符为0)
      - 标准输出(描述符为1)
      - 标准错误(描述符为2)
    
  • 头文件<unistd.h>

      定义常量STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO
      可以用来代替显式的描述符
    

    输入输出I/O是在主存和外部设备(如磁盘,网络和终端)之间拷贝数据的过程。

    • 输入就是从I/O设备拷贝数据到贮存
    • 输出就是从主存拷贝数据到I/O设备

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

  • 问题1:fork函数返回两次的值是什么?
  • 问题1解决方案:,一次是在父进程中返回,另一次是在子进程中返回。

代码托管

其他(感悟、思考等,可选)

这次实践博客中存在很多的问题不会,做的十分缓慢课堂知识不牢固,希望老师讲一下课堂实践补交的内容。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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
  • 计划学习时间:10小时

  • 实际学习时间:16小时

  • 改进情况:

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

参考资料

原文地址:https://www.cnblogs.com/rhl20155319/p/7751777.html