Implementation of Multiprocessing and Multithreading for End Node Middleware Control on Internet of Things Devices

Authors

DOI:

https://doi.org/10.25139/inform.v6i1.3346

Keywords:

Raspberry Pi, Internet of Things, Multiprocessing, Multithreading, Middleware, Educational robot

Abstract

Previously, an educational robot system was built by incorporating Internet of Things (IoT) elements. Over time, this educational robot has been implanted with a middleware. Middleware has a role in receiving command data from the real-time database, access sensors, actuators, and sending feedback. Middleware contains protocols that translate commands between high-level programming and Raspberry Pi hardware. The focus of this research is to improve the performance of the middleware to pursue processing time efficiency. For this reason, it is necessary to implement multiprocessing and multithreading in handling several tasks. The division of tasks on the CPU has been adjusted automatically to not work on just one core or block of memory. Several program functions can run in parallel and reduce program execution time efficiently. The tasks handled are sensor reading and actuator control in the form of a motor. Testing has been carried out to perform multiprocessing and multithreading tasks to process six sensors and five actuators. Multiprocessing requires an average of 1.00% to 15.00% CPU usage and 2.70% memory usage. Meanwhile, multithreading involves an average of 1.00% to 71.00% CPU usage and 3.30% memory usage.

References

[1] S. Li, L. Da Xu, and S. Zhao, "The internet of things: a survey," Inf. Syst. Front., 2015, DOI: 10.1007/s10796-014-9492-7.
[2] J. F. Nusairat, "Raspberry Pi," in Rust for the IoT, Berkeley, CA: Apress, 2020, pp. 391–427.
[3] A. Jalil, “Pemanfaatan Middleware Robot Operating System (ROS) Dalam Menjawab Tantangan Revolusi Industri 4.0,” Ilk. J. Ilm., 2019, doi: 10.33096/ilkom.v11i1.412.45-52.
[4] M. R. Rizqullah, A. R. Anom Besari, I. Kurnianto Wibowo, R. Setiawan, and D. Agata, "Design and Implementation of Middleware System for IoT Devices based on Raspberry Pi," in 2018 International Electronics Symposium on Knowledge Creation and Intelligent Computing (IES-KCIC), Oct. 2018, pp. 229–234, DOI: 10.1109/KCIC.2018.8628528.
[5] A. H. H. Ngu, M. Gutierrez, V. Metsis, S. Nepal, and M. Z. Sheng, "IoT Middleware: A Survey on Issues and Enabling technologies," IEEE Internet Things J., pp. 1–1, 2016, DOI: 10.1109/JIOT.2016.2615180.
[6] Y. Nakamura, H. Suwa, Y. Arakawa, H. Yamaguchi, and K. Yasumoto, "Design and Implementation of Middleware for IoT Devices toward Real-Time Flow Processing," 2016, DOI: 10.1109/ICDCSW.2016.37.
[7] N. S. Arora, R. D. Blumofe, and C. G. Plaxton, "Thread Scheduling for Multi programmed Multiprocessors," Theory Comput. Syst., vol. 34, no. 2, pp. 115–144, Jan. 2001, DOI: 10.1007/s002240011004.
[8] F. Menczer, S. Fortunato, and C. A. Davis, "Python Tutorial," in A First Course in Network Science, Cambridge University Press, 2020, pp. 221–237.
[9] R. Odaira, J. G. Castanos, and H. Tomari, "Eliminating global interpreter locks in ruby through hardware transactional memory," ACM SIGPLAN Not., 2014, DOI: 10.1145/2692916.2555247.
[10] L. Moroney and L. Moroney, "The Firebase Realtime Database," in The Definitive Guide to Firebase, 2017.
[11] W. J. Li, C. Yen, Y. S. Lin, S. C. Tung, and S. M. Huang, "JustIoT Internet of Things based on the Firebase real-time database," 2018, DOI: 10.1109/SMILE.2018.8353979.
[12] J. Devietti, B. Lucia, L. Ceze, and M. Oskin, "DMP: Deterministic Shared-Memory Multiprocessing," IEEE Micro, vol. 30, no. 1, pp. 40–49, Jan. 2010, DOI: 10.1109/MM.2010.14.

Downloads

Published

2021-01-31

How to Cite

Implementation of Multiprocessing and Multithreading for End Node Middleware Control on Internet of Things Devices. (2021). Inform : Jurnal Ilmiah Bidang Teknologi Informasi Dan Komunikasi, 6(1), 54–60. https://doi.org/10.25139/inform.v6i1.3346

Issue

Section

Articles

Most read articles by the same author(s)

Obs.: This plugin requires at least one statistics/report plugin to be enabled. If your statistics plugins provide more than one metric then please also select a main metric on the admin's site settings page and/or on the journal manager's settings pages.