95 citations found. Retrieving documents...
A. W. Appel and K. Li. Virtual memory primitives for user programs. ACM SIGPLAN Notices, 26(4):96--107, 1991.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Reducing Pause Time of Conservative Collectors - Endo, Taura (2002)   (2 citations)  (Correct)

....collector. 6. RELATED WORK Incremental concurrent mark sweep collectors have been widely explored [11, 12, 13, 17, 27] Most previous work While protecting pages inherently requires synchronization among processors, we may unprotect pages wkhout synchro nization by lazily synchronizing TLBs [1]. deltablue [lavg.g.p. Imax.g.p. 3max. l.p. espresso 4 . E 3 o m cube Iavg.g.p. max.g.p. 3max.l.p. O m m Figure 4: The pause time in the sequential benchmarks. The graphs show the average global pauses, the maximum global pauses, and the maximum local pauses for each ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 96 107, 1991.


Mondrian Memory Protection - Witchel, Cates, Asanovic (2002)   (21 citations)  (Correct)

....and discount all other instructions, the translation implementation still saves 46 of the reference time of a copying implementation. 6. OTHER USES FOR FINE GRAINED PROTECTION AND TRANSLATION We believe that fine grained protection offers exciting opportunities for application developers. Appel [3] surveys some applications that make use of page based virtual memory. Many of these same ideas could perform better with finer grain protection and with cheap inter protection domain calls. Fine grained protection can provide support for fast memory bounds checking. Buffer overruns in unsafe ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of ASPLOS-IV, April 1991.


Piglet: A Low-Intrusion Vertical Operating System - Muir, Smith (2000)   (1 citation)  (Correct)

....which are embedded within the OS. 2.2 Vertical OS Structure The bene ts of separating resource management mechanisms and policies have been clearly demonstrated for many di erent classes of resource. Application speci c management of virtual memory has been extensively researched: Appel and Li [Appel91] provide general considerations for implementing application level VM primitives while Hand [Hand99] and Engler [Engler95] describe speci c implementations. User level network protocols are another area which has been covered by many groups: Cornell s U Net [vonEicken95] and the Virtual ....

A. W. Appel and K. Li; \Virtual memory primitives for user programs", 4th International Conference on Architecture Support for Programming Languages and Operating Systems (October 1991), pp.95-109.


Exterminate All Operating System Abstractions - Engler, Kaashoek (1995)   (27 citations)  (Correct)

.... the history of computer science there has been a fairly constant opinion that current operating systems are inadequate [4, 7, 9, 11, 15, 18] The literature is rife with specific examples that describe the cost of the inappropriate, inefficient abstractions peddled by operating systems [2, 4, 12, 13, 18, 23, 24]. This situation has persisted for the last three decades, and has survived numerous assaults (object oriented operating systems and micro kernels are two of the more popular movements) As a general rule, a concept that cannot be realized after such a long period of time should be reexamined. ....

....abstractions; unfortunately, such emulation is typically clumsy, complicated, and prohibitively expensive. For example, once the application has no access to the raw disk interface, database records must be emulated on top of files. The list of such examples is painfully long and continues to grow [2, 4, 13, 18, 23, 24]. In short, operating systems are complex, fragile, inflexible, and slow, because they have dabbled in the practice of providing a general purpose virtual machine. The operating system is basically hardware masquerading as software: it cannot be changed, all applications must use it, and the ....

A.W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on ASPLOS, pages 96--107, Santa Clara, CA, April 1991.


The Design, Implementation, and Evaluation of Jade - Rinard, Lam (1998)   (Correct)

....of the current Jade communication strategy, they all have drawbacks. Page based approaches require the implementation to interact with the paging system of the resident operating system. In many operating systems the implementations of the user level fault handling primitives are inefficient [Appel and Li 1991], and some operating systems do not provide these primitives at all. On the other hand, using a strategy that dynamically checked each access would impose substantial overhead on each access to a shared object. ACM Transactions on Programming Languages and Systems, Vol. 20, No. 1, January 1998. ....

Appel, A. and Li, K. 1991. Virtual memory primitives for user programs. In Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, New York.


Limitations of Page Table Translation Schemes - Liedtke (1995)   (Correct)

.... et al. 1994] Mungi [Heiser et al. 1993] Monads [Rosenberg et al. 1989] and [Carter et al. 1992] Page table mechanisms: Organick 1972; Cocke 1981; Huck and Hays 1993] TLBs and caches: Koldinger et al. 1992; Kaiser and Czaja 1992; Nagle et al. 1993; Chiueh and Katz 1992] User level mapping: [Appel and Li 1991; Hosking and Moss 1993] OO systems: Jul et al. 1988; Krakowiak et al. 1990] 7 Conclusions Besides that we never can be sure to consider all relevant factors in such an examination, there are remarkable factors of uncertainty: research is required to find out whether appropriate TLBs and ....

