1.进程的概念
2.进程控制块PCB
3.linux中的task_struct
一.进程的概念:
(1)进程是保证多个程序能够并发执行的过程。是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。
注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。
(2)要使程序能够并发执行,那么,就需要为它配置相应的控制结构,即进程控制块(PCB),用来控制进程状态,控制进程运行的全部信息;
(3)独立运行的实体(进程实体)=程序+相关数据+进程控制块(PCB);
(4)进程实体运行的过程,就是一个进程;
(5)在未引入线程时,进程是系统资源分配的基本单位,是独立调度,独立运行的基本单位,
引入线程之后,进程的属性发生分离,此时,进程只是资源分配的基本单位,线程处理调度机制;
(6)进程的特征:
1,动态性
2,并发性
3,独立性
4,异步性
5,共享性
二.进程控制块PCB
(1)队列:由于不同状态的PCB 可以链接成不同的队列,故而就三种进程队列:运行队列,就绪队列,阻塞队列
例如:在单处理机系统中:
运行队列只有一个
就绪队列按照优先级或者FIFO(先进先出)的原则排队
堵塞队列:一般有多个同时存在, 处于不同的等待状态
(2)链接方式:利用PCB中的链接指针将具有相同状态的PCB链接成一个队列,则有单向链接和双向链接
1,单向链接:每个PCB中只设置一个链接指针
2,双向链接:每个PCB设置两个链接指针,一个指向当前PCB的前一个PCB,另一个指向后一个PCB。
(3)索引方式:在内存中具有相同状态的PCB建立相应的索引表,同一状态的每个PCB在该表中对应一个索引项,并记录PCB 在内存中的首地址,并将索引表在内部中的首地址记录在内核专门的指针单元中。