2018-2019-1 20165301 《信息安全系统设计基础》第七周学习总结
- 异常
- 异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现。
- 异常就是控制流中的突变,用来响应处理器状态的某种变化。
- 任何情况下,当处理器检测到有事件发生时,它会通过一张叫做异常表的跳转表,进行一个简介过程调用(异常),到一个专门设计用来处理这类事件的操作系统子程序(异常处理程序。当异常处理子程序完成处理后,根据引起异常的事件的类型,会发生以下3种情况之一:
- 处理程序将控制返回给当前指令Icurr,即当事件发生时正在执行的指令。
- 处理程序将控制返回给Inext,如果没有异常将会执行的下一条指令。
- 处理程序终止被中断的程序。
类别 | 原因 | 异步/同步 | 返回行为 |
---|---|---|---|
中断 | 来自I/O设备的信号 | 异步 | 总是返回到下一条指令 |
陷阱 | 有意的异常 | 同步 | 总是返回到下一条指令 |
故障 | 潜在可恢复的错误 | 同步 | 可能返回到当前指令 |
终止 | 不可恢复的错误 | 同步 | 不会返回 |
-
进程
- 进程的经典定义就是一个执行中程序的实例。
- 系统中每个程序都运行在某个进程的上下文(context)中。上下文是由程序正确运行所需的状态组成的。这个状态包括存放在内存中的程序的代码和数据,它的栈、通用目的寄存器的内容、程序计数器、环境变量以及打开文件描述符的集合。
- 地址空间底部是保留给用户程序的,包括通常的代码、数据、堆和栈段。代码段总是从地址
0x400000
开始。 - 在内核调度了一个新的进程运行后,它就抢占当前进程,并使用一种称为上下文切换的机制来将控制转移到新的进程,上下文切换
- 1)保存当前进程的上下文
- 2)恢复某个先前被抢占的进程被保存的上下文
- 3)将控制传递给这个新恢复的进程。
-
信号
- 信号是一种更高层软件形式的异常,它允许进程中断其他进程。一个信号即一条信息,通知进程一个某种类型的事件已经在系统中发生了。
- 每种信号类型都对应某个类型的系统事件。底层硬件异常通常对用户进程不可见,信号提供了一种机制向用户进程通知这些异常的发生。其他信号对应内核或其他用户进程中较高层的软件事件。