Linux_进程的相关概念整理

2019-07-14 07:40发布

1.进程的概念:简单来说,就是正在执行的程序。从内核的角度看,分配系统资源的实体。2.PCB说到进程肯定要提PCB,PCB是一种数据结构(也是C语言中的结构体),负责存储进程信息,每个进程都有自己的PCB,在fork子进程时,子进程在创建自己的PCB时,会从父进程的PCB中继承一部分信息,PCB也是对进程控制的唯一且最有效的方法。3.PCB中的内容分类    1)标识符 :描述进程的唯一标识符,用来区别进程。如进程id 1 #include 2 #include 3 #include 4 5 6 int main(){ 7 printf("pid:%d",getpid()); //获取当前进程id 8 printf("ppid:%d",getpppid()); //获取父进程id 9 return 0; 10 }
    2)状态:进程状态,退出码...            进程状态有如下几种:R 就绪/执行;S 挂起;D 深度睡眠;T 暂停;t 跟踪;X 进程退出;Z 僵尸进程
        僵尸进程出现的原因:父进程未读取子进程的退出状态。
#include #include int main(){ pid_t pid=fork(); if(pid>0){ //父进程 printf(" This is father%d ",getpid()); sleep(35); }else{ //子进程 printf("This is child %d ",getpid()); sleep(3); exit(EXIT_SUCCESS); } return 0; }
    3)优先级:进程调度的先后顺序,pri越大,优先级越低        调整优先级的命令:nice renice 或者top ->r->pid->nice值
    4)程序计数器:程序中即将被执行的下一条指令的地址。
    5)内存指针:程序代码和相关数据的指针...
    6)上下文:CPU各种寄存器在内存中保存的一份副本
    7)记账信息:一个进程在CPU上的执行信息。
    8)文件描述符表
    9)信号相关结构:信号屏蔽字,未决信号集,捕捉信号的函数指针数组..    10)...
4.环境变量类似于全局变量创建环境变量:  export 变量名查看环境变量:echo $变量名介绍两个环境变量    1)_PATH_:值为一组目录,在Shell下输入命令在目录中查找对应的可执行程度
    2)_LD_LIBRARY_PATH:值也是一组目录,当执行可执行环境变量对应的目录中查找动态链接库。
查看所有环境变量 env通过函数设置环境变量设置环境变量 putenv(“name=value”) 函数       取值  getenv(“环境变量名”)
删除环境变量: unset 变量名5.虚拟地址空间