Appel, A. W. and Li, K. 1991. Virtual memory primitives for user programs. In 4th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Santa Clara, CA, pp. 73--80.


MMU Impacts On System Architecture (Extended Abstract) - Liedtke (1994)   (Correct)

....research [26, 22, 21, 23] deals with these questions. It is yet too early for definite answers, but we are not pessimistic. 5 Related Work 64 bit systems: Opal [4] Mungi [34, 7] Monads [33] and [2] Page table mechanisms: 31, 6, 10] TLBs and caches: 16, 15, 30, 5] User level mapping: [1, 9]. OO systems: 13, 17] 6 Conclusions Besides that we never can be sure to consider all relevant factors in such an examination, there are remarkable factors of uncertainty: research is required to find out 7 whether appropriate TLBs and caches can be build and whether OS book keeping can be ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In 4th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 73--80, Santa Clara, CA, April 1991.


Address Space Sparsity and Fine Granularity - Liedtke (1995)   (9 citations)  (Correct)

....hardware, e.g. base address caches [5] or a virtually tagged cache supporting synonyms [14, 15] Therefore, this section is highly speculative: imagine that unrestricted aliasing is sufficiently cheap. What can we do with this mechanism Experiments with user level mapping are described in [1, 7]. Since, with guarded page tables, the obtainable granularity is in the magnitude of a program variable, we should even explore techniques to replace references by mapping, perhaps even parameter passing by mapping. For example, a compiler could assemble statically determinable sets of parameters ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In 4th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 73--80, Santa Clara, CA, April 1991.


The SawMill Framework for Virtual Memory Diversity - Aron, Park, Jaeger.. (2001)   (2 citations)  (Correct)

....an incremental strategy. 5 Performance Analysis We have implemented a prototype that consists of a main memory manager and an anonymous memory manager. The managers implement identify, attach open, detach close, and interrogate. Table 1 compares the time to execute the Appel Li VM primitives [2]. The times for OSF 1, Mach and SPIN taken from [3] were measured on a 133MHz DEC Alpha. The numbers for SawMill were measured on a 100MHz Pentium which is roughly comparable to a 133MHz DEC Alpha. The times for SPIN correspond to kernel extensions invoking the virtual memory system and would be ....

A. Appel and K. Li. Virtual memory primitives for user programs. In ASPLOS. ACM, April 1991.


Parallel Pointer-Based Join Algorithms in Memory Mapped .. - Buhr, Goel, Nishimura, .. (1996)   (1 citation)  (Correct)

....an essential property in a database system. With singlelevel stores becoming more common, it is our hope that future research and development in operating system architecture will make it feasible for database applications to exercise more control over the replacement strategies used (see [7]) There is scope for further improvement in the design of our model, especially in the modelling of the underlying paging behaviour. Future work will involve extending our model to other memory mapped environments allowing us to perform comparative studies. It will also be an interesting exercise ....

Appel, A. W. and Li, K. Virtual Memory Primitives for User Programs. In ACM ASPLOS, pp. 96--107, Apr. 1991.


Trends in Operating System Design: Towards a Customisable.. - Hulse, Dearle (1998)   (1 citation)  (Correct)

....hardware to provide high level abstractions such as processes and file systems that enable application developers to build systems both efficiently and portably. Although high level abstractions like this are suitable for many systems, there are also systems for which they are not appropriate [4, 6, 25, 43, 46]. This would be acceptable if the developers of these systems could simply ignore the abstractions that are unsuitable and create their own from scratch. However, since the operating system defines a high level virtual machine, applications are effectively forced to use the abstractions provided. ....

A.W. Appel and K. Li. "Virtual Memory Primitives for User Programs", in Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, Santa Clara, California, pp. 96-107, 1991.


Swap Compression: Resurrecting Old Ideas - Cortes, Becerra, Cervera (2000)   (3 citations)  (Correct)

....the application knows about its access patterns. This knowledge could be used to improve the 18 performance of the mechanism. RELATED WORK Not much research has been done in the area of memory and swap compression. To our knowledge, the idea was first proposed in 1991 in two different papers [20, 21], but Andrew W. Appel did not pursue the issue further and Paul R. Wilson did not come back to the idea until 1999 [6] as we describe later in this section. Fred Douglis was the first one to postulate the benefits of a compression cache [7] Furthermore, he built and evaluated a prototype. His ....

Appel, A. W., and Li, K. Virtual memory primitives for user programs. In Proceedings of the International Conference on Architectural Support for Programming Languages nad Operating Systems (April 1991), ACM.


Concurrent, Atomic Garbage Collection - Detlefs (1991)   (2 citations)  (Correct)

