Abstract:In the multi-processor environment, real-time systems have a concurrent event-driven nature. The software structure presents multiple synchronization points and producer-consumer interrelations, which give rise to a very complex control structure. The lack of standard methods and tools for software development in these systems results in poorly specified software with an unclear structure that is very difficult and expensive to maintain. In order to develop this kind of software with high efficiency and maintainability, the Petri net is adopted to represent multi-processor system software since the Petri net is a very powerful description tool for the parallel and concurrent program. In this paper, a methodology for programming multiprocessor real-time systems is discussed. This methodology is based on two programming levels: the task level, which involves programming the basic actions that may be executed in the system as units with a single control thread, and the job level, on which parallel programs to be executed by the complete multiprocessor system are developed. The model that has been chosen for the representation of the system software is based on an objected oriented oriented Petri net, which facilitates job-level Programming. In this research, in order to support a reliable program structure, a natural, simple, and flexible procedure has been sought to describe the concurrence, synchronization, and communication phenomena inherent in this kind of software in a way that is very close to how the human programmer conceives of them. The structure and implementation of an operating system for the proposed methodology are described in this paper.