多线程的调度,以及进程的调度

本文详细探讨了多线程调度的时机与内核抢占机制,包括Linux 2.4与2.6的区别。同时,介绍了进程调度的实时进程与普通进程策略,强调了实时进程的优先级固定。还分析了多种调度算法,如FCFS、短作业优先、优先权调度和时间片轮转等,并讨论了多级反馈队列调度算法在应对不同进程需求上的优势。
摘要由CSDN通过智能技术生成

多线程的调度:

1.     调度时机:

a.     当前执行的进程进入非执行的状态。

b.     抢占的方式,进程运行时,非预期的被剥夺CPU的使用权,出现了更高优先级的进程。

内核抢占:理想情况下,只要满足出现了优先级更高的进程,当前进程就应该立刻被抢占,但是,就像多线程需要用锁来保护临界区资源一样,内核中也存在很多这样的临界区,不大可能随时随地接收抢占。linux 2.4时的设计就非常简单,内核不支持抢占。进程运行在内核态时(比如正在执行系统调用、正处于异常处理函数中),是不允许抢占的。必须等到返回用户态时才会触发调度(确切的说,是在返回用户态之前,内核会专门检查一下是否需要调度);linux 2.6则实现了内核抢占,但是在很多地方还是为了保护临界区资源而需要临时性的禁用内核抢占。

         内核不能抢占的情况:

i.       内核正在进行中断处理

ii.      内核正在进行上下文切换

iii.    内核的代码段持有自旋锁和读写锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值