2018-2019-1 20165236 《信息安全系统设计基础》第七周学习总结
学习目标
1、了解异常及其种类;
2、理解进程和并发的概念;
3、掌握进程创建和控制的系统调用及函数使用:fork,exec,wait,waitpid,exit,getpid,getppid,sleep,pause,setenv,unsetenv,
4、理解数组指针、指针数组、函数指针、指针函数的区别;
5、理解信号机制:kill,alarm,signal,sigaction;
6、掌握管道和I/O重定向:pipe, dup, dup2。
一、教材内容学习总结
异常
1、异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现。
异常就是控制流中的突变,用来响应处理器状态中的某些变化。
2、异常的类别:中断、陷阱、故障、终止;
进程
1、逻辑控制流
程序计数器(PC)值的序列叫做逻辑控制流,简称逻辑流。
2、并发流
多个流并发执行的一般现象称为并发;
多个进程并发叫做多任务;
并发流在不同的cpu或计算机上,叫做并行。
3、私有地址空间
4、用户模式和内核模式
5、上下文切换
系统调用错误处理
进程控制
一、获取进程
1.getpid函数返回调用进程的PID;
2.getppid函数返回它的父进程的PID。
二、 创建和终止进程
1.进程的三种状态:运行、停止和终止。
2.进程会因为三种原因终止进程:收到信号,该信号默认终止进程;从主程序返回;调用exit函数。
3.fork函数:调用一次,返回两次;并发执行;相同但是独立的地址空间;共享文件。
三、 回收子进程
1.回收:当一个进程终止时,内核并不立即把它从系统中清除。相反,进程被保持在一种已终止的状态中,直到被它的父进程回收。
2.僵死进程:一个终止了但是还未被回收的进程称为僵死进程。
3.回收子进程的两种方法:内核的init进程;父进程waitpid函数。
4.waitpid函数有点复杂,默认地(当options=0时),waitpid挂起调用进程的执行,知道它的等待集合中的一个子进程终止。
四、信号
Linux信号如图:
信号术语
1.传送一个信号到目的进程是由两个步骤组成的发送信号。内核通过更新目的进程上下文中的某个状态,发送(递送)一个信号给目的进程。发送信号可以有如下两种原因:
(1)内核检测到一个系统事件。
(2)一个进程调用了kill函数,显式地要求内核发送一个信号给目的进程,一个进程可以发送信号给它自己。
2.接收信号:当目的进程被内核强迫以某种方式的发送做出反应时,目的进程就接收了信号。进程可以忽略这个信号,终止或者通过执行一个称为信号处理程序的用户层函数不活这个信号。
3.一个只发出而没有被接收的信号叫做待处理信号。在任何时刻,一种类型至多只会有一个待处理信号。
4.一个进程可以有选择性地阻塞接收某种信号。当一种信号被阻塞时,他仍可以被发送,但是产生的待处理信号不会被接收,直到进程取消对这种信号的阻塞。一个待处理信号最多只能被接收一次。
操作进程的工具:
Linux、STRACE、PS、TOP、PMAP。
五、本周学习体会
本周主要学习了异常控制流这一节,进一步理解到了计算机系统的工作原理,也为下一步地学习打下基础。