十一.谈谈你对进程的理解,内核是如何管理进程的?
- 进程是计算机中处于运行中的程序的实体
- 线程是最小的运行单位,而进程是线程的容器
- 程序本身只是指令、数据及其组织形式的描述,进程才是程序(指令和数据)的真正运行实例
1.内核将程序读入内存,为程序分配内存空间 //为程序分配
2.内核为该进程分配进程标识符PID和其他所需资源 //为进程分配
3.内核为进程保存PID及相应的状态信息,把进程放到运行队列中等待执行,程序转化为进程后可以被操作系统的调度程序调度执行了
- 每个进程在系统中都有一个唯一的ID标识它,这个ID就是进程标识符(PID)。因为其唯一性,所以系统可以根据PID准确定位到一个进程
- 进程标识符的类型为pid_t,本质上是一个无符号整形的类型别名
- 程序是可运行的二进制代码文件,把这种文件加载到内存中运行就得到了一个进程(所以你每打开一个程序都会占用一部分系统内存)
- 同一个程序文件可以被加载多次成为不同的进程(你可以打开两个QQ)。进程与进程标识符之间是一对一的关系,而程序与进程之间是一对多的关系
一个进程的可能状态有如下几种:
1) 运行态——已经获得了资源,并且进程正在被 CPU 执行。进程既可运行在内核态,也可运行在用户态。
2) 就绪态——当系统资源已经可用,但由于前一个进程还没有执行完释放 CPU,准备进入运行状态。
3) 可