20165223 《信息安全系统设计基础》 第七周学习总结

第八章 异常控制流

一、学习目标

  • 了解异常及其种类
  • 理解进程和并发的概念
  • 掌握进程创建和控制的系统调用及函数使用:fork,exec,wait,waitpid,exit,getpid,getppid,sleep,pause,setenv,unsetenv,
  • 理解数组指针、指针数组、函数指针、指针函数的区别
  • 理解信号机制:kill,alarm,signal,sigaction
  • 掌握管道和I/O重定向:pipe, dup, dup2

二、学习任务

  • 注意每个系统调用的参数、返回值,会查帮助文档
  • 阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下
  • 学习视频,掌握两个重要命令:
    • man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用
    • grep -nr XXX /usr/include :查找宏定义,类型定义

三、教材学习

(1)异常的类别

类别 原因 异步/同步 返回行为
中断 来自I/O设备的信号 异步 总是返回到下一条指令
陷进 有意的异常 同步 总是返回到下一条指令
故障 潜在可恢复的错误 同步 可能返回到当前指令
终止 不可恢复的错误 同步 不会返回
  • 中断是异步发生的,是来自处理器外部的 I/O 设备的信号的结果,中断处理程序将控制返回到下一条指令。除了它,其他异常均为同步发生,叫做故障指令(fault instruction)。
  • 陷阱是有意的异常,是执行一条指令的结果,陷阱处理程序将控制返回到下一条指令,它最重要的用途是在用户程序和内核之间提供一个像过程一样的接口,叫做系统调用。
  • 故障是由错误情况引起,它可能能够被故障处理程序修正。如果故障修理成功,则返回原指令,否则终止程序。
  • 终止是不可恢复的致命错误造成的后果,通常是一些硬件错误,具有终止应用程序的能力。

(2)进程

  • 进程:经典定义就是一个执行中程序的实例。
  • 上下文:由程序正确运行所需的状态组成的。这个状态包括存放在内存中的程序的代码和数据,它的栈、通用目的寄存器的内容、程序计数器、环境变量以及打开文件描述符的集合
  • 进程提供给应用程序的关键抽象:
进程提供 假象
独立的逻辑控制流 提供程序独占处理机的假象
私有的地址空间 提供程序独占内存系统的假象
  • 地址空间底部是保留给用户程序的,包括通常的代码、数据、堆和栈段。代码段总是从地址0x400000开始。
  • 当设置了模式位时,进程就运行在内核模式中(超级用户模式),一个运行在内核模式的进程可以执行指令集中的任何指令,并且可以访问系统中的任何内存位置
  • 在内核调度了一个新的进程运行后,它就抢占当前进程,并使用一种称为上下文切换的机制来将控制转移到新的进程。
    • 上下文切换:1)保存当前进程的上下文,2)恢复某个先前被抢占的进程被保存的上下文,3)将控制传递给这个新恢复的进程。

猜你喜欢

转载自www.cnblogs.com/moddy13162201/p/9943983.html