Embedded systems are typically resource constrained, i.e., resources such as processors, I/O devices, shared buffers or shared memory can be limited for tasks in the system. Therefore, techniques that enable an efficient usage of such resources are of great importance.
In the industry, typically large and complex software systems are divided into smaller parts (applications) where each part is developed independently. Migration towards multiprocessor platforms has become inevitable from an industrial perspective. Due to such migration and to efficient use of system resources, these applications eventually may be integrated on a shared multiprocessor platform. In order to facilitate the integration phase of the applications on a shared platform, the timing and resource requirements of each application can be provided in an interface when the application is developed. The system integrator can benefit from such provided information in the interface of each application to ease the integration process. In this thesis, we have provided the resource and timing requirements of each application in their interfaces for applications that may need several processors to be allocated on when they are developed.
Although many scheduling techniques have been studied for multiprocessor systems, these techniques are usually based on the assumption that tasks are independent, i.e. do not share resources other than the processors. This assumption is typically not true. In this thesis, we provide an extension to such systems to handle sharing of resources other than processor among tasks. Two traditional approaches exist for multiprocessor systems to schedule tasks on processors. A recent scheduling approach for multiprocessors has combined the two traditional approaches and achieved a hybrid more efficient approach compared to the two previous one. Due to the complex nature of this scheduling approach the conventional approaches for resource sharing could not be used straight forwardly. In this thesis, we have modified resource sharing approaches such that they can be used in such hybrid scheduling systems. A second concern is that enabling resource sharing in the systems can cause unpredictable delays and variations in response time of tasks which can degrade system performance. Therefore, it is of great significance to improve the resource handling techniques to reduce the effect of imposed delays caused by resource sharing in a multiprocessor platform. In this thesis we have proposed alternative techniques for resource handling that can improve system performance for special setups.