Despite the promising applicability of the Internet of Things (IoT), such as for home automation and health monitoring, it is laborious to develop an IoT application, because programmers should explicitly manipulate communication for shared data across heterogeneous distributed IoT devices. Recent proposals simplify the communication management with graphical views or language extensions but still require programmers to explicitly manage communication. To liberate programmers from explicit communication management, this article revisits heterogeneous distributed shared memory (HDSM) for IoT devices and proposes a compiler-runtime cooperative HDSM framework, called IoT-HDSM. The framework's compiler unifies heterogeneous memory layouts of different IoT devices, and the runtime system provides a shared memory view for the devices. To support lightweight devices that cannot execute the runtime, the compiler automatically inserts explicit communication instructions into the IoT application. Moreover, to efficiently control concurrent memory accesses without locks, the authors also propose a new annotation called the memory branch, which provides a memory snapshot for each device. This article describes the implementation of three IoT services with IoT-HDSM and shows that IoT-HDSM simplifies shared data management without harming QoS.
All Science Journal Classification (ASJC) codes
- Hardware and Architecture
- Electrical and Electronic Engineering