Operating System Architecture Based on Distributed Objects
Total Page:16
File Type:pdf, Size:1020Kb
located in different nodes. However, A. Yu. Burtsev, L. B. Ryzhyk, Yu. O. efficient access to resources can oc- Timoshenko cur only locally. E1 enables access locality by making an object physi- OPERATING SYSTEM ARCHITECTURE BASED ON cally distributed, i.e. storing a com- DISTRIBUTED OBJECTS plete or partial copy of its state in several network nodes. The internal organization of an object allows mini- Introduction mizing interactions with remote nodes during execution of operations on ob- Today the computing power of the jects, thus neutralizing the influence networks of workstations has become of communication latencies on overall comparable to that of modern supercom- system performance. puters. The practical implementation Load balancing. The E1 operating of high-performance distributed compu- system supports load balancing, i.e. tations obviously requires a special dynamic distribution of computational software platform. At present, this payload between system nodes. platform is usually implemented by ap- Support for redundancy mechanisms. plication-level parallel programming E1 allows applications to transpar- libraries, providing software develop- ently use distributed algorithms for ers with distributed communication and redundant data storage and execution. synchronization facilities [1,2]. Our Component model support. E1 has a claim is that the problem can be ad- component architecture and supports dressed in full measure by an operat- component-oriented software develop- ing system providing processes with ment paradigm. Both operating system transparent access to all resources of services and application software are the distributed system. Such operating developed within the framework of a system would allow users and applica- single E1 component model. The compo- tion programmers to think of the com- nent model provides the following ser- puter network as a single multiproces- vices: sor with common memory. • global naming service; This paper presents the architec- • protected object interaction fa- tural design of a distributed operat- cilities; ing system aimed to make the computing • late binding mechanism; potential of the network immediately • persistent objects service. available to application programmer. Distributed objects Fundamental Concepts The E1 architecture is based on the The proposed operating system ar- abstraction of distributed object. chitecture, called E1, is based on the Distributed object is an object, glob- following fundamental concepts: ally accessible from all nodes of dis- Single system image support. The tributed system. The important E1 single system image abstraction im- properties like efficient support for plies that all distributed system re- reliable distributed computing and sources are uniformly accessible from persistence are based on the corre- any of its nodes. For users and soft- sponding properties of distributed ob- ware developers such system looks and jects. feels like a single virtual computer. Object is an encapsulated abstrac- Its distributed nature is transparent tion, including state information and to applications. well defined access protocols. Efficient access to resources. In a The E1 distributed object is an ob- distributed environment execution ject having the following additional threads and resources they use can be properties: 5 1. Accessibility through interfaces. 4. Persistence. Persistence is the A distributed object exposes one or ability of an object to exist for more well defined interfaces, consist- unlimited time, irrespectively of ing of methods. The object can be ac- whether a system functions continu- cessed by means of method invocations ously. The object is at any time ac- only. cessible through its interfaces. 2. Global accessibility. Each object has a unique identifier associated The E1 distributed objects are com- with it. Any other object possessing posed of local objects (Figure 1). A this identifier can invoke the given local object is constrained to one object’s methods from any node of the node of a distributed system. Like system, provided that it has suffi- distributed objects, local objects are accessible through interfaces. cient capabilities. In a trivial case when the distrib- 3. Ability to replicate. The ob- uted object has only one replica, it ject’s state is physically distributed is identified with a single local ob- among its replicas. Object replicas ject, semantics object. Semantics ob- can exist in several nodes and must ject contains the distributed object exist in all nodes where object’s state, exposes the distributed object methods are invoked. Replication is a interfaces and implements its func- process of distribution of object’s tionality. state among its replicas and replica If the distributed object has sev- synchronization, aimed to support in- eral replicas, a copy of the semantics tegrity of the object. object is placed in each node, where Node 1 Node 2 Semantics Replication Replication Semantics Object Object Object Object Semantics Replication Object Object Node 3 Object Interface Figure. 1. Distributed Object 6 the distributed object is represented. Below we briefly describe several The distributed object integrity is widely used classes of replication al- maintained by replication objects, gorithms. complementing the semantics objects in Client/server replication. Cli- each node. Replication objects imple- ent/server is a trivial replication ment the distributed object replica- strategy. A single copy of the object tion protocol. The distributed object state is maintained by a server rep- interfaces are locally exposed by rep- lication objects. While processing the lica. Other replicas are clients. All distributed object invocation, repli- client invocations are forwarded to cation object can refer to the seman- the server. This strategy is in most tics object to execute necessary op- cases inefficient, since it does not erations over the local object state, provide local access to resources. An- as well as communicate with remote other disadvantage is low reliability replication objects to perform syn- due to centralized access to objects. chronization and remote execution of Master/slave replication is an ex- operations. tension of client/server strategy. Each replica stores a copy of an ob- Local objects ject state. One replica is assigned as primary. Read operations are executed A local object (Figure 2) consists locally in each node. Modifications of interface section and data section. are forwarded to the primary replica, The interface section contains refer- which executes the required operations ences to object’s method tables. The and updates all other replicas. For data section contains object’s private data that represents its state. this purpose the new object state or information about state changes is Class objects broadcasted to all secondary replicas. Active replication. Each replica Classes of local objects in E1 are stores a copy of an object state. Both described by objects of the special read operations and modifications are type – class objects. Encapsulation of performed locally in each node. To en- class properties by objects allows im- sure replica consistency modifications are broadcasted to all replicas. plementing dynamic class loading. Copy invalidation. This strategy Class objects provide the following was proposed by Li [4] as a distrib- functionality: uted shared memory coherence algo- • expose methods for creating and rithm. It provides strong consistency destroying instances of the given of an object, i.e., each read opera- class; tion returns the value written by the • store interface implementations. last modification. Release consistency. This strategy Replication relies on two synchronization primi- tives: acquire and release. The ac- The E1 distributed object architec- quire operation returns a copy of the ture follows the principle of policy object for exclusive use. Release op- and mechanism separation that was eration finalizes the set of opera- first proposed by the developers of tions on the object. This strategy re- Hydra operating system [3]. The oper- quires the developer to explicitly in- ating system provides the replication dicate the beginning and the end of mechanism while specific replication each critical section. Therefore, it strategies are implemented by replica- is most appropriate for objects, which tion objects. This architecture allows require mandatory access synchroniza- applying to each object the most effi- tion irrespectively of whether they cient replication algorithm that takes are used in local or distributed envi- into account its semantics. ronment. For example, an object repre- 7 senting a shared memory region can ex- Architectural overview pose acquire and release operations for access synchronization. The E1 operating system consists of Migration. Migration in E1 refers a microkernel and a set of distributed to the transfer of object replica be- objects acting at the user level. The tween nodes. Migration is not an inde- microkernel supports a minimal set of pendent replication strategy. It is primitives that are necessary for op- used in conjunction with other strate- erating system construction, such as: gies to improve the efficiency of ac- address spaces, threads, IPC and in- cess to resources by means of load terrupts dispatching. All operating balancing. system and application functionality is implemented by objects. Class Object iclass Object 1 get_interface addref c release create_object Interface Section Interface