Application of GO programming language for simulation of mass service processes

Authors

DOI:

https://doi.org/10.30837/2522-9818.2024.2.065

Keywords:

computer simulation; System of Mass Services; Go programming language; concurrency.

Abstract

The subject matter of the article is methods and approaches to software modeling of System of Mass Services on the example of a multi-channel system with a limited queue and failures in case of its overflow. The goal of the work is to justify the feasibility of using modern computer information technologies, namely the Go programming language for modeling System of Mass Services. The following tasks were solved in the article: formulation of the researched System of Mass Services; determination of components, criteria of kinship of System of Mass Services with their software models; general overview of concurrency as a mathematical model; a description of the approaches and tools of the Go programming language. The following methods are used: Go programming language and its tools, concurrency, parallel execution. The following results were obtained: the researched task of mass service was formulated; criteria for comparing the components of System of Mass Services with the Go programming language toolkit were formed; an analysis of the feasibility of using the Go programming language for modeling System of Mass Services was carried out; received further development of tools for computer simulation of System of Mass Services; the application of concurrency approaches, their implementation in the Go programming language, to the modeling of System of Mass Services is proposed. Conclusions: The Go programming language is a very successful technology for modeling System of Mass Services. Its philosophy, way of working, as well as the built-in toolset provide ample opportunities for modeling various System of Mass Services. The use of this language is appropriate and allows to bring the behavior of the program closer to the simulated process, simplify implementation, and reduce the time required for data processing. There are great prospects for the further implementation of a software product implemented in the Go language in the field of mass service process modeling.

Author Biography

Denys Goldiner, Kharkiv National University of Radio Electronics

Kharkiv National University of Radio Electronics, PhD Student

References

Список літератури

Литвинов А.Л. Теорія систем масового обслуговування. Харків: ХНУМГ ім. О.М. Бекетова, 2018. 141 с.

Borovkov A. Stochastic Processes in Queueing Theory. Translate by K.Wickwire. New York: Springer-Verlag, 1976. 280 p. DOI: https://doi.org/10.1007/978-1-4612-9866-3

Chabbi M., Ramanathan M.K. A study of real-world data races in Golang. PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, San Diego, 13–17 June 2022 / Special Inter. Group on Program. Lang. SIGPLAN. New York, 2022. P. 474–489. DOI: https://doi.org/10.1145/3519939.3523720

Zeifman A.I. Quasi-Markov Processes and Description of Some Models of Queueing Theory. IFAC Proceedings Volumes. 1986. Vol. 19. No. 5. P. 445–449. DOI: https://doi.org/10.1016/S1474-6670(17)59840-7

Hoare А. Communicating sequential processes. New Jersey: Prentice Hall, 1985. 235 p. DOI: https://doi.org/10.1145/359576.359585

Yunfei Liu EMsFEM based concurrent topology optimization method for hierarchical structure with multiple substructures/ Yunfei Liu et al. Computer Methods in Applied Mechanics and Engineering. 2024. Vol. 418. Part A. 116549. P. 1–26. DOI: https://doi.org/10.1016/j.cma.2023.116549

C. A. R. Hoare. Communicating sequential processes. Communications of the ACM. 1978. Vol. 21. No 8. P. 666–677. DOI: https://doi.org/10.1145/359576.359585

Sufyan bin U. Mastering GoLang: A Beginner's Guide. Boca Raton: CRC Press, 2022. 298 p. DOI: https://doi.org/10.1201/9781003310457

Fava D., Steffen M. Ready, set, Go!: Data-race detection and the Go language. Science of Computer Programming. 2020. Vol. 195. 102473. P.1–23. DOI: https://doi.org/10.1016/j.scico.2020.102473

Sottile M., Mattson T., Rasmussen C. Introduction to Concurrency in Programming Languages. New York: Chapman and Hall/CRC, 2009. 344 p. DOI: https://doi.org/10.1201/b17174

Sufyan bin U. GoLang: The Ultimate Guide. Boca Raton: CRC Press, 2022. 366 p. DOI: https://doi.org/10.1201/9781003309055

Bowman H., Gomez R. Concurrency Theory: Calculi an Automata for Modelling Untimed and Timed Concurrent Systems. London: Springer-Verlag, 2006. 422 p. DOI: https://doi.org/10.1007/1-84628-336-1

Zhang D., Qi P., Zhang Y. GoDetector: Detecting Concurrent Bug in Go. IEEE Access. 2021. Vol. 9. P. 136302–136312. DOI: https://doi.org/10.1109/ACCESS.2021.3116027

Donovan A. A. A., Kernighan B. W. The Go programming language. New York: Addison-Wesley Professional, 2015. 400 p.

Pontelli E., Gupta G. On the duality between or-parallelism and and-parallelism in logic programming. 1st International EURO-PAR Conference on Parallel Processing: EURO-PAR 199. Stockholm, 29–31 aug. 1995. Lecture Notes in Computer Science. Vol 966. Springer, Berlin. 2005. P. 43–54. DOI: https://doi.org/10.1007/BFb0020454