....switching between the mutator and collector tasks, and handling protection exceptions might substantially increase running time when concurrency is used. This concern is especially important because the generality of the Mach virtual memory interface seems to have a performance cost; Li and Appel [Appel Li 90] have preliminary measurements indicating that Mach page protection primitives may be as much as 10 times more expensive than comparable operations in other operating systems running on the same platform. We have run similar tests with somewhat better results, estimating the cost of protecting or ....

....an external pager [Young 90] We briefly examined this approach, but settled on 180 Section 12.2.2 the use of the existing user level calls for simplicity and also because the external pager approach is less likely to be supported in other systems. Appel and Li recently suggested another approach [Appel Li 90] They propose mapping the virtual memory pages that make up the heap into two different regions of the address space, one used by mutator threads and one by the collector. This separation of address space allows a collector thread in the same process as mutator threads to have access to heap ....

Appel, Andrew W. and Li, Kai. Virtual memory primitives for user programs. 1990. In preparation.


Application-Controlled Demand Paging for Out-of-Core.. - Cox, Ellsworth (1997)   (32 citations)  (Correct)

....features have unfortunately not found their way into commercial operating systems. Appel and Li have demonstrated by operating system modification that application control over write back policies can improve performance by discarding dirty data that really are garbage or that can be rederived [3]. Just such control would be desirable for visualization where data can be re read from disk. Cao et al. have explored application control over file caching [7, 8] Their focus has primarily been on efficient implementation and on global performance. In the visualization domain, Song has ....

A. Appel and K. Li, "Virtual Memory Primitives for User Programs," Proceedings of the 4 th Symposium on Architectural Support for Programming Languages and Operating Systems, Santa Clara CA, April 1991.


Encrypting Virtual Memory - Provos (2000)   (13 citations)  (Correct)

.... Fred Douglis compression cache compresses memory pages to avoid costly disk accesses [10] 3 Virtual Memory System One purpose of virtual memory is to increase the size of the address space visible to processes by caching frequently accessed subsets of the address space in physical memory [2]. Data that does not t in physical memory is saved on secondary storage known as the backing store. Paged out memory is restored to physical memory when a process needs to access it again [7] In many operating systems, the virtual memory pager daemon is responsible for reading and writing pages ....

....a severe impact on system performance. In general, it is not desirable to prevent the system from swapping memory to the disk. Instead, encryption can be used to protect con dential data when it is written to secondary storage by the pager. A user program could install its own encrypting pager [2]. This would lead to greater complexity, require modi cation of applications and poses dicult decisions about which cryptosystem to use. If a cryptographic le system like CFS [4] were available, the virtual memory pager could be con gured to swap to a le that resided on an encrypted le system. ....

A. Appel and K. Li. Virtual Memory Primitives for User Programs. In Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems, April 1991.


Supporting Dynamic Data Structures on Distributed.. - Rogers, CARLISLE.. (1995)   (98 citations)  (Correct)

....idle until another (or the same) thread migrates to it. Recall that we view a memory address as consisting of a pair of a processor name and a local address. This information can be encoded as a single address, and the address translation hardware can be used to detect non local references [Appel and Li 1991]. When Processor P executes a load or store instruction that refers to Q s memory, the instruction traps to a library routine. The trap handler is responsible for packaging up the thread s state information and sending it to Processor Q. Notice that if the entire stack is sent with the thread, ....

....accounts for 24 to 80 of the overhead. It may be possible to reduce this overhead by using the address translation hardware and a user level trap handler to detect and manage non local references. The effectiveness of such a scheme will depend heavily on the cost of servicing a user level trap [Appel and Li 1991]. We are currently experimenting with an implementation of Olden built on top of the Tempest Blizzard system from the Wisconsin Wind Tunnel 10 We have measured the cost of sending a 250 byte message, which is the average size of a migration message, as 496s on the iPSC 860 and 546s on the CM 5. ....

Appel, A. and Li, K. 1991. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectura l Support for Programming Languages and Operating Systems, pp. 96--107.


AVM: Application-Level Virtual Memory - Dawson Engler Sandeep (1995)   (24 citations)  (Correct)

....to modify or replace. Other microkernels [12, 17, 21] have chosen to implement a very restricted virtual memory system in order to make the system fast and simple. These systems do not support VM techniques such as copy on write, which can improve applicationperformance by an order of magnitude [2, 11, 14]. In summary, current VM systems are either complicated and unwieldy, or naive and rudimentary; both approaches penalize applications. To remedy the situation, this paper proposes a novel organization of the VM system, application level VM (AVM) which allows applications to set policies by ....

