Profile-Directed Restructuring of Operating System Code

@article{Schmidt1998ProfileDirectedRO,
  title={Profile-Directed Restructuring of Operating System Code},
  author={William J. Schmidt and Robert R. Roediger and Cynthia S. Mestad and Bilha Mendelson and Inbal Shavit-Lottem and Vita Bortnikov-Sitnitsky},
  journal={IBM Syst. J.},
  year={1998},
  volume={37},
  pages={270-297}
}
In this paper we describe how a profiling system can be successfully used to restructure the components of an operating system for improved overall performance. We discuss our choice of a profiling system and how it was applied to the AS/400® (Application System/400®) operating system for the purpose of reordering code. Previous work in the industry has been mainly useful only for application programs. Our work demonstrates how such techniques can be applied to operating system code, while… 
Building application-specific operating systems: a profile-guided approach
TLDR
Tarax, a compiler-based approach to constructing an ASOS for each application with profile collected from executing the target application on an instrumented Linux kernel, recompiles the kernel while applying profile-guided optimizations (PGOs).
Building a Global System View for Optimization Purposes
TLDR
A new approach for global optimization based on building a global view of the system, a global control flowgraph is presented and it is shown that typical optimizations on a specific embedded environment reduce the code size by up to 54%.
Overcoming the Challenges to Feedback-Directed Optimization
TLDR
It is argued that current trends in hardware and software technology have resulted in an execution environment where immutable executables and traditional static optimizations are no longer sufficient and the current state of affairs in FDO is reviewed.
Design and Analysis of Profile-Based Optimization in Compaq's Compilation Tools for Alpha
This paper describes and evaluates the profile-based optimizations in the Compaq C compiler tool chain for Alpha. The optimizations include superblock formation, inlining, commando loop optimization,
Dynamic Kernel Code Optimization
  • Computer Science
  • 1998
TLDR
The first run-time kernel implementation of code positioning, an structure for turning an unmodified commodity kernel into an evolving one, and a means for converting wall time instrumentation-based kernel time measurements via instrumentation of the kernel’s context switch handlers are described.
System-wide compaction and specialization of the linux kernel
TLDR
This work proposes the application of link-time compaction and specialization techniques that exploit the a priori known, fixed run-time environment of many embedded systems to overcome the expensive code size overhead when it is used in the embedded market.
Overcoming the challenges to feedback-directed optimization (Keynote Talk)
TLDR
It is argued that current trends in hardware and software technology have resulted in an execution environment where immutable executables and traditional static optimizations are no longer sufficient and the current state of affairs in FDO is reviewed.
Feedback directed optimization in Compaq's compilation tools for Alpha
TLDR
Feedback directed optimization is highly effective, achieving a 17% speedup over aggressive classical optimization and code layout, superblock formation, and loop restructuring are also important.
Combining code reordering and cache configuration
TLDR
Experimental results show that code reordering coupled with cache configuration reveals additional energy savings as high as 10--15% for several benchmarks with reduced cache area.
Characterizing the memory behavior of Java workloads: a structured view and opportunities for optimizations
TLDR
It is found that co-allocation of frequently used method tables can reduce the number of TLB misses and lower the cost of accessing type information block entries in virtual method calls and runtime type checking.
...
...

References

SHOWING 1-10 OF 40 REFERENCES
Improving UNIX kernel performance using profile based optimization
TLDR
This paper shows how operating systems can be improved to make better use of RISC architectures, particularly in some of the networking code, using a compiling technique known as Profile Based Optimization (PBO).
Compile-Time Program Restructuring in Multiprogrammed Virtual Memory Systems
TLDR
An evaluation is made of a way to reduce the cost of program restructuring by having a compiler determine the program's packing in virtual address space from an analysis of its source code, which is not successful in a simulation of a virtual memory system using disks as secondary storage devices.
The impact of operating system structure on memory system performance
TLDR
This paper evaluates the memory system behavior of two distinctly different implementations of the UNIX operating system: DEC's Ultrix, a monolithic system, and Mach 3.0 with CMU's UNIX server, a microkernel-based system, showing that the micro kernel- based system executes substantially more non-idle system instructions for an equivalent workload than themonolithic system.
Improving locality by critical working sets
TLDR
The experimental results obtained by using the method to restructure an interactive text editor and the file system module of an operating system have shown its substantial superiority over the other methods proposed in the literature.
Trace-directed program restructuring for AIX executables
TLDR
Using the prototype tools developed for this effort on a selection of both user-level application programs and operating system (kernel) code, improvements in execution time and reduced instruction memory requirements of up to 61% were measured.
The Working Set Model for Program
TLDR
In this paper a new model, the "working set model," is developed, defined to be the collection of its most recently used pages, which provides knowledge vital to the dynamic management of paged memories.
Compile time instruction cache optimizations
TLDR
The notion of abstract caches is introduced and the results show that in certain cases, the number of cache misses is reduced by two orders of magnitude.
Program Restructuring for Virtual Memory
TLDR
Experimental techniques that can significantly reduce paging exceptions in existing, frequently executed programs and computer displays of memory usage facilitate further optimization of program structure are described.
Optimally profiling and tracing programs
TLDR
Algorithms for inserting monitoring code to profile and trace programs that greatly reduce the cost of measuring programs and reduce the file size and overhead of an already highly optimized tracing system are presented.
The working set model for program behavior
TLDR
A new model, the “working set model,” is developed, defined to be the collection of its most recently used pages, which provides knowledge vital to the dynamic management of paged memories.
...
...