Please use this identifier to cite or link to this item:
https://www.um.edu.mt/library/oar/handle/123456789/93903| Title: | High-performance multithreading for windows |
| Authors: | D'Emanuele, Karlston (2004) |
| Keywords: | Information technology Simultaneous multithreading processors Microsoft Windows (Computer file) Parallel processing (Electronic computers) |
| Issue Date: | 2004 |
| Citation: | D'Emanuele, K. (2004). High-performance multithreading for Windows (Bachelor's dissertation). |
| Abstract: | Increasing an application's performance by keeping standard software engineering principles is one of the main reasons for applying concurrency. In recent years user-level threads have been investigated as a solution to implement fine-grained applications. Nevertheless, most of the work in the area was performed in the UNIX environment. This dissertation investigates the migration of high-performance techniques to the Microsoft Windows operating system. We develop a user-level thread scheduler that follows an object-oriented approach. The scheduler provides a single run queue for user-level threads implemented as a circular singly-linked list. A user-level memory manager which allows memory to be reused is integrated within the scheduler. We also extended the user-level threads API for reuse. Our work also implements a lock-free stack to protect the run queue's consistency. The user-level scheduler provides a performance gain of 93.5% on thread creation and 57.2% on context switching when compared to traditional kernel threads. With the advent of cheaper and faster network technology more and more communication-centric environments are being setup based on fine-grained applications. The lack of kernel awareness of our user-level thread scheduler raises the problem of blocking system calls. When performing a system call the kernel thread on which the user-level thread scheduler is running on is blocked until the call returns. This results in the user-level thread scheduler to block. To maintain high performance gains, our scheduler is extended with two non-blocking mechanisms. One of the non-blocking techniques implemented makes use of the callback mechanism, which is the common way of achieving asynchronous system calls in the Windows environment. Additionally, we also implemented a new non-blocking mechanism that migrates the scheduler to a new kernel thread whenever a blocking system call is performed. From the results obtained we have noted that the migrating scheduler outweighs the callback non-blocking scheduler. |
| Description: | B.Sc. IT (Hons)(Melit.) |
| URI: | https://www.um.edu.mt/library/oar/handle/123456789/93903 |
| Appears in Collections: | Dissertations - FacICT - 1999-2009 Dissertations - FacICTCS - 1999-2007 |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| B.SC.(HONS)IT_D_Emanuele_Karlston_2004.PDF Restricted Access | 6.85 MB | Adobe PDF | View/Open Request a copy |
Items in OAR@UM are protected by copyright, with all rights reserved, unless otherwise indicated.
