4.1
1、名字的两种形式:地址和标识符
2、对一个对象进行操作或访问时,往往需要将它的标识符变换为它的地址,变换的过程中需要用到变换表,这个表换表叫做上下文。
3、为了支持资源的迁移,命名系统应至少支持两种形式的名字,即标识符和地址,并且可动态地结合。
4、同一个对象可以有用户定义的多个局部名字,需要一种机制把局部名字和全局标识符结合起来。
5、在分布计算系统中,一个实体可能包含多个不同的对象,就需要一个进程标识符。这样就可以支持广播或小组标识符。
6、名字按结构可分成绝对名字和相对名字两种:
1)绝对名字和给出名字的上下文无关,也就是和发出此名字的地点、用户、应用程序无关,它总是代表同一个对象,有利于资源共享,因为可以使用操作系统共用的名字指出对象。
2)相对名字和给出名字的上下文有关,例如和网络有关的邮箱名,以及UNIX操作系统中的文件名。
地址结构也有两种,即平面地址和分层地址:
1)分层地址由若干段组成,这些段反映了网络的层次结构。
2)平面地址与物理位置或任何其他层次没有任何关系,可以想象平面地址的分配可以使用一个单一的全系统范围的技术器进行,任何时候需要一个新地址时读此计数器并且将计数器加1,这样,地址是唯一的,但和位置无关。
7、名字空间:是名字的一种有机组织形式。
名字空间的表示:用一个带标号的有向图来表示,这个图中有两类节点,一类是叶节点,另一类是目录节点。一个叶节点代表一个命名的实体,叶节点没有输出弧,只有输入弧。每个节点有一个标识符,每个弧有个名字。
叶节点:一般用来存放一个实体所表示的信息,如果一个叶节点代表一个文件,它不仅包含整个文件,还包含这个文件的状态。
目录节点:每个目录节点保存一个表,表中的一项代表了一个输出弧,每条输出弧由(弧标号、节点标识符)表示,这样的一个表被称为目录表。
根节点:有一个特殊的节点,该节点只有输出弧而没有输入弧,该节点被称为命名图中的根节点,或简称为根。一个命名图中可能会有多个根 。
路径:一个路径是由一串弧的标号组成的, 例如:N:<label-1,label-2,…,label-n> ,这里N表示这个路径中的第一个节点,这样一个标号串称为路径名。如果路径名中的第一个节点是命名图中的根,则这个路径名被称为绝对路径名,否则称为相对路径名。
8、UNIX文件系统的命名图中的每个节点的标识符是它的inode索引号。
9、名字解析:在名字空间中,根据节点的路径名,就可以寻找到这个节点所存储的任何信息,这个查找过程就称为名字解析。
10、名字解析过程:N:<label-1,label-2,…,label-n> 这个路径名的解析是从命名图中节点N开始的,首先在节点N的目录表中查找名字label-1,得到label-1所代表的节点的标识符;然后在label-1所代表的节点的目录表中查找名字label-2,得到label-2所代表的节点的标识符;此过程一直进行下去,如果N:<label-1,label-2,…,label-n>在命名图中是实际存在的,就能够得到label-n所代表的节点的标识符,从而得到该节点的内容。