CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

请问多任务操作系统如何编写任务调度部分?

楼主huangguan(黄冠)2006-05-04 11:55:51 在 其他开发语言 / 汇编语言 提问

我在保护模式下写了一个单任务的系统,要使它支持多任务,必然对任务状态描述符和局部描述符进行设置,请问设计一个多任务系统,至少会用到什么结构?如何使用这些结构,还有怎么进行任务切换? 问题点数:100、回复次数:5Top

1 楼mydo(侯佩|hopy|ks)回复于 2006-05-04 13:17:07 得分 0

系统里必须支持一个任务管理器,功能是为每个任务分配时间片,处理各个  
  任务的共享,互锁,饿死   等问题,并且使用特定算法决定不同任务的的分配  
  时间片长度,在任务切换时保留每个任务的特定信息。多任务的要用到什么  
  结构依你的要实现的功能而定,比如上面说的就要有一个结构元素来存放任务  
  的特定优先级别。Top

2 楼glietboys(大大(beer))回复于 2006-05-04 16:06:35 得分 0

如果是你自己编写的,如果你的任务没有运行过程中,不响应除了时钟中断之外的中断的话,那很简单,只要搞懂任务状态描述符和局部描述符怎么设置就可以了;如果还响应其他中断的话,那会相当复杂.  
  至于数据结构,只要保存任务的TSS_SEL,LDT_SEL就可以了,当然,还有一个全局的维护任务的链表,其他的就没有什么必要添加了.  
  至于共享,互锁,饿死   等问题,是不用考虑的,因为这些问题涉及到I/O问题和算法问题.  
  如果能做到那个地步,估计你也不用在这问问题了.Top

3 楼WYlslrt(WY.lslrt(http://www.wyos.net))回复于 2006-05-07 10:09:30 得分 0

你可以使用软件切换或者硬件切换,在我们经常使用的cpu上,自己写的操作系统使用任务切换是比较好的,你可以去好好的看下x86的任务切换机制,必须得数据结构为TSS:任务状态段,可以看看清华的80x86汇编语言程序设计Top

4 楼tb01412(tb)回复于 2006-05-09 10:02:22 得分 0

去看LINUX0.11版的内核,推荐一本书:LINUX内核完全注释Top

5 楼Peter_Cheung()回复于 2006-05-10 11:10:09 得分 0

for   IA32,   任务管理器is   timer   handler,   which   is   IRQ   0.  
  you   can   write   your   任务管理器   in   there.  
  from   PeterTop

相关问题

关键词

得分解答快速导航

  • 帖主:huangguan

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo