AL-1/D: A Distributed Programming System. with Multi-Model Reection Framework. Yutaka Ishikawayy.

Size: px
Start display at page:

Download "AL-1/D: A Distributed Programming System. with Multi-Model Reection Framework. Yutaka Ishikawayy."

Transcription

1 AL-1/D: A Distributed Programming System with Multi- Reection Framework Hideaki Okamuray okamura@mt.cs.keio.ac.jp Yutaka Ishikawayy yisikawa@etl.go.jp Mario Tokoroy 3 mario@mt.cs.keio.ac.jp y Department of Computer Science Keio University Hiyoshi, Kohoku-ku Kanagawa, 223 JAPAN yy Electrotechnical Laboratory Umezono, Tsukuba Ibaraki, 305 JAPAN Introduction We have proposed the Multi- Reection Framework [3] where an object is described by multiple models each of which abstracts the object behavior in the dierent level, i.e., from the operating system level to a high-level programming language level. In one model, some objects called meta-level objects are constituted to describe the behavior of an object called a base-level object. An object is causally connected with its multiple meta-level objects, so that the object may have the ability to modify its behavior by the modication of those meta-level objects. In this paper, the application of Multi- Reection Framework to a distributed system is reported. In a traditional distributed system, the operating system (or the runtime library) supports for the network transparency. By the network transparency, we mean that the user do not need to take the nature of the distributed environment into account. In the distributed system, the system needs to automatically change the conguration to balance the CPU's and communication load and make the system reliable. If the functionality of the dynamic conguration is effectively operated, users are satised with the system. However, most cases fail because it is dicult for the operating system to recognize the application's behavior without any hints. Rather, some users know the application's behavior. They are willing to change the conguration of the distributed environment in order to run their applications eciently. The requirement of the network trans- 3 He is also with Sony Computer Science Laboratory Inc., Takanawa Muse Building, Higashi Gotanda, Shinagawa-ku, Tokyo, 141 JAPAN, mario@csl.sony.co.jp parency and the change of the distributed environment by the users is the contradiction. By Multi- Reection Framework we are able to create several dierent models in the distributed environment. Some models abstract the object behavior in the network transparency. That is, the object behavior is described in the location independent. Using other models, the object behavior in the distributed environment is considered. The AL-1/D, a concurrent object-based programming language, has been designed and developed based on the framework. Firstable, Multi- Reection Framework and the object model of the distributed environment are introduced in this paper. In section 3, the syntax and the semantics of AL-1/D are shown with examples. The design and implementation of AL-1/D are presented in section 4. In section 5, we evaluate the performance of AL-1/D system. Finally, we conclude this paper with mentioning future works. 2 Multi Reection Framework 2.1 Concepts The concept of Multi Reection Framework is summarized. As show in Figure 1, an object is modeled by the multiple dierent levels in the Multi Reection Framework. The principle of this framework is as follows: An object has its state which is changed at an event, 1

2 Meta1 Object Meta2 Transparent to Distributed Environment System Language Statistics Meta4 Meta3 Level of Abstraction OS Operation Resource DE Migration Base-level Object Not Transparent Figure 1: Multi- Reection Framework i.e., message arriving, message sending, and so on [3]. The object behavior is dened by its state and the action at the state change. An object is represented by multiple models each of which describes the object behavior in the dierent abstraction. The object is called a base-level object. In a model, the behavior of a base-level object is described by a meta object which consists of several objects. The meta object denes actions at the state change. A base-level object and its meta objects are causally connected so that the modication of those meta objects is reected in the base-level object behavior, and vice versa. A meta object may be invoked both explicitly and implicitly. Implicit invocation occurs at the transition of the object's state while the base-level object can invoke a meta object explicitly. The state transition diagram is shown in Figure s for Distributed Environments We have designed the following models: the Operation, Resource, Statistics, DE, Migration and System in the distributed environment. Those object models are depicted in Figure Operation The operational semantics of the programming language is the main concern in this model. In object-based programming language, the behaviors of objects consists of combination of primitive operations such as message sending, pushing to the evaluation stack and so on. In Operation, these primitive operations are dened. Level of Implementation Figure 3: Object for Distributed Environments A base-level object is represented by a meta object which consists of message queue, array of variables, state, and method table objects. Each state change of the baselevel object is expressed by interaction among those objects. Facilities for debugging and some hook mechanisms can be easily implemented in this model. For example, monitoring of message sending is realized by inserting the codes for monitoring(maybe print expression) to the semantics code of message sending. In such a sense, the operation model is the same abstraction of meta objects in computational reection languages such as 3-KRS[5] and ABCL/R[8]. In this model, all objects are location-independently accessed in the distributed environment Resource Resources in a local host such as memory and cpu are mainly concerned in this model. Resources related with the distributed environment such as network are not expressed. In the scheduler on the CPU, objects exists as context which have evaluation stacks, instruction pointers and so on. When the strategy of CPU scheduling is needed to change(for simple example, selecting FIFO or round robin strategy), objects must be handled as context objects. When we hope to change the strategy of garbage collectors, object have to be treat as segment objects in the main memory which have reference count and so on. The notion of an object is also employed but the representation of a base-level object diers from the Operation. Since the primary concern on this model is the management of resources, a base-level object is represented by a meta object which consists of segment and context objects. A segment object is an abstraction of 2

3 stop stop dormant bind cond reply self invoke terminate super ready activate terminate run invoke endmigrate endmigrate endmigrate beginmigrate beginmigrate beginmigrate req-sent rep-received endmigrate waiting invoke beginmigrate done migrate migrating Figure 2: State Transition Diagram of Our Object memory while a context object is an abstraction of the execution environment. Each state change of the base-level object is expressed by interaction among those objects. By modifying objects in this model, the CPU scheduling and garbage collection may be changed by a base-level object Statistics In the statistics model, an object is modeled by statistics information related to the object itself and underlying resources instead of procedural modeling. The statistics information of the base-level object includes cpu time, memory usage, and blocking time of communication while the statistics of underlying resources are load average, memory usage, communication usage, and so on. The scheduling priority in a local host and the strategy of the load balancing in the distributed environment is given by the constrains of the statistics information. A meta object in the statistics model keeps those statistics information. By the meta object programming in the statistics model, a base-level object may control the dynamic conguration in the declarative fashion, i.e., the constrains programming DE The DE (Distributed Environment) model is designed to abstract the distributed environment. Unlike the operation model, the location of an object and the information of remote hosts such as the CPU and communication load are visible in the DE model. The semantics of remote communication and migration is described by a meta object of the DE model. The meta object keeps the location of the receiver object and three special objects called nameserver, remoteinfo, and Network. Each state change of the base-level object is expressed by interaction among those objects to dene the semantics of remote communication and migration. The nameserver object is responsible for translating the unique identier (UID) of an object to the object address (or location), so that it has a cache table for the address translation. The strategy for updating the cache table is modied by changing the nameserver object. For example, we assume that the address translation table is only updated when an object is migrated into a remote host by default. By modifying the nameserver object, the strategy is changed so that the address translation table is updated only when remote communication fails due to the old object's address. The remoteinfo object keeps the hosts information such as the CPU and communication load. Using the information, we may control the load balancing strategy, i.e., the idle processor initiates the load balancing or the heavy load processor initiates the load balancing. The DE model enables us to modify the semantics of remote communication. For example, the call-by-move semantics introduced in Emerald[1] is easily implemented. The semantics of the call-by-move is that the caller object or the receiver object is moved into the receiver's host or the sender's host at the communication, respectively. The programmer must specify this semantics explicitly at programming of an application in Emerald. Contrast with Emerald, the advantage of the DE model is that the control of such a mechanism is separated in the base-level object programming and thus the programmer network-transparently writes an application. The programmer may control the semantics of remote communication during the optimization of the application phase without the modication of the base-level object. To describe the migration action, we need to have the ability of translating an object to a movable object which will be sent to the destination host. At the translation 3

