4 设计目标
在已描述全部线索模型和用于描述模型的语言后,可以检查体系结构的目标。下面以近似重要的顺序列出目标。
体系结构应该描述结构和机制,它可以工作于同一程序、不同程序(进程)、和不同处理器之间的线索。(处理器是否执行同一进程或者不同进程)
体系结构应该尽可能便宜的支持线索。一个程序内的线索不应强迫地跨过保护界限来进行同步或者上下文切换,线索也不应要求过多的核心资源。
体系结构必须支持多处理器和单处理器的实现。
在用户程序和库中应提供全部当前UNIX语法。一个进程的降级的情况,由一个地址空间和一个轻量进程构成,也必须提供完全的UNIX语法。
不同的轻量进程应该能做独立的、同时的系统调用。
定义系统的机制应该简单和基本的。例如,应该有一种使用线索的方法,使得它不强迫线索库使用malloc()。这就防止了干扰其它应用程序或者语言运行时间系统内存分配器。
下面不是确切的目标,但是主要用于帮助设计体系结构。
每一线索状态必须保持为最小。每一附加在最小需求之上的状态片必须证明不给线索增加过渡的“重量”。
带有一个线索的地址空间(因此一个轻量进程)应该象标准的UNIX进程一样动作;假如一个新的线索(可能一个轻量进程),它不与第一个线索交互,那么就不应该改变第一个线索的行为。
应该提供机会以针对不同的实现。例如,通过允许但不要求线索共享全部地址空间,通过允许但不要求线索在轻量进程上多路复用,通过允许但不要求在用户模式下执行同步原语。
在可能的地方,提供等价的语法,即使看起来不象是实现此函数的最好的方法。应该加入可替换的函数以“正确地”做事。
进程是工作的单位。线索是描述符的资源。例如,不可见其它进程中的线索。
Copyright: NPACT