linux下exit系统调用
来源:互联网 发布:北京精雕编程软件 编辑:程序博客网 时间:2024/05/16 10:20
原文地址:http://blog.sina.com.cn/s/blog_4850a7880100hncm.html
参考:http://lzjyjh.blog.sohu.com/137646727.html
———————————————————————————————————————————————
在Unix OS中,通过执行系统调用exit来终止一个进程。进程可以显示的调用exit系统调用来终止一个进程,也可以通过在程序结束时的return来实现(startup routine调用exit当一个C程序从main函数返回时)。
调用exit方式如下:
status是返回给父进程的终止code。当一个进程exit后,这个进程处于zombie state。
exit系统调用的执行发生以下事件:
1.清除当前进程的所有信号处理函数。
2.如果当前进程是和终端关联的“进程组组长”,则会向每个组内进程发送hang-up signal,并且把这些成员的进程组设置为0。
3.通过内核内部算法关闭当前进程所有打开的文件描述符,并且释放当前目录所关联的inode;如果存在current (charged)root,也将其释放通过算法iput。
4.为进程释放所有的region以及关联的memory。
5.计算进程机器子进程执行的时间(user mode 和kernel mode),并把记录写到一个全局的accounting file。
6.将进程的状态改变为zombie,并将自己的所有的子进程的父进程ID设置为1(init);如果有孩子的状态是zombie,向init进程发SIGCHLD信号,以清除子进程的process table slot。
7.exiting进程向自己的父进程发送SIGCHLD信号。
8.进行context switch,调度其他非zombie进程(本进程已经是zombie)。
在讨论exit与_exit之前,先来讨论文件内存缓存区的问题。
- linux下exit系统调用
- linux下exit系统调用流程
- linux下系统调用
- linux系统调用:exit()与_exit()函数详解
- Exit codes 【关键语:linux 系统调用 exit(int status) 的退出值的说明 】
- MINIX系统调用EXIT分析
- 系统调用exit和wait
- 【进程管理】系统调用exit()
- linux下exit()
- linux下select系统调用
- linux下的系统调用
- 验证linux下系统调用
- linux下常用系统调用
- Linux下select()系统调用
- Linux下系统调用与库函数调用
- linux下使用系统调用模拟SHELL
- Linux下系统调用的实现
- MIPS Linux 下添加系统调用
- MySQL limit实际用法的详细解析
- lcc-win32 link error win7
- 使用Java进行CORBA编程-JacORB-Event Service
- 性能测试解惑之并发压力
- 浅谈当下测试该何去何从
- linux下exit系统调用
- linux 环境变量设置
- iOS设备硬件规格完整汇总
- 这些年,我的软件性能测试
- 仿网页分页页码
- 32个经典算法
- mysql隔离级别与sql blocking之间的关系
- 卡刷和线刷怎么区别
- Android文件资源(raw/data/asset)的存取