....the hardware does not have to support scatter gather functionality. Control of page size. On machines that support variable page size mappings [19, 20] AVM can exploit application specific knowlege to determine appropriate page sizes (e.g. many of the applications discussed in Appel et al. [2] benefit from smaller page sizes) DMA. Avoidance of the memory subsystem during bulk data transfers can improve performance by eliminating the effects of both cache and TLB misses, and pollution. This optimization can aid many operations such as networking and garbage collection, and more common ....

[Article contains additional citation context not shown here]

A.W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on ASPLOS, pages 96--107, Santa Clara, CA, April 1991.


I R I S a - Campus Universitaire De (1995)   (Correct)

....addition, it was shown that the time overhead due to checkpointing increases almost linearly with the number of checkpoints saved in an application. This allows the application programmer to choose the checkpointing interval according to its applications needs of reliability. As already stated in [28], we found during the implementation of the checkpointing protocol that today operating systems, even based on the micro kernel technology, do not offer enough support for implementing incremental checkpointing, since they do not offer primitives for reading the pages dirty bits or acting on sets ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proc. of 4th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--107, April 1991. PI n924 26 Gilbert Cabillic, Gilles Muller, Isabelle Puaut Irisa


Encrypting Virtual Memory - Provos (2000)   (13 citations)  (Correct)

.... Douglis compression cache, which compresses memory pages to avoid costly disk accesses [10] 3 Virtual Memory System One purpose of virtual memory is to increase the size of the address space visible to processes by caching frequently accessed subsets of the address space in physical memory [2]. Data that does not t in physical memory is saved on secondary storage known as the backing store. Paged out memory is restored to physical memory when a process needs to access it again [7] In many operating systems, the virtual memory pager daemon is responsible for reading and writing pages ....

....a severe impact on system performance. In general, it is not desirable to prevent the system from swapping memory to the disk. Instead, encryption can be used to protect con dential data when it is written to secondary storage by the pager. A user program could install its own encrypting pager [2]. This would lead to greater complexity, require modi cation of applications and poses dicult decisions about which cryptosystem to use. If a cryptographic le system like CFS [4] were available, the virtual memory pager could be con gured to swap to a le that resided on an encrypted le system. ....

A. Appel and K. Li. Virtual Memory Primitives for User Programs. In Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems, April 1991.


Lightweight Write Detection and Checkpointing for Fine-Grained .. - Hosking, Moss (1995)   (3 citations)  (Correct)

....made residentby the virtual memory system. Several implementations of object faulting are possible, driven by software checks on pointer dereferences supported by the language implementation, or through userlevel virtual memory primitives supported by the operating system and hardware #Appel and Li 1991; Hosking and Moss 1993a#. 2.2 Storage management Architectures for persistence typically have one component in common: a storage manager, responsible for maintaining data in some inexpensive stable storage medium such as magnetic disk and for #elding requests to retrieve and save speci#ed ....

Appel, A. W. and Li, K. 1991. Virtual memory primitives for user programs. In Proceedings of the ACM International ConferenceonArchitectural Support for Programming Languages and Operating Systems, Santa Clara, California, pp. 96#107.


The Operating System Kernel as a Secure Programmable.. - Engler, Kaashoek.. (1994)   (32 citations)  (Correct)

....NSF National Young Investigator award. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. government. tions are inadequate, their implementation slow, or both [4, 5, 14, 15, 22, 29, 31]. We believe that these problems can be solved by simply lowering the interface to the hardware that is enforced by the kernel: namely, by exporting physical resources to applications directly, management and abstraction of these resources can be specialized for simplicity, efficiency, and ....

A.W. Appel and K. Li. Virtual memory primitives for user programs. In Proc. Fourth International Conference on ASPLOS, pages 96--107, Santa Clara, CA, April 1991.


Mostly-Copying Reachability-Based Orthogonal Persistence - Hosking, Chen (1999)   (2 citations)  (Correct)

