进程控制学习笔记

这篇具有很好参考价值的文章主要介绍了进程控制学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

进程退出

子进程的退出需要父进程对其资源的释放,子进程只能对用户区的数据进行释放,无法完成对内核区的释放。
进程控制学习笔记,Linux,学习,笔记,linux
进程控制学习笔记,Linux,学习,笔记,linux
可以获取到。
进程控制学习笔记,Linux,学习,笔记,linux
两个退出的区别:
系统调用不会刷新缓冲区,只会显示”hello"(/n会刷新缓冲区)。
而C库函数调用会刷新缓冲区,会将“world"显示出来,return 0 相当于exit(0)。

孤儿进程

父进程结束了,子进程依然存在。
每出现孤儿进程,内核就会把其父进程设置为init(pid 为 1),而init进程就会循环的wait()它的已经退出的子进程。
init进程处理孤儿进程的善后工作。
孤儿进程并没有什么危害。

僵尸进程

进程控制学习笔记,Linux,学习,笔记,linux
Z+:进程类型,ps aux 可以查看,表示僵尸进程
<defunct>不存在的,死了的
解决方式:
需要父进程去释放回收子进程资源,无法使用kill -9杀死僵尸进程。

  1. 可以杀死父进程而通过init进程杀死僵尸进程
  2. *父进程使用wait()\waitpid()彻底清除僵尸进程

进程回收

进程控制学习笔记,Linux,学习,笔记,linux
进程控制学习笔记,Linux,学习,笔记,linux
进程控制学习笔记,Linux,学习,笔记,linux
父进程调用wait()函数时,该父进程会被挂起(阻塞),直到它的一个子进程退出或者收到一个不能被忽略的信号时。
当有子进程退出,会返回子进程的进程号,如果所有子进程都已经结束,没有子进程了,就会立即返回-1。

status 参数传入返回值:👇
进程控制学习笔记,Linux,学习,笔记,linux
WEXITSTATUS(status),进程通过return x或者 exit(x)后,该宏就可以返回x值
WTERMSIG(status),kill -9,则返回进程终止的信号编号9.

waitpid()函数

pid:
0和-1用的最多。

进程控制学习笔记,Linux,学习,笔记,linux进程控制学习笔记,Linux,学习,笔记,linux文章来源地址https://www.toymoban.com/news/detail-600331.html

到了这里,关于进程控制学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Linux 进程控制(二)] 进程程序替换

    首先,我们要认识到,我们之前fork()所创建的子进程,执行的代码,都是父进程的一部分(用if-else分流或者执行同样的代码)! 如果我们想让子进程执行新的程序呢? 执行全新的代码和访问全新的数据,不再和父进程有瓜葛,这种技术就叫做程序替换 ,下面我们就来学习一

    2024年03月14日
    浏览(51)
  • 【Linux】Linux进程控制及程序替换

    🍎 作者: 阿润菜菜 📖 专栏: Linux系统编程 在linux中fork是一个很重要的函数,它可以已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 fork函数返回两个值,一个是子进程的进程号(pid),另一个是0。 父进程可以通过pid来区分自己和子进程,子进程可

    2024年02月02日
    浏览(46)
  • 【Linux】Linux进程控制 --- 进程创建、终止、等待、替换、shell派生子进程的理解…

    柴犬: 你好啊,屏幕前的大帅哥or大美女,和我一起享受美好的今天叭😃😃😃 1. 在调用fork函数之后, 当执行的程序代码转移到内核中的fork代码后 ,内核需要分配 新的内存块 和 内核数据结构 给子进程, 内核数据结构包括PCB、mm_struct和页表,然后构建起映射关系 ,同时

    2024年01月16日
    浏览(58)
  • 【Linux进程控制】进程创建 | 进程终止 | 进程等待 | 进程替换

    【写在前面】 本文主要学习理解 fork 的返回值、写时拷贝的工作细节、为什么要存在写时拷贝;进程退出码、进程退出的场景及常见的退出方法、对比 man 2 _exit 和 man 3 exit;进程终止、操作系统怎么进行释放资源、池的概念;进程等待的价值、进程等待的方法 wait 和 waitpid

    2023年04月08日
    浏览(38)
  • linux入门之进程控制(上)进程创建,进程等待

    目录 一、进程创建 1.fork函数 2.fork函数返回值 3.写时拷贝 4.fork常规用法 5.fork调用失败原因 二、进程终止 1.进程退出场景 2.进程常见退出方法 2.1_exit函数(直接调用内核) 2.2 exit函数 2.3return退出 三、进程等待 1.进程等待必要性 2.进程等待方法 2.1 wait方法 2.2 waitpid方法 2.3获取

    2024年02月12日
    浏览(56)
  • 进程控制学习笔记

    子进程的退出需要父进程对其资源的释放,子进程只能对用户区的数据进行释放,无法完成对内核区的释放。 可以获取到。 两个退出的区别: 系统调用不会刷新缓冲区,只会显示”hello\\\"(/n会刷新缓冲区)。 而C库函数调用会刷新缓冲区,会将“world\\\"显示出来,return 0 相当于

    2024年02月16日
    浏览(32)
  • Linux--进程控制(2)--进程的程序替换(夺舍)

    目录 进程的程序替换 0.相关函数 1.先看现象  2.解释原理 3.将代码改成多进程版  4.使用其它的替换函数,并且认识函数参数的含义 5.其它  关于进程替换我们需要了解的6个函数: 函数解释: 这些函数如果调用成功则加载新的程序从启动代码开始执行,不再返回。 如果调用出

    2024年04月29日
    浏览(39)
  • 【Linux】进程控制

    我们在前面学习进程的时候已经见过fork创建子进程 我们可以看到他的头文件是#includeunistd.h 返回值是pid_t类型的,功能是创建一个进程 返回值,子进程中返回0,父进程中返回子进程的pid,创建出错则返回-1 以前我们只是知道fork具有创建进程的功能,现在我们学习一下fork后,

    2024年02月03日
    浏览(26)
  • Linux之进程控制

    当一个程序被加载到内存中以后,这个程序就变成了一个进程。 此外还可以通过调用fork函数创建子进程,子进程和父进程共享fork之后的代码,可以采用对fork返回值进行判断的办法来让父子进程分别执行后续代码的一部分。 1.一个函数在执行return语句之前就已经完成了这个函

    2023年04月23日
    浏览(11)
  • 【Linux系统:进程控制】

    目录 1 进程创建 1.1 fork函数 1.2 写时拷贝 1.3 fork常规用法 1.4 fork调用失败的原因  2 进程终止 2.1 进程退出场景 2.2 进程常见退出方法  3 进程等待 3.1 进程等待必要性  3.2 进程等待的方法 3.2.1 wait方法 3.2.2 waitpid方法  3.3 获取子进程status 4 进程程序替换 4.1 替换原理 4.2 替换函数

    2023年04月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包