进程状态
三态模型
运行
CPU正在执行该线程,一个CPU同时只能执行一个线程,多余的线程会进入就绪或者等待状态,运行状态的线程可以转换为就绪状态,与等待状态
就绪
所有资源准备就绪,进入等待队列,有计算资源就可以进入运行状态。
等待
运行时发生了需要等待的事情,这时候CPU会被阻塞,例如IO事件,即使CPU分配给该进程也无法使用,等待的事件发生后,仅需就绪状态,不可以直接运行
进程调度算法
时间分片
每个进程均匀按固定的时间片执行
先来先到
谁先排队,谁先执行
短作业优先
执行时间段的先执行,部分长作业可能会一直无法执行
优先级执行
设定好进程的优先级,分为动态和静态。
响应比优先
计算进程的等待时间与进程的来到时间,综合了先来先到与短作业优先的算法,高响应比的优先执行
抢占式 & 非抢占式
如果高优先级的进程到了,抢占式会踢出现在执行的进程,交给高优先级的进程。非抢占式则不会
操作系统原语 PV操作
信号量
当前资源的数量,全局的,原子性的
P操作
申请资源,信号量减1,如果信号量小于0,代表没有资源,需要进入阻塞队列进行等待
V操作
释放资源,信号量加1,判断信号量是否小于等于0,如果小于等于0,意味着有队列在排队,将阻塞队列里面最先进入的进程放到就绪队列