3. The Operating System Analogy

In many ways the integrated environment that SHELLEY requires is analogous to a modern operating system. An operating system serves as an interface between the user-level software on a computer and the computer's hardware [3]. It has two primary tasks: provide convenience for the programs running on the computer and do so efficiently. The modern operating system can also be considered a control program that manages system resources (memory and processing time, as well as system Input/Output devices) by resolving conflicting resource requests and guaranteeing effective use of these limited resources. The operating system also controls application processes and ensures that the system is properly used by these processes [3].

One model of operating system is the one program running at all times on the computer - generally called the kernel. Following this, all other processes are applications that provide some functionality, either for the kernel, or for the user. It is the kernel that processes all system calls, handles all sharing of central processing unit (CPU) time and random access memory (RAM) between competing processes, and performs the handling of peripherals. To access peripherals, processes must do so through the kernel (see Figure 1) [4]. Another crucial part of an operating system is the capacity for multiprocess scheduling and management - a significant aspect of the modern operating system, and one that is crucial for our use of the model as an environment for artificial intelligence.


Figure 1: Process/Peripheral Communication via the Kernel [4]

Given this formal model of an operating system, it can be used as a point of departure to construct our own model of an integrated environment for artificial intelligence. There are several differences, though, which merit attention before proceeding. The first of these differences is that when addressing the potential paradox of convenience and efficiency, operating system design has historically favored efficiency over convenience when the two have contradicted each other. In our model, however, though we emphasize both, convenience receives precedence when conflicts require resolution. As stated earlier, the primary goal of this work is to make more convenient the work of future users of this environment.

The second major difference is actually an issue of implementation that will be addressed later. For now, let it suffice to say that we employ a client-server model to facilitate communication, rather than use a method similar to that of system calls to the kernel. In a client-server model, we have two classifications of programs: clients, which make requests, and servers, which service the clients [5]. The client-server model may not be quite as efficient, but it certainly increases the convenience of our model. Thus, we see the influence of our favoritism for convenience over efficiency. The client-server model allows for network-ability, easier implementation, and allows this integrated environment to be built on top of, not replace, the existing operating system.



Next     Previous Contents