分类:
2006-04-16 16:18:06
2.7 Object structuring within and supported by operating systems
几个概念:
Object support operating systems are designed to support object structured software; but their internal structure need not be based on objects.
Object-based operating systems use objects as their internal structuring mechanism.
在一个系统中,如何唯一地确定一个Object是个问题,尤其是在分布式操作系统中。有一些基本的方法可以用来管理分布式系统中繁多的Objects.
1. 像建立文件目录一样建立object directories,那么一个对象就可以由命名空间中从根开始的路径到对象来辨识。
2. 系统中的每个object type可以有唯一的命名,然后由type manager来为每个object分配唯一的名字。比如: type-id, object-id-of-that-type. 这样有利于Type manager使用内建的数据结构和算法。
其实,从系统的角度讲,第二种方法更方便,而从客户端的角度看,第一种方法更简单。
1. 由对象所有者声明对象的权限和调用的方法,然后在每次访问时候进行检查
2. 可以对1中的方法进行一个优化,不在每次访问中做检查:客户端软件要打开对象,并且以参数形式给出它的名字和操作模式。如果访问检查成功,对象就是’open for use’的了,并且返回一个object handle给调用者。注意,这时候的object handle仅仅是临时的名字。
在一个系统中,会发生多个进程访问相同的对象的问题,这时候,每个进程拥有不同的object handle,这种情况下,就是考虑concurrent sharing的危险性了,需要concurrency control做额外的检查。
对于所有的对象类型,type managers可以使用相同的命名、访问控制与同步、打开、调用等机制,就是说可以通过继承来实现统一的机制,而非对每一个对象类型都做重复的实现。大多数操作系统设计中有面向对象的一些机制。一些系统支持对象,但它们的内部并非基于对象的。当然,也有一些更早的系统是在对象这个概念被提出和接受前设计的。
2.8 Distributed object systems, platforms and middleware
从上个世纪八十年代,人们就开始大量研究面向/基于对象分布式系统的支持了。
Distributed object systems的要求与centralized systems相似:
Objects must be named uniquely throughout the system
Access control
Concurrency control
一个额外的要求是:A named object must be located within the system.
我们当然不指望所有操作系统都精确支持相同的对象模型。但是在软件层,运行于底层操作系统之上的middleware或middleware platform 可以提供统一的支持。
2.9 Security and protection
Security:
External controls – security classifications
Encryption
Authentication
Authorization, protection or access control
Validation of imported software
//第八章会详细讲到以上内容。
可以通过一个矩阵来描述对象访问权限,不同的行表明不同访问规则,不同的列表示不同的对象。实践中,这样的访问矩阵应该尽量少,并且分开存储。
2.10 Summary