尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

多任务:进程

多任务:进程 Linux多进程与进程管理核心笔记一、多任务基础概念1. 多任务定义程序具备同时处理多个任务的能力宏观上并行、微观上并发。 实现方式多进程、多线程。2. 进程与程序的区别程序存放在硬盘上的一组数据指令集合是静态文件如main.c编译后的a.out。进程正在执行的程序占用内存与CPU资源是动态运行的实体。进程拥有完整的生命周期从创建、调度运行到消亡。程序运行后会生成一个或多个进程一个进程内也可执行多个程序。3. 进程创建执行可执行文件如./a.out即可启动进程。 进程创建时操作系统会为其分配0~4G虚拟内存空间内存布局分为二、进程调度1. 调度原理CPU调度进程宏观并行、微观串行通过时间片轮转实现多任务同时处理。2. 常见调度算法时间片轮转算法先来先服务算法高优先级优先调度算法短作业优先算法三、进程状态转换Linux七状态模型1. 基础状态流转就绪态 → 获得CPU资源 → 运行态 运行态 → 申请IO资源 → 阻塞态睡眠 运行态 → 时间片结束 → 回到就绪态 进程消亡后系统回收资源2. Linux进程7种状态状态标识含义运行态R正在被CPU调度执行的进程就绪态R等待CPU调度处于排队状态可中断睡眠态S阻塞等待资源可被信号唤醒不可中断睡眠态D等待硬件IO无法被信号打断kill无法终止暂停态T被信号挂起暂停运行僵死态Z子进程已退出父进程未回收PCB资源结束态X进程彻底消亡资源完成回收四、进程的消亡进程正常退出程序执行完毕主动退出进程资源回收父进程通过wait/waitpid回收子进程资源避免产生僵尸进程五、Linux进程管理常用命令命令功能说明ps -aux查看系统所有进程状态包含PID、进程状态、CPU/内存占用率ps -ef查看进程PID、PPID父进程ID等关联信息top动态实时查看进程资源占用、系统负载pstree/pstree -sp PID查看进程树展示进程父子关系ps -auxgrep 程序名kill -l查看所有信号编号与名称kill -信号ID PID给指定进程发送信号kill -9 PID强制终止进程jobs查看当前终端后台作业运行/暂停的进程fg %作业号将后台进程切换到前台运行bg %作业号将暂停的进程放到后台继续运行补充概念父进程创建子进程的进程子进程由父进程创建的新进程六、进程相关系统调用函数pid_t fork(void);功能创建子进程调用后会产生两个进程原进程为父进程新进程为子进程返回值父进程中返回子进程PID子进程中返回0失败返回-1getpid()获取当前进程自身的PIDgetppid()获取当前进程父进程的PID
返回列表