Farhang Nemati
Mälardalen University College
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Farhang Nemati.
euromicro conference on real-time systems | 2011
Farhang Nemati; Moris Behnam; Thomas Nolte
In this paper we propose a synchronization protocol for resource sharing among independently-developed real-time systems on multi-core platforms. The systems may use different scheduling policies and they may have their own local priority settings. Each system is allocated on a dedicated processor (core). In the proposed synchronization protocol, each system is abstracted by an interface which abstracts the information needed for supporting global resources. The protocol facilitates the composability of various real-time systems with different scheduling and priority settings on a multi-core platform. We have performed experimental evaluations and compared the performance of our proposed protocol (MSOS) against the two existing synchronization protocols MPCP and FMLP. The results show that the new synchronization protocol enables composability without any significant loss of performance. In fact, in most cases the new protocol performs better than at least one of the other two synchronization protocols. Hence, we believe that the proposed protocol is a viable solution for synchronization among independently-developed real-time systems executing on a multi-core platform.
emerging technologies and factory automation | 2009
Mikael Åsberg; Moris Behnam; Farhang Nemati; Thomas Nolte
AUTOSAR is a partnership between automotive manufactures and suppliers. It aims at standardizing the automotive software architecture and separating software and hardware. This approach makes software more independent, maintainable, reuseable, etc. Still there is much work to do in order for this standard to be usable. This paper focus on automotive software integration in AUTOSAR, with the use of hierarchical scheduling as an enabling technology. At this point, AUTOSAR components do not have any timing relation with its tasks. This causes an unpredictive runtime behavior which can only be analyzed and verified after integration phase. We discuss how integration can be done in AUTOSAR, with runtime temporal isolation of components. This enable schedulability analysis at the level of components rather than at the level of tasks.
international conference on principles of distributed systems | 2010
Farhang Nemati; Thomas Nolte; Moris Behnam
In this paper we propose a blocking-aware partitioning algorithm which allocates a task set on a multiprocessor (multi-core) platform in a way that the overall amount of blocking times of tasks are decreased. The algorithm reduces the total utilization which, in turn, has the potential to decrease the total number of required processors (cores). In this paper we evaluate our algorithm and compare it with an existing similar algorithm. The comparison criteria includes both number of schedulable systems as well as processor reduction performance.
international conference on parallel processing | 2009
Farhang Nemati; Moris Behnam; Thomas Nolte
Multi-core architectures have received significant interest as thermal and power consumption problems limit further increase of speed in single-cores. In the multi-core research community a considerable amount of work has been done on real-time multi-core scheduling algorithms where it is assumed tasks are independent. However, synchronization of dependent tasks executing on multi-cores has not received as much attention, even though typical real-time systems in practice include tasks that share resources. In this paper we propose a synchronization protocol for hierarchically scheduled multi-core systems, and we present a comparison between the presented protocol and existing multi-core synchronization protocols. The presented protocol groups dependent tasks that directly or indirectly share mutually exclusive resources into independent components. Within a component dependent tasks use classical uniprocessor synchronization protocols, such as the Stack-based Resource allocation Protocol. The components are then scheduled on the cores by a global scheduler. There are two major approaches for scheduling multicore: partitioned and global scheduling. While most existing multi-core synchronization protocols support only one category, the protocol presented in this paper is developed to handle both scheduling approaches. The presented approach is developed to allow for co-execution of existing legacy real-time applications along with new applications, i.e., a legacy application is put into one or more components preserving its own (original) scheduling and synchronization protocols.
emerging technologies and factory automation | 2009
Farhang Nemati; Moris Behnam; Thomas Nolte
Power consumption and thermal problems limit a further increase of speed in single-core processors. Multi-core architectures have therefore received significant interest. However, a shift to multi-core processors is a big challenge for developers of embedded real-time systems, especially considering existing “legacy” systems which have been developed with uniprocessor assumptions. These systems have been developed and maintained by many developers over many years, and cannot easily be replaced due to the huge development investments they represent. An important issue while migrating to multi-cores is how to distribute tasks among cores to increase performance offered by the multi-core platform. In this paper we propose a partitioning algorithm to efficiently distribute legacy system tasks along with newly developed ones onto different cores. The target of the partitioning is increasing system performance while ensuring correctness.
ACM Sigbed Review | 2015
Sara Afshar; Nima Moghaddami Khalilzad; Farhang Nemati; Thomas Nolte
In this paper, we propose a new protocol for handling resource sharing among prioritized real-time applications composed on a multiprocessor platform. We propose an optimal priority assignment algorithm which assigns unique priorities to the applications based on information in their interfaces. We have performed experimental evaluations to compare the proposed protocol (called MSOS-Priority) to the current state of the art locking protocols under multiprocessor partitioned scheduling, i.e., MPCP, MSRP, FMLP, MSOS, and OMLP. The evaluations show that MSOS-Priority mostly performs significantly better than alternative approaches.
embedded and real-time computing systems and applications | 2012
Sara Afshar; Farhang Nemati; Thomas Nolte
Semi-partitioned scheduling has become the subject of recent interest for multiprocessors due to better utilization results, compared to conventional global and partitioned scheduling algorithms. Under semi-partitioned scheduling, a major group of tasks are assigned to fixed processors while a low number of tasks are allocated to more than one processor. Various task assigning techniques have recently been proposed in a semi-partitioned environment. However, a synchronization protocol for resource sharing among tasks in semi-partitioned scheduling has not yet been investigated. In this paper we propose and evaluate two protocols for handling resource sharing under semi-partitioned scheduling in multiprocessor platforms. The main challenge addressed in this paper is to serve the resource requests of tasks that are assigned to different processors.
emerging technologies and factory automation | 2008
Farhang Nemati; Johan Kraft; Thomas Nolte
Power consumption and thermal problems limit the single-core processors to be faster. Processor architects are therefore moving toward multi-core processors. Developers of embedded real-time systems however hesitates a shift to multi-core processors, especially for existing ldquolegacyrdquo systems which have been developed with single-core processor assumptions. These systems have been developed and maintained by many developers over many years, and can not easily be replaced due to the huge development investments they represent. In this paper we investigate challenges of migrating complex legacy real-time systems to multi-core architectures. We propose componentization and partitioning to prepare the migration. Componentization groups logically related tasks into components (or subsystems). This provides an abstraction layer from a scheduling perspective, which facilitates migration. Partitioning maps tasks to the different cores on the multi-core processor, maximizing system performance while ensuring correctness.
international symposium on industrial embedded systems | 2012
Sara Afshar; Farhang Nemati; Thomas Nolte
Semi-partitioned scheduling has been the subject of recent interest, compared with conventional global and partitioned scheduling algorithms for multiprocessors, due to better utilization results. In semi-partitioned scheduling most tasks are assigned to fixed processors while a low number of tasks are split up and allocated to different processors. Various techniques have recently been proposed to assign tasks in a semi-partitioned environment. However, an appropriate resource sharing mechanism for handling the resource requests between tasks in semi-partitioned scheduling has not yet been investigated. In this paper we propose two methods for handling resource sharing under semi-partitioned scheduling in multiprocessor platforms. The main challenge is to handle the resource requests of tasks that are split over multiple processors.
embedded and real-time computing systems and applications | 2011
Farhang Nemati; Thomas Nolte
Recently there has been a lot of interest in coexisting of multiple independently-developed real-time applications on a shared open platform. On the other hand, emerging of multi-core platforms and the performance and possibilities they offer has attracted a lot of attention in multiprocessor real-time analysis, protocols and techniques. Co-executing independently-developed real-time applications on a shared multiprocessor system, where each application executes on a dedicated sub set of processors, requires to overcome the problem of handling mutually exclusive shared resources among those applications. To handle resource sharing, it is important to determine the Resource Hold Time (RHT), i.e., the maximum duration of time that an application locks a shared resource. In this paper, we study resource hold times under multiprocessor static-priority global scheduling. We present how to compute RHTs for each resource in an application. We also show how to decrease the RHTs without compromising the schedulability of the application. We show that decreasing all RHTs for all shared resources is a multiobjective optimization problem and there can exist multiple Pareto-optimal solutions.