HaLVM和线程

9

我不太理解HaLVM或类似技术在操作系统线程方面的作用。

我知道当使用编译选项-threaded编译代码时,Haskell多线程运行时将使用操作系统线程来重新分配现有的Haskell线程,从而避免外部调用的阻塞行为。现在,当你使用HaLVM时,你可能不需要进行任何外部调用。然而,我想知道这些如何结合起来,以及HaLVM运行多少工作线程。是否存在其他情况,没有操作系统工作线程可能导致阻塞或其他不良行为?

1个回答

9

HaLVM使用单线程的GHC运行时。

将HaLVM移植到使用多线程运行时,并得到来自多核Xen的支持,将是一个有趣的项目。


但是这种单线程模型会带来哪些不良后果?在什么情况下? - J Fritsch
2
是的,如果您希望,每个核心可以运行单独的HALVM。 - Thomas M. DuBuisson
@ThomasM.DuBuisson,他们在第4张幻灯片上想要表达什么意思?http://www.slideshare.net/xen_com_mgr/the-halvm-a-simple-platform-for-simple-platforms。他们是想说他们只研究了一个简单的问题,还是HaLVM保持了一个精简的调用图? - J Fritsch
@JFritsch 第四张幻灯片?看起来已经非常明确了,如果我看错了幻灯片或者没有回答你的问题,请纠正我。微内核依赖于许多单独的“服务器”进程来执行IPC。以这样一种方式设计它们,使得没有循环依赖关系,这使得启动变得困难或不可能,是非常棘手的。HaLVM允许快速原型实现,通过示例证明服务器的特定设计没有这样的问题。 - Thomas M. DuBuisson
@ThomasM.DuBuisson 什么是微内核和外核之间的区别? - J Fritsch
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接