信息安全系统设计基础第十一周学习总结

第八章 异常控制流

ECF:(异常控制流)突变集合

平滑:顺序结构的指令

突变:跳转、调用、和返回等指令,不在同一栈

基本机制:ECF是操作系统用来实现I/O、进程和虚拟存器的基本机制   ECF是计算机系统中实现并发的基本机制

异常

控制流的突变

异常号:

系统为每种类型的异常分配的唯一的非负整数

异常表:

系统启动时操作系统就会初始化一张条转变,使得条目k包含异常k的处理程序的地址

用法:

从异常号到异常表的索引

类别:

中断:来自处理器外部的I/O设备的信号的结果,返回下一条指令

陷阱:陷阱是有意的异常,系统调用

故障:由错误状况引起,可能能够被故障处理程序修正

终止:通常是一些硬件错误

汇编常用调用方式:call

通过CALL后面参数的赋值实现不同类别的中断或陷阱

中断:call 21H(标准输出,引用的是IOS)

陷阱:call 函数名

进程

程序运行在进程上下文中

进程提供给应用程序的关键抽象:

一个独立的逻辑控制流:独占的使用处理器

一个私有的地址空间:独占的使用存储器系统

进程利用CPU方式:SFCF,SRT,RR,和多及调度(常用)

多及调度特点:

以时间片轮转进行进程安排

并发流

同时运行多个流

并行:两个流并发的运行不同的处理机核或者计算机上

控制权限位:区别用户模式和内核模式

进程控制

每个进程都有一个唯一的正数进程ID(PID)

pid_t getpid(void); 返回调用进程的PID

pid_t getppid(void); 返回父进程的PID(创建调用进程的进程)

fork:

格式:pid_t fork(void)

调用一次,返回两次

exit:

格式:void exit(int status);

waitpid:

格式:pid_t waitpid(pid_t pid, int *status, int options);

成功返回子进程PID,如果WNOHANG,返回0,其他错误返回-1.

wait:

wait(&status)等价于waitpid(-1,&status,0).

pid_t wait(int *status);

sleep:

unsigned int sleep(unsigned int secs);

pause

int pause(void);

execve:

int execve(const char *filename, const char *argv[], const char *envp[]);

fork函数和execve函数的区别

fork函数是创建新的子进程,是父进程的复制体,在新的子进程中运行相同的程序,父进程和子进程有相同的文件表,但是不同的PID

execve函数在当前进程的上下文中加载并运行一个新的程序,会覆盖当前进程的地址空间,但是没有创建一个新进程,有相同的PID,继承文件描述符

posted @ 2015-11-22 18:57  武西垚  阅读(211)  评论(0编辑  收藏  举报