什么是进程

进程是动态过程而不是静态实物
进程就是程序的一次运行过程,一个静态的可执行程序的一次运行过程。
进程控制块PCB(process control block),内核中专门用来管理一个进程的数据结构。

进程ID

输入ps即可获取进程ID
image.png
getpid:获取当前进程的ID
getppid:获取父亲进程的ID
getupidai:获取当前进程的用户IDgetupidai
getgid:获取当前的组ID
geteuid/getegid:有效用户ID和有效组ID
image.png

  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h>
  4. int main(int argc, char **argv)
  5. {
  6. pid_t p1 = -1;
  7. pid_t p2 = -1;
  8. printf("hello\n");
  9. p1 = getpid();
  10. p2 = getppid();
  11. printf("p1 = %d\n", p1);
  12. printf("p2 = %d\n", p2);
  13. return 0;
  14. }

image.png

多进程调度原理

操作系统同时运行多个进程
宏观上的并行和微观上的串行
现代操作系统最小的调度单元是线程而不是进程