进程
程序:在磁盘上的相关数据和指令的集合
进程:执行一个程序分配资源的总称,是程序的一次执行过程(创建,执行,调度和消亡)
进程是系统资源分配的最小单位
程序的组成:正文段、数据段
进程的组成:正文段、数据段、系统数据段(程序控制块(PCB)、CPU寄存器、堆栈)
程序控制块(PCB):进程用户ID(进程号)
进程用户信息
进程的状态、优先级
进程打开的文件表
PC(程序寄存器):主要存放执行下一条指令的地址
一、进程的分类
1、交互进程:与终端无关,在shell上执行,既可以在前台运行,也可以在后台运行
2、 批处理进程:与终端无关,将一系列进程存放一个批处理队列中处理
3、 守护进程:与终端无关,在系统启动时运行,系统关闭是结束
二、进程的状态
R–运行态(就绪态):程序正在运行或者程序正准备运行
等待态:进程在等待某些时间的响应或者正在等在某些资源
S-- 可终端等待态
D-- 不可中断等待态
两种等待态的区别在于能不能被信号打断
T – 暂停态:程序暂时停止运行,能够被某些信息唤醒,然后重新运行
Z-- 死亡态(僵尸态):程序结束,但是相关资源没有回收
三、查看进程
ps
ps -ef
ps -aux 可以查看进程的状态
top:可以实时查看进程信息, 每3秒刷新一次
四、进程的优先级
NI值表示进程优先级,取值范围在-20~19,NI值越小优先级越高
nice:修改进程优先级
nice -n 2 ./a.out 让用户以指定的优先级运行
renice -n 2 进程号,修改指定进程的优先级
五、进程的前后台切换
a.out & :让a.out在后台运行
ctrl +2:让正在运行的前台程序在后台被挂起
jobs:查看后台进程
fg+任务号:把对应任务号的进程放在前台运行
ctrl +2:让正在运行的前台程序在后台被挂起
jobs:查看后台进程
fg+任务号:把对应任务号的进程放在前台运行
bg+任务号:将后台挂起的任务唤醒