• 进程概述,父子进程


    可以通过ps  pstree参看当前系统在执行的进程

    获取进程标识的函数:

    1、获取进程ID

    pid_t getpid(void);

    2、获取进程父进程的ID

    pid_t getppid(void);

    3、获得进程的实际用户ID

    uid_t getuid(void);

    4、获得进程的有效用户ID

    uid_t geteuid(void);

    5、获取进程的实际组ID

    gid_t getgid(void);

    6、获取进程的有效组ID

    gid_t getegid(void);

    ------------------------------

    实际用户ID(uid)标识运行该进程的用户

    有效用户ID(euid)标识以什么用户身份来运行进程。例如,某个用户A,运行了一个程序,而这个程序以root身份来运行的,这程序运行时就具有root权限,此时实际用户ID是A用户的ID

    而有效用户ID是root用户ID

    实际组ID(gid)他是实际用户所属组的组ID

    有效组ID(egid)他是有效用户所属组的组ID

    ---------------------------------------------------

    linux进程的结构

    代码段+数据段+堆栈段

    代码段:存放程序的可执行代码

    数据端:存放程序的全局变量,常量,静态变量

    堆栈段:堆用于存放动态分派的内存。 栈用于函数调用,存放函数的参数,函数内部定义的局部变量。

    -------------------------------------------------------------

    进程的状态:

    1、R (runnable)运行状态,程序正在运行或在运行队列中等待运行

    2、S(sleeping)可中断等待状态,程序正在等待某个事件完成(如等待数据到达),等待过程中可以被信号或定时器唤醒

    3、D(uninterruptible sleep)不可中断等待状态,程序正在等待某个事件完成,等待过程中不可以被信号或定时器唤醒,必须等待

    直到等待的事情发生。

    4、Z(zombile)僵死状态,进程已终止,但进程描述符依然存在,直到父进程调用wait()函数后释放。

    5、T(traced or stopped)停止状态,进程因为收到SIGSTOP,   SIGSTP,    SIGIN,    SIGTOU信号后停止运行或者

    该进程正在被跟踪(调试程序时,进程处于被跟踪状态)

    ps指令的结果:

    ps -eo pid,stat

    494 Sl
    495 S<
    560 S
    585 S
    635 S
    665 S<
    688 Ss
    749 S<
    760 Ss
    762 S
    766 Ss

    后缀字符的意思:

    <(高优先级进程)

    N(低优先级进程)

    L(内存锁页,即页不可以被换出内存)

    s(该进程为会话首进程)

    l(多线程进程)

    +(高优先级进程)

    <(进程位于前台进程组)

    例如:Ssl说明该进程处于可中断等待状态,且该进程为会话首进程,而且是一个多线程的进程。

  • 相关阅读:
    学习笔记之19-static和extern关键字1-对函数的作用
    学习笔记之18-变量类型
    学习笔记之17-预处理指令3-文件包含
    学习笔记之16-预处理指令2-条件编译
    背包问题
    kali linux 忘记root密码重置办法
    wp8数据存储--独立存储文件 【转】
    线段树入门【转】
    线段数【转】
    大数阶乘算法【转】
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6386589.html
Copyright © 2020-2023  润新知