c语言中的僵尸太及wait的作用
来源:互联网 发布:对日软件开发招聘 编辑:程序博客网 时间:2024/05/12 11:41
僵尸态进程:
子进程结束啦,按时没有父进程收尸!
创建一个僵尸态的子进程:
父进程是存在的,只是没有做收尸操作而已!
但是此时子进程已经结束!
根据上述特点,创建一个僵尸态的子进程,通过 ps aux | grep a.out
查看僵尸态子进程
ubuntu 3909 0.0 0.0 1992 280 pts/1 S+ 19:35 0:00 ./a.out
--
Z
[1].进程的生命周期
(a).进程的创建 -- fork
(b).进程的执行 -- a.子进程中实现处理逻辑 b.调用exec函数族 实现 运行新程序
(c).进程的结束 -- exit _exit (return main)
两种进程状态
1).孤儿进程
特点:
父进程结束了,但是子进程还存在,此时子进程被init进程收养
2).僵尸进程
特点:
子进程结束了,但是父进程还存在,并且父进程没有做任何收尸操作,导致子进程成为僵尸态的进程
收尸: 回收资源
僵尸态的进程占用哪些资源?
[1].pcb 进程占用的内存
pcb 描述了进程 信息的
僵尸态进程是进程本身已经结束了但是对应的pcb还没有释放
"我是我" ---->"销户"
wait 函数:
pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
进程的状态改变:
(1),子进程结束
(2).子进程被暂停
(3).子进程被重新恢复
wait 函数: 是一个阻塞的方式 会导致 调用进程 阻塞 ,直到 调用进程的子进程结束
waitpid();
@options
WNOHANG //no hang 非阻塞的方式 等待子进程结束
WUNTRACED //R --> T 子进程从 运行态 到 T(stop)的状态的改变
WCONTINUED//T --> R 子进程被恢复的状态改变
@status 非NULL 则获取进程的退出状态信息
子进程结束啦,按时没有父进程收尸!
创建一个僵尸态的子进程:
收尸---wait(NULL); //关心子进程的退出,进行子进程的收尸操作
父进程是存在的,只是没有做收尸操作而已!
但是此时子进程已经结束!
根据上述特点,创建一个僵尸态的子进程,通过 ps aux | grep a.out
查看僵尸态子进程
ubuntu 3909 0.0 0.0 1992 280 pts/1 S+ 19:35 0:00 ./a.out
--
Z
[1].进程的生命周期
(a).进程的创建 -- fork
(b).进程的执行 -- a.子进程中实现处理逻辑 b.调用exec函数族 实现 运行新程序
(c).进程的结束 -- exit _exit (return main)
两种进程状态
1).孤儿进程
特点:
父进程结束了,但是子进程还存在,此时子进程被init进程收养
2).僵尸进程
特点:
子进程结束了,但是父进程还存在,并且父进程没有做任何收尸操作,导致子进程成为僵尸态的进程
收尸: 回收资源
僵尸态的进程占用哪些资源?
[1].pcb 进程占用的内存
pcb 描述了进程 信息的
僵尸态进程是进程本身已经结束了但是对应的pcb还没有释放
"我是我" ---->"销户"
wait 函数:
pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
进程的状态改变:
(1),子进程结束
(2).子进程被暂停
(3).子进程被重新恢复
wait 函数: 是一个阻塞的方式 会导致 调用进程 阻塞 ,直到 调用进程的子进程结束
waitpid();
@options
WNOHANG //no hang 非阻塞的方式 等待子进程结束
WUNTRACED //R --> T 子进程从 运行态 到 T(stop)的状态的改变
WCONTINUED//T --> R 子进程被恢复的状态改变
@status 非NULL 则获取进程的退出状态信息
exit();
0 0
- c语言中的僵尸太及wait的作用
- C语言宏定义中的#,##,#@及\符号的作用
- c语言宏定义中的#,##,#@及\符号的作用
- C语言宏定义中的#,##,#@及\符号的作用
- C语言宏定义中的#,##,#@及\符号的作用
- C语言宏定义中的#,##,#@及\符号的作用
- wait、waitpid及僵尸进程
- C语言中的#作用
- C语言extern的用法及作用
- c语言:#和##的区别及作用
- C语言中的静态函数的作用
- C语言中的#与##字符的作用
- C语言中的.h文件的作用
- C语言中的双感叹号的作用
- C语言中的static关键字的作用
- c语言中的#号的作用
- C语言中的.h文件的作用
- c语言中的#号的作用
- c语言中如何创建新的线程
- Linux驱动学习笔记之触摸屏驱动
- 流和延时求值
- HTTPClient
- vs2013 在创建新项目时,提示:系统找不到指定的文件。(异常来自 HRESULT:0x80070002)
- c语言中的僵尸太及wait的作用
- NFS 文件系统挂载
- 点云txt格式转pcd格式
- Codeforces Round #358 (Div. 2) B. Alyona and Mex
- HTTP状态
- 【POJ 1236】Network of Schools(tarjan算法)
- Linux触摸屏驱动测试程序
- 流量整形,延迟以及ACK丢失对TCP发送时序的影响
- Tarjan算法