....objects for concurrency control. The read and write barriers may be implemented in hardware or software. Hardware support for barriers, utilizing the memory management hardware of the CPU, is usually implemented via the virtual memory protection primitives of the underlying operating system [4, 58, 75, 82, 79], though the cost of fielding the resulting protection traps in some operating systems is notoriously expensive [45] In the absence of hardware based solutions, or because of the performance shortcomings, barriers can be implemented in software. Typically, the compiler (whether ....

APPEL,A.W.,AND LI, K. Virtual memory primitives for user programs. In Proceedings of the ACM International Conference on Architectural Support for Programming Languages and Operating Systems (Santa Clara, California, Apr.). ACM SIGPLAN Notices 26,4 (Apr. 1991), pp. 96--107.


Tradeoffs in Supporting Two Page Sizes - Talluri, Kong, Hill, Patterson (1992)   (43 citations)  (Correct)

....VAX 11 still use their original page size. Second, as we will show, larger pages result in larger working sets due to internal fragmentation [Den70] i.e. memory wasted due to the page size being larger than what the program needs. Third, the protection granularity becomes coarser. Appel and Li [ApL91] describe some applications that would benefit from smaller pages. A third method for improving TLB performance is to use two page sizes and to require page sizes to be powers of two and pages to be aligned (i.e. a page of size B must be placed in virtual and physical memory at an address that ....

A. W. APPEL and K. LI, Virtual Memory Primitives for User Programs, Proc. 4th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, April 1991, 96-107.


The Exokernel Operating System Architecture - Engler (1998)   (12 citations)  (Correct)

....monolithic system that performs quite well in comparison to other operating systems [69] For example, it performs two to three times better than Mach 3.0 in a set of I O benchmarks [67] Also, its virtual memory performance is approximately twice that of Mach 2.5 and three times that of Mach 3. 0 [5]. Our measurements were taken on a DECstation5000 125 (25MHz) with an R3000 processor and a SPECint92 rating of 25. 3.1 Multiplexing Physical Memory Physical memory is one of the simplest resources to multiplex. When a library operating system allocates a physical memory page, the exokernel ....

....from the more general class of exceptions in its exception demultiplexing routine. Fast exceptions enable a number of intriguing applications: efficient page protection traps can be used by applications such as distributed shared memory systems, persistent object stores, and garbage collectors [5, 87]. Exception times are discussed further in [25] 3.4.2 Aegis Protected Control Transfers Aegis provides a protected control transfer mechanism as a substrate for efficient implementations of inter process compunction (IPC) abstractions. This mechanism illustrates the principle of not ....

A.W. Appel and K. Li. Virtual memory primitives for user programs. In Fourth International Conference on Architecture Support for Programming Languages and Operating Systems, pages 96--107, Santa Clara, CA, April 1991.


Memory Management Hardware, and its Support for Operating Systems - Jacob, Mudge (1997)   (Correct)

....read write, execute only, etc. The granularity is usually a page, though a larger or smaller granularity is sometimes desirable. Many systems have used protection to implement various memory system support functions, from copyon write to garbage collection to distributed shared virtual memory [1]. Protection is implemented by setting bits in the page table entry, which correspond to bits in the TLB entry. If a process attempts to use a page incorrectly (e.g. write to a page marked read only) the hardware raises an exception. Sparse Address Spaces. Dynamically loaded shared libraries and ....

A. W. Appel and K. Li. "Virtual memory primitives for user programs." In Proc. Fourth Int'l Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS-4), April 1991, pp. 96--107.


Software Write Detection for a Distributed Shared Memory - Zekauskas (1994)   (79 citations)  (Correct)

....address space. VM DSM systems are attractive because they allow an application to use shared memory in a transparent fashion using native compilers and libraries [Li Hudak 89] There are, however, some disadvantages. Virtual memory operations, even in an optimized system, have a high cost [Appel Li 91, Thekkath Levy 94] relative to that of an instrumented write, as we show in this paper. More importantly, the large virtual memory page size creates problems with false sharing [Bennett et al. 90] To support sharing at the sub page level, an additional mechanism such as page diffing is ....

....It might appear that write detection in an RT DSM system is not as efficient as in a VM DSM system because there is a constant overhead for each write. However, there are a number of factors to consider: ffl The relative cost of a page fault is much greater than that of an individual write [Appel Li 91, Hosking Moss 93, Wahbe et al. 93, Thekkath Levy 94] In contrast, a write to shared memory can be instrumented with an overhead of just a few instructions. ffl The virtual memory page size is too large for many applications, resulting in false sharing [Bennett et al. 90] False sharing ....

Appel, A. W. and Li, K. Virtual Memory Primitives for User Programs. In Proceedings of the Fourth ACM Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--107, April 1991.


Nonintrusive Cloning Garbage Collection with Stock.. - Gustavo Rodriguez-Rivera (1997)   (1 citation)  (Correct)

....use read write barriers to keep track of pointer reads writes and make sure that the mutator does not cause the collector to erroneously garbage collect accessible memory. Read Write barriers are implemented in two basic ways: compiler generated [Bro84] and virtual memory supported [AEL88, AL91] Compiler generated read write barriers insert extra code at every pointer read write operation in the program. Besides the overhead implied by the execution of the extra code (proportional to the number of pointer reads writes) compiler generated read write barriers are not possible in ....

....be implemented directly by programs using virtual memory page protection mechanisms. In such implementations, pages are read protected (or write protected) and an application provided handler executes special code when the program tries to read (or write) any of the protected pages [AEL88, BDS91, AL91] Virtual memory read write barriers implemented in user space tend to be inefficient and intrusive. The cost of a page trap, crossing the kernel user boundary, and calling a signal handler for every page is expensive [HMS92] Also when a page trap signal is produced inside a system call, the ....

Andrew W. Appel and Kai Li. Virtual memory primitives for user programs. In Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS IV), pages 96--107, Santa Clara, California, April 1991.


Extensibility, Safety and Performance in the SPIN.. - Bershad, Savage.. (1995)   (94 citations)  (Correct)

....but unmapped virtual page, then the Translation.PageNotPresent event is raised. Implementors of higher level memory management abstractions use these events to implement services such as demand paging, copy on write [RTY 87] distributed shared memory [CBZ91] or concurrent garbage collection [AL91] Resource reclamation The physical page service may at any time reclaim memory. A page is recalled by raising the PhysicalPage. Recall event with the specific physical page specified as an argument. The interface allows the handler for this event to volunteer an alternative page, which may be ....

....call, thread management, virtual memory, and protected procedure call. They define the bounds of system performance and provide a framework for understanding larger operations. Page faults Applications frequently exploit the virtual memory fault path as the basis for extending system services [AL91] For example, concurrent and generational garbage collectors rely on write faults to maintain invariants or collect reference information. In the most common use of this strategy, application code updates a data structure when the fault occurs, promotes the page to allow readwrite access, and ....

W. Appel and K. Li. Virtual Memory Primitives for User Programs. In Proceedings of the Fourth Symposium on Architectural Support for Programming Languages and Operating Systems, pages 96--107, April 1991.


Reducing TLB and Memory Overhead Using Online Superpage .. - Romer, Ohlrich.. (1995)   (26 citations)  (Correct)

....is a simulation of LRU using a two handed clock, and the system is not paging, then the system only needs reference information about a small fraction of pages at any given time, and demotions will occur infrequently. More esoteric functions that require fine grained reference information [Appel Li 91] such as write trapping for a distributed shared memory [Carter et al. 91] will increase the frequency of page demotion. As a result, superpagesmay not be appropriate for applications that rely on such functions. However, recent results indicate that the use of the virtual memory system to ....

Appel, W. and Li, K. Virtual Memory Primitives for User Programs. In Proceedings of the Fourth International Conference on Architectural Support for ProgrammingLanguagesand Operating Systems, pages 96-- 107, April 1991.


Hardware and Software Support for Efficient Exception Handling - Thekkath, Levy (1994)   (36 citations)  (Correct)

.... to re protect the page would then need to make an additional system call; however, applications such as garbage collectors, persistent store manages, and others can benefit from this minor change in semantics, because they don t always need to re enable protection checks following the exception [Appel Li 91] This optimization works well in environments such as ours, where address spaces are not multithreaded. Even in multithreaded environments this optimization may be useful, because it can be made optional under user program control. 3.2.4 Emulating Subpage Granularity Protection Previous studies ....

.... memory protection faults and unaligned address faults and show uses and performance implications for each. 4. 1 Using Memory Protection Faults The use of memory protection faults in applications such as distributed shared memory and garbage collection has received much attention [Appel Li 91, Hosking Moss 93] In this section we report on the performance of a garbage collector that uses our software delivery mechanism to handle protection violation exceptions. For our measurements, we use a conservative garbage collector, distributed by Xerox, which is meant to be used with C and ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the 4th International Conference on Architecture Support for Programming Languages and Operating Systems, pages 96--107, April 1991.


Remembered Sets Can Also Play Cards - Hosking, Hudson (1993)   (12 citations)  (Correct)

....of an implementation that assumes an oracle to discover which pages of the heap are dirty at each garbage collection. This allows us to determine the optimal performance that could be expected if operating systems were to provide user level dirty bits (as suggested by Shaw [8] and Appel and Li [3]) 2.1 Remembered sets To avoid making the remembered sets too large we record only those stores that create pointers from older objects to younger objects. This involves extra conditional overhead at every store site to perform the check, in addition to a subroutine call to update the ....

....indicates that the corresponding page is dirty. When a protection trap occurs the bit in the table corresponding to the modified page is set and the page unprotected. 2.3. 1 User level dirty bits If operating systems were to provide user level dirty bits (as suggested by Shaw [8] and Appel and Li [3]) the overhead to reflect page traps through to the user level protection violation handler can be avoided. Presumably, an extra user level dirty bit would be added to each page table entry, and a system call (dirty) provided to return a list of pages dirtied in a given address range since the ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--107, Santa Clara, California, Apr. 1991. ACM SIGPLAN Not. 26, 4 (Apr. 1991).


Language And Compiler Mechanisms For Parallel Programming With .. - Raghavachari (1998)   (Correct)

....fault) can be substantial. In certain cases, it may be better to circumvent the virtual memory mechanism by performing the state lookup in software [99] To allow for the implementation of shared virtual memory, the operating system must support primitives such as those described by Appel and Li [9] that allow programmers to specify handlers that execute on page faults and manipulate the state of pages. On certain platforms, shared virtual memory may not be an option because the underlying machine does not provide the operating system support necessary (as on the CM 5 and the T3E) or one ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, in SIGPLAN Notices, pages 96--107, Apr. 1991. BIBLIOGRAPHY 170


