2018-2019-1 20165215 《信息安全系统设计基础》第七周学习总结
2018-2019-1 20165215 《信息安全系统设计基础》第七周学习总结
教材学习内容总结
异常及其种类
-
异常是异常控制流的一种形式,它一部分是由硬件实现的,一部分是有操作系统实现的。
-
异常就是控制流中的突变,用来响应处理器状态中的某些变化。
-
异常的种类
- 中断:硬件异常中断处理程序通常称为中断处理程序。检测到异常后,中断当前程序;返回时指向下一条指令,程序继续执行
- 陷阱:陷阱最重要的用途是在用户程序和内核之间提供一个像过程一样的接口,叫做系统调用。
- 系统调用和普通的函数调用的实现是不同的。
- 普通的函数运行在用户模式中,用户模式限制了函数可以执行的指令的类型,而且它们只能访问与调用函数相同的栈
- 系统调用运行在内核模式中,内核模式允许系统调用执行指令,并访问定义在内核中的栈。
- 故障:由错误情况引起,可能能够被故障处理程序修正。
- 终止:不可恢复的致命错误造成的结果,通常是一些硬件错误。
Linux/x86-64系统中的异常
Linux/x86-64系统常用的系统调用
进程和并发
- 异常是允许操作系统提供进程的概念所需要的基本构造块,进程是一个执行中程序的实例
- 进程提供给应用程序的关键抽象:
- 一个独立的逻辑控制流,独占地使用处理器一个私有的地址空间,独占地使用存储器系统。
- 进程是轮流使用处理器的,每个进程执行它流的一部分,然后被抢占,轮到其他进程。
- 并发流:一个逻辑流的执行再时间上与另一个流重叠
- 并发:多个流并发地执行的一般现象。即在一个处理器上同时运行多个程序
- 并行:两个流并发的运行在不同的处理器核或者计算机上。
进程控制
- 父进程通过调用 fork 函数创建一个新的运行的子进程。
- 新创建的子进程几乎但不完全与父进程相同。子进程相当于从 fork() 函数继续执行。但是子进程和父进程有不同的 PID,这也是它们最大的区别。
- 在父进程中,fork 返回子进程的 PID。在子进程中,fork 返回 0。子进程的 PID 总是为非零。
- 一个进程可以通过调用 waitpid 函数来等待它的子进程终止或者停止,waitpid 返回导致 waitpid 返回已终止子进程的 PID。
- execve 函数在当前进程的上下文中加载并运行一个新程序。