Linux(编程-进程基础):07:---进程标识(pid、uid、gid)

一、进程标识

 特点

  • 每个进程都有一个非负整型的唯一进程ID。因为进程ID标识符总是唯一的,常将其用做其 他标识符的一部分以保证其唯一性
  • 虽然是唯一的,但是进程ID是可服用的。当一个进程终止后,其进程ID就成为服用的候选者。大多数UNIX系统实现延迟复用算法,使得赋予新建进程的ID不同于最近终止进程所使用的ID。这防止了将新进程误认为是使用同一ID的某个已终止的先前进程
#include <unistd.h>
pid_t getpid(void);  //返回:调用进程的进程ID

pid_t getppid(void); //返回:调用进程的父进程ID

uid_t getuid(void);  //返回:调用进程的实际用户ID

uid_t geteuid(void); //返回:调用进程的有效用户ID

gid_t getgid(void);  //返回:调用进程的实际组ID

gid_t getegid(void); //返回:调用进程的有效组ID

//这些函数都没有出错返回

二、专用线程

进程ID为0的是调度进程,常常被称为交换进程(swapper)

  • 该进程并不执行任何磁盘上的程序—它是内核的一部分,它并不执行任何磁盘上的程序。因此也被称为系统进程

进程ID为1的通常是init进程,在自举过程结束时由内核调用

  • 该进程的程序文件在UNIX的早期版本中是/etc /init,在较新版本中是/sbin/init
  • 此进程负责在内核自举后起动一个UNIX系统
  • init通常读与系统有关的初始化文件(/etc/rc*文件或/etc/inittab文件,以及/etc/init.d中的文件),并将系统引导到一个状态(例如多用户)
  • init进程决不会终止。它是 一个普通的用户进程(与交换进程不同,它不是内核中的系统进程 ),但是它以超级用户特权运行

注意事项

  • 在Mac OS X 10.4中,init进程已经被launchd进程替代,执行的任务集与init相同,但扩展了功能

每个UNIX系统实现都有它自己的一套提供操作系统服务的内核进程,例如,在某些UNIX的虚拟存储器实现中,进程ID2是页守护进程,此进程负责支持虚拟存储器系统的分页操作

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/88976168