Linux操作系统-进程和信号(2)

Linux操作系统-进程和信号(2)

分类:Linux环境编程

进程的标识

  有一些函数可以返回进程的标识符

#include <sys/types.h>
#include <unistd.h>
pid_t    getpid(void);     //返回调用进程的进程ID
pid_t    getppid(void);    //返回调用进程的父进程
uid_t    getuid(void);     //返回调用进程的实际用户ID
uid_t    geteuid(void);    //返回调用进程的有效用户ID
gid_t    getgid(void);     //返回调用进程的实际组ID
git_t    getegid(void);    //返回调用进程的有效组ID

进程的状态

  • 运行状态:指正在CPU中运行或者就绪的状态,包括:内核运行态,用户运行态,就绪态。Linux内核并不对此三种状态进行区分
  • 可中断睡眠状态:当进程处于可中断等待状态时,系统不会调度该进程执行。当系统产生一个中断或者释放了进程正在等待的资源,或者进程收到一个信号,都可以唤醒进程转换到就绪状态
  • 不可中断睡眠状态:不可中断,指的不是CPU不响应外部硬件中断,而是指进程不响应异步信号。处于该状态的进程不响应信号,只有使用wake_up()函数明确唤醒才能转换到就绪状态。该状态被设计用于保护内核的某些流程不被打断,或者在进行某些I/O操作时避免进程与设备交互的过程中被打断,造成设备陷入不可控状态。
  • 暂停状态:当进程收到信号SIGSTOP,SIGTSTP,SIGTTIN或SIGTTOU时就会进入暂停状态。可向其发送SIGCONT信号让进程转换到可运行状态。
  • 僵死状态(TASK_ZOMBIE):当进程已停止运行,但其父进程还没有询问其状态时,则该进程处于僵死状态

  常见的状态字符有:

STAT字符 说明
S 睡眠。通常是在等待某个事件的发生
R 运行/可运行,即在运行队列中,处于正在运行或即将运行状态
D 不可中断的睡眠(等待,不响应异步信号)。通常是在等待输入或输出完成
T 停止
Z 僵尸进程
N 低优先级任务
s 进程是回话期首进程
+ 进程属于前台进程组
l 进程是多线程的
< 高优先级任务

进程的控制

system函数

  在进程中执行另一个程序的一个简单方法是调用标准库函数system,原型如下:

#include <stdlib.h>
int system(const char *command);

  解释:system函数运行command命令并等待该命令完成&#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值