4 to the movable object, it is better for us to express which other objects should also be moved at the migration. For example, consider the case that meta objects related baselevel objects must be moved with the base-level object. While there is the case that referenced objects as internal variables of objects have to migrated to. We want to decide which objects move together migrated object according to the properties of application. This semantics can not be described in the DE model because the lower level abstraction than the DE model is required to describe it. The migration model is designed to describe this nature Migration The migration model describes how an object migrates to a remote host. A base-level object is represented by a meta object which consists of a container object and the network object. The container object is the movable representation of the base-level object. When an object migrates to a remote host, the object is only moved by default. That is, even if the object keeps other objects, those objects are not moved. In order to decrease the communication trac, the base-level object can control which objects are moved to the remote host by the meta programming in the Migration model System All the semantics of primitive objects on the models above are dened in this model. An object is represented by a segment, semantics code, and evaluation stack. The segment represents an object which is the protected data so that the contents of an object are directly accessed. Contrast to the operation model, the semantics code on the operation model is concretely dened. 2.3 Benets of Multi- The benets of introducing multiple models to distributed environments are summarized. The meta levels which have multiple abstraction levels can be described. So we can program on various abstraction level. Users can select which model is most suitable for their programming according to properties of applications. Let us consider the programming about message sending. If the Operation is used, the location of objects in the system is transparent to programmers. While if we use the DE, the parts which search the destination of moved object by name server object can be customized. In the traditional programming language with features of meta-level programing, the abstraction level of the contents of meta levels is unique. Thus it is impossible to customize the behavior of objects on multiple abstraction level or to changed constituents which can be programed such as mentioning above. DE 1 DE 2 Mig suspend Host A Host B Host C (1) (3) (4) (6) migrationrequest ackmigrationrequest ackmigrationrequest migrationobject ackmigrationobject updatetable (2) (5) Figure 4: Object Migration Process As an example of the description of the distributed nature in our model, the object migration is described in the DE and Migration models. The Figure 4 depicts the scenario of the migration. (1) Host A sends the request of the object O's migration to other hosts in order to collect candidates of the destination. (2) When a host receives the migration request, it decides whether or not it accepts the O's migration. If the host can accept the object migration, an acknowledgment is sent to Host A. (3) Host A waits for any acknowledgments from other hosts. If Host A receives multiple acknowledgments, the most suitable destination is decided by the metaobject or the system. (4) Host A decides the destination of the O's migration, the object is copied to the destination. (5) When the system on the destination host receives the object, the system sends an acknowledgement of the migration to Host A. (6) When Host A catches the acknowledgment from the destination host, the system deletes O. Then the system on Host A sends all other hosts a message which tells other hosts to update the O's location. (2) 4

5 In Figure 4, the part DE 1 and DE 2 is described in the DE. That is, the meta object in the DE executes the (1), (2) and (3) operations if dened. While the part Mig is dened in the Migration. The meta object in the Migration executes the (4) operation if dened. 3 Object-Based Programming Language AL-1/D 3.1 Specication of the AL-1/D Programming Language Denition of Base-level Objects AL-1/D is an object-based programming language. The syntax of message passing is similar to the one of ConurrentSmalltalk[10] or Orient84/K[4]. But AL-1/D has no class hierarchy and supports for the delegation mechanism instead of the inheritance mechanism. An AL-1/D program consists of three parts: the denition of a base-level object, its meta objects and those methods. The following program is the example of a baselevel object declaration. 1 [ base Example 2 (deligations Object) 3 (vars var1 var2) 4 ] This base declaration denes a base-level object called Example which is a global name in a host. The statement delegations in line 2 denes destination objects for delegation of object Example. In this example, a message which is not understood in object Example is delegated to Object. In line 3, the statement vars denes the internal variables of Example: var1 and var2. A base-level object or a meta object is bound to an internal variable. The denition of methods and meta objects is separated from the base-level object declaration. The following example shows the denition of method factorial: which has one argument number. This method calculates the factorial value of an integer given by the argument and returns the value. After evaluating this program, method factorial: is added to Example and can be invoked by message factorial:. 1 [ method Example factorial: number 2 (vars i) 3 i = number; 4 if (i == 0) then 5 return 1 6 else 7 return i * (self factorial: (i - 1)) 8 end 9 ] An example of the message expression is shown below: obj selector: arg; obj selector1: arg1 selector2: arg2; This expression means that a message whose selector is msg and argument is arg is sent to receiver object. It should be noted that control statements such as if, while, and case are not realized by block objects and their interaction such like Smalltalk Creation of Objects There are two method for creating objects: Mentioned above, the declaration of the base-level object create objects. Using existing object as template objects, objects which have the behaviors same as template objects can be created. In later way, new objects are created by sending message create to the template objects. newobj = Example create; In above example, an object which has construction same as object Example is created and bound to variable newobj. In this case, object Example is called parent object of the newly created object, while new object is called child object of object Example. The child objects can create objects by receiving create messages. The parent objects is dierent from the destination object for delegation Denition of Meta Objects The denition of a meta object called MetaExample of the Example object is shown below. The meta object is dened in a model denoted by <MetaName> which must be replaced with one of Operation, Resource, DE, Statistics, Migration, and System. 1 [ meta <MetaName> MetaExample Example 2 (vars var1 var2) 3 ] After compiling this source code, the MetaExample object is registered as the meta object of the Example object. The meta object is referred to by all other objects, same as the base-level object. The internal variables and methods are dened as the same fashion of the base-level denition. The meta objects can create new objects as template objects samely as base-level objects. In this case, rst the meta objects are created without binding to baselevel object such as the below program. Next, the new object is created by sending message create to the object MetaExample. Finally the new object added to the meta table of base-level object Example by sending message addmeta:as to Example. The meta table is the table which holds related meta objects. In the below example, 5

6 the new meta object is created as the meta object in the Operation. 1 [ meta <MetaName> MetaExample 2 (vars var1 var2) 3 ] ameta = MetaExample create; 6 Example addmeta: ameta as: #Operation; The invocation of a meta object is restricted in three ways: a method is invoked i) only implicitly, ii) both implicitly and explicitly, and iii) explicitly. A method related with a state change of the base-level object is invoked implicitly or both implicitly and explicitly. In this paper, such a method is called a state method because the method is invoked when the state of the base-level object is changed. Most of state methods must run exclusively with other methods of the base-level object due to the base-level object state consistency but some state methods may run concurrently with other meta objects. In order to make such dierences clear, a state method which may concurrently run is denoted by a method name led by \!" while a state method which must exclusively run is denoted by a method name led by \!!" in this paper. 3.2 Denition of s The denition of Operation, Statistics, DE, Migration models are shown with the notation of AL-1/D language. The Resource and System models are not described in this paper. Those models were described in the previous our paper[2] Operation In the Operation, a base-level object is represented by message-queue, instance-variables, method tables, name tables, state of object, evaluation stack, continuation, sender object and template of future object. The following example shows the denition of a meta object named OpeExample which represents the Operation of base-level object Example. 1 [meta Operation OpeExample Example 2 (vars message_queue /* message queue */ 3 ivars /* instance variables */ 4 methodtable /* method table */ 5 nametable /* name table */ 6 state /* state */ 7 evaltop /* evaluation stack */ 8 continuation /* continuation */ 9 sender /* sender object */ 10 future /* future template */ 11 ) 12 ] Table 1 shows the list of semantics codes which represent the base-level objects in the Operation. In the AL-1/D system, these operation are dened as the semantics of the AL-1/D programming language. Table 1: Semantics Codes in Operation Method Name request:!!answer:from:!!ssend:message:!!asend:message:!!obind:value:!!tbind:value:!!reply:to:!!return:to:!!cond:true:false:!!self:!!super:!!methodbegin:!!methodend:!!stop:!!exception:!!timeout: Event request message arrival reply message arrival sync. message trans. expression async. message trans. expression binding an own variable expression binding a tmp variable expression reply expression return expression condition expression self expression super expression invoking a method terminating a method execution killed by G.C. exception occurs timeout occurs The default denitions of method!!ssend:message:, request: and!!obind:value: are shown below.!!ssend:message: represents the semantics of synchronous message sending. request: denes the event of reaching of message to receiver object.!!obind:value: represents the event which binds the value to internal variables. 1 [ method OpeExample!!ssend: rcvr message: msg 2 (rcvr meta: #request:) request: msg 3 ] 1 [ method OpeExample request: msg 2 msgqueue add: msg 3 ] 1 [ method OpeExample!!obind: pos value: val 2 ivars at: pos put: val 3 ] When any meta objects is dened explicitly, the default meta objects are dened which has above method. The message passing semantics is described in state method!!ssend:message: of the meta object in the Operation model. As shown in the following program, we are able to monitor the execution of the message sending operation by the modication of that method. 1 [ method OpeExample!!ssend: rcvr message: msg 2 Console print: "message "; 3 Console print: msg selector; 4 Console print: "is sent."; 5 Console printnl; 6 (rcvr meta: #request:) request: msg 7 ] Next example is the program which creates the meta object Example2 in the Operation. This meta object is created using object OpeExample as the template object. 6

