目录
什么是进程
进程(process/task)是操作系统内核中关键性概念的其中一个。一个已经跑起来的程序就叫进程。(当前没有在运行的叫应用程序,不叫进程)
打开任务管理器,这些都是正在执行的进程。每个想要执行的进程都要消耗一定的系统资源,所以说进程是系统资源分配的基本单位。
进程如何进行管理
系统中的管理从两个角度出发:
1.描述:使用类或者结构体表现出被管理对象的各个属性。
2.组织:使用数据结构把这些对象都串起来。
系统中有一个结构体叫 ”进程控制块“ PCB(Process Control Block),它用来描述进程的属性。一个进程可以使用一个或多个PCB来表示。
系统中会使用类似于双向链表的数据结构来组织PCB:
创建新的进程,就是创建PCB并把PCB插入到链表中。
销毁进程,就是把PCB从链表上删除。
展示进程列表,就是遍历链表上的每个节点。
PCB实现进程调度
PCB支持操作系统实现进程的调度:
1. pid:进程的身份标识。每个进程都有有一个pid,同一时刻不同进程之间的pid是不同的。
2.内存指针:描述进程分配的内存资源。有一组指针来区分进程被分配的内存空间具体在哪里,以及内存空间中有哪些部分。
3.文件描述符表:描述进程持有的硬盘资源。即当前进程关联了哪些文件,能操作哪些文件。
4.进程的状态:当前进程的运行状态。
就绪状态:1)进程正在cpu上执行 。 2)进程虽然没在cpu上执行,但时刻准备着去cpu执行。
阻塞状态:进程不具备某种执行条件,导致无法参与cpu调度执行。
5.进程的优先级:优先级高的进程先调度。
6.进程的上下文:进程离开cup前把当前各种寄存器状态都记录到内存中,等到下次再执行就可以沿着上次的位置继续往后执行。
7.进程的记账信息:记录当前进程在cpu执行多久了,为操作系统调度进程提供参考依据。因为有优先级机制,为了避免出现极端情况。(所以资源都给某个进程,其他进程没有资源分配)