进程调度相关

进程调度

  • 调度时机
    • 中断处理过程(时钟中断、IO中断、系统调用和异常)中直接调用schedule(),或者返回用户态时,通过检查need_scheduled的标志来调用schedule()。

    • 用户态进程只能被动调度;内核线程可以直接调用schedule()进行进行进程切换,也可以在中断处理过程中进行调度,也就是既支持主动调度又支持被动调度

  • 进程切换过程
    • 挂起CPU上执行的进程,与中断保存现场是不同的,中断前后是在同一个进程上下文中,只是由用户态转向了内核态执行。
    • 进程上下文包含了进程执行所需要的所有信息:用户地址空间(程序代码,数据,用户堆栈等)、控制信息(进程描述符,内核堆栈)、硬件上下文(与中断保存硬件上下文方法不同)
    • schedue()函数选择一个新的进程来运行,并调用context_switch进行上下文切换,这个宏调用switch_to(汇编代码)来进行关键上下文切换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值