7 1 [ method Example2 initmeta 2 (vars newmeta) 3 newmeta = OpeExample create; 4 Example2 addmeta: newmeta as: #Operation; 5 ] Statistics The behavior of a base-level object is expressed by statistic information of the object, constraints of these information, and algorithm for the satiser of these constraints in the Statistics. The following example shows the denition of a meta object named StatExample which represents the Statistics of the Example base-level object. 1 [ meta Statistics StatExample Example 2 (vars load /* load average of host */ 3 communication /* communication cost */ 4 cputime /* cpu time */ 5 memoryusage /* memory usage */ 6 blockingtime /* blocking time */ 7 ) 8 ] As shown below, constraints are dened in the constraint method of a meta object in the Statistics. A constraint is asserted by a message expression with a priority of the satiser. 1 [ method StatExample constraint 2 load lessthan: 1.23 priority: 1; 3 communication lessthan: 1.23 priority: 2; 4 cputime lessthan: 1.23 priority: 3; 5 memoryusage lessthan: 1.23 priority: 4; 6 blockingtime lessthan: 1.23 priority: 5; 7 ] The second line means that the limitation of load average is 1.23 and this constraint has priority 1(minimum priority). As default, constraint method has no boolean expression. So load balancing does not occur automatically. If method constraint is dened, AL-1/D system solves constraints in this method and controls object migration and so on. 1 [ meta DE DEShell6 Shell6 2 (parents nil) 3 (vars localhost nameserver remoteinfo network) 4 ] 5 6 [ method DEShell6!!ssend: rcvr message: msg 7 (vars rid rcvrlocation) 8 rid = nameserver location: rcvr; 9 rcvrlocation = rid host; 10 if (rcvrlocation == localhost) then 11 /* local send */ 12 (rcvr meta: #request:) request: msg 13 else 14 /* remote send */ 15 network send: rcvr message: msg host: rcvrlocation 16 end; 17 ] Figure 5: Program on the DE Let us realize the call-by-move semantics by the modi- cation of the default behavior. Figure 6 shows the new program giving the call-by-move semantics. In this program, if the receiver object exists on a remote host (line 6), the base-level object is moved to the remote host (line 7). The state statement in line 7 is to change a state to the migrating state. 1 /* another version for call-by-move */ 2 [ method DEShell6!!ssend: rcvr message: msg 3 (vars rid rcvrlocation) 4 rid = nameserver location: rcvr; 5 rcvrlocation = rid host; 6 if (rcvrlocation!= localhost) then 7 state migrating: rcvrlocation; 8 end ; 9 (rcvr meta: #request:) request: msg 10 ] Figure 6: Changed Program on the DE DE The distributed environment is recognized in the DE. The example shown in Figure 5 is the denition of the Shell6 object and its meta object named DEShell6 which represents the DE. The internal variables of DEShell6 are localhost, nameserver, remoteinfo, and network. The localhost variable keeps the location of the base-level object while the nameserver variable is bound to the NameServer object. As described in the previous section, the NameServer object is responsible for the object's address translation. The network variable keeps the Network object which handles remote message sending. The!!ssend:message: state method in Figure 5 species the default semantics of message massing. State method!beginmigration is shown in Figure 7. The method may be invoked by a meta object in the Statistics in order to satisfy the constraints. The!beginMigration method is responsible for nding the most suitable destination for the object and changing the current state to the migrating. As shown in the gure, the migration request message is sent to other hosts and a host which returns the maximum value(such as information of load average) is selected as the destination. The!beginMigration method executes the part DE 1 + DE 2 in Figure 4. By the meta programming of the!beginmigration method, we are able to modify the algorithm for nding the destination of migration. 7

8 1 [ method DEShell6!beginMigration 2 (vars destination host i max val nextvalue) 3 remoteinfo begin; 4 val = ValueList create; 5 num = 0; max = 0; 6 while (host = remoteinfo next) 7 val put: (host migraterequest: anobject &); 8 num = num end 10 for i = 0 step i = i + 1 to num do 11 nextvalue = val next; 12 if (val1 value > max) then 13 max = nextvalue value; 14 destination = nextvalue host 15 end 16 end 17 state migrating: destination; 18 ] Figure 7: Default Action on!beginmigration Migration Figure 8 shows the denition of a meta object named MShell6 which represents the Migration of the Shell6 object. The objlist keeps objects which are moved together with the base-level object. The meta object in this model has state method!!migrating: which executes the object migration. This method executes the part M ig in Figure 4. If users are willing to change the algorithm of migration, state method!!migrating is programmed. 1 [ meta Migration MShell6 Shell6 2 (parents nil) 3 (vars destination objlist bitstream) 4 ] 5 6 [ method MShell6!!migrating: dest 7 (vars nextlist) 8 /* base is migrated */ 9 Network write: bitstream to: dest; 10 nextlist = objlist; 11 while (nextlist!= nil) do 12 nextlist = nextlist next; 13 (nextlist value model: #Migration) migrate: dest 14 end 15 ] Figure 8: Program on the Migration Method!!migrating: writes the bit stream of the base-level object which is bound to the variable bitstream to the network. It also invokes objects bound to variable objlist in order to move those objects together. By default, the value in objlist is an empty list. In Figure 9, an example of modied method!!migrating: is shown. In the example, a meta object in the DE is moved together with the base-level object. 1 [ method MShell6!!migrating: dest 2 (vars nextlist newlist) 3 newlist = List create; 4 newlist value: base meta: #DE; 5 objlist append: newlist; 6 7 /* base is migrated */ 8 Network write: bitstream to: dest; 9 nextlist = objlist; 10 while (nextlist!= nil) do 11 nextlist = nextlist next; 12 (nextlist value model: #migrate:) migrate: dest 13 end 14 ] Figure 9: Changed Program on the Migration 3.3 Relationship among AL-1/D Objects There are some kinds of relationship among AL-1/D objects. These relationship is summarized here. base and meta This relationship is the one between base-level objects and meta objects. When any meta object is not dened explicitly, default meta objects are de- ned automatically. The six kinds of meta objects are used according to needed models. The meta object of the meta object can be created. Conceptually, innite tower of meta objects can be built. parent and child This relationship is the static relationship which is built when objects are created. The object as template is called parent object and the new object is called child object. Any changes of parent objects do not inuence child objects. For example, if a method is added to parents object, this method is not added to child object. The objects created without message create do not have parent objects. When child object are created, the meta objects of child objects are not created at the same time. This default action can changed by meta programming. delegatee and delegator This relationship is the relationship belong the object which delegates messages, called delegator, and the object which accept delegated message, called delegatee. The destination where messages delegate can be change dynamically. This change of destination is eect to the related meta objects in the Operation. These relationship is shown in the Figure 10. In this gure, object A2 is created from object A and object B is the destination where message which can executed in 8

9 object A2. The meta object OpeA is the meta of object A and have some meta objects of itself. method table ResA OpeA MigB B DeB message Deligatee(of A2) deligation StatD VM1 A send to B Network Handler return from B Network Handler VM2 Network Handler migration from VM3 send from A B return to A Network Handler Meta (of A) A create A2 message Network Handler Network Handler OpeA method table (shared) OpeC migration to VM2 Base (of OpeA) Parent(of A2) Deligator(of B) Child(of A) VM3 Figure 10: Relationship among AL-1/D objects Figure 11: AL-1/D System 4 Design and Implementation of AL-1/D system 4.1 Virtual Machine The AL-1/D system is implemented on a virtual machine(vm). Because we want to make implementation easy and this implementation is our rst step towards a exible system with reection facilities. The compiler translates AL-1/D source codes to bytecodes which are the instruction set of the virtual machine. The virtual machine runs in a host. Multiple virtual machines exist on several hosts connected with UNIX TCP/IP protocols. The virtual machine has some Network Handlers, each of which communicates with other virtual machines. When the virtual machines send remote messages or move objects, they put messages or objects into their Network Handlers(see Figure 11). The virtual machine of the AL-1/D system is programmed with C++. Conceptually, the behaviors of all AL-1/D objects are dened by their meta objects. If no meta object of the base-level object is dened, default meta object is created automatically. The default meta objects are not executed by the virtual machine but the behavior of the virtual machine itself. The denition of the virtual machine is the denition of the default meta objects of all AL-1/D objects. 4.2 Issues on Realization of AL-1/D Systems In our object model, a base-level object and some meta objects are running independently. However when these objects are realized on the virtual machine, they may send messages to each other. This action of objects causes in some problems about synchronization among objects. Such problems are described below Synchronization Among Meta Objects Because all objects may run concurrently and a base-level object has multiple meta objects, those meta objects may run concurrently. However, some meta objects may not run while other meta objects are running at the same time. As described in section 3, a state method led by \!" may concurrently run while a state method led by \!!" must exclusively run with other meta objects of the baselevel object. The compiler creates the codes for the suspend and resume operations when it nds a meta method which must exclusively run with other metas. In concurrent programming, one of the most important issues is avoiding deadlock. In AL-1/D, some meta object of the same base-level object may be active, the deadlock occur among these meta objects. The AL-1/D system supports no mechanism for avoiding deadlock. Then programmer must program carefully by state methods in order to keep away from occurring deadlock. 9

10 4.2.2 Invocation of Meta Objects When a meta object is invoked, reication occurs. When the execution of a meta object is done, reection occurs. In order to realize these operations, the system needs to distinguish whether or not an object is meta. There are two means of the distinction; 1. Each object has a ag for distinction whether it is a meta object of not and the bytecode interpreter handles the operation of reication and reection at running time. 2. bytecodes for reication and reection are inserted by the compiler at compiling meta methods. In the rst method, there are more overheads at the run time because the bytecodes interpreter needs to check the ag on every time of message sending. Considering the overhead of the bytecode interpreter on sending messages, we adopt the second method. Thus, the compiler has information for models, and create reication codes at the begging of methods and reection codes at the end. These codes are described in the next subsection. 4.3 Bytecodes The bytecodes used in the AL-1/D system are similar to the ones used in ConcurrentSmalltalk[10]. However, considering above discussions, new some bytecodes are introduced in order to support reection facilities Retrieve Bytecode The retrieve bytecode is the instruction of the reication operation. At the beginning of all methods of a meta object, the retrieve bytecode is generated by the compiler. The retrieve bytecode binds components of the base-level object to variables of meta object according to the kind of the meta object Unretrieve Bytecode The unretrieve bytecode is the instruction of the reection operation. The compiler inserts the unretrieve bytecode before generating the return bytecode in all methods of a meta object. The unretrieve bytecode makes changes by a meta object reect to the base-level object. Considering the performance, only variables changed by the meta object are bound to variables of the base-level object. 4.4 suspendmetas and resumemetas bytecodes The suspendmetas and resumemetas bytecodes are designed in order to avoid the inconsistency of the internal state of objects on the invocation of a meta object. The suspendmetas bytecode suspends the execution of all metas of the base-level object by force while the resumemetas bytecode resumes the execution of the baselevel object. 5 Evaluation The AL-1/D system is evaluated in this section. The AL- 1/D system is implemented on Sun SPARCstations and DECstations connected by the Ethernet. The following results of the evaluation are based on the old AL-1/D system on Sun SPARCstation 2's in which the interpreter always translates a base-level object into the representation of a meta at the reication operation, and vice versa at the reection operation. 5.1 Basic Performance Overheads of Invocation of Meta Objects We show overheads caused by the invocation of meta objects. The cost of a simple invocation of a meta object representing the DE or Migration is measured. The result is shown in the Table 2. In the new version of AL-1/D system, we expect the overheads of invocation of meta objects is reduced by 50%. Table 2: Invocation time of meta objects kind time(msec) Operation 2.13 DE 0.78 Migration 0.64 DE + Migration Performance of Communication We measure the cost of communication. three types of communication: (i) local send: same host. We evaluate Both sender and receiver exist on the (ii) remote send: Receiver exists on dierent host from the host where the sender exist. The location of the receiver is already known. (iii) search location & remote send: At rst the virtual machine searches the location of receiver. Since the message for searching is needed, there are two roundtrips of messages. In each case, the program for evaluation of message sending is the below program. In this program, object TestSend send synchronous messages to object One 10,000 times. 10

11 1 [ method TestSend start 2 (vars limit i) 3 limit = 10000; 4 while (i < limit) do 5 One value; 6 i = i end 8 ] 9 10 [ method One value 11 return 1 12 ] For comparison, we measure the time of sending a packet on the UNIX stream whose size is the same as the packet on remote sending. The local sending time is the round-trip time when an object invokes another object which just returns value 1 and receives the return value. The result is shown in the Table 3. Table 3: Communication time in the AL-1/D time(msec) (i) local send 0.03 (ii) remote send 2.21 (iii) location/remote send 4.47 UNIX stream 1.53 Next, the time of the object migration is measured. For the measurement, the Shell6 object is moved to another host when the object is not running. The object has ve methods and no any internal variables nor meta objects programmed by users. We also measure the time of sending a packet by the UNIX stream for the comparison. The packet is the same size of a packet on the migration. The result is shown in the Table 4. Table 4: Migration time in the AL-1/D time(msec) Object Migration 5.63 UNIX stream 2.25 The result shows that object migration is ecient when messages are only sent to the same remote object more than three times AL-1/D vs ConcurrentSmalltalk We compare the performance of the AL-1/D system with the one of the ConcurrentSmalltalk(CST)[10] system since CST is a concurrent object-based programming language system and running under the similar virtual machine without the reection facilities. Table 5 shows the comparison about the speed of local message sending between AL-1/D and CST. We execute an application in which an object sends a message 10,000 times to another object which returns 1. The time of local sending is the measured time divided by 10,000. The result is shown Table 5. Table 5: Comparison between AL-1/D and CST System local send time(sec) AL-1/D 0.03 ConcurrentSmalltalk 0.02 The result shows that the performance of the AL-1/D system is little lower than ConcurrentSmalltalk. This difference is due to the dierence of the implementation languages: C and C++. This concludes that we realized the reasonable performance for a concurrent object-oritened programming language with reection facilities. 5.2 Comparing between the Default Execution of the VM and the Execution with Reection When we do not dene meta objects, the behavior of the base-level object is realized by the virtual machine in the AL-1/D system. We evaluate the dierence of the execution speed between the default behavior and the behavior changed by meta objects. We compare the default execution of DE1, DE2 and Mig in Figure 4 with the execution of the same operation dened in meta objects programmed by the user. The result is shown in Table 6. The legend of the rst column is the following: (i) The default execution of the VM The default execution time of the virtual machine without programming meta objects. The virtual machine (VM) searches a place where the object should move and then the object is moved to the place. (ii) The trace of the default action by meta objects The execution time of the same operation of the default action programmed in meta objects. This is the result of execution of the sample program shown in the Figure 7 and 8. The meta object in the DE searches the place where the base-level object should be moved and the then meta object in the Migration moves the base-level object. The result is the total time in which the meta objects in DE and Migration. (iii) The execution after change The meta object in the Migration is modied so that the user-dened meta objects are also moved. This is the result of execution of the sample program shown in Figure 7 and 9. Because of changing the behavior of the meta object in Migration, the code size is increased. 11

12 Table 6: Execution time of the VM and meta objects time(msec) ratio to (1) dierence from (1)(msec) number of messages number of codes (i) (ii) (iii) The result shows that it takes 5.7 times much than the virtual machine to move the object by the meta object. As much as we change the denition of the Migration, it takes much time to move an object since the size of the compiled code becomes larger. It is important to show such values to users when he needs to decide customizing of the behavior or decreasing of running time. 6 Conclusion In this paper, we proposed the new object model with re- ection in order to construct a exible distributed system. The distributed programming language system: AL-1/D is designed and implemented based on this model. The AL-1/D is a concurrent object-based language which provides facilities of remote communication and reection. By employing the Multi- Reection Framework two levels are introduced in the distributed environment, i.e., the network transparency level and the distributed environment level. The Operation model is dened as if all objects exist on a single host in the network transparency level. The DE and Migration models are dened to describe the behavior of the distributed environment in the distributed environment level. In AL-1/D, the users have the rights to select which model is suitable for understanding the system as well as modifying the object behavior. The AL-1/D system runs on SPARCstations and DECstations connected with the Ethernet. Comparing with a concurrent object-oriented programming language system, we conclude that the reasonable performance is achieved without sacricing the performance of faculties for concurrent object-oriented programming in the AL- 1/D system. There are some reective systems on distributed environments: Apertos [9] and ABCL/R2[6]. The dierence among AL-1/D and these systems is described below. Muse OS is an operating system on which the behavior of components can be changed. The abstraction of meta objects in Muse OS might be the same as the Resource in AL-1/D. Since a programming language on Muse OS is being developed, we can not compare the language with the AL-1/D. ABCL/R2 introduced the concept of groping for adapting the distributed environment. The group seems to represent one host or domain in network. It is similar to Operation and DE in AL-1/D. Since the grouping concept is highly abstracted, the concrete behavior in the distributed environment can not be described, e.g., network trac and delay. Thus, it is dicult to congure dynamically the system by using the concrete behavior unlike AL-1/D. Finally, we mention our future works. improving reication speed It is obvious from results of evaluation that it takes much time to invoke meta objects. The reason is that much information of base-level objects are bound to meta object in the reication time. All information, however, not used in one invocation. We have a plan that the implementation of reication is improved. In the new implementation, information is not bound to meta objects at invocation time but bound to at rst accessing to this information. supporting of \meta language" In the current status, models are statically dened. More exible system needs the facility for dening models by users. In order to dene new models, we are planning to provide a \meta language". without virtual machine We have a plan of the implementation including an operating system or the implementation on an operating system with reective architecture such as Muse OS. References [1] Andrew Black, Norman Hutchinson, Eric Jul, and Henry Levy. Object Structure in the Emerald System. In Proceedings of ACM OOPSLA'86, [2] Yutaka Ishikawa. Reection Facilities and Realistic Programming. Sigplan Notice, 26(8), August [3] Yutaka Ishikawa and Hideaki Okamura. A new Re- ective Architecture: AL-1 Approach. In Proceedings of OOPSLA'91 Workshop on Reection and Metalevel Architectures in Object-Oriented Programming, October [4] Yutaka Ishikawa and Mario Tokoro. Concurrent Programming in Orient84/K: an Object-Oriented Knowledge Representation Language. In Proceedings of ACM OOPSLA'86,

13 [5] Pattie Maes. Concepts and Experiments in Computational Reection. In Proceedings of ACM OOP- SLA'87, pages 147{155, [6] H. Masuhara, S. Matsuoka, T. Watanabe, and A. Yonezawa. Object-Oriented Concurrent Reective Languages can be Implemented Eciently. In Proceedings of ACM OOPSLA'92, October [7] Hideaki Okamura, Yutaka Ishikawa, and Mario Tokoro. Towards building the exible systems on distributed environments. In OOPSLA'91 Workshop on Reection and Metalevel Architectures in Object- Oriented Programming, October [8] Takuo Watanabe and Akinori Yonezawa. Reection in an Object-Oriented Concurrent Language. In Proceedings of ACM OOPSLA'88, pages 306{315, [9] Yasuhiko Yokote. The Apertos Reective Operating System: The Concept and Its Implementation. In Proceedings of ACM OOPSLA'92, pages 414{434, October [10] Yasuhiko Yokote and Mario Tokoro. The Design and Implementation of ConcurrentSmalltalk. In Proceedings of ACM OOPSLA'86, pages 331{340,

User View 1. User View 2. Application Program (Base level) Not Transparent. Language Kernel. Programming. System. location. info.

User View 1. User View 2. Application Program (Base level) Not Transparent. Language Kernel. Programming. System. location. info. Metalevel Decomposition in AL-1/D Hideaki Okamuray okamura@mt.cs.keio.ac.jp Yutaka Ishikawayy ishikawa@trc.rwcp.or.jp Mario Tokoroy 3 mario@mt.cs.keio.ac.jp y Department of Computer Science, Keio University

More information

RbCl: A Reective Object-Oriented Concurrent Language. without a Run-time Kernel. Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa

RbCl: A Reective Object-Oriented Concurrent Language. without a Run-time Kernel. Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa RbCl: A Reective Object-Oriented Concurrent Language without a Run-time Kernel Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa Department of Information Science, The University of Tokyo 3 Abstract We

More information

Toward a New Computing Model. Mario Tokoro 3. Keio University Hiyoshi, Yokohama 223 JAPAN. November 26, Abstract

Toward a New Computing Model. Mario Tokoro 3. Keio University Hiyoshi, Yokohama 223 JAPAN. November 26, Abstract Toward a New Computing Model for an Open Distributed Environment Mario Tokoro 3 Department of Computer Science Keio University 3-14-1 Hiyoshi, Yokohama 223 JAPAN Tel: +81-44-63-1926 Telefax: +81-44-63-3421

More information

[Mullender 85] Sape J. Mullender. PRINCIPLES OF DISTRIBUTED OPERATING. [Swinehart 86] Daniel C. Swinehart, Polle T. Zellweger, Richard J.

[Mullender 85] Sape J. Mullender. PRINCIPLES OF DISTRIBUTED OPERATING. [Swinehart 86] Daniel C. Swinehart, Polle T. Zellweger, Richard J. [Mullender 85] Sape J Mullender PRINCIPLES OF DISTRIBUTED OPERATING SYSTEM DESIGN Technical Report, Vrije Universiteit, 1985 [Ousterhout 87] John Ousterhout, Andrew Cherenson, Fred Douglis, Michael Nelson,

More information

Constructing IPv6 protocol stack on Apertos. Jun-ichiro Itoh 3. Department of Computer Science, Keio University/Sony CSL

Constructing IPv6 protocol stack on Apertos. Jun-ichiro Itoh 3. Department of Computer Science, Keio University/Sony CSL Constructing IPv6 protocol stack on Apertos Jun-ichiro Itoh 3 Department of Computer Science, Keio University/Sony CSL Yasuhiko Yokote Architecture Laboratory, Sony Corporation Mario Tokoro Keio University/Sony

More information

Mario Tokoro 3. Keio University Hiyoshi, Yokohama 223 JAPAN. Abstract

Mario Tokoro 3. Keio University Hiyoshi, Yokohama 223 JAPAN. Abstract Toward a New Computing Model/Methodology for Open Distributed Environment Mario Tokoro 3 Department of Computer Science Keio University 3-14-1 Hiyoshi, Yokohama 223 JAPAN Tel: +81-44-63-1926 Telefax: +81-44-63-3421

More information

1:32 2: : :

1:32 2: : : Naming and Addressing of Objects without Unique Identiers Nobuhisa Fujinami Yasuhiko Yokote Sony Computer Science Laboratory Inc. Takanawa Muse Building 3-14-13 Higashi-gotanda, Shinagawa-ku, Tokyo, 141

More information

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang.

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang. A Yet Another java.lang.class Shigeru Chiba Michiaki Tatsubori Institute of Information Science and Electronics University of Tsukuba 1-1-1 Tennodai, Tsukuba, Ibaraki 305-8573, Japan. Phone: +81-298-53-5349

More information

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t Data Reduction - an Adaptation Technique for Mobile Environments A. Heuer, A. Lubinski Computer Science Dept., University of Rostock, Germany Keywords. Reduction. Mobile Database Systems, Data Abstract.

More information

As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope

As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope HORB: Distributed Execution of Java Programs HIRANO Satoshi Electrotechnical Laboratory and RingServer Project 1-1-4 Umezono Tsukuba, 305 Japan hirano@etl.go.jp http://ring.etl.go.jp/openlab/horb/ Abstract.

More information

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,

More information

Real-Time Scalability of Nested Spin Locks. Hiroaki Takada and Ken Sakamura. Faculty of Science, University of Tokyo

Real-Time Scalability of Nested Spin Locks. Hiroaki Takada and Ken Sakamura. Faculty of Science, University of Tokyo Real-Time Scalability of Nested Spin Locks Hiroaki Takada and Ken Sakamura Department of Information Science, Faculty of Science, University of Tokyo 7-3-1, Hongo, Bunkyo-ku, Tokyo 113, Japan Abstract

More information

Application. Protocol Stack. Kernel. Network. Network I/F

Application. Protocol Stack. Kernel. Network. Network I/F Real-Time Communication in Distributed Environment Real-Time Packet Filter Approach 3 Takuro Kitayama Keio Research Institute at SFC Keio University 5322 Endo Fujisawa Kanagawa, Japan takuro@sfc.keio.ac.jp

More information

Duplication and Partial Evaluation For a Better Understanding of Reflective Languages

Duplication and Partial Evaluation For a Better Understanding of Reflective Languages LISP AND SYMBALIC COMPUTATION, 9, 203 241 (1996) c 1996 Kluwer Academic Publishers, Boston Manufactured in The Netherlands Duplication and Partial Evaluation For a Better Understanding of Reflective Languages

More information

The S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2.

The S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2. The S-Expression Design Language (SEDL) James C. Corbett September 1, 1993 Contents 1 Introduction 1 2 Origins of SEDL 2 3 The Language SEDL 2 3.1 Scopes : : : : : : : : : : : : : : : : : : : : : : : :

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

Computer Science Laboratory Inc. July Worldviews. Technical Report SCSL-TM , Sony Computer Science Laboratory Inc.

Computer Science Laboratory Inc. July Worldviews. Technical Report SCSL-TM , Sony Computer Science Laboratory Inc. of Sony Computer Science Laboratory Inc (in Japanese) [Lieberman 86] Henry Lieberman Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems In Proceedings of Object-Oriented

More information

features of Python 1.5, including the features earlier described in [2]. Section 2.6 summarizes what is new in Python The class and the class

features of Python 1.5, including the features earlier described in [2]. Section 2.6 summarizes what is new in Python The class and the class A note on reection in Python 1.5 Anders Andersen y AAndersen@ACM.Org March 13, 1998 Abstract This is a note on reection in Python 1.5. Both this and earlier versions of Python has an open implementation

More information

A.java class A f void f() f... g g - Java - - class file Compiler > B.class network class file A.class Java Virtual Machine Loa

A.java class A f void f() f... g g - Java - - class file Compiler > B.class network class file A.class Java Virtual Machine Loa A Type System for Object Initialization In the Java TM Bytecode Language Stephen N. Freund John C. Mitchell Department of Computer Science Stanford University Stanford, CA 94305-9045 ffreunds, mitchellg@cs.stanford.edu

More information

T H. Runable. Request. Priority Inversion. Exit. Runable. Request. Reply. For T L. For T. Reply. Exit. Request. Runable. Exit. Runable. Reply.

T H. Runable. Request. Priority Inversion. Exit. Runable. Request. Reply. For T L. For T. Reply. Exit. Request. Runable. Exit. Runable. Reply. Experience with Real-Time Mach for Writing Continuous Media Applications and Servers Tatsuo Nakajima Hiroshi Tezuka Japan Advanced Institute of Science and Technology Abstract This paper describes the

More information

Process and Resource Management

Process and Resource Management runall page 482 PROJECT 2 Process and Resource Management 1 PROJECT OVERVIEW 2 BASIC PROCESS AND RESOURCE MANAGER 3 EXTENDED PROCESS AND RESOURCE MANAGER 4 SUMMARY OF SPECIFIC TASKS 5 IDEAS FOR ADDITIONAL

More information

Assignment 4. Overview. Prof. Stewart Weiss. CSci 335 Software Design and Analysis III Assignment 4

Assignment 4. Overview. Prof. Stewart Weiss. CSci 335 Software Design and Analysis III Assignment 4 Overview This assignment combines several dierent data abstractions and algorithms that we have covered in class, including priority queues, on-line disjoint set operations, hashing, and sorting. The project

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze

More information

Course: Operating Systems Instructor: M Umair. M Umair

Course: Operating Systems Instructor: M Umair. M Umair Course: Operating Systems Instructor: M Umair Process The Process A process is a program in execution. A program is a passive entity, such as a file containing a list of instructions stored on disk (often

More information

with a Meta-Level Architecture Department of Information Science, The University oftokyo In Proceedings of 7th European Conference on Object-Oriented

with a Meta-Level Architecture Department of Information Science, The University oftokyo In Proceedings of 7th European Conference on Object-Oriented Designing an Extensible Distributed Language with a Meta-Level Architecture Shigeru Chiba Takashi Masuda Department of Information Science, The University oftokyo E-mail: fchiba,masudag@is.s.u-tokyo.ac.jp

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management

More information

Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black. Department of Computer Science. University ofwashington. Abstract

Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black. Department of Computer Science. University ofwashington. Abstract Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black Department of Computer Science University ofwashington Seattle, WA 98195 Abstract Emerald is an object-based

More information

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008 Distributed Systems Theory 4. Remote Procedure Call October 17, 2008 Client-server model vs. RPC Client-server: building everything around I/O all communication built in send/receive distributed computing

More information

A practical and modular implementation of extended transaction models

A practical and modular implementation of extended transaction models Oregon Health & Science University OHSU Digital Commons CSETech January 1995 A practical and modular implementation of extended transaction models Roger Barga Calton Pu Follow this and additional works

More information

Satoshi Matsuoka Takuo Watanabe. Akinori Yonezawa. Department of Information Science, The University oftokyo y. Keywords and Phrases: Abstract

Satoshi Matsuoka Takuo Watanabe. Akinori Yonezawa. Department of Information Science, The University oftokyo y. Keywords and Phrases: Abstract 1 Hybrid Group Reective Architecture for Object-Oriented Concurrent Reective Programming 3 Satoshi Matsuoka Takuo Watanabe Akinori Yonezawa Department of Information Science, The University oftokyo y Keywords

More information

ER E P M S S I TRANSLATION OF CONDITIONAL COMPIL DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE REPORT A

ER E P M S S I TRANSLATION OF CONDITIONAL COMPIL DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE REPORT A S I N S UN I ER E P M TA S A S I T VER TRANSLATION OF CONDITIONAL COMPIL DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE REPORT A-1997-13 UNIVERSITY OF TAMPERE DEPARTMENT OF COMPUTER SCIENCE SERIES

More information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer

More information

Process! Process Creation / Termination! Process Transitions in" the Two-State Process Model! A Two-State Process Model!

Process! Process Creation / Termination! Process Transitions in the Two-State Process Model! A Two-State Process Model! Process! Process Creation / Termination!!! A process (sometimes called a task, or a job) is a program in execution"!! Process is not the same as program "!! We distinguish between a passive program stored

More information

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract Transparent Access to Legacy Data in Java Olivier Gruber IBM Almaden Research Center San Jose, CA 95120 Abstract We propose in this paper an extension to PJava in order to provide a transparent access

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions) By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable

More information

StackVsHeap SPL/2010 SPL/20

StackVsHeap SPL/2010 SPL/20 StackVsHeap Objectives Memory management central shared resource in multiprocessing RTE memory models that are used in Java and C++ services for Java/C++ programmer from RTE (JVM / OS). Perspectives of

More information

Generating Continuation Passing Style Code for the Co-op Language

Generating Continuation Passing Style Code for the Co-op Language Generating Continuation Passing Style Code for the Co-op Language Mark Laarakkers University of Twente Faculty: Computer Science Chair: Software engineering Graduation committee: dr.ing. C.M. Bockisch

More information

3.1 Introduction. Computers perform operations concurrently

3.1 Introduction. Computers perform operations concurrently PROCESS CONCEPTS 1 3.1 Introduction Computers perform operations concurrently For example, compiling a program, sending a file to a printer, rendering a Web page, playing music and receiving e-mail Processes

More information

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1 CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines

More information

2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is

2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is Extendable, Dispatchable Task Communication Mechanisms Stephen Michell Maurya Software 29 Maurya Court Ottawa Ontario, Canada K1G 5S3 steve@maurya.on.ca Kristina Lundqvist Dept. of Computer Systems Uppsala

More information

To appear in: IEEE Transactions on Knowledge and Data Engineering. The Starburst Active Database Rule System. Jennifer Widom. Stanford University

To appear in: IEEE Transactions on Knowledge and Data Engineering. The Starburst Active Database Rule System. Jennifer Widom. Stanford University To appear in: IEEE Transactions on Knowledge and Data Engineering The Starburst Active Database Rule System Jennifer Widom Department of Computer Science Stanford University Stanford, CA 94305-2140 widom@cs.stanford.edu

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO

More information

Kevin Skadron. 18 April Abstract. higher rate of failure requires eective fault-tolerance. Asynchronous consistent checkpointing oers a

Kevin Skadron. 18 April Abstract. higher rate of failure requires eective fault-tolerance. Asynchronous consistent checkpointing oers a Asynchronous Checkpointing for PVM Requires Message-Logging Kevin Skadron 18 April 1994 Abstract Distributed computing using networked workstations oers cost-ecient parallel computing, but the higher rate

More information

CS558 Programming Languages Winter 2013 Lecture 8

CS558 Programming Languages Winter 2013 Lecture 8 OBJECT-ORIENTED PROGRAMMING CS558 Programming Languages Winter 2013 Lecture 8 Object-oriented programs are structured in terms of objects: collections of variables ( fields ) and functions ( methods ).

More information

2 c LNCS To appear in PLILP'98 all le modication times in order to incrementally rebuild a system would clearly be lengthy, tedious and error-prone. S

2 c LNCS To appear in PLILP'98 all le modication times in order to incrementally rebuild a system would clearly be lengthy, tedious and error-prone. S Architecturing Software Using A Methodology for Language Development Charles Consel and Renaud Marlet IRISA / INRIA - University of Rennes 1 Campus universitaire de Beaulieu, 35042 Rennes Cedex, France

More information

Process. Program Vs. process. During execution, the process may be in one of the following states

Process. Program Vs. process. During execution, the process may be in one of the following states What is a process? What is process scheduling? What are the common operations on processes? How to conduct process-level communication? How to conduct client-server communication? Process is a program

More information

Performance Throughput Utilization of system resources

Performance Throughput Utilization of system resources Concurrency 1. Why concurrent programming?... 2 2. Evolution... 2 3. Definitions... 3 4. Concurrent languages... 5 5. Problems with concurrency... 6 6. Process Interactions... 7 7. Low-level Concurrency

More information

Remote Procedure Call

Remote Procedure Call Remote Procedure Call Remote Procedure Call Integrate network communication with programming language Procedure call is well understood implementation use Control transfer Data transfer Goals Easy make

More information

Reducing the Latency of a Real-time Garbage Collector. in the Appel-Ellis-Li real-time garbage collector be proportional only to the

Reducing the Latency of a Real-time Garbage Collector. in the Appel-Ellis-Li real-time garbage collector be proportional only to the Reducing the Latency of a Real-time Garbage Collector Ralph E. Johnson Abstract This paper shows how to make the latency of scanning a page in the Appel-Ellis-Li real-time garbage collector be proportional

More information

CS370 Operating Systems Midterm Review

CS370 Operating Systems Midterm Review CS370 Operating Systems Midterm Review Yashwant K Malaiya Fall 2015 Slides based on Text by Silberschatz, Galvin, Gagne 1 1 What is an Operating System? An OS is a program that acts an intermediary between

More information

such internal data dependencies can be formally specied. A possible approach to specify

such internal data dependencies can be formally specied. A possible approach to specify Chapter 6 Specication and generation of valid data unit instantiations In this chapter, we discuss the problem of generating valid data unit instantiations. As valid data unit instantiations must adhere

More information

Concurrency Annotations in C++ DI / INESC. Universidade do Minho Braga, Portugal. February 4, 1994.

Concurrency Annotations in C++ DI / INESC. Universidade do Minho Braga, Portugal. February 4, 1994. Concurrency Annotations in C++ Carlos Baquero Francisco Moura y DI / INESC Universidade do Minho 4700 Braga, Portugal fmescbm,fsmg@di.uminho.pt February 4, 1994 Abstract This paper describes CA/C++, Concurrency

More information

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations.

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations. A Framework for Embedded Real-time System Design? Jin-Young Choi 1, Hee-Hwan Kwak 2, and Insup Lee 2 1 Department of Computer Science and Engineering, Korea Univerity choi@formal.korea.ac.kr 2 Department

More information

Knowledge- Based System CORBA ORB

Knowledge- Based System CORBA ORB The Role of Network Trac Statistics in Devising Object Migration Policies Ivan Marsic and Kanth S.L. Jonnalagadda CAIP Center, Rutgers University Piscataway, NJ 08855{1390 fmarsic,kanthg@caip.rutgers.edu

More information

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017 CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Outline o Process concept o Process creation o Process states and scheduling o Preemption and context switch o Inter-process communication

More information

director executor user program user program signal, breakpoint function call communication channel client library directing server

director executor user program user program signal, breakpoint function call communication channel client library directing server (appeared in Computing Systems, Vol. 8, 2, pp.107-134, MIT Press, Spring 1995.) The Dynascope Directing Server: Design and Implementation 1 Rok Sosic School of Computing and Information Technology Grith

More information

INTRODUCTION Introduction This document describes the MPC++ programming language Version. with comments on the design. MPC++ introduces a computationa

INTRODUCTION Introduction This document describes the MPC++ programming language Version. with comments on the design. MPC++ introduces a computationa TR-944 The MPC++ Programming Language V. Specication with Commentary Document Version. Yutaka Ishikawa 3 ishikawa@rwcp.or.jp Received 9 June 994 Tsukuba Research Center, Real World Computing Partnership

More information

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such A Formal Executable Semantics for Java Isabelle Attali, Denis Caromel, Marjorie Russo INRIA Sophia Antipolis, CNRS - I3S - Univ. Nice Sophia Antipolis, BP 93, 06902 Sophia Antipolis Cedex - France tel:

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 2 Thomas Wies New York University Review Last week Programming Languages Overview Syntax and Semantics Grammars and Regular Expressions High-level

More information

Java s Implementation of Concurrency, and how to use it in our applications.

Java s Implementation of Concurrency, and how to use it in our applications. Java s Implementation of Concurrency, and how to use it in our applications. 1 An application running on a single CPU often appears to perform many tasks at the same time. For example, a streaming audio/video

More information

Mobile Computing An Browser. Grace Hai Yan Lo and Thomas Kunz fhylo, October, Abstract

Mobile Computing An  Browser. Grace Hai Yan Lo and Thomas Kunz fhylo, October, Abstract A Case Study of Dynamic Application Partitioning in Mobile Computing An E-mail Browser Grace Hai Yan Lo and Thomas Kunz fhylo, tkunzg@uwaterloo.ca University ofwaterloo, ON, Canada October, 1996 Abstract

More information

Verteilte Systeme (Distributed Systems)

Verteilte Systeme (Distributed Systems) Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Lecture 3: Communication (Part 2) Remote Procedure

More information

How Developers Use the Dynamic Features of Programming Languages: The Case of Smalltalk

How Developers Use the Dynamic Features of Programming Languages: The Case of Smalltalk How Developers Use the Dynamic Features of Programming Languages: The Case of Smalltalk Oscar Callaú, Romain Robbes, Éric Tanter (University of Chile) David Röthlisberger (University of Bern) Proceedings

More information

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1 Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies

More information

Annex A (Informative) Collected syntax The nonterminal symbols pointer-type, program, signed-number, simple-type, special-symbol, and structured-type

Annex A (Informative) Collected syntax The nonterminal symbols pointer-type, program, signed-number, simple-type, special-symbol, and structured-type Pascal ISO 7185:1990 This online copy of the unextended Pascal standard is provided only as an aid to standardization. In the case of dierences between this online version and the printed version, the

More information

Run-Time Environments/Garbage Collection

Run-Time Environments/Garbage Collection Run-Time Environments/Garbage Collection Department of Computer Science, Faculty of ICT January 5, 2014 Introduction Compilers need to be aware of the run-time environment in which their compiled programs

More information

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995 ICC++ Language Denition Andrew A. Chien and Uday S. Reddy 1 May 25, 1995 Preface ICC++ is a new dialect of C++ designed to support the writing of both sequential and parallel programs. Because of the signicant

More information

Makuhari, Chiba 273, Japan Kista , Sweden. Penny system [2] can then exploit the parallelism implicitly

Makuhari, Chiba 273, Japan Kista , Sweden. Penny system [2] can then exploit the parallelism implicitly Dynamic Scheduling in an Implicit Parallel System Haruyasu Ueda Johan Montelius Institute of Social Information Science Fujitsu Laboratories Ltd. Swedish Institute of Computer Science Makuhari, Chiba 273,

More information

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers)

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers) Comp 104:Operating Systems Concepts Revision Lectures (separate questions and answers) Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects

More information

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads Operating Systems 2 nd semester 2016/2017 Chapter 4: Threads Mohamed B. Abubaker Palestine Technical College Deir El-Balah Note: Adapted from the resources of textbox Operating System Concepts, 9 th edition

More information

Quiz on Tuesday April 13. CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4. Java facts and questions. Things to try in Java

Quiz on Tuesday April 13. CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4. Java facts and questions. Things to try in Java CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4 Bruce Char and Vera Zaychik. All rights reserved by the author. Permission is given to students enrolled in CS361 Fall 2004 to reproduce

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

A simple correctness proof of the MCS contention-free lock. Theodore Johnson. Krishna Harathi. University of Florida. Abstract

A simple correctness proof of the MCS contention-free lock. Theodore Johnson. Krishna Harathi. University of Florida. Abstract A simple correctness proof of the MCS contention-free lock Theodore Johnson Krishna Harathi Computer and Information Sciences Department University of Florida Abstract Mellor-Crummey and Scott present

More information

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey CSC400 - Operating Systems 3. Process Concepts J. Sumey Overview Concurrency Processes & Process States Process Accounting Interrupts & Interrupt Processing Interprocess Communication CSC400 - Process

More information

Threads SPL/2010 SPL/20 1

Threads SPL/2010 SPL/20 1 Threads 1 Today Processes and Scheduling Threads Abstract Object Models Computation Models Java Support for Threads 2 Process vs. Program processes as the basic unit of execution managed by OS OS as any

More information

SMD149 - Operating Systems

SMD149 - Operating Systems SMD149 - Operating Systems Roland Parviainen November 3, 2005 1 / 45 Outline Overview 2 / 45 Process (tasks) are necessary for concurrency Instance of a program in execution Next invocation of the program

More information

Computer Science Research, NEC Research Institute, 4 Independence Way, Princeton, NJ

Computer Science Research, NEC Research Institute, 4 Independence Way, Princeton, NJ A Reective Model of Inheritance Suresh Jagannathan 1 and Gul Agha 2 1 Computer Science Research, NEC Research Institute, 4 Independence Way, Princeton, NJ 08540, suresh@research.nj.nec.com 2 Dept. of Computer

More information

Comp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers)

Comp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers) Comp 204: Computer Systems and Their Implementation Lecture 25a: Revision Lectures (separate questions and answers) 1 Today Here are a sample of questions that could appear in the exam Please LET ME KNOW

More information

fczimmerm, people/fczimmerm/czimmerm.html, vjcahill/vjcahill.htmlg dierent active object models.

fczimmerm,  people/fczimmerm/czimmerm.html, vjcahill/vjcahill.htmlg dierent active object models. Roo: A Framework for Real-Time Threads Chris Zimmermann Vinny Cahill Distributed Systems Group, Department of Computer Science, Trinity College, Dublin 2, Ireland fczimmerm, vjcahillg@dsgcstcdie http://wwwdsgcstcdie/dsg

More information

A Meta-Model for Composition Techniques in Object-Oriented Software Development

A Meta-Model for Composition Techniques in Object-Oriented Software Development A Meta-Model for Composition Techniques in Object-Oriented Software Development Bedir Tekinerdogan Department of Computer Science University of Twente P.O. Box 217, 7500 AE Enschede, The Netherlands E-Mail:

More information

Smalltalk Implementation

Smalltalk Implementation Smalltalk Implementation Prof. Harry Porter Portland State University 1 The Image The object heap The Virtual Machine The underlying system (e.g., Mac OS X) The ST language interpreter The object-memory

More information

CS 6353 Compiler Construction Project Assignments

CS 6353 Compiler Construction Project Assignments CS 6353 Compiler Construction Project Assignments In this project, you need to implement a compiler for a language defined in this handout. The programming language you need to use is C or C++ (and the

More information

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs.

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs. and easily tailor it for use within the multicast system. After expressing an initial application design in terms of MIL specications, the application code and speci- cations may be compiled and executed.

More information

tee is to design a new TCP/IP API which matches the requirements of embedded systems. RTOS Automotive Application Technical Committee With current pra

tee is to design a new TCP/IP API which matches the requirements of embedded systems. RTOS Automotive Application Technical Committee With current pra Recent Results the ITRON Subproject Hiroaki Takada Kiichiro Tamaru Dept. of Information and Computer Sciences System ULSI Engineering Lab. Toyohashi Univ. of Technology TOSHIBA Corporation 1{1 Hibarigaoka,

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages

More information

Chapter 4 Communication

Chapter 4 Communication DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI

More information

Distributed Systems. The main method of distributed object communication is with remote method invocation

Distributed Systems. The main method of distributed object communication is with remote method invocation Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,

More information

under Timing Constraints David Filo David Ku Claudionor N. Coelho, Jr. Giovanni De Micheli

under Timing Constraints David Filo David Ku Claudionor N. Coelho, Jr. Giovanni De Micheli Interface Optimization for Concurrent Systems under Timing Constraints David Filo David Ku Claudionor N. Coelho, Jr. Giovanni De Micheli Abstract The scope of most high-level synthesis eorts to date has

More information

Inter-Project Dependencies in Java Software Ecosystems

Inter-Project Dependencies in Java Software Ecosystems Inter-Project Dependencies Inter-Project Dependencies in Java Software Ecosystems in Java Software Ecosystems Antonín Procházka 1, Mircea Lungu 2, Karel Richta 3 Antonín Procházka 1, Mircea Lungu 2, Karel

More information

Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science

Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science Stackable Layers: An Object-Oriented Approach to Distributed File System Architecture Thomas W. Page Jr., Gerald J. Popek y, Richard G. Guy Department of Computer Science University of California Los Angeles

More information

Chapter 4: Threads. Chapter 4: Threads

Chapter 4: Threads. Chapter 4: Threads Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples

More information

Compilation Strategies as Objects

Compilation Strategies as Objects Compilation Strategies as Objects Anurag Mendhekar, Gregor J. Kiczales and John Lamping Published in Proceedings of the 1994 OOPSLA Workshop on Object-Oriented Compilation -- What are the Objects? 1994.

More information

Chapter 3: Process Concept

Chapter 3: Process Concept Chapter 3: Process Concept Chapter 3: Process Concept Process Concept Process Scheduling Operations on Processes Inter-Process Communication (IPC) Communication in Client-Server Systems Objectives 3.2

More information

Chapter 3: Process Concept

Chapter 3: Process Concept Chapter 3: Process Concept Chapter 3: Process Concept Process Concept Process Scheduling Operations on Processes Inter-Process Communication (IPC) Communication in Client-Server Systems Objectives 3.2

More information

Department of Computer Science and Engineering, University of Washington, Seattle, WA Andrew P.

Department of Computer Science and Engineering, University of Washington, Seattle, WA Andrew P. Emerald: A General-Purpose Programming Language Rajendra K. Raj, Ewan Tempero, Henry M. Levy Department of Computer Science and Engineering, University of Washington, Seattle, WA 98195 [rkr,ewan,levy]@cs.washington.edu

More information

Institut fur Informatik, Universitat Klagenfurt. Institut fur Informatik, Universitat Linz. Institut fur Witschaftsinformatik, Universitat Linz

Institut fur Informatik, Universitat Klagenfurt. Institut fur Informatik, Universitat Linz. Institut fur Witschaftsinformatik, Universitat Linz Coupling and Cohesion in Object-Oriented Systems Johann Eder (1) Gerti Kappel (2) Michael Schre (3) (1) Institut fur Informatik, Universitat Klagenfurt Universitatsstr. 65, A-9020 Klagenfurt, Austria,

More information