这份文档对目前 SMPng 架构的设计与实现进行了介绍。 它首先介绍了基本的原语和相关工具, 其后是关于 FreeBSD 内核的同步与执行模型, 接下来讨论了具体系统中的锁策略, 并描述了在各个子系统中引入细粒度的同步和实现并行化的步骤, 最后是详细的实现说明, 用以解释最初做出某些设计决策的动机, 并使读者了解使用特定的原语所可能产生的重大影响。
这份文档仍在撰写当中, 并将不断更新以反映与 SMPng 项目有关的最新设计与实现的情况。 其中有许多小节目前还只是提纲, 但我们会逐渐为其充实内容。 关于这份文档的更新和建议, 请发给文档编辑。
SMPng 的目标是使内核能够并发执行。 基本上, 内核是一个很大而复杂的程序。 要让内核能够多线程地执行, 我们需要使用某些其它多线程程序在实现时所用到的工具, 这包括互斥体(mutex)、 共享/排他锁(shared/exclusive lock)、 信号量(semaphores) 和条件变量(condition variable)。 如果希望了解它们以及其它 SMP 术语, 请参阅本文的 术语表 一节。
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.