New resource allocation algorithms for emerging computer systems
Date of Issue2017-05-05
School of Computer Science and Engineering
Computer systems today are moving towards both greater distribution and consolidation, ranging from multicore systems to clouds. For example, in a multicore system, tasks are distributed and executed by multiple concurrent threads, and meanwhile the threads are consolidated to run on the system. As another example, in Amazon EC2 service which provides its computing resource to clients in terms of virtual machine instance, clients' tasks are distributed and executed in thousands of virtual machines, and meanwhile the virtual machines run on a set of physical machines, leading to consolidation of the virtual machines. The systems consolidating threads contain a number of limited resources (e. g. cache, memory) to make their hosted threads run , and therefore their resource should be shared among these threads. Properly allocating the shared resource among threads is crucial to achieve high overall performance. A realistic method to allocate resource effectively is to use utility function to track each thread 's resource demand and direct the resource allocation, where utility function describes each thread's performance based on the amount of resource it gets. In the thesis, we study how to allocate a shared resource in the emerging computer systems, such as multicore systems, virtual machine systems to achieve high overall performance. In addition, there are a number of distributed resource in distributed systems. For example, in a web hosting center. a number of web service threads run on multiple servers and compete for resources such as processing or memory. We also investigated distributed resource allocation problem. In the thesis, we proposed efficient and effective resource allocation algorithms, guaranteeing good performance bounds.
DRNTU::Engineering::Computer science and engineering