操作系统的那棵树
本来看着网课是20个小时,还自以为是想着几周学完,
是我太自大了,被现实狠狠殴打
CPU调度策略
如何让进程满意
总原则:系统专注于任务执行又能合理调配任务
前台任务关注响应时间,后台任务关注周转时间
各种CPU调度算法
短作业优先SJF :缩短平均周转时间
按时间片来轮转调度 RR
响应时间和周转时间同时存在 怎么办
会产生什么问题
如果一直有前台任务则后台任务就会饥饿
后台任务优先级动态提升 或者 前后台任务都用时间片
一个实际的schedule函数
在这里counter可以当成两个东西使用 1,时间片,剩余时间多的先执行 2,优先级数 大的先执行
while函数实现将就绪态的进程选出
for函数中所有就绪态的进程的counter数都为0(不为0会直接在while中break出去)
counter为0的进程在for函数中处理后还是0,而非就绪态的进程的counter数会变成原来的1.5倍
这样被阻塞的进程不阻塞后就可以获得较高的执行优先级
counter作用 时间片
counter的另一个作用 优先级
阻塞进程的counter会收敛于2p
CPU调度:一个简单的算法折衷了大多数任务的需求,这就是实际工作的schedule函数
进程同步与信号量
进程合作:多进程共同完成一个任务
等待是进程同步的核心
只发信号还不能解决问题
简单的根据counter和简单的信号还不行