忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1972 | 回复: 5

[内核模块] linux调度器 [复制链接]

论坛徽章:
6
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2015-08-04 06:20:002015亚冠之鹿岛鹿角
日期:2015-08-05 16:51:182015亚冠之全北现代
日期:2015-08-07 17:14:392015亚冠之武里南联
日期:2015-08-11 15:33:03数据库技术版块每日发帖之星
日期:2016-02-02 06:20:00
发表于 2018-03-14 01:13 |显示全部楼层
有那位大神知道如何写一个linux调度器,应该从哪儿入手?
有没有类似hello world的简单例子
或者提供一下思路,非常感谢

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2018-03-14 09:37 |显示全部楼层
本帖最后由 Buddy_Zhang1 于 2018-03-14 09:39 编辑

回复 1# lxy572535121

看你使用什么 CPU 了,以 x86 为例,你要写 scheduler 的话。你就必须知道 Intel CPU 的 segmentation (分段机制)

其中的 TR 寄存器负责存储当前的 task, 也就是 TR 寄存器里的值改变了,Task 也就切换了,不过这是硬件层次的 scheduler,
你也要在 schedule 过程中把 页表也要切换一下。
TSS 段和 LDT 段负责表示一个进程的地址空间和该进程的寄存器快照

以上都属于 schedule 时要操作的资源,对于何时 schedule 的话就可以采用软件的算法来实现有效的调度,
如使用 长调度或短调度来切换 TR 的值,也可以使用红黑树来调度,这就看你使用什么算法。

以上就可以从上到下实现一个 scheduler

具体可以参考 Intel 官方手册中的 Segmentation and Paging

至于具体的例子,我写的调试代码和环境是这个:

https://github.com/BuddyZhang1/K ... /testcase/scheduler

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2018-03-15 09:49 |显示全部楼层
赞!

gate.c里的ascii表格是用什么工具画的?

  1. /*
  2. * Tss Descriptor
  3. *   The TSS, like all other segments, is defined by a segment descriptor.
  4. *   Figure show the format of a TSS descriptor. TSS descriptors may only
  5. *   be placed in the GDT. They cannot be placed in an LDT or IDT.
  6. *
  7. *   An attempt to access a TSS using a segment selector with its TI flag
  8. *   set (which indicates the current LDT) causes a general-protection
  9. *   exception (#GP) to be generated during CALLs and JMPs. it causes an
  10. *   invalid TSS exception (#TS) during IRETs. A general-protection
  11. *   exception is also generated if an attempt is made to load a segment
  12. *   selector for a TSS into a segment register.
  13. *
  14. * 31---------24----------------------16---------11-8-7------------------0
  15. * | Base 21:24 |G|0|0|0|AVL|Limit 19:16|P|DPL|0|Type| Base 23:16        |
  16. * 31---------------------------------16---------------------------------0
  17. * | Base 15:00                         | Segment limit 15:00            |
  18. * -----------------------------------------------------------------------
  19. */
复制代码

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2018-03-15 11:13 |显示全部楼层
回复 3# nswcfd

  直接用空格画出来的

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
发表于 2018-03-17 23:01 |显示全部楼层
回复 3# nswcfd

简单的自己空格花就好了, 复杂的图形, 就用http://asciiflow.com/吧。 在线软件, 不用安装。好用。

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2018-03-26 09:54 |显示全部楼层
回复 5# Tinnal

的确,那个box缩放的功能很惊艳呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP