1:进程:一个内存中的程序+程序所需数据+管理程序的各种状态信息。
2:进程由内核进行管理,内核使用调度器,给予进程一个时间片来运行,然后切换到下一个进程。
3:进程分叉
fork :创建一个子进程
wait :强制进程暂停,等等另一个进程执行完毕
exec :改变当前进程执行的程序(在当前进程启动一个程序)
exit :终止当前进程
kill :杀死一个进程
4:区分父进程or子进程
父进程调用fork返回子进程的进程ID;
子进程调用fork返回0。
5:系统进程的源头——init进程
在系统引导过程中,内核手动创建一个空闲进程#0,空闲进程创建初始化进程#1,然后处于无限循环状态,不做任何事,因此进程表上找不到它,认为它不存在。
而进程#1进行内核的相关设置以及结束引导的相关操作,在此期间打开控制台、挂载文件系统、运行系统初始化脚本等,进程#1分叉出众多子进程,所以成为init进程。
系统中有任何子进程成为“孤儿进程”时,init进程会自动接过父进程的角色,确保子进程能正常结束。
6:前台进程与后台进程
前台进程:启动后,shell等待它运行结束。
后台进程:启动后,在后台运行进程,shell直接等待下一条命令。
command & :指令后加 & ,使该程序作为后台进程来执行
7:进程休眠
sleep 时间[s,m,h,d]
8:作业控制
9:作业挂起与恢复
在当前运行的作业中,按下 ^Z 挂起作业,输入 fg 恢复作业。
10:shell的挂起与恢复
suspend :挂起shell
fg :恢复
11:显示当前所有作业
jobs
12:将作业恢复(移到前台)
fg 作业
13:将作业移到后台
bg %job
14:查看进程信息、状态
ps
15:杀死进程
kill pid|jobid
16:较低优先级运行
nice command
17:守护进程