Komendantskaya E., Schmidt M., Heras J. Exploiting Parallelism in Coalgebraic Logic Programming. Electronic Notes in Theoretical Computer Science. 2014. Vol. 303. P. 121–148. DOI: https://doi.org/10.1016/j.entcs.2014.02.007

Whitney J., Gifford C., Pantoja M. Distributed execution of communicating sequential process-style concurrency: Golang case study. The Journal of Supercomputing. 2019. Vol. 75. No 3. P. 1396–1409. DOI: https://doi.org/10.1007/s11227-018-2649-2

References

Lytvynov, A. (2018), Queuing Theory System, [Teoriia system masovoho obsluhovuvannia], KhNUMH im. O.M. Beketova, Kharkiv, 141 p.

Borovkov, A. (1976), Stochastic Processes in Queueing Theory. Translate by K.Wickwire, Springer-Verlag, New York, 280 p. DOI: https://doi.org/10.1007/978-1-4612-9866-3

Chabbi, M., Ramanathan, M. (2022), "A study of real-world data races in Golang", PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, 13–17 June 2022, San Diego. Special Inter. Group on Program. Lang. SIGPLAN, New York, P. 474–489. DOI: https://doi.org/10.1145/3519939.3523720

Zeifman, A. (1986), "Quasi-Markov Processes and Description of Some Models of Queueing Theory", IFAC Proceedings Volumes, Vol. 19, No. 5, P. 445–449. DOI: https://doi.org/10.1016/S1474-6670(17)59840-7

Hoare, A. (1985), Communicating sequential processes, Prentice Hall, New Jersey. 235 p. DOI: https://doi.org/10.1145/359576.359585

Liu, Y. (2024), "EMsFEM based concurrent topology optimization method for hierarchical structure with multiple substructures"/ Liu, Y. et al., Computer Methods in Applied Mechanics and Engineering, Vol. 418, Part A, 116549, P. 1–26. DOI: https://doi.org/10.1016/j.cma.2023.116549

Hoare, A. (1978), "Communicating sequential processes", Communications of the ACM, Vol. 21, No 8, P. 666–677. DOI: https://doi.org/10.1145/359576.359585

Sufyan, bin U. (2022), Mastering GoLang: A Beginner's Guide, CRC Press, Boca Raton, 298 p. DOI: https://doi.org/10.1201/9781003310457

Fava, D., Steffen, M. (2020), "Ready, set, Go!: Data-race detection and the Go language", Science of Computer Programming, Vol. 195, 102473, P.1–23. DOI: https://doi.org/10.1016/j.scico.2020.102473

Sottile, M., Mattson, T., Rasmussen, C. (2009), Introduction to Concurrency in Programming Languages, Chapman and Hall/CRC, New York, 344 p. DOI: https://doi.org/10.1201/b17174

Sufyan, bin U. (2022), GoLang: The Ultimate Guide, CRC Press, Boca Raton, 366 p. DOI: https://doi.org/10.1201/9781003309055

Bowman, H., Gomez, R. (2006), Concurrency Theory: Calculi an Automata for Modelling Untimed and Timed Concurrent Systems, Springer-Verlag, London, 422 p. DOI: https://doi.org/10.1007/1-84628-336-1

Zhang, D., Qi, P., Zhang, Y. (2021), "GoDetector: Detecting Concurrent Bug in Go", IEEE Access, Vol. 9, P. 136302–136312. DOI: https://doi.org/10.1109/ACCESS.2021.3116027

Donovan, A., Kernighan, B. (2015), The Go programming language, Addison-Wesley Professional, New York, 400 p.

Pontelli, E., Gupta, G. (2005), "On the duality between or-parallelism and and-parallelism in logic programming", 1st International EURO-PAR Conference on Parallel Processing: EURO-PAR 199, Stockholm, 29–31 aug. 1995. Lecture Notes in Computer Science, vol 966, Springer, Berlin, P. 43-54. DOI: https://doi.org/10.1007/BFb0020454

Komendantskaya, E., Schmidt, M., Heras, J. (2014), "Exploiting Parallelism in Coalgebraic Logic Programming", Electronic Notes in Theoretical Computer Science, Vol. 303, P. 121–148. DOI: https://doi.org/10.1016/j.entcs.2014.02.007

Whitney, J., Gifford, C., Pantoja, M. (2019), "Distributed execution of communicating sequential process-style concurrency: Golang case study", The Journal of Supercomputing, Vol. 75, No 3, P. 1396–1409. DOI: https://doi.org/10.1007/s11227-018-2649-2

Published

2024-06-30

How to Cite

Goldiner, D. (2024). Application of GO programming language for simulation of mass service processes. INNOVATIVE TECHNOLOGIES AND SCIENTIFIC SOLUTIONS FOR INDUSTRIES, (2(28), 65–75. https://doi.org/10.30837/2522-9818.2024.2.065