linux进程

发布时间:2026/7/31 5:38:15

linux进程 进程基础、进程创建fork、进程状态一、进程基础概念进程定义进程是程序的运行实例是操作系统分配CPU、内存资源的实体静态存放在磁盘的是程序加载到内存动态运行的才是进程。公式进程 内核PCB结构体Linux为task_struct 程序代码与数据。PCB进程控制块task_struct内核用结构体完整记录进程所有属性系统内全部进程以双向链表统一管理。内部核心信息PID/PPID、运行状态、优先级、程序计数器、CPU寄存器上下文、内存映射指针、IO文件信息、资源记账数据。进程查看方式文件接口/proc伪文件系统存储实时进程信息命令ps aux、ps axj、top代码系统调用getpid()获取自身PID、getppid()获取父进程PID。二、进程创建fork系统调用核心功能fork是Linux底层创建子进程的系统调用完整复制父进程生成全新独立子进程。复制机制写时拷贝COW刚创建完成时父子进程共享同一份物理内存只有任意进程修改数据时系统才单独分配物理内存副本大幅降低内存开销。特殊返回规则调用1次返回两次返回值0当前为父进程返回数字是子进程PID返回值0当前为子进程返回值-1进程创建失败内存不足、系统进程数达上限。父子进程特性共享内容代码段、文件描述符、环境变量、虚拟地址布局相互独立PID编号、CPU上下文、堆/全局数据修改后物理内存分离运行规则父子并发执行CPU调度顺序不确定。经典组合fork execfork仅复制原有程序exec可以替换子进程程序镜像终端执行命令、多进程服务端都依赖这套机制。三、Linux七大进程状态R运行态正在CPU运行或在就绪队列等待调度S可中断睡眠等待某事件能被信号唤醒D不可中断睡眠等待磁盘IO无法被信号打断T停止态收到SIGSTOP暂停SIGCONT恢复运行t追踪停止调试器ptrace调试时暂停X死亡态进程资源完全释放内核销毁PCB用户无法观测Z僵尸态子进程退出但父进程未读取退出信息PCB保留在内核。四、僵尸进程、孤儿进程1. 僵尸进程Z产生条件子进程先结束父进程持续运行但不调用wait/waitpid回收危害PCB长期占用内核内存大量僵尸进程会引发内存泄漏解决方案父进程使用wait/waitpid回收子进程退出状态。2. 孤儿进程产生条件父进程提前退出子进程失去父进程处理规则自动被系统1号进程systemd/init收养1号进程会自动回收孤儿无内存泄漏风险。

相关新闻