操作系统我说了算!扒一扒调度器

点击蓝色字体关注我们哦


阅读本文之前,需要具备以下两点条件:

  • 了解arm汇编或者x86汇编

  • 熟悉c语言程序开发

调度器是什么

任务调度器的存在,主要是为了充分利用计算机的硬件资源,要让计算机尽可能"同时"多干一点点活。这些活其实是由处理器执行某段代码来完成的,一般我们把这段程序称为进程。进程通过负责完成某件事情,但是如果这件事情太过于复杂的话,就必须招几个小弟来帮忙干活了,这些小弟我们把它叫做线程。特别地,在嵌入式RTOS里面,没有进程这个概念,而线程则被称为任务

按理说,一个处理器在任意时刻,只能执行一个任务。它想要真正地并行运行任务,必须要具备多个处理器,比如说同/异构多核cpu。

如果非要让一个处理器兼顾所有的任务,唯一的做法就是让每个任务各自在处理器上执行一小会,然后再换下一个任务上处理器,直到所有的任务都执行结束。任务调度器就是实现这种任务伪并行的软件模块,与调度器配合工作的还有调度算法,本文暂不分析调度算法。

怎么实现任务调度器

一个任务一旦获得处理器而运行,是通过处理器的寄存器来运行指令并进行数据的读写处理的。也可以说任务的行为是通过寄存器来体现的。注意:这里的寄存器,不是指芯片的外设寄存器,而是芯片内核的寄存器。

内核的寄存器是计算机非常底层的机制了,哪怕是C语言这种号称最接近机器语言的高级语言,也并不能直接控制内核寄存器。所以在实现一款任务调度器的时候,必须是要使用汇编语言(当然机器语言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值