正在加载……
专注、离线、切勿分心
1、进程标识
      OS会为每个进程分配一个唯一的整型ID,做为进程的标识号(pid)。进程除了自身的ID外,还有父进程ID(ppid),所有进程的祖先进程是同一个进程,它叫做init进程ID1init进程是内核自举后的第一个启动的进程。init进程负责引导系统、启动守护(后台)进程并且运行必要的程序

     进程的pidppid可以分别通过函数getpid()getppid()获得。

示例:      

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
      printf("pid:%d   ppid:%d\n",getpid(),getppid());
      return 0;
}





2、进程的用户ID与组ID(进程的运行身份)

进程在运行过程中,必须具有一类似于用户的身份,以便进行进程的权限控制,缺省情况下,哪个登录用户运行程序,该程序进程就具有该用户的身份。例如,假设当前登录用户为gotter,他运行了ls程序,则ls在运行过程中就具有gotter的身份,该ls进程的用户IDID分别为gottergotter所属的组。这类型的ID叫做进程的真实用户ID真实组ID真实用户ID和真实组ID可以通过函数getuid()getgid()获得。

与真实ID对应,进程还具有有效用户ID有效组ID的属性,内核对进程的访问权限检查时,它检查的是进程的有效用户ID和有效组ID,而不是真实用户ID和真实组ID缺省情况下,用户的(有效用户ID和有效组ID)与(真实用户ID和真实组ID)是相同的。有效用户id和有效组id通过函数geteuid()getegid()获得。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
          printf("uid:%d gid:%d euid:%d egid:%d\n",getuid(),getgid(),geteuid(),getegid());
          return 0;
}


cat /etc/passwd | grep meihao  查看……目录下的名为meihao的进程的相关信息,里面包含uid,gid









R表示运行   S表示睡眠   T暂停   Z僵尸

进程是程序的执行过程,根据它的生命周期可以划分成3种状态。

 执行态1 

l 就绪态:进程已经具备执行的一切条件,正在等待分配CPU的处理时间片。

l 等待态:进程不能使用CPU,若等待事件发生(等待的资源分配到)则可将其唤醒。












(ps -aux) 看进程的cpu及内存mem占有率


Linux 调度策略:

FIFO        实时调度策略(运行优先级高的进程,不适合服务器)
RR           实时调度策略(运行优先级相同的,轮着来。用于嵌入式,实时要求高)
OTHER    普通调度策略(所有的一起运行,优先级高的在一个调度周期内拿到的时间片多)





5、 Linux下的进程管理


(kill -9 pid) 杀掉pid进程       (./a.out  &  )表示该进程放到后台运行
ctrl  +z 暂停进程  bg继续运行 bg把进程放到前台执行

[bg作业ID]可以将该进程带入后台。利用jobs可以查看后台任务,fg 1把后台任务带到前台,这里的1表示作业ID。



posted on 2018-02-25 11:05  正在加载……  阅读(603)  评论(0编辑  收藏  举报