Off-campus UNL users: To download campus access dissertations, please use the following link to log into our proxy server with your NU ID and password. When you are done browsing please remember to return to this page and log out.
Non-UNL users: Please talk to your librarian about requesting this dissertation through interlibrary loan.
VM-aware thread scheduling framework: Improving efficiency of Java runtime environments
Virtual machines (VMs) are software systems that provide execution environments for applications. Because virtual machines provide complete execution environments, they also generate rich runtime information as supported applications are executed. Past studies have shown that virtual machines often exploit such information to further optimize themselves in the subsequent runs or continuously during execution, especially in long running programs. However, such valuable information has rarely been exploited by the underlying operating systems to create more efficient execution environments for high-level language (HLL). This thesis attempts to exploit this information in valuable and effective ways. If such information is used by an operating system to guide its execution, we can achieve significant improvements in (i) robustness of applications, (ii) processor scalability—an important aspect due to the prevalence of multicore processors, and (iii) overall performance. ^ In this dissertation, we introduce VM-Aware Scheduling Framework, a new thread scheduling framework that relies on runtime information generated by the virtual machines to guide scheduling decisions and control execution sequences. We then apply this framework to create two schedulers designed to improve the overall performance and robustness of large Java Application servers. ^ First, we introduce jScheduler, which exploits allocation phase behavior in large Java programs to efficiently schedule threads in such a way that significantly reduces the garbage collection overhead. Our experiment using an application server benchmark shows a 15% increase in the throughput performance with jScheduler. At the same time, the result reveals that the application server benchmark can handle 25% higher workload before memory is fully exhausted. ^ Second, we introduce Contention-Aware scheduler or CA-Scheduler, which exploits synchronization information to schedule threads in a way that significantly reduces lock contentions in large multithreaded applications running in multiprocessor systems. Our prototype implementation of CA-Scheduler in Linux and Sun HotSpot JVM only incurs 2% to 3.5% of runtime overhead, while the overall performance improvement, when compared with the default Linux scheduler, can be as high as 15% in a large Java application server benchmark. In addition, the proposed CA-Scheduler shows good CPU scalability in multicore systems. In the last part of this dissertation, we discuss the future research direction based on this work. We suggest that the concept of VM-aware scheduler can be extended to avoid program failure as well as improving efficiencies of resource management. ^
Xian, Feng, "VM-aware thread scheduling framework: Improving efficiency of Java runtime environments" (2008). ETD collection for University of Nebraska - Lincoln. AAI3291923.