The recent past has seen single processing systems becoming obsolete and multiprocessor systems taking over as the architecture of choice. More scalable architectures are being introduced to keep up with the ever increasing computational requirements. Inevitably the software industry has to keep up and provide tools which would allow easy development of parallel applications on these complex architectures. Programming languages unable to support these architectures will become obsolete and new languages will be developed designed to serve the purpose. Existing languages that have the potential of coping with such architectures will be extended. Java is an object oriented language which provides features like platform independence and concurrency by design. It is supported on a wide range of computational devices starting from high performance computing servers to small hand held mobiles. This makes Java a very popular language, with a large pool of programmers. Therefore, it is not strange to see Java being extended for different multiprocessor and distributed systems. The Real-Time Specification for Java (RTSJ) was introduced as a high level platform for developing real-time applications. It has been gaining popularity since its inception and is being increasingly used for real time development. The recent version of RTSJ (i.e. RTSJ~1.1) has included some support for multiprocessors. The changes that have been introduced are largely related to the scheduling and dispatching of threads in symmetric multiprocessors. It is assumed that the memory allocations will not affect the timing properties of the system and it will be accessed uniformly. This thesis argues that these changes are not enough to support shared memory multiprocessors on RTSJ; and the following issues need to be addressed: \begin{itemize} \item In shared memory multiprocessors, uniform memory access (UMA) systems are not scalable and will be replaced by cache coherent non-uniform memory access (cc-NUMA) systems. Locality can largely affect the performance of applications and cause unpredictable delays in real-time applications on cc-NUMA systems. These delays are caused by the distributed memory layout in cc-NUMA and can be reduced by giving applications more control and visibility into the allocation policies of threads and memory. \item The increased computational power of multiprocessors encourages the platform to be shared by multiple applications. In such an environment, real-time applications require temporal guarantees from the platform to meet their timing requirements. \end{itemize} The key contribution of this thesis is to extend the programming model of RTSJ to provide programmers with locality constraints. Existing support in RTSJ for locality is shown to be very limited and a new locality model is presented which enables programmers to develop portable applications. Applications are divided into multiple partitions and temporal guarantees are provided to partitions allowing them to be analyzed in isolation from the rest of the system. A prototype of the aforementioned model is implemented and tested. A series of experiments are conducted to prove the effectiveness of the model. In particular, the effect of locality is highlighted by performance measuring in a multithreaded environment.
Identifer | oai:union.ndltd.org:bl.uk/oai:ethos.bl.uk:556468 |
Date | January 2012 |
Creators | Malik, Haseeb |
Contributors | Wellings, Andy |
Publisher | University of York |
Source Sets | Ethos UK |
Detected Language | English |
Type | Electronic Thesis or Dissertation |
Source | http://etheses.whiterose.ac.uk/2289/ |
Page generated in 0.0019 seconds