第8章进程控制总结
2014-12-04 16:07
176 查看
1 父子进程的程序空间
子进程获得父进程的数据空间、堆、栈的副本,即不共享这些空间
父子进程共享正文段
不过现在又很多实现采用COW写时复制技术,即共享空间,发生修改时只为修改区域制作副本
2 文件共享
父子进程各自维护进程表项(记录有文件描述符、文件描述符标志、文件表指针)
父子进程共享文件表(记录当前文件偏移量、文件状态标志、v节点指针)
一个文件只有一个v节点表
3 vfork
vfork创建的子进程目的是为了调用exec函数
在调用exec函数之前,父子进程共享程序空间(因为调用exec之后,子进程将访问另外的程序空间,调用exec之前没必要单独为子进程复制父进程的程序空间)
vfork保证子进程先运行,直到子进程调用exec或exit函数后父进程才开始运行
4 wait
wait函数等待所有子进程中的一个进程终止,将终止状态写入status并返回子进程ID
waitpid函数通过pid、option决定是否阻塞的方式等待某个子进程
对于wait获取的子进程终止状态,可以通过以下宏来判断:
waitpid函数再添加一个参数,用来获取子进程的资源使用情况即为wait4函数:
wait3函数不指定子进程pid
5 exec函数
execl和execv函数的pathname参数指定执行程序的路径(绝对路径、相对路径、或直接是当前目录下的文件名)
exelce和execve添加char *const env[]参数传递环境变量
execlp和execvp的第一个参数如果不是路径名,则在PATH的路径下找执行文件(如果是文件名只会在PATH下寻找,不会在当前目录下寻找)
子进程获得父进程的数据空间、堆、栈的副本,即不共享这些空间
父子进程共享正文段
不过现在又很多实现采用COW写时复制技术,即共享空间,发生修改时只为修改区域制作副本
2 文件共享
父子进程各自维护进程表项(记录有文件描述符、文件描述符标志、文件表指针)
父子进程共享文件表(记录当前文件偏移量、文件状态标志、v节点指针)
一个文件只有一个v节点表
3 vfork
vfork创建的子进程目的是为了调用exec函数
在调用exec函数之前,父子进程共享程序空间(因为调用exec之后,子进程将访问另外的程序空间,调用exec之前没必要单独为子进程复制父进程的程序空间)
vfork保证子进程先运行,直到子进程调用exec或exit函数后父进程才开始运行
4 wait
pid_t wait(int *status) pid_t waitpid(pid_t pid,int *status,int option)
wait函数等待所有子进程中的一个进程终止,将终止状态写入status并返回子进程ID
waitpid函数通过pid、option决定是否阻塞的方式等待某个子进程
对于wait获取的子进程终止状态,可以通过以下宏来判断:
WIFEXITED(status) WIFSIGNALED(status) WIFSTOPPED(status) WIFCONTINUED(status)
waitpid函数再添加一个参数,用来获取子进程的资源使用情况即为wait4函数:
pid_t wait4(pid_t pid,int *status,int option,strcut rusage *rusage)
wait3函数不指定子进程pid
5 exec函数
int execl(const char *pathname,const char *arg0,.../*(char *)0 */) int execv(const char *pathname,char *const argv[])
execl和execv函数的pathname参数指定执行程序的路径(绝对路径、相对路径、或直接是当前目录下的文件名)
exelce和execve添加char *const env[]参数传递环境变量
execlp和execvp的第一个参数如果不是路径名,则在PATH的路径下找执行文件(如果是文件名只会在PATH下寻找,不会在当前目录下寻找)
相关文章推荐
- Unix/Linux中进程控制相关命令总结——&, jobs, fg, bg等命令的使用方法
- APUE读书笔记-第8章进程控制
- UNIX环境高级编程 第8章 进程控制
- 进程控制总结
- 操作系统课程总结(进程的描述与控制,处理机调度与死锁)
- [Linux内核完全剖析]第五章Linux内核体系结构5.7总结 进程控制
- Linux中关于控制进程的命令总结
- apue 第8章 进程控制
- 《Unix环境高级编程》读书笔记 第8章-进程控制
- 第8章(2) 进程控制 -函数wait和waitpid
- UNIX环境高级编程-第8章- 进程控制 - 二
- linux进程控制总结一
- 第8章 进程控制
- Unix/Linux中进程控制相关命令总结&, jobs, fg, bg等命令的使用方法
- UNIX环境高级编程-第8章- 进程控制 - 一
- UNIX环境高级编程第8章进程控制 8.3fork 文件共享 vfork
- 《UNIX环境高级编程》第8章 进程控制
- linux 进程控制总结笔记
- linux进程控制总结二
- 深入理解计算机操作系统——第8章:进程控制