ch08 异常控制流
目录
- 教材内容
- 课下测试总结
参考资料
教材内容
一、异常
- 控制流中的突变,用来响应处理器状态中的某些变化
- 是异常控制流的一种形式,一部分由硬件实现,一部分由操作系统实现
- 异常处理
- 异常号:系统中可能的每种类型的异常都有,唯一的,非负整数
- 异常表基址寄存器
- 异常类别
- 中断:异步发生,来自处理器外部的I/O设备信号,总是返回到下一条指令
- 陷阱:同步发生,有意的异常,总是返回到下一条指令。(与系统调用有关)
- 故障:同步发生,潜在可恢复的错误,可能返回到当前指令
- 终止:同步发生,不可恢复的错误,不会返回
- Linux/IA32系统中的异常
- 逻辑控制流(逻辑流)
程序计数器PC的值得序列
- 并发流
一个逻辑流的执行在时间上与另一个重叠
- 多任务:一个进程和其他进程轮流运行(时间分片)
- 时间片:一个进程执行它的控制流的一部分的每一时间
- 私有地址空间
- 32位进程:代码段从地址
0x08048000
开始
- 64位进程:代码段从地址
0x00400000
开始
- 用户模式和内核模式
- 用户模式:未设置模式位,不允许执行特权指令以及直接引用地址空间中内核区内的代码和数据
- 内核模式:设置模式位,可以执行指令集中的任何指令,访问系统中任何存储器的位置
- 上下文切换
- 保存当前进程的上下文
- 恢复某个先前被抢占的进程的被保存的上下文
将控制传递给这个新恢复的进程
四、进程控制
- 获取进程id
- PID:每个进程唯一,正数
getpid
函数:返回调用进程的PID,pid_t的整数值,types.h(int)
getppid
函数:返回父进程的PID,pid_t的整数值,types.h(int)
- 创建和终止进程
- 程序员的角度,进程三种状态:运行、停止、终止
- 父进程通过调用fork函数创建一个新的运行子进程
- fork函数:
- 调用一次,返回两次
- 并发执行
- 相同但是独立的地址空间
- 共享文件
- 回收子进程
进程终止后保持已终止状态直到被父进程回收,终止未被回收的称作僵死进程。
- 一个进程可以通过调用waitpid来等待它的紫禁城终止或停止
- wait(&status)等价于waitpid(-1,&status,0)
- 让进程休眠
- 加载并运行程序
2018-2019-1 20165326 《信息安全系统设计基础》第六周学习总结
原文:https://www.cnblogs.com/Czzzz/p/9939787.html