Results 1 - 10
of
16
Implementation and Performance of Application-Controlled File Caching
- IN PROCEEDINGS OF THE FIRST SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION
, 1994
"... Traditional file system implementations do not allow applications to control file caching replacement decisions. We have implemented two-level replacement, a scheme that allows applications to control their own cache replacement, while letting the kernel control the allocation of cache space among ..."
Abstract
-
Cited by 114 (4 self)
- Add to MetaCart
Traditional file system implementations do not allow applications to control file caching replacement decisions. We have implemented two-level replacement, a scheme that allows applications to control their own cache replacement, while letting the kernel control the allocation of cache space among processes. We designed an interface to let applications exert control on replacement via a set of directives to the kernel. This is effective and requires low overhead. We demonstrate that for applications that do not perform well under traditional caching policies, the combination of good application-chosen replacement strategies, and our kernel allocation policy LRU-SP, can reduce the number of block I/Os by up to 80%, and can reduce the elapsed time by up to 45%. We also show that LRU-SP is crucial to the performance improvement for multiple concurrent applications: LRUSP fairly distributes cache blocks and offers protection against foolish applications.
Implementation and Performance of Integrated Application-Controlled Caching, Prefetching and Disk Scheduling
, 1996
"... Although file caching and prefetching are known techniques to improve the performance of file systems, little work has been done on intergrating caching and prefetching. Optimal prefetching is nontrivial because prefetching may require early cache block replacements. Moreover, the tradeoff between t ..."
Abstract
-
Cited by 100 (8 self)
- Add to MetaCart
Although file caching and prefetching are known techniques to improve the performance of file systems, little work has been done on intergrating caching and prefetching. Optimal prefetching is nontrivial because prefetching may require early cache block replacements. Moreover, the tradeoff between the latency-hiding benefits of prefetching and the increase in the number of fetches required must be considered. This paper presents the design and implementation of a file system that integrates application-controlled caching, prefetching and disk scheduling. We use a two-level cache management strategy. The kernel uses the LRU-SP policy [CFL94a] to allocate blocks to processes, and each process uses the controlledaggressive policy, an algorithm previously shown in a theoretical sense to be near-optimal, for managing its cache. Each process then improves its disk access latency by submitting its prefetches in batches and schedules the requests in each batch to optimize disk access performa...
MPVM: A Migration Transparent Version of PVM
- Computing Systems
, 1995
"... Parallel Virtual Machine (PVM) is a widely-used software system that allows a heterogeneous set of parallel and serial UNIX-based computers to be programmed as a single distributed-memory parallel machine. In this paper, an extension to PVM to support dynamic process migration is presented. Support ..."
Abstract
-
Cited by 72 (4 self)
- Add to MetaCart
Parallel Virtual Machine (PVM) is a widely-used software system that allows a heterogeneous set of parallel and serial UNIX-based computers to be programmed as a single distributed-memory parallel machine. In this paper, an extension to PVM to support dynamic process migration is presented. Support for migration is important in general-purpose workstation environments since it allows parallel computations to co-exist with other applications, using idle-cycles as they become available and off-loading from workstations when they are no longer free. A description and evaluation of the design and implementation of the prototype Migratable PVM system is presented together with some performance results. 1 Introduction PVM [1, 2, 3] is a software system that allows a heterogeneous network of parallel and serial computers to be programmed as a single computational resource. This resource appears to the application programmer as a potentially large distributed-memory virtual computer. Such a s...
Application-Controlled File Caching Policies
- IN PROC. THE 1994 SUMMER USENIX TECHNICAL CONFERENCE
, 1994
"... We consider how to improve the performance of file caching by allowing user-level control over file cache replacement decisions. We use two-level cache management: the kernel allocates physical pages to individual applications (allocation), and each application is responsible for deciding how to use ..."
Abstract
-
Cited by 67 (4 self)
- Add to MetaCart
We consider how to improve the performance of file caching by allowing user-level control over file cache replacement decisions. We use two-level cache management: the kernel allocates physical pages to individual applications (allocation), and each application is responsible for deciding how to use its physical pages (replacement). Previous work on two-level memory management has focused on replacement, largely ignoring allocation. The main contribution of this paper is our solution to the allocation problem. Our solution allows processes to manage their own cache blocks, while at the same time maintains the dynamic allocation of cache blocks among processes. Our solution makes sure that good user-level policies can improve the file cache hit ratios of the entire system over the existing replacement approach. We evaluate our scheme by trace-based simulation, demonstrating that it leads to significant improvements in hit ratios for a variety of applications.
HiPEC: High Performance External Virtual Memory Caching
, 1994
"... Traditional operating systems use a fixed LRU-like page replacement policy and centralized frame pool that cannot properly serve all types of memory access patterns of various applications. As a result, many memory-intensive applications, such as databases, multimedia applications and scientific sim ..."
Abstract
-
Cited by 44 (1 self)
- Add to MetaCart
Traditional operating systems use a fixed LRU-like page replacement policy and centralized frame pool that cannot properly serve all types of memory access patterns of various applications. As a result, many memory-intensive applications, such as databases, multimedia applications and scientific simulators, induce excessive page faults and page replacement when running on top of existing operating systems. This paper presents a High Performance External virtual memory Caching mechanism (HiPEC) to provide applications with their own specific page replacement management. The user specific policy, programmed in the HiPEC command set, is stored in user address space. When a page fault occurs, the kernel fetches and interprets the corresponding policy commands to perform the user-specific page replacement management. Experimental results show that HiPEC induces little overhead and can significantly improve performance for memory-intensive applications. 1 Introduction Though technological a...
Monster: A tool for analyzing the interaction between operating systems and computer architectures
, 1992
"... To enable computer designers to better evaluate the architectural needs of operating systems, we have developed ..."
Abstract
-
Cited by 29 (8 self)
- Add to MetaCart
To enable computer designers to better evaluate the architectural needs of operating systems, we have developed
Virtual Memory Versus File Interfaces for Large, Memory-Intensive Scientific Applications
- In Proceedings of the Conference on Supercomputing
, 1996
"... Scientific applications often require some strategy for temporary data storage to do the largest possible simulations. The use of virtual memory for temporary data storage has received criticism because of performance problems. However, modern virtual memory found in recent operating systems such as ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
Scientific applications often require some strategy for temporary data storage to do the largest possible simulations. The use of virtual memory for temporary data storage has received criticism because of performance problems. However, modern virtual memory found in recent operating systems such as Cenju-3/DE give application writers control over virtual memory policies. We demonstrate that custom virtual memory policies can dramatically reduce virtual memory overhead and allow applications to run out-of-core efficiently. We also demonstrate that the main advantage of virtual memory, namely programming simplicity, is not lost. Keywords: virtual memory, file interface, memory-intensive, scientific applications, outof -core, fetch, store, replacement, custom policies 1 Introduction Industrial and grand-challenge simulations often require more memory than can be made available in RAM on high-performance systems. The efficient use of temporary (disk) storage for memory-intensive applicat...
Malleable Memory Mapping: User-Level Control of Memory Bounds for Effective Program Adaptation
- In Proc. of the 17th IEEE/ACM International Parallel and Distributed Processing Symposium (IPDPS’03
, 2003
"... This paper presents a user-level runtime system which provides memory malleability to programs running on non-dedicated computational environments. Memory malleability is analogous to processor malleability in the memory space, i.e. it lets a program shrink and expand its resident set size in respon ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
This paper presents a user-level runtime system which provides memory malleability to programs running on non-dedicated computational environments. Memory malleability is analogous to processor malleability in the memory space, i.e. it lets a program shrink and expand its resident set size in response to runtime events, without affecting the correct execution of the program. Malleability becomes relevant in the context of grid computing, where loosely coupled distributed programs assume to run on busy computational nodes with fluctuating CPU and memory loads. User-level malleable memory is proposed as a portable solution to obtain as much as possible out of the available memory of a computational node, without reverting to more drastic solutions such as job suspension or migration, and without causing the system to thrash. Malleable memory mapping is also a solution to cope with the unpredictable behavior of existing virtual memory management policies under oversized memory loads. The current prototype is simple but leaves plenty of room for application-independent or application-specific optimizations, compiler support and other extensions. Our performance evaluation is a proof of concept that grid programs with malleable memory can improve their performance by an order of magnitude as opposed to grid programs that let their memory being reclaimed and reallocated by the OS. 1
Service without Servers
- In Workshop on Workstation Operating Systems IV
, 1993
"... We propose a new style of operating system architecture appropriate for microkernel-based operating systems: services are implemented as a combination of shared libraries and dedicated server processes. Shared libraries implement performance critical portions of each system service, while dedicated ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
We propose a new style of operating system architecture appropriate for microkernel-based operating systems: services are implemented as a combination of shared libraries and dedicated server processes. Shared libraries implement performance critical portions of each system service, while dedicated servers implement the parts of each service that do not require high performance or that are difficult to implement in an application. Our initial experiments show that this approach to operating system structure can yield performance that is comparable to monolithic kernel systems while retaining all the modularity advantages of microkernel technology. Since services reside in libraries, an application is free to use the library that is most appropriate. This approach can even yield better performance than monolithic kernel systems by allowing the shared libraries to be closely coupled with the applications, thereby exploiting application-specific knowledge in policy decisions. This researc...
Toward Operating System Support For Recoverable-Persistent Main Memory Database Systems
, 1992
"... The availability of large main memories and the emergence of new application domains make current techniques of database buffer management inadequate. To overcome this, we propose the use of the Virtual Memory Database (VMDB) approach for building large database systems. The VMDB paradigm is based o ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
The availability of large main memories and the emergence of new application domains make current techniques of database buffer management inadequate. To overcome this, we propose the use of the Virtual Memory Database (VMDB) approach for building large database systems. The VMDB paradigm is based on the principle of directly mapping a database into a virtual memory address space and exploiting the buffer management facilities of the underlying virtual memory system. We argue that for many application domains, the VMDB approach is preferable to traditional techniques. However, the lack of appropriate and efficient operating system support for recovery must first be addressed in order to make the VMDB approach attractive. To this end, we propose a simple Recoverable-Persistent Updates model and develop a scheme for ensuring that database pages in a VMDB system are propagated in an order and manner that preserves recoverability and ensures persistence. A unique feature of our scheme is i...

