进程控制学习笔记

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

进程退出

子进程的退出需要父进程对其资源的释放,子进程只能对用户区的数据进行释放,无法完成对内核区的释放。
进程控制学习笔记,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日
    浏览(40)
  • 【Linux】Linux进程控制及程序替换

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

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

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

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

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

    2023年04月08日
    浏览(29)
  • 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日
    浏览(43)
  • 进程控制学习笔记

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

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

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

    2024年04月29日
    浏览(25)
  • Linux-进程控制

    文章目录: 进程控制     为什么要有地址空间和页表     程序的内存       程序申请内存使用问题     写时拷贝与缺页中断       父子进程代码共享       为什么需要写时拷贝       页表的权限位       缺页中断     

    2024年04月08日
    浏览(16)
  • Linux进程控制

    进程 = 内核数据结构 + 代码和数据 创建进程首先要创建私有的内核数据结构,并将程序的代码和数据加载到内存中。 因为 代码的只读属性,所以可以与父进程共享 。但是数据是可修改的,所以必须分离。同时为了保证高效使用内存,所以 只读数据父子进程共享一份 ,可修

    2024年02月15日
    浏览(9)
  • 深剖 Linux 进程控制

    小编是双非本科大一菜鸟不赘述,欢迎大佬指点江山,QQ - 1319365055 🎉🎉非科班转码社区诚邀您入驻🎉🎉 小伙伴们,打码路上一路向北,彼岸之前皆是疾苦 一个人的单打独斗不如一群人的砥砺前行 诚邀各位有志之士加入!! 直达: 社区链接点我 我们说进程调用 fork ,当

    2024年01月21日
    浏览(14)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包