Ric*_*art 7 programming-languages llvm lightweight-processes green-threads
我正在研究使用LLVM作为本机代码生成器来设计支持轻量级进程("绿色线程")的并发语言.轻量级进程以M:N方式分配给本机OS线程,并且线程之间的工作窃取应该是可能的(即,进程应该由可以在线程之间传递的数据结构表示,如果需要).可能同时存在大量进程,因此进程不应占用大量内存,并且它们之间的上下文切换应尽可能快.此外,在上下文切换期间或者如果发生垃圾收集,"暂停"轻量级进程应该相当简单.我知道Erlang有一个LLVM后端,但我发现很少有关于它的实现的文献;
我对 LLVM 或 Erlang 没有具体的经验。
但我已经用一种名为 PARLANSE 的编程语言实现了这样一个系统。是的,让上下文切换变得便宜是很困难的。
更多详细信息请参阅此答案:/sf/answers/69972731/
我对 LLVM 所知甚少,这表明这可能很困难。您需要生成的是上下文切换代码。我不确定 LLVM 是否直接支持这一点。生成纯 C 代码时,这当然不是一件容易做到的事情,因为语言原语不允许您很好地了解机器/线程状态。
另一方面,Clang 在尝试支持 C++14 功能时,肯定会陷入“C++ 原生”线程。必须有上下文切换支持才能实现这一点,所以也许有人已经或已经解决了这个问题。
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |