2018-2019-1 20165206 《信息安全系统设计基础》第七周学习总结
Posted brs666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-2019-1 20165206 《信息安全系统设计基础》第七周学习总结相关的知识,希望对你有一定的参考价值。
- 2018-2019-1 20165206 《信息安全系统设计基础》第七周学习总结
- 教材学习内容总结
- 异常
异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现。异常是控制流中的突变,用来响应处理器状态中的某些变化。
异常处理程序运行在内核模式下,它们对所以的系统资源都有完全的访问权限。
异常的种类:异常可分为四类,中断、陷阱、故障和终止。
中断是异步产生的,是来自处理器外部的I/O设备的信号的结果。
陷阱是有意的异常,是执行一条指令的结果。
故障由错误情况引起,它可能能够被故障处理程序修正。
终止是不可恢复的致命错误造成的结果,通常是一些硬件错误。
- 系统调用
- 进程
进程的经典定义是一个执行中的程序的实例。
进程提供给应用程序的关键抽象:一个独立的逻辑控制流,它提供一个假象,好像我们的程序独占地使用处理器;一个私有的地址空间,它提供一个假象,好像我们的程序独占地使用内存系统。
并发流:一个逻辑流的执行在时间上与另一个流重叠。这两个流称为并发地执行。
操作系统内核使用一种称为上下文切换的较高层形式的异常控制流来实现多任务。
- 进程控制
每个进程都有一个唯一的正数进程ID,PID。getpid函数返回调用进程的PID。getppid函数返回它的父进程的PID。
可以认为进程总是处于下面三种状态之一:
1、运行:进程要么在CPU上执行,要么在等待被执行且最终会被内核调度。
2、停止:进程的执行被挂起,且不会被调度。
3、终止:进程永远地停止了。
进程终止的三种原因:收到一个信号,该信号的默认行为是终止进程、从主程序返回、调用exit函数。
fork函数:父进程通过调用fork函数创建一个新的运行的子程序。
它只被调用一次,却会返回两次:一次是在父进程中,一次是在新创建的子进程中。
在父进程中,fork返回子进程的PID。
代码运行效果:
- exec函数:在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是:
int execl(const char path, const char arg, ...);
int execlp(const char file, const char arg, ...);
int execle(const char path, const char arg, ..., char const envp[]);
int execv(const char path, char const argv[]);
int execvp(const char file, char const argv[]);
int execve(const char path, char const argv[], char const envp[]);
其中只有execve是真正意义上的系统调用,其它都是在此基础上经过包装的库函数。
exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。
代码运行效果:
- 发送信号:
用/bin/kill程序发送信号
从键盘发送信号
用kill函数发送信号
用alarm函数发送信号
- 上周错题总结
第一题:
write(2)的第一个参数fd可能来自()
A .
open(2)
B .
create(2)
C .
creat(2)
D .
close(2)答案:A C
以上是关于2018-2019-1 20165206 《信息安全系统设计基础》第七周学习总结的主要内容,如果未能解决你的问题,请参考以下文章
2018-2019-1 20165206 《信息安全系统设计基础》第4周学习总结
2018-2019-1 20165206 《信息安全系统设计基础》第3周学习总结
2018-2019-1 20165206 《信息安全系统设计基础》第七周学习总结
20165206 2018-2019-1 《信息安全系统设计基础》第五周学习总结