20145234黄斐《信息安全系统设计基础》第十一周学习总结(1)

课本知识概述

8.0综述

现代系统通过使控制流发生突变来对各种情况做出反应,我们将这些突变称为异常控制流(ECF)

理解ECF的重要性

帮助你理解重要的系统概念

理解应用程序是如何与操作系统交互的(通过“陷阱”或“系统调用”)

帮助你编写有趣的新应用程序

帮助你理解并发

帮助你理解软件异常如何工作

8.1 异常

“异常”即控制流中的突变,用来响应处理器状态中的某些变化

事件即“状态变化”

8.1.1 异常处理

在任何情况下,当处理器检测到有事件发生时,它就会通过一张叫做“异常表”的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类事件的操作系统子程序

异常表的起始地址放在“异常表基址寄存器”

8.1.2 异常的控制

异常分为四类“中断”,“陷阱”,“故障”,“终止”

8.1.3 Linux/IA32系统中的异常

IA32系统异常示例

Linx见课本

 

8.2 进程

8.2.1 逻辑控制流

用调试器单步执行程序,其PC值的序列叫做逻辑序列流

8.2.2 并发流

一个逻辑流的执行在时间上与另一个流重叠,称为并发流,这两个流被称为“并发地运行”

8.2.3 私有地址空间

一个进程为每个程序提供它自己的私有地址空间

8.2.4 用户模式和内核模式

处理器通常是用某个控制寄存器中的一个模式位来提供这种功能的,该寄存器描述了进程当前享有的特权

8.2.5 上下文切换

内核为每个进程维持上下文,上下文即内核重新启动一个被强占的进程所需的状态

8.3 系统调用错误处理

通过使用错误处理包装函数,可以进一步简化代码

8.4 信号

8.4.1 获取进程ID

每个进程都有一个唯一的正数类型的进程ID

8.4.2 创建和终止进程

进程永远处在“运行”“停止”“终止”三个状态之一

8.4.3 回收子进程

当进程由于某种原因终止时,内核并不是立刻把它从系统中清除。相反,进程处于终止状态,直到被其父进程回收

8.4.4 让进程休眠

可用sleep函数将一个进程挂起一段指定的时间

 

 

posted @ 2016-11-24 22:24  20145234黄斐  阅读(123)  评论(0编辑  收藏  举报