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

  • Iwan Kurnianto Wibowo Program Studi Teknik Komputer, Politeknik Elektronika Negeri Surabaya
  • Adnan Rachmat Anom Besari Program Studi Teknik Komputer, Politeknik Elektronika Negeri Surabaya
  • Muh. Rifqi Rizqullah Program Studi Teknik Komputer, Politeknik Elektronika Negeri Surabaya
Abstract views: 304 , PDF downloads: 60
Turnitin (Bahasa Indonesia) downloads: 0
Copyright (Bahasa Indonesia) downloads: 0
Ethical Statement (Bahasa Indonesia) downloads: 0
Keywords: Raspberry Pi, Internet of Things, Multiprocessing, Multithreading, Middleware, Educational robot


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.


[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.