前言
在Java学习过程中,进程和线程是学习的重点之一,本文讲解进程调度的基本过程。
一、什么是进程
一个运行起来的程序就是进程。进程是系统分配硬件资源的基本单位。如下:
二、操作系统
作用:
- 要给应用程序提供一个稳定的运行环境;
- 要管理各种硬件设备。
三、PCB
PCB又名进程控制块,有如下几个属性:
1. pid(进程的标识):同一系统,同一时刻,每个进程的pid都不相同;
2. 内存指针:表示了该进程对应的内存资源;
3. 文件描述符表:操作系统打开一个文件,就会产生一个“文件描述符”(只在进程内部生效),同时会使用文件描述符(类似于数组的结构)把文件描述符组织起来。
4. pcb中关于进程调度的相关属性(同时也描述了进程对CPU的使用情况):
1)状态:就绪状态、睡眠/阻塞状态;
2)优先级:描述了进程的先后执行顺序;
3)上下文:存档、读档作用,也就是该进程在执行过程中,CPU寄存器对应的数据;
4)记账信息:会统计每个进程执行时间和执行指令数目,确保每个进程的执行。文章来源:https://www.toymoban.com/news/detail-603518.html
四、进程在CPU上执行指令有两种方式:
- 并行:多个进程同时进行
- 并发:多个进程切换进行
五、组织进程--双向链表
操作系统使用双向链表来组织PCB:文章来源地址https://www.toymoban.com/news/detail-603518.html
- 创建一个进程:创建一个链表的节点
- 销毁一个进程:删除链表的节点
- 遍历进程列表:就是遍历链表
到了这里,关于进程调度的基本过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!