集训2

今天课上讲的主要是进程的操作函数,
进程与程序的区别:

1)进程是程序及其数据在计算机的一次运行活动,是一个运行过程,是一个动态的概念。进程的运行实体是程序,离开程序的进程没有存在的意义。而程序是一组有序的指令集合,是一种静态概念。

2)进程是程序的一次执行过程,它是动态地创建和消亡的,具有一定的生命周期,是暂时存在的;而程序则是一组代码的集合,它是永久存在的,可长期保存。

3)一个进程可以执行一个或几个程序,一个程序也可以构成多个进程。进程可以创建进程,而程序不能形成新的程序。

4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。

ctrl+c(关闭一个进程)对应的kill的进程号为2的信号,ctrl+z(将该进程移至后台)为9;

shift+zz退出程序的编写(不保存)

ps -elf( | grep XXX)是查看所有进程,括号中的内容是以XXX为关键字查询所有进程中涉及到的进程

进程的生命周期

  • 创建
  • 运行 → (执行 就绪 等待)
  • 撤销

fork无形参,有两个返回值且同时进行,子进程拷贝父进程地址与数据,但不是公用,修改内存时为写时拷贝(父进程返回子进程的ID,子进程返回0,当出错时返回-1)
vfork与fork的区别是子进程与父进程共享同一地址空间

vfork与exec族一起使用:
exec启动一个新进程并进行操作

system是在程序中进行系统的操作

wait是放在父进程中,等待子进程结束并回收子进程的资源

status是保存子进程的退出状态,返回值

wait(&status)一起用是父进程捕捉到子进程结束时的返回值

waitpid(pid,&status,0)等待指定的进程结束,pid为该进程,0位置是options默认为0

kill(pid,SIGINT)为发送进程,SIGINT为进程号

raise(2)给自己发送信号,2为该信号的编号,为ctrl+c

signal(2,SIG_IGN)将收到的编号为2的信号忽略并用后面的SIG_IGN代替执行(信号为9,19的编号所代表的的信号优先级最高,编译没错,但不能执行)

alarm(2)延时2秒后给本身进程发送一个SIGALRM信号(一般为杀死)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值