In this program we would like to design a simple resource management system. Sup
ID: 3838965 • Letter: I
Question
In this program we would like to design a simple resource management system. Suppose we have a reference book for CSCI3100 course, we would like to lend it to students. (Students are identified by their unique student ID.) Since we have only one book, we can lend it to at most one student at the same time. There is a waiting list of N users. If there are more than N requests, we would accept the first N requests only and reject the remaining. The students who have been rejected could apply for borrowing the book again later on. The waiting list is in a first in first out order, which means the user who required the book earlier should get the book earlier. To make it fair, a student can borrow the book only one time. If a student has already borrowed the book, he/she cannot request it again (the procedure would reject this kind of request). Moreover, a student can keep the book for at most two days. That is, He/She should return the book within two days, otherwise, the management system would recall the book. (You can assume the recall is always successful Once the book is returned, it would be given to the first student in the waiting list. (1) Using TDN, describe design of the resource management system. Concentrate your design in the module interface. The implementation section could be made short by using comments. (2) Now use stepwise refinement to describe the implementation of the procedure for ordering the book. The waiting list is a static array of length N. You can do this for just two iterations. First provide a high level (but non-trivial) design of the implementation of the spelling checker, and then refine the design in more detail. If the module needs to use other modules, identify them clearly.Explanation / Answer
(1) The Therapeutics Development Network (TDN) Consulting Group includes physician investigators and scientists from the CF Therapeutics Development Centers and TDN National Resource Centers, as well as TDN Coordinating Center (TDNCC) faculty and staff.
What we mean by a resource manager is a system capable of performing two fundamental tasks: resource mapping and arbitration. By resource mapping (a.k.a. match-making) we mean the process of finding out what actual resources can be taken into consideration given a specific request. By arbitration we mean a process of making sure that, at a minimum, resources are not being used beyond their capacities. At best, arbitration ensures– via appropriate allocation of resources to requests–optimal, or nearly optimal, use of scarce resources.This paper is concerned with management of higher-level resources. While OS level management (memory, CPU time, etc.) is of course important, and load-balancing of computationally intensive agents over multiple machines is also, we limit our focus to higher-level resources such as physical devices and large software components (for an example of a system that deals with resources in a smart spaces at the OS level). Our concerns lie with, for example, projectors, multiplexors, wires, displays, modems, user attention, software programs, screen real estate, sound input and output devices, CD players, drapes, and lamps.
If we assume that on-demand agent startup is supported by the underlying software architecture, then it stands to reason that the resource manager for such a system has to be able to reason about absent agents. To the best of our knowledge, it is uncommon in agent architectures, even those in charge of smart spaces, to have non-alive agents be taken into account during any coordination efforts. It is our belief that taking potentially available agents into account allows a resource management system to make intelligent decisions about resource allocation. An important consequence of embracing on-demand agent startup is that we cannot rely on agents themselves to provide descriptions of their needs and ser- vices as they might not be running. The resource manager has to have access to such descriptions without having to instantiate any of the agents. Rascal requires agent programmers to create separate description files but other solutions could easily be created (e.g. descriptions could be cached by the resource manager). The assumption that the system, and in particular the resource manager, has a way of starting agents on a specific computer or virtual machine. Metaglue provides such capability as one of its two main primitives. It is unclear to us at the moment to what extent other systems support it.
One important feature that distinguishes multi agent systems in charge of smart spaces from other multi agent systems is that they reside on the frontier between the physical and computational worlds. To function well, those systems have to not only accept but also embrace the physical world around them . As a consequence of this, it becomes necessary for the system to explicitly describe not only the services provided by its agents but also those provided by physical hardware and non-agent software present on available computers. A common approach to this problem is to add agents to represent all needed physical and computational capabilities of the host environment. Hive, for exam- ple, uses “shadows” to represent physical devices accessible on or from particular computers. Metaglue has agents that represent individual devices. But how do we know where to start those shadows or agents? An unsatisfactory way is when startup has to be done by a human or by a script leaving the system with no way of reasoning about it or taking action on its own. In case of Metaglue, the device-controlling agents upon startup retrieve the name of a computer they should tie themselves to. In our view, the agents that directly interact with hardware or other software should be able to start dynamically and dynamically find the computers with all necessary equipment and software.
In particular requesters should be given ownership of resources over periods of time. Agents need to own their resources as they are often engaged in long-term jobs that can be changed or modified. We discuss all of this by comparing what we mean by resource management with task management performed by the faciliator agent in the Open Agent Architecture (OAA). Open Agent Architecture (OAA) is a good example of an agent system that could control a smart space and that also has a complex inter-agent facilitation scheme. What needs stressing, however, is that the OAA “facilitator agent” actually performs task management and not resource management. That is, the facilitator agent will break down a task into simpler sub tasks and allocate those to individual agents who can fulfill them best. It will not, however, ensure that all of the resources needed for the tasks are available and not in use by other agents. Hence OAA is well suited for a task like sending the current Boston weather report to all of requester’s friends. The task will be broken into components, appropriate information obtained and message sent. OAA is not well suited for tasks that cannot be thought of as point-like in time. Implicit in the OAA model is the assumption that agents can never conflict over the use of scarce resources.Task management is, of course, very important but in a system that controls a physical space with a large number of scarce resources task management should work hand in hand with a resource manager. It is more natural to think of many agents as having a life cycle, and going independently about their own long-term jobs. For example, an agent listening to and recording conversations in the room in order to be able to bring back audio snippets via keyword searching, needs resources over an extended period of time to complete its job. Showing a movie can be thought of as a task but it can be interrupted, modified, or abandoned in the middle. It can also prevent other agents from using a display for their jobs. In that sense, showing a movie is different from the OAA view of a task.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.