1.什么是进程?
一个程序,运行起来,在操作系统中就会出现一个进程,就是一个跑起来的应用程序。通过观察任务管理器,我们就能看到当前正在运行的所有进程。
要想让一个程序运行,就必须得给则这个进程分配系统资源
进程可以看作是操作系统进行资源分配的基本单位
2.进程管理
操作系统对于进程管理的操作,通常先进行描述,再组织后进行管理
描述:通过一些结构体(通常称为PCB)把一些进程的核心信息抽象提取出来,并进行表示
组织:操作系统会通过一定的数据结构(通常会使用链表)把多个PCB串起来
以链表为例:
1.任务管理器中查看进程列表就是在遍历链表的每一个结点,并且获取显示出的对应信息
2.创建新的进程同时该进程创建一个对应的新的PCB并且添加到上述链表中
3.销毁某个进程就是把链表上对应的PCB结点删除掉
3.进程调度
PCB中提供了几个属性,支持进程调度
1.状态
就绪状态:cpu随时想要哪个进程执行,立刻就能执行
阻塞状态:处于阻塞状态的进程,无法在cpu上执行(往往在等待IO的时候就会进入阻塞状态)
2.优先级
操作系统在分配CPU资源给各个进程时,根据一定的规则和标准来确定进程执行的先后顺序
3.上下文
进程在cpu执行过程中,会产生很多的中间结果,在进程切换出cpu之前,需要把这些中间结果记录下来,保存在PCB的上下文中,在下一次这个进程回到cpu上执行时,就需要把之前这些中间结果恢复回来(这个过程其实就像是游戏的存档功能)
4.记账信息
操作系统为了避免某一个进程一直没有分配到cpu资源,就会进行类似记账一样的统计,给分配cpu资源少的进程适当分配多一点