Linux folk进程与僵死进程

发布时间:2026/10/14 13:34:49
Linux folk进程与僵死进程 基础知识计算机组成运算器、存储器、控制器、输入设备、输出设备操作系统管理计算机上的软硬件资源为用户提供一个交互的接口管理操作包括进程管理、内存管理、文件管理文件系统、中断CPU:运算器控制器|AMD或intel类型wait()引用sys/wait.h头文件进程一个正在进行的程序PCB进程控制块linux中也叫进程描述符描述进程的属性信息pid整型进程编号用于区分多个进程getpid()获得自身pidgetppid()获得父进程pidfork()复制进程Linux中只能复制进程不能产生进程故除0进程外每个进程都有一个folk()一个父进程可产生多个子进程fork复制内存以页为单位复制写时拷贝修改父进程中数据时才拷贝不修改则共享提高复制效率返回值类型整型父进程返回子进程编号子进程返回0子进程从fork返回的位置开始执行逻辑地址与物理地址代码编写完成不运行就已经存在逻辑地址运行后存在物理地址逻辑地址栈帧中距离起始位置偏移量物理地址电脑内存空间例如具体的硬盘逻辑地址与物理地址理解跳舞排练时先安排每个人第几号即逻辑地址真正表演时所站的位置才是物理地址打印地址时i我们看到的打印出来的是逻辑地址最终逻辑地址会分配到内存中形成物理地址逻辑地址是连续的页分配到物理地址中可能连续可能不连续系统看到哪里的物理内存空闲就会把这个进程放到哪里。打印出来的时逻辑地址实质是两个进程内的两个成员编号逻辑地址一样n可以不一样例如两个人在两个组中编号一样都是3号但是人是不同的距离起始地址偏移量一样但物理地址内存空间不同系统为什么采用逻辑地址举例10MB大小的文件在4G的电脑可以运行在6G的电脑也可以运行不能要求一定把它放在物理地址为5G的地方因为这样的话内存为4G的电脑无法运行若说该文件放在4G的地方电脑中还有其他的程序也可能放在4G的地方如此两个程序就会冲突。所以采用逻辑地址安排各成员之间的关系最后再放到内存中。僵死进程定义子进程先于父进程结束父进程没有获取子进程的退出码。此时子进程就称为僵死进程理解子进程已经结束并返回了一个返回值但还存在一个pcb值即退出码(1字节)系统为了知道子进程是怎么结束的直到父进程执行wait()获取pcb值获取完之后才会删除这个退出码。所以退出码删除之前都还可以看到这个子进程此时这个进程处于僵死状态如果父进程比子进程先结束子进程变成孤儿进程后面会被另一个父进程以前1号进程 现在其他进程接管重新分配父进程接收退出码为什么要处理僵死进程子进程运行完处于僵死状态仍然占着一个id号多个僵死进程积累起来就会造成很大的浪费如何处理方法一父进程调用wait()获取子进程退出码或wait(NULL)直接不给空间保留退出码执行wait后子进程继续执行父进程阻塞要等子进程运行完返回退出码给wait期间父进程啥也干不了释放完所有资源方法二利用信号解决僵死进程优点可以防止父进程阻塞signal(SIGCHID,SIG_IGN)忽略子进程结束之后发出的信号仅在Linux上能实现signal(SIGCHLD,fun)在fun函数中设计wait获取子进程的退出码解决僵死进程

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询