2011-12-26 36 views
0

我正在尝试使用线程来实现“三级调度”。总之,我想对三级调度进行模拟。编程语言并不重要,欢迎提供任何建议。三级调度线程实现

+0

您能否介绍一下您在实施三级调度时面临的一些问题?你想要做什么样的模拟?如果您希望得到一个好的答案,请在发布您的问题时稍作努力! – Matteo 2011-12-27 20:03:50

+0

其实这是我的学校项目,我还没搞清楚。互联网上没有足够的资料,所以我甚至无法启动项目的实施步骤。 这将是一个非常简单的模拟,其输出如“进程1被阻塞,进程2正在运行”等。我找不到任何与三级调度相关的信息。 Furhermore还没有涵盖三级调度伪代码的信息。这就是为什么我要求你的帮助。谢谢! – alprncekol 2011-12-28 19:31:59

回答

0

内核 - 任何线程或进程 - 在I/O调用期间被典型的定时器输入或中断中断。这将控制转移回内核的调度程序。

切换线程由调度程序完成,它决定哪个线程是下一个可运行的线程。

现在,如果你想模拟差不多这个 - 你需要让线程完成一些有限的任务并且让自己等待一些信号/互斥量。有某种主线程可以控制这些互斥/信号量。主线程以某种方式运行期望的算法来决定哪个线程应该被授予访问权限。

唯一真正的区别是,因为你的主线程本身在用户空间而不是内核内 - 所以它不能真正推翻和/或抢占正在运行的线程。它只能控制任务分配如何有效地进行仿真(在表现良好的线程之间)。

这是如何思考问题的非常基本的第一步。请添加更多的细节来处理这个问题。修改你的问题以发展你的答案。