Supporting SPMD Execution for Dynamic Data Structures - Rogers, Reppy, Hendren (1992)   (9 citations)  (Correct)

....P remains idle until another (or the same) thread migrates to it. We view a memory address as consisting of a pair of a processor name and a local address. This information can be encoded as a single address, and the address translation hardware can be used to detect non local references [AL91] When Processor P executes a load or store instruction that refers to Q s memory, the instruction traps. The trap handler is then run on P , which is responsible for packaging up the thread s state information and sending it to Processor Q. Notice that because we send the entire stack with the ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--107, April 1991.


A Survey of Multiprocessor Operating System Kernels - Mukherjee, Schwan, Gopinath (1993)   (1 citation)  (Correct)

....nucleus) which is suitable for various architectures (e.g. paged and or segmented) and implementation schemes. Some operating systems [84] allow applications to specify the protection level (inaccessible, read only, read write) of pages, and allow user programs to handle protection violations. In [12], the authors survey several user level algorithms that make use of page protection techniques, and analyze their common characteristics, in an attempt to identify the virtualmemory primitives the operating system should provide to user processes. The survey also benchmarks a number of systems to ....

A. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (SIGPLAN Notices, vol.26, no.4), pages 96--107, April 1991.


Distributed EZ - Campos, Hanson (1992)   (Correct)

