多任务系统分为两类: 抢占式和非抢占式
linux进程优先级
1. nice值 -20 ~ 19 默认0
nice值越大,进程优先级越低
2. 实时优先级 0 ~ 99
实时优先级越高,进程优先级越高
任何实时进程的优先级都高于普通的进程,也就是说实时优先级和nice优先级处于互补相交的两个范畴
linux默认的进程调度模型是时间循环共享 SCHED_OTHER
1.每个进程轮流使用CPU一段时间(时间片),满足了公平性和响应度(一个进程使用CPU前无需等待太长的时间)
2.nice值允许进程间接地影响内核的调度算法,进程的调度不是严格按照nice值的层次进行,nice高的进程,不会无法用到CPU,只是使用CPU的时间变少,即权重减少了
实时进程调度策略
1.实时应用要求能快速地获取CPU的控制权,抢占当前所有的进程
2. 一般有两种策略 SCHED_RR和SCHED_FIFO
SCHED_RR的进程和SCHED_FIFO的进程如果优先级一样? 先入队列的先处理
SCHED_RR:
1.高优先级的先运行,直到1)时间片到了2)自行退出3)被终止4)被高优先级的进程抢占了
2.同一优先级的进程,按照时间片轮询
SCHED_FIFO:
严格按照优先级执行,高优先级进程先执行,直到退出或者有更高优先级的进程抢占才退出
阅读(638) | 评论(0) | 转发(0) |