标志代码的含义" SWTED" unix进程?

时间:2017-03-08 07:24:24

标签: unix

proc.h代码。

S的{​​{1}}可能意味着SWTED。那么stat呢?它是单词WTED的缩写吗?

1 个答案:

答案 0 :(得分:3)

UNIX 7中,SWTED标志用于两个地方:

  1. Inside ptrace(),在运行子进程之前清除SWTED标志

    ptrace()
    {
        ...
        p->p_flag &= ~SWTED;
        setrun(p);
        ...
    }
    
  2. Inside wait(),如果进程停止(跟踪)并清除SWTED标志,则将设置标志,并传回其PID和信号。

    wait()
    {
        ...
        if(p->p_stat == SSTOP) {
            if((p->p_flag&SWTED) == 0) {
                p->p_flag |= SWTED;
                u.u_r.r_val1 = p->p_pid;
                u.u_r.r_val2 = (fsig(p)<<8) | 0177;
                return;
            }
            continue;
        }
        ...
    }
    
  3. 这意味着在wait()中使用跟踪过程时设置SWTED,因此很可能意味着 w ai ted 。 (SWAIT已存在,因此无法使用该名称。)