....the old target unnecessarily. EZ s collector, however, marks the old target for two reasons. First, marking the new target requires direct mutator assistance. Second, marking the old target permits the collector to use virtual memoryhardware to mark pages referenced by a page before it is modified [2]. At the beginning of a collection, all owned pages are set to read only. The first write to a page causes a page fault, and pages referenced within the faulted page are marked before the fault handler approves write access to the page. Marking the referents of a page before it is updated is ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--107, Santa Clara, CA, Apr. 1991.


Fault Interpretation: Fine-Grain Monitoring of Page Accesses - Daniel Edelson (1993)   (1 citation)  (Correct)

....in a library called FI for Fault Interpretation. We discuss a number of applications for this technique including garbage collection and consistency replication protocols for transparent distributed shared memory. Virtual memory page protection has been used for similar reasons before [AEL88, AL91, DWH 90] The difference with our approach is that most other techniques unprotect a protected page when a fault occurs. For some period of time thereafter, there is no monitoring of how many times and at what addresses the page is accessed. With fault interpretation, in contrast, a page does ....

....4. Implementation There are a number of ways that fault interpretation can be implemented. By and large, they are architecture specific and require reading the state of the CPU when the fault occurs. Thus, this technique is less portable and less general than those discussed by Appel [AL91] Nonetheless, it has several uses and may let some programs run more efficiently. 4.1 Code Modification When the signal handler is invoked after a fault, it determines what instruction has faulted. The instruction immediately following the faulting instruction is overwritten with an ....

[Article contains additional citation context not shown here]

Andrew W. Appel and Kai Li. Virtual memory primitives for user programs. In Proc. International Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--107, Santa Clara, CA, April 1991. SIGPLAN Notices 26(4).


Tools for the Development of Application-Specific.. - Krueger.. (1993)   (33 citations)  (Correct)

....the application to trap on read or write references to selected pages. For instance, this capability can be used to collect more detailed page usage information [Levy Lipman 1982] or to provide other features such as distributed virtual memory, transactional memory, or automatic checkpointing [Appel Li 1991]. Moreover, there is not a one to one mapping between applications and paging policies. The same default user level pager can be used by the majority of applications that perform acceptably well with an LRU paging policy. By contrast, a single application might have multiple policies, one for each ....

Appel, A. W. and Li, K. Virtual Memory Primitives for User Programs. In Proceedings of the 4th ACM Symposium on Architectural Support for Programming Languages and Operating Systems, pp. 96--107, Santa Clara, California, April 1991.


Pointer Swizzling at Page Fault Time: Efficiently and.. - Paul Wilson (1992)   (102 citations)  (Correct)

....address space might be summed up as crunch all you want we ll make more. to observed patterns of disk usage to reduce read latencies [Gri89, Wil91] Compressed storage is likely to become increasingly important, whether at the level of file storage or as part of the virtual memory system [AL91, Wil91] The problems of variable sized units of storage are thus likely to be solved anyway, for entirely different reasons. Compressed storage is attractive for reducing storage costs, and for reducing average latency (by storing more data in fast memory and or decreasing communication costs) ....

Andrew W. Appel and Kai Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS IV), pages 96--107, April 1991. Santa Clara, CA.


