Abstract
Trends of embedded system development recently point toward multicore architecture with increasingly parallel hardwares. Efficient system software is becoming a critical aspect of developing multicore applications for embedded systems. There are challenges associates to the system software design and implementation for embedded multicore processors, effective programming model, efficient runtime system, and testing of concurrent softwares. This dissertation tackles the challenges of designing and implementing high performance system software for multicore processors. First, it examines the issues of parallelizing application on multicore processors and then presents an effective programming model to extract the parallelism in the applications. The programming environment considers not only the programmability but also the performance and maintenance of the applications. The programming model contains a data streaming technique for optimizing multimedia applications to reduce the communication overhead. The programming environment also contains design patterns that demonstrates the usage of the programing model. Second, this dissertation illustrates the design and implementation of the operating system and communication library. The operating system adapts a technique of reducing the context switch overhead during task switching for optimizing the performance of operating system. Finally, this dissertation introduce an automatic testing and verification tool, pTest, for testing the concurrent multicore softwares. pTest contains a formal representation to generate testing patterns for testing the runtime execution behavior. The experiments demonstrate the testing tool by evaluating the development flow of the programing environment. System software is a key factor to the efficiency of embedded multicore applications. The technique presented in this article address the issues of designing the programming environment, optimizing the overhead of runtime system, and verifying the current applications. This dissertation presents the design and implementation of efficient system software for multicore processors and discusses issues and solution of building efficient system software for multicore processors.