Explore chapters and articles related to this topic
Interprocess Communication Primitives in POSIX/Linux
Published in Ivan Cibrario Bertolotti, Gabriele Manduchi, Real-Time Embedded Systems, 2017
Ivan Cibrario Bertolotti, Gabriele Manduchi
Chapters 5 and 6 have introduced the basic concepts of interprocess communication, called IPC in the following text. These mechanisms are implemented by operating systems to allow the correct execution of processes. Different operating systems define different IPC interfaces, often making the porting of applications to different platforms a hard task (Chapter 19 will address this issue). In this chapter, the interprocess communication primitives are presented for the Linux operating system, for which the Application Programming Interface (API)has been standardized in POSIX. POSIX, which stands for “Portable Operating System Interface [for Unix],” is a family of standards specified by the IEEE to define common APIs along variants of the Unix operating system, including Linux. Until recently, the POSIX API was regulated by IEEE Standard 1003.1 [42]. It was later replaced by the joint ISO/IEC/IEEE Standard 9945 [48].
Modeling and Simulation Tools for Mobile Ad Hoc Networks
Published in Jonathan Loo, Jaime Lloret Mauri, Jesús Hamilton Ortiz, Mobile Ad Hoc Networks, 2016
Kayhan Erciyes, Orhan Dagdeviren, Deniz Cokuslu, Onur Yılmaz, Hasan Gumus
In today’s research community, especially in distributed computing domain, simulators are highly utilized to test and evaluate studies. Many researchers create their own simulation environment for many reasons. For that purpose, threads, which are provided by operating systems, are very powerful tools to create application-specific simulation environments. A thread is the smallest unit of processing that can be scheduled by the operating systems. Threads are created at their parent process context and can be scheduled as different processes. They can share the same resources provided by their parent process and are very suitable for simulating message-passing environments using the shared memory space. POSIX thread is an application programming interface (API) for creating and manipulating threads. Implementations of the API are available on many Unix-like POSIX systems, such as FreeBSD, NetBSD, GNU/Linux, and Mac OS X. Some variations of POSIX threads also exist for Microsoft Windows and Solaris-based operating systems.
Role of AUTOSAR in Automotive Software Trends
Published in P. Sivakumar, B. Vinoth Kumar, R. S. Sandhya Devi, Software Engineering for Automotive Systems, 2022
P. Sivakumar, A. Pavithra, S. K. Somasundarum, P. K. Somanathan, A. Manimuthu
AUTOSAR adaptive platform runs on POSIX-based (PSE51). POSIX stands for “Portable Operating System Interface” through which one can access the OS. Through PSE 51, about 300 APIs can be used, which allows higher portability. POSIX-based totally (PSE51) additionally helps preemptive multitasking and allows a dynamic variety of tasks.
A backstepping disturbance observer control for multirotor UAVs: theory and experiment
Published in International Journal of Control, 2022
Amir Moeini, Alan F. Lynch, Qing Zhao
We implement our proposed control on the PX4 autopilot firmware which is an active and mature open-source project intended for research and commercial applications (Meier, 2018). PX4 runs on a number of hardware platforms and various robot types. It has a modular structure where individual autopilot functionality (e.g. motion control, state estimation) is separated into self-contained modules which each runs as a task on NuttX RTOS platforms (e.g. Pixhawk) or as a thread within the main PX4 process on POSIX platforms (e.g. SITL). This modular structure has a number of advantages. For example, adding a new control method to the system is relatively straightforward as only a small component of the code with a well-defined interface needs to be modified. The so-called PX4 middleware supports communication between the modules, sensor device drivers, and communication outside PX4. Module communication is implemented with the micro-object request broker (uORB) which provides a publish/subscribe bus. Using uORB, publishers send messages (e.g. a UAV control input) onto a bus instead of sending the messages directly to specific subscriber modules. Also, subscribers receive messages as soon as there are updates. PX4 provides driver modules for the hardware components (e.g. IMU, GPS and PWM outputs) and libraries for programming (e.g. matrix computation).
Thermal Upscattering Acceleration Schemes for Parallel Transport Sweeps
Published in Nuclear Science and Engineering, 2020
The PDT code uses a task-based parallelization model where each task represents a solution of the transport equation for a set of cells (a cell set), angles (an angle set), and groups (a group set). The cell sets are assumed to be Cartesian bricks, but each cell set may consist of an arbitrarily unstructured mesh of polyhedral cells. The cell sets are divided among the parallel processes allotted for the execution,cTypically, message passing interface ranks, but depending on the mode of execution, a process can also represent an OpenMP thread, a POSIX thread, etc. forming a partitioning of the domain into a process grid. As explained in Ref. 1, the most efficient sweep strategy is obtained by assigning one cell set per process in the and dimensions and by assigning one or more cell sets per process in the dimension.
P-HS-SFM: a parallel harmony search algorithm for the reproduction of experimental data in the continuous microscopic crowd dynamic models
Published in Journal of Experimental & Theoretical Artificial Intelligence, 2018
Khalid Mohammad Jaber, Osama Moh’d Alia, Mohammed Mahmod Shuaib
The architecture of a parallel environment is required to connect all the nodes involved, for example through the use of shared or distributed memory. Communication between processors forms the basis of parallel computation. Fortunately, many message-passing libraries have been developed that can initiate and configure the messaging environment as well as send and receive packets of data between processors (Leopold, 2001). The two most popular message-passing libraries are the Parallel Virtual Machine (PVM) and Message Passing Interface (MPI), while the most popular execution models in terms of shared address space paradigms are POSIX Thread and OpenMP (Leopold, 2001).