A Model For User-Level Memory Management in a.. - Lindström.. (1994)   (Correct)

....occurs the container s manager is invoked by the kernel with parameters specifying the address and the type of the attempted access. The manager may handle the violation in any way that it sees fit. There are a variety of applications for which detection of access violations are important [3]. At some point in time the local memory of a node will be filled with copies of pages from various containers. When this occurs, servicing of page faults cannot proceed until some of the memory is freed. When the kernel detects that this situation has arisen it invokes one or more managers ....

Appel, A. W. and Li, K. "Virtual Memory Primitives for User Programs", ASPLOS IV, ACM, Santa Clara, California, pp. 96-107, 1991.


Protection Traps and Alternatives for Memory Management of an.. - Hosking, Moss (1993)   (31 citations)  (Correct)

....checks, by exploiting the paging hardware s ability to trap on access violations. As a result, application programmers have exercised their ingenuity in devising implementation solutions that make use of these virtual memory primitives. A number of these applications are enumerated by Appel and Li [3], where they argue that in light of programmers demands, designers of operating systems and hardware architectures must pay more attention to support for virtual memory primitives to make their implementations more efficient and robust. Meanwhile, there is evidence [1] to indicate that the ....

....We then present the experimental setup used for gathering performance data, and our alternative implementations of each of the applications along with their their relative performance. Finally, we summarize the major points of the paper and present our conclusions. 2 Applications Appel and Li [3] describe a number of applications of virtual memory primitives, including concurrent garbage collection, shared virtual memory, concurrent checkpointing, generational garbage collection, persistent stores, extending addressability, data compression paging, and heap overflow detection. Of these, ....

[Article contains additional citation context not shown here]

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--107, Santa Clara, California, Apr. 1991. ACM SIGPLAN Not. 26, 4 (Apr. 1991).


Using Virtual Addresses as Object References - Chase, Levy, Tiwary   (Correct)

....dilemma is less severe than it appears, and that many solutions to these storage management problems are compatible with the use of virtual address pointers. 2 Operating System Support for Shared Virtual Storage Operating system advances, particularly innovative uses of virtual page protections [Appel Li 91] are the catalyst for increased use of virtual address pointers. For example, extensible memory management interfaces (as in Mach and Chorus) have produced a flood of specialized paging servers that support persistent and distributed virtual storage transparently to the language implementation. ....

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proc. of the ACM Conference on Architectural Support for Programming Languages and Operating Systems, April 1991.


Garbage Collection Without Paging - Matthew Hertz Yi   (Correct)

No context found.

A. W. Appel and K. Li. Virtual memory primitives for user programs. ACM SIGPLAN Notices, 26(4):96--107, 1991.


Low-Overhead Interactive Debugging via Dynamic.. - Marc Corliss Christopher (2005)   (1 citation)  (Correct)

No context found.

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proc. of 4th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, pages 96--107, Apr. 1991.


Tools for the Development of Application-Specific - Virtual Memory Management   (Correct)

No context found.

Appel, A. W. and Li, K. Virtual Memory Primitives for User Programs. In Proceedings of the 4th ACM Symposium on Architectural Support for Programming Languages and Operating Systems, Santa Clara, California, April 1991.


Garbage Collection without Paging - Hertz, Feng, Berger (2005)   (Correct)

No context found.

A. W. Appel and K. Li. Virtual memory primitives for user programs. ACM SIGPLAN Notices, 26(4):96--107, 1991.


Transparent Operating System Support for Superpages - Navarro (2002)   (4 citations)  (Correct)

No context found.

A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--107. ACM Press, 1991.


A Generational and Conservative Copying Collector for Hybrid.. - Onodera (1993)   (1 citation)  (Correct)

No context found.

A. W. Appel and K. Li, `Virtual memory primitives for user programs', Proc. Fourth International Conference of Architectural Support for Programming Languages and Operating Systems, 1991, pp. 96--107.


Trap-driven Memory Simulation - Uhlig (1995)   (2 citations)  (Correct)

No context found.

Appel, A. and Li, K. Virtual memory primitives for user programs. In Pro- 171 ceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems, Santa Clara, California, ACM, 96-107, 1991.


Precompiling C++ for Garbage Collection - Edelson (1992)   (3 citations)  (Correct)

No context found.

, vol. 2, pp. 153--162. 3. Appel, A. W., and Li, K. Virtual memory primitives for user programs. In ASPLOS Inter. Conf. Architectural Support for Programming Languages and Operating Systems


A New Page Table for 64-bit Address Spaces - Talluri, Hill, Khalidi. (1995)   (20 citations)  (Correct)

No context found.

Andrew W. Appel and Kai Li. Virtual Memory Primitives for User Programs. In Proc. of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 96--106, Palo Alto, April 1991.

First 50 documents  Next 50

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC