进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
学习技巧:进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事情:
- 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
- 所有的进程控制原语一定都会修改进程状态标志
- 剥夺当前运行进程的CPu使用权必然需要保存其运行环境 某进程开始运行前必然要恢复期运行环境
- 将PCB插入合适的队列
- 分配/回收资源
Linux下相关指令
启动进程
xxxx & 在末尾加上一个&即可
改变进程的运行方式
挂起当前进程:CTRL+Z
查看后台进程
jobs
将后台进程恢复运行
bg(BackGround)命令,可以将后台中暂停执行(如,按Ctrl+Z组合键挂起)的任务恢复运行,继续在后台执行
fg(ForeGround)命令,可以将后台任务重新恢复到前台运行
jobs 获得序号
fg 序号
终止进程
kill:用于终止指定PID号的进程,需要使用进程的PID号作为参数。无特定选项时,kill命令将给该进程发送终止信号并正常退出运行,有时可能该进程已经无法响应终止信号,这时可以结合“-9”(这是数字9不是字母g,有时候容易看走眼)选项强制终止进程。强制终止进程可能会导致程序运行的部分数据丢失,因此不到不得已时慎用。
kill -g PID
killall:用于终止指定名称的所有进程,当需要结束系统中多个相同名称的进程时,使用killall命令将更加方便,效率更高。Killall命令同样也有“-9”选项。
killall -g softname
pkill:根据特定条件终止相应的进程
常用选项:(大部分选项与pgrep命令基本类似)
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
pgrep -I -U "softname" 确认目标进程的相关信息
pkill -I -U "softname"