20165311 《信息安全系统设计基础》第七周学习
学习目标:
- 了解异常及其种类
- 理解进程和并发的概念
- 掌握进程创建和控制的系统调用及函数使用:
fork
,exec
,wait
,waitpid
,exit
,getpid
,getppid
,sleep
,pause
,setenv
,unsetenv
- 理解数组指针、指针数组、函数指针、指针函数的区别
- 理解信号机制:
kill
,alarm
,signal
,sigaction
- 掌握管道和I/O重定向:
pipe
,dup
,dup2
知识点学习:
1.异常控制流(ECF):现代系统通过使控制流发生突变,做出反应。
对于ECF的理解:
-
- ECF是操作系统的基本机制
- 应用程序通过ECF的形式,向操作系统请求服务
- ECF是计算机系统中实现并发的基本机制
异常:是异常控制流的一种形式,是控制流中的突变
事件:状态的变化
异常处理程序对事件进行处理
异常的类别,如图1:
异常的具体理解:
-
- 中断
- 陷阱和系统调用:为了允许对这些内核服务的受控的访问,处理器提供了syscall指令
- 故障
- 终止
2.Linux信号处理
- 可以用signal()处理信号:通过把处理程序的地址传递到signal函数从而改变默认行为,这叫设置信号处理程序。执行信号处理程序被称为处理信号。
- 一个信号最多只能被接收一次:每种类型最u多只能有一个未处理的信号,如果两种类型k的信号发给同一个目的进程,第二个信号就简单的被遗弃了。
- kill函数发送信号号码sig给进程pid,kill(1)用来发送信号。
- 可以通过键盘发送信号。
- 可以用sigaction()处理信号。
3、exec系列函数
- 不能用char[][] 来传递argv。
- 结尾的0(null)无法处理。
- 进程调用了exec系列函数后,代码会改变。
- system=fork+exec+wait。
- exec系列函数中带e的要传入环境变量参数。