-
数据流图向模块结构图的直接转换方法所体现的标准与实现间的关系
资源介绍
2.4 标准和实现的关系
我们已提及的标准定义了任一实际系统的子集。虽然 IEEE POSIX正致力于在其他所需方
面(例如,网络界面,进程间的通信,系统管理 )制订出标准,但在编著本书写作时,这些标准
还并不存在。
本书集中阐述了两个实际的U N I X系统:S V R 4和4 . 3 + B S D。因为这两个系统都宣称是依从
P O S I X的,所以我们一方面集中阐述了 P O S I X . 1标准所要求的功能,同时又指出 P O S I X和这两
个系统具体实现之间的差别。故 S V R 4或4 . 3 + B S D特有的功能和例程都被清楚地标记出来。因
为X P G 3是P O S I X . 1的超集,所以我们还叙述了属于X P G 3,但不属于P O S I X . 1的功能。
应当了解, S V R 4和4 . 3 + B S D都提供了对它们早期版本功能的兼容性 (例如 S V R 3 . 2对
4 . 3 B S D )。例如,S V R 4对P O S I X规格说明中的非阻塞 I / O ( O _ N O N B L O C K )以及传统的系统V方
法( O _ N D E L AY )都提供了支持。本书将只使用 P O S I X . 1的功能,但是也会提及它所替换的是哪
一种非标准功能。与此相类似, S V R 3 . 2和4 . 3 B S D以某种方法提供了可靠信号机制,这种方法
也有别于P O S I X . 1标准。第1 0章将只说明P O S I X . 1的信号机制。
2.5 限制
有很多由实现定义的幻数和常数,其中有很多已被编写到程序中,或由特定的技术所确定。
由于大量标准化工作的努力,已有若干种可移植的方法用以确定这些幻数和实现定义的限制。
这非常有助于软件的可移植性。
以下三种类型的功能是必需的:
• 编译时间选择项(该系统是否支持作业控制)。
• 编译时间限制(短整型的最大值是什么)。
• 运行时间限制(文件名的最大字符数为多少)。
前两个,编译时间选择项和限制可在头文件中定义。程序在编译时可以包含这些头文件。
但是,运行时间限制则要求进程调用一个函数以获得此种限制值。
另外,某些限制在一个给定的实现中可能是固定的 (因此可以静态地在一个头文件中定义 ),
而在另一个实现上则可能是变动的(需要有一个运行时间函数调用)。这种类型限制的一个例
子是文件名的最大字符数。系统 V由于历史原因只允许文件名有 1 4个字符,而伯克利的系统则
将此增加为2 5 5。S V R 4允许我们对每一个创建的文件系统指明是系统 V文件系统还是B S D文件
系统,而每个系统有不同的限制。这就是运行时间限制的一个实例,文件名的最大长度依赖于
文件所处的文件系统。例如,根文件系统中的文件名长度限制可能是 1 4个字符,而在某个其他
文件系统中文件名长度限制可能是2 5 5个字符。
为了解决这些问题,提供了三种限制:
(1) 编辑时间选择项及限制(头文件)。
(2) 不与文件或目录相关联的运行时间限制。
(3) 与文件或目录相关联的运行时间限制。
使事情变得更加复杂的是,如果一个特定的运行时间限制在一个给定的系统上并不改变,
则可将其静态地定义在一个头文件中,但是,如果没有将其定义在头文件中,则应用程序就必
第 2章 U N I X标准化及实现 2 1
- 上一篇: 操作系统原理(虚拟存储管理技术)
- 下一篇: 操作系统原理PPT