清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 在操作系统中,无论是软件资源还是硬件资源,传 统的设计方法都是使用相应的表格或队列链等数据 结构以及相应的标识符(或过程名来描述它们。对 这些资源的访问和使用顺序则是由进程中的程序来 规定的。也就是说,对操作系统资源数据的使用是 依靠程序员或设计人员所设计的算法来决定的。设 计人员必须保证这些算法的正确性,否则将会由于 不当的访问操作带来不可估量的恶果。 首先开始解决资源保护问题的尝试是分段。分段把 个进程的逻辑地址空间分成多个不连续的段,且 每个段具有独立的逻辑意义和连续的段内地址。从 而,可以使用段表来进行地址变换和段内数据保护。 例如,可以使用段表中的相应栏目来设置进程对某 个段的读写权限,从而起到保护该段的作用
在操作系统中,无论是软件资源还是硬件资源,传 统的设计方法都是使用相应的表格或队列链等数据 结构以及相应的标识符(或过程名)来描述它们。对 这些资源的访问和使用顺序则是由进程中的程序来 规定的。也就是说,对操作系统资源数据的使用是 依靠程序员或设计人员所设计的算法来决定的。设 计人员必须保证这些算法的正确性,否则将会由于 不当的访问操作带来不可估量的恶果。 首先开始解决资源保护问题的尝试是分段。分段把 一个进程的逻辑地址空间分成多个不连续的段,且 每个段具有独立的逻辑意义和连续的段内地址。从 而,可以使用段表来进行地址变换和段内数据保护。 例如,可以使用段表中的相应栏目来设置进程对某 个段的读写权限,从而起到保护该段的作用
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 但是,由于段表是从属于进程的,因此,对于同 段程序来说,在不同的进程中具有不同的段号,即 其逻辑地址只在一个进程内有效。这样,对逻辑地 址的访问权限就掌握在进程手中而不是段中或系统 中 再者,对于长期保存的数据文件来说,文件系统中 设置有文件名和读写权限检验等。这种保护方式又 完全不同于对段的读写保护方式。是否有一种不依 赖于上下文关系和长期、短期之分的统一的数据保 护方法呢? J. Denni在1966年提出了对系统内的所 有“物体”赋予权能,实施统一保护的概念
但是,由于段表是从属于进程的,因此,对于同一 段程序来说,在不同的进程中具有不同的段号,即 其逻辑地址只在一个进程内有效。这样,对逻辑地 址的访问权限就掌握在进程手中而不是段中或系统 中。 再者,对于长期保存的数据文件来说,文件系统中 设置有文件名和读写权限检验等。这种保护方式又 完全不同于对段的读写保护方式。是否有一种不依 赖于上下文关系和长期、短期之分的统一的数据保 护方法呢?J. Dennis在1966年提出了对系统内的所 有“物体”赋予权能,实施统一保护的概念
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 权能包括对象名和访问权。从权能的眼光看,系统 内的所有物体都是对象,而每一个对象在访问另 个对象时,都必须提出自己的权能,只有被访问对 象和操作在该权能限定的范围内,该访问才是正确 的。对于各用户或进程来说,系统为每个用户或进 程设置一张权能表。该表中含有允许该用户或进程 访问的所有对象的权能。这样,由权能表就规定了 该用户或进程可以操作和访问的范围以及封闭了各 个对象。再者,操作系统严格限制用户或进程任意 修改权能表,从而保证了系统的完整性。如果把用 户和进程也看作对象它们的确是对象),则可以认 为由权能表把该对象可以使用的数据和操作封闭起 来了
权能包括对象名和访问权。从权能的眼光看,系统 内的所有物体都是对象,而每一个对象在访问另一 个对象时,都必须提出自己的权能,只有被访问对 象和操作在该权能限定的范围内,该访问才是正确 的。对于各用户或进程来说,系统为每个用户或进 程设置一张权能表。该表中含有允许该用户或进程 访问的所有对象的权能。这样,由权能表就规定了 该用户或进程可以操作和访问的范围以及封闭了各 个对象。再者,操作系统严格限制用户或进程任意 修改权能表,从而保证了系统的完整性。如果把用 户和进程也看作对象(它们的确是对象),则可以认 为由权能表把该对象可以使用的数据和操作封闭起 来了
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 另外,可以把权能表赋给任何一个过程,从而把过 程的操作领域和操作进行封闭保护 图102是使用权能表进行地址变换的例子。在图102 中,由于每个段都被看作一个对象,因此,在一个 进程是否可访问某段时除了给出段内相对地址之外, 还必须提出它所访问对象的权能,以验证它是否有 权访问该对象。权能中的对象名又进一步指向该对 象的描述信息,例如对象数据在存储空间的位置 长度等。由对象描述信息和段内相对地址就可得 到实际要访问的物理地址
另外,可以把权能表赋给任何一个过程,从而把过 程的操作领域和操作进行封闭保护。 图10.2是使用权能表进行地址变换的例子。在图10.2 中,由于每个段都被看作一个对象,因此,在一个 进程是否可访问某段时除了给出段内相对地址之外, 还必须提出它所访问对象的权能,以验证它是否有 权访问该对象。权能中的对象名又进一步指向该对 象的描述信息,例如对象数据在存储空间的位置、 长度等。由对象描述信息和段内相对地址l就可得 到实际要访问的物理地址