Background Analysis and Design of ABOS, an Agent-Based Operating System
Total Page:16
File Type:pdf, Size:1020Kb
Background Analysis and Design of ABOS, an Agent-Based Operating System Author: Mikael Svahnberg, [email protected] A Software Engineering Master’s Thesis at the University of Karlskrona/Ronneby, 1998. Abstract Modern operating systems should be extensible and flexible. This means that the operating system should be able to accept new behaviour and change existing behaviour without too much trouble and that it should ideally also be able to do this without any, or very little, downtime. Furthermore, during the past years the importance of the network has increased drastically, creating a demand for operating systems to function in a distributed environment. To achieve this flexibility and distribut- edness, I have designed and evaluated ABOS, an Agent-Based Operating System. ABOS uses agents to solve all the tasks of the operating system kernel, thus moving away from traditional monolithic kernel structures. Early results show that I have gained in flexibility and modularity, cre- ating a fault-tolerant distributed operating system that can adapt and be adapted to almost any situa- tion with negligible decrease in performance. Within ABOS some tasks has been designed further, and there exists a demonstration of how the agent-based filesystem might work. Keywords: Operating systems, Practical application of multi-agent systems Author Mikael Svahnberg, [email protected] Advisors Håkan Grahn, [email protected] Paul Davidsson, [email protected] A Software Engineering Master’s Thesis at the University of Karlskrona/Ronneby, 1998. Table of Contents 1 Introduction 1.1 Overview.............................................................................. 3 1.2 Current Praxis...................................................................... 4 UNIX.................................................................................. 4 Windows NT...................................................................... 4 Amoeba............................................................................. 5 Mach ................................................................................. 6 CORBA ............................................................................. 6 1.3 Ongoing Research............................................................... 7 Spring................................................................................ 7 Aegis ................................................................................. 8 1.4 Summary ............................................................................. 8 2 Agents 2.1 Introduction........................................................................ 10 2.2 Agent characteristics ......................................................... 11 2.3 Multiagent systems............................................................ 13 2.4 Agent enablers................................................................... 14 KQML .............................................................................. 14 April ................................................................................. 15 2.5 Operating system agents................................................... 15 TACOMA......................................................................... 16 MOTIS and X.400 ........................................................... 16 UNIX Daemons ............................................................... 17 2.6 Motivation to use agents.................................................... 18 3 Operating System Tasks 3.1 Introduction........................................................................ 19 3.2 Process Management........................................................ 19 3.3 Memory Management........................................................ 20 3.4 I/O Management................................................................ 21 3.5 File system Management................................................... 22 3.6 Communication support..................................................... 22 3.7 Synchronization ................................................................. 23 3.8 Security.............................................................................. 24 3.9 Summary ........................................................................... 25 1 4 Top-Level design of ABOS 4.1 Introduction........................................................................ 26 4.2 General layout.................................................................... 26 4.3 Core................................................................................... 27 4.4 Kernel ................................................................................ 28 Division between kernel and core ................................... 29 4.5 Services............................................................................. 29 4.6 User Applications............................................................... 30 4.7 Summary ........................................................................... 30 Assignment of functionality ............................................. 31 Service layer ................................................................... 32 The chicken and the egg problem................................... 32 4.8 Achieved goals................................................................... 33 5 Examples 5.1 Introduction........................................................................ 34 5.2 Agent File system .............................................................. 35 Active Documents ........................................................... 35 5.3 Resource Allocation........................................................... 37 5.4 Synchronization ................................................................. 39 5.5 Summary ........................................................................... 41 6 Evaluation 6.1 Introduction........................................................................ 43 6.2 Process management........................................................ 43 6.3 Memory Management........................................................ 44 6.4 I/O Management................................................................ 45 6.5 File system Management................................................... 46 6.6 Communication support..................................................... 48 6.7 Synchronization ................................................................. 49 6.8 Security.............................................................................. 49 6.9 Performance ...................................................................... 50 6.10 Other................................................................................ 51 6.11 Summary ......................................................................... 52 7 Conclusions 7.1 Summary ........................................................................... 54 7.2 Conclusions ....................................................................... 54 7.3 Future work........................................................................ 55 2 1. Introduction This chapter will give an overview and background for the thesis, as well as presenting a survey on what the current status is in the common operating systems. Futhermore the trends regarding oper- ating systems in the research community will be investigated. 1.1 Overview Requirements on modern operating systems are that they should be extensible and flexible [6]. This means that the operating system should be able to accept new behav- iour and change existing behaviour without too much trouble. In truly distributed envi- ronments they should ideally also be able to do this without any, or very little, downtime. This is due to the trouble of for example migrating processes running on the machine in question. During the past years the importance of the network has increased drastically. Thus, operating systems also need to be more or less distributed. As always, performance is also an issue. The traditional way to solve performance problems is to embed everything into one single, monolithic kernel, while still using a microkernel design and object-oriented programming to achieve flexibility. This enables modules to communicate via shared memory and simple procedure calls, instead of using the overhead of inter process communication (IPC). Obviously, this embedding is in conflict with the requirement of flexibility. When every new function has to be imported or implemented in the kernel space, one cannot easily add new ser- vices on-the-fly. Indeed, it is also the exact opposite of what one wishes to achieve by using a microkernel design. The cause of this embedding is, as stated, the overhead of using IPC calls. However, recent studies [1] have shown that the overhead for IPC calls has decreased enough to make this a practical approach. The benefits one can gain by using IPC to communicate within the kernel are substan- tial. Modules can be exchanged during run-time and new ones can be added without having to reboot or recompile, which sometimes is the case. New strategies and resources can be changed and added as easy as they should be. By using IPC, one can also easily and transparently run some of the services on another machine, thus creat- ing a truly distributed system. A concept that is beginning to see the light and that can address the questions above is agents. Agents are small software components with certain qualities, described later