DAY 1
1.程序
命令含义
&这个用在一个命令的最后,可以把这个命令放到后台执行
jobs查看当前有多少在后台运行的命令
jobs -l显示PID,比jobs更好用
fg将后台中的命令调至前台继续运行,如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg将一个在后台暂停的命令,变成继续执行,如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
ps列出系统中正在运行的进程,会显示PID
kill pid发送信号给一个或多个进程(经常用来杀死一个进程)
kill -stop pid暂停PID为pid的任务
history查看当前用户的历史命令
进程的状态:
1. 运行态
1. 运行态:进程拥有cpu正在运行
2. 就绪态:当进程时间片到,重新回到准备运行状态
2. 等待态
1. 可中断:资源到则可以重回运行态
2. 不可中断:资源到不一定回到运行态,需要等待特
定条件触发
3. 停止态
1. 进程暂停在后台,可以键入‘ctrl+z’使得进程进入停
止态
4. 僵尸态
1. 进程结束,但是此时系统资源还未被回收干净
5. 死亡态
1. 进程完全消亡,一般看不到死亡态的进程
进程的调度相关指令
1. ps:
ps -aux:查看进程的详细信息
stat:进程状态大写s:等待态
小写s:拥有子进程的进程
大写的i:闲置在内核的进程
N:优先级较低的
<:优先级较高的
小写的L:有子线程的进程
+:运行在前台的进程
R:运行态
T:停止态
Z:僵尸态
2. top:动态查看进程的信息
NI:优先级号
s:状态信息
3. nice:按照用户指定优先级运行进程
nice + -n + 优先级 + 运行程序
例如:将a.out可执行程序按照5优先级运行
nice -n 优先级号 ./a.out
注意:
优先级编号:-20~19
-20是最高优先级
19是最低优先级4. renice:按照用户指定优先级改变正在运行的进程的
优先级
renice + -n + 优先级 + 进程id
例如:将a.out的优先级改变,前提条件a.out的pid为
10000
renice -n 10 10000
4. renice:按照用户指定优先级改变正在运行的进程的
优先级
renice + -n + 优先级 + 进程id
例如:将a.out的优先级改变,前提条件a.out的pid为
10000
renice -n 10 10000
注意:
重设的优先级一般只能由高改到低
如果需要从低优先级改为高优先级需要使用管理员
权限
5. kill:向指定进程发送信号
kill -l:查看所有的信号
kill + -信号编号 + 进程id
例如:杀死进程
kill -9 进程id -----> 向指定进程id的进程发送9号信
号,9号信号处理方式为结束进程
例如:暂停进程
kill -19 进程id -----> 向指定进程id的进程发送19号
信号,19号信号处理方式为将进程暂停在后台,使得
进程进入停止态
6. bg:将后台挂起的进程放在后台运行
bg + 任务号bg + % + 进程id
例如:./a.out运行后用ctrl+z暂停在后台,此时a.out
的任务号为1
bg 1
将a.out提到后台运行
7. fg:将后台运行的进程放到前台运行
fg + 任务号
fg + % + 进程id
fork函数:
函数功能:创建子进程
函数使用需要添加的头文件
#include
<sys/types.h>
#include <unistd.h>
函数原型
pid_t fork(void);
函数参数说明
该函数不需要指定参数
函数返回值说明
成功:创建一个子进程
将子进程的id号返回到父进程中
将0返回到子进程中
失败:返回-1,到父进程中,并且没有子进程创建
获取当前进程的进程id号:getpid();
获取当前进程的父进程id号:getppid();
注意:
父进程和子进程的关系:
1. 子进程会拷贝父进程几乎所有内容,子进程会拥有属
于自己的PCB
2. 父子进程运行的区别
1. 父进程从main函数开始运行
2. 从fork函数之后开始运行
3.父进程和子进程都参与cpu的统一调度
4.一般而言子进程结束都将由父进程回收子进程产生的
资源
5.如果父进程先于子进程结束,子进程变为孤儿进程,
将会被init进程收养,后续如果子进程结束,将由init进
程回收子进程产生的资源
exec函数族
功能:将当前进程的空间替换为另一个进程,以此实现
在当前进程中执行另外的进程。
区别:
l:以列表的形式展现传递给可执行文件的参数
v:以容器的形式传递给可执行文件的参数,即将参数
构造为一个指针数组
p:使用系统的环境变量
e:使用自己传递的环境变量