我希望进入操作系统内核开发,并认为我的贡献是扩展SANOS操作系统以支持多个核心机器。我一直在阅读有关操作系统(Tannenbaum)的书籍,以及研究BSD和Linux如何应对这一挑战,但仍然坚持几个概念。
SANOS在多个CPU上运行时是否需要更复杂的调度算法?或者当前的工作正常?
我知道线程与启动它们的核心具有亲和性是一个好主意,但这是通过调度还是通过更改线程创建方式的实现来处理的?
< / LI>需要考虑哪些SANOS可以在拥有数百个内核的计算机上运行?据我所知,BSD和Linux最多只支持最多十几个内核。
答案 0 :(得分:4)
你的阅读材料很好。所以没有问题。另请参阅斯坦福大学关于操作系统设计的CS下载讲座。
您还需要确定如何实现线程,以及如何在内核中表示进程(无论是重量级还是轻量级)。线程内核是否受管理?用户空间管理?这些都会对调度程序设计产生影响。看看POSIX线程如何在各种操作系统中实现。您可以考虑以下事项:)
简而言之对于逻辑所处或应该驻留的位置,实际上没有任何直接的答案。这完全取决于设计,应用期望,时间限制(在程序上)等等。
希望这有帮助,但我不是这里的专家。