继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第3天 C气象数据中心 第二章 2-8节

一点积分
关注TA
已关注
手记 29
粉丝 6
获赞 2


课程名称:C/C++气象数据中心实战,手把手教你做工业级项目


课程章节:2-8linux多进程  


主讲老师: 吴从周



课程内容:

  1. 认识linux三个特别的进程,0号,1号和2号。

  2. 通过ps命令对linux系统中的不同进程进行查看认识和区分。

  3. 通过编写程序,运用fork函数进一步加深对于多进程中的子进程和父进程的特点理解。

  4. 通过实例演示,讲述子进程和父进程相互之间的关系,以及在实际运用中如何解决僵尸进程的方法。



课程收获:


1.linux中具有三个特别的进程,分别是0号idle进程,1号systemed(init)进程,2号kthreadd进程。其中,0号进程是系统创造的第一个进程,将会加载系统,进而演变成为1号和2号进程,1号进程用于系统的初始化,是其他用户进程的祖先,例如网络服务进程,防火墙服务等,3号进主要负责所有的内核线程,他是内核的守护进程,始终运行在内核空间, 负责全部内核线程的调度和管理。



2.fork函数,一个现有的进程调用函数fork时,会创建一个新的进程,这个即为子进程,原有进程为父进程。

子进程和父进程继续执行fork函数的代码。即fork函数调用一次,会返回两次,子进程返回0,父进程返回子进程的进程ID号,当fork函数调用失败时会返回-1,一般为内存空间不足等极端情况。


3.父进程和子进程是相互独立的进程,在父进程中的操作是不会改变子进程中的参数,子进程只是在创建时复制了父进程的数据空间,并不是两者进行了共享。且子进程和父进程的执行顺序是不确定的,取决于操作系统的算法。

4.僵尸进程和孤儿进程,在实应用中,僵尸进程虽然不占用系统资源,但是他的进程号会被保留,积累过多时可能会导致系统崩溃。僵尸进程是已经结束的进程,但是没有被父进程回收导致的。孤儿进程是指父进程先退出,由1号进程完成其状态收集工作的进程,无危害。

http://img2.sycdn.imooc.com/62ec921b0001801014010146.jpg



5 处理僵尸进程的方法 通过代码在父进程中忽略SIGCHLD信号,此时内核会自动回收子进程。其次,可以在父进程文件中添加等待代码,最后常见的使用是设置SIGCHLD信号处理函数,在函数中调用wait,不耽搁父进程的操作。



http://img3.sycdn.imooc.com/62ec92fa0001034723251387.jpg

http://img1.sycdn.imooc.com/62ec930a00019fb218170890.jpg


http://img3.sycdn.imooc.com/62ec938900017b2518060932.jpghttp://img1.sycdn.imooc.com/62ec939c0001f33a17950900.jpg





打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP