• No se han encontrado resultados

New Architectural Models for Visibly Controllable Computing: The Relevance of Dynamic Object Oriented Architectures and Plan Based Computing Models

N/A
N/A
Protected

Academic year: 2023

Share "New Architectural Models for Visibly Controllable Computing: The Relevance of Dynamic Object Oriented Architectures and Plan Based Computing Models"

Copied!
53
0
0

Texto completo

This report describes research conducted at the MIT CSAIL (formerly the Artificial Intelligence Laboratory) of the Massachusetts Institute of Technology. From a network perspective, there is only one other node running similar protocols. By range we mean that it is always possible to tell the limits of an object in memory.

The Lisp engine builds support for this object abstraction into the hardware (for example, there are type tags and scope markers on each memory word, see Section 8), into the programming language (Lisp is the oldest programming language built around such an object abstraction), and into the runtime -environment (eg, the memory system is a garbage-collected one-level store that hosts all applications as well as the "kernel").

Figure 1: Comparison of Object Abstraction and Conventional Model
Figure 1: Comparison of Object Abstraction and Conventional Model

Polymorphism and Type Hierarchies

Here it is known that X and Y are single precision integers (ie fixnums), but it is still not known whether the result of adding the two will exceed the limited precision of the machine. Accepting this dynamic semantics as a basis and then optimizing where it is provably permissible to do so leads to a much clearer, simpler semantics and much safer execution model. Newly created objects are required to have content that respects all the storage conventions required by the object abstraction.

Object initialization can be quite a complex process (and indeed the object system described in Section 3.3 has such a complex initialization process); therefore, it is necessary that the allocated storage be initialized with a special value, an object reference that does not participate in any legal operations.

Figure 2: Type Hierarchy
Figure 2: Type Hierarchy

Garbage Collection

Copy space: Contains copies of those objects in the old space that are still accessible. The Scavenge Pointer: Marks the first object in Copy space that has not yet been scanned for pointers to Old Space (“scavenge”). Objects between the start of Copy Space and the Scavenge Pointer contain no references to Old Space.

AGC forward pointer is placed at the location of the original object in Old Space; it points to the new copy of the object in Copy Space.

The Class System

Max, (Min): Executes all the corresponding methods, returning the Max (Min) of the values ​​returned by each. If the type specifier is included, it is the class name, indicating that this method is relevant only if that argument is an instance of the specified class. When calling a generic function, the first step is to identify the applicable methods; a method is executable if all operands satisfy the type specifier in the method for that argument position.

The combined method consists of all the before, after, and around methods and the most specific primary method (primary methods are those that have no qualifier). The order of the methods in the combined methods given above is the default, but other orders can be specified in the defgeneric form2. These classes are typically referred to as Meta classes because they describe the behavior of the class system itself.

This is true regardless of which basic programming approach one takes, and so it is also true of the object-oriented approach to programming. Commands are a class of objects that represent application behavior that are in fact an extension of the concept of a function. The translator has a body, a procedure, which is passed the input object and produces an output of the required type.

These functions are intended to support type integrity and to provide hardware support for the memory conventions of the object abstraction. All the features we will describe in the rest of this section are included in this design. Each zone is further divided into two halves; the corresponding bit in the ephemeral zone register indicates which half of the zone is old space.

So bits 26-25 of the data being written select which bit of the TLB is turned on.

Hardware Tagging

In detail, bits 31-27 = 0 means that the address is in ephemeral space; bits 26-25 of an address indicate the transient group; bits 26-22 indicate the ephemeral zone. When the TLB entry in the Page Hash table is trashed in memory, these bits are copied out. So each page in the Page Hash table has a pointer set if it refers to a group of Ephemeral space.

To trigger an ephemeral GC, the PHT is scanned to find pages that might contain references to the appropriate region of ephemeral space. Each such page is then scanned to find a possible reference; the given data forms the roots of the Ephemeral GC.

Encoding Extent

Other data structures begin with a header word, and this header includes the size of the structure. The next word starts a new structure; thecdr of this word is an implicit reference to the NIL object, the empty List, which by convention is the end of all lists. A non-compact list consists of a compact list, up to the last two words, the first of which has cdr-normal and the second has cdr-NIL.

As mentioned, all non-list data structures have a header as their first word, and this word encodes the size of the object. The memory system calculates the effective address of the data and checks that the reference is within limits. The check is performed in parallel with the memory operation, but the hardware catches out-of-bounds references before any side effects occur.

Thus, the limit check for writes is performed during the read portion of the operation. To do this, the effective address is calculated on the first cycle; in the second cycle, the memory read is issued and the limit check is performed. If the cycle was a memory write, the trap aborts the instruction before the write data is ever issued.] This scheme was used to avoid the need for a second alu to perform the boundary check while performing the effective address calculation (due to the limited chip area); in current chip technology there would simply be two parallel alus and the memory operation would not be issued if it was illegal.

The scheme used does not actually slow down the memory pipeline since the bounds check is performed during the time taken up by the memory latency. Block moves (see Section 8.5) perform bounds checking in the first step, allowing the memory pipeline to be kept full, while maintaining safety.

Type Checking

Other Hardware Support

Summary

Machine, facilitates the embedding of the key aspects of the object abstraction in the hardware. Objects form the core of the computer model, of the human-computer interface, and of persistent storage. We will use something similar to the planar representation of PA in this discussion.

A critical part of the discipline of using plan-based structures is preserving the intended spirit. There are also initial condition links that end at the conditions of a substep of the plan and originate at a set of conditions of the limiting plan. The set of goal links explains that logic of the plan: as long as the plan's conditions hold, we can show that the conditions of the initial substeps will hold.

Ultimately, the post-conditions of the final plan steps justify the post-conditions of the overall plan. These links can be thought of as the trace of a deductive planner who derived the plan, given a description of the initial and goal state. RMPL variables represent a high-level, abstract view of the state of the underlying system that controls the program.

The second part of the program is a deductive controller, along with a model of the device being controlled. In this case, the higher level structure of the program is expressed in a plan language.

Use of Machine Learning

The decision-theoretic approach generalizes easily to situations in which components of the system may fail, whether due to natural causes, errors, or intentional attack. The expected value is the value of the quality service that would be delivered if everything worked multiplied by the probability that everything would work. In addition, we add the cost of failure (i.e. a method that fails can cause damage in addition to not doing what we wanted it to do) multiplied by the probability of failure.

This modification of the belief model makes some methods less desirable than before and others more so; therefore, the system adapts to changing reliability, moving away from methods that use questionable sources. It is also potentially much more secure as it is not vulnerable to most of the basic techniques used to attack current systems. Most of this operational cost is the staffing cost of system administrators (both those who clearly hold the title and the rest of us who spend an inordinate amount of our time doing system administration tasks).

Since they are not programmers, they cannot use a programmer's tool to get an effective overview of the operation of their systems. Many of these small scripts are embedded into the system (these are prototypes that become products) and they are then added to the maintenance burden. It is a reintroduction of the underlying system structure; it's "raw boiling bits" all over again.

As argued earlier, object abstraction naturally leads to direct manipulation tools that can represent a more natural interface because the objects that form the "basic stuff" of a system are direct analogs of the objects that system designers and system operators think about. Instead of trying to solve problems using file systems and registry databases, system administrators should use powerful object browsers that can provide an understandable view of the current state of the system and that provide understandable navigation tools.

Figure

Figure 1: Comparison of Object Abstraction and Conventional Model
Figure 2: Type Hierarchy

Referencias

Documento similar

se dice que Rómulo mató a Remo cerca de la desembocadura del río Tíber y que lupa, en latín, también significa prostituta yo digo que la memoria es siempre herida un ir y venir de