1.获取进程标识
#include<sys/types.h>
#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
2.fork函数:
#include<sys/types.h>
#include<unistd.h>
pid_t fork(void);
返回:0为子进程,大于0表示在父进程中其值为子进程的ID,出错-1;
3.使用fork函数得到的子进程是从父进程处继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端。
4.父进程设置的锁,子进程不继承。
5.vfork函数,vfork用于创建一个新进程,而该新进程的目的是exec一个新进程,vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec,于是也就不会存放该地址空间。不过在子进程中调用exec或exit之前,他在父进程的空间中运行。
6.exec函数,当进程调用一种EXEC函数时,该进程完全由新程序代换,而新程序则从其 main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。
7.进程的3种基本状态:阻塞、就绪、执行。I/O请求完成后,进程由阻塞状态进入就绪状态。
8.PCB进程控制块,用于描述进程进展情况及控制进程运行所需的全部信息。
进程控制
最新推荐文章于 2020-07-10 15:57:57 发布