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 SizeFormat 
B.SC.(HONS)IT_D_Emanuele_Karlston_2004.PDF
  Restricted Access
6.85 MBAdobe PDFView/Open Request a copy


Items in OAR@UM are protected by copyright, with all rights reserved, unless otherwise indicated.