在Java学习过程中,进程和线程是学习的重点之一,本文讲解进程调度的基本过程。
一个运行起来的程序就是进程。进程是系统分配硬件资源的基本单位。如下:
作用:
PCB又名进程控制块,有如下几个属性:
1. pid(进程的标识):同一系统,同一时刻,每个进程的pid都不相同;
2. 内存指针:表示了该进程对应的内存资源;
3. 文件描述符表:操作系统打开一个文件,就会产生一个“文件描述符”(只在进程内部生效),同时会使用文件描述符(类似于数组的结构)把文件描述符组织起来。
4. pcb中关于进程调度的相关属性(同时也描述了进程对CPU的使用情况):
1)状态:就绪状态、睡眠/阻塞状态;
2)优先级:描述了进程的先后执行顺序;
3)上下文:存档、读档作用,也就是该进程在执行过程中,CPU寄存器对应的数据;
4)记账信息:会统计每个进程执行时间和执行指令数目,确保每个进程的执行。
操作系统使用双向链表来组织PCB: