Optimization with Interprocess Communication via Channels - A CSP Approach

© 2024 by IJCTT Journal
Volume-72 Issue-5
Year of Publication : 2024
Authors : Priyanka Nawalramka
DOI :  10.14445/22312803/IJCTT-V72I5P127

How to Cite?

Priyanka Nawalramka, "Optimization with Interprocess Communication via Channels - A CSP Approach," International Journal of Computer Trends and Technology, vol. 72, no. 5, pp. 217-222, 2024. Crossref, https://doi.org/10.14445/22312803/IJCTT-V72I5P127

In production software development, when handling large-scale data, performance becomes an essential consideration. Given the rate at which data is generated and consumed today in modern cloud based systems, it, in fact, becomes an essential requirement. The choice of tools, algorithm design and programming patterns can all help in gaining as much optimization as possible within an application. Concurrency plays a vital role in software and resource optimization. Traditional concurrency models use locks with multithreading over shared memory as the synchronization primitive. The Communicating Sequential Processes (CSP) model uses communication as the synchronization primitive. This article delves briefly into the theory of CSP. This is followed by a discussion on how to query and process big chunks of data from a database in an optimal manner using interprocess communication. The article also describes a case study using channels, an interprocess communication technique that uses message passing (based on CSP) with the concurrency constructs of the Go programming language.

Channels, Communicating sequential processes, Concurrency, Data processing, Interprocess communication, Optimization.


[1] C.A.R. Hoare, “Communicating Sequential Processes,” Communications of the ACM, vol. 21, no. 8, pp. 666-677, 1985.
[CrossRef] [Google Scholar] [Publisher Link]
[2] S.D. Brookes, C.A.R. Hoare, and A.W. Roscoe, “A Theory of Communicating Sequential Processes,” Journal of the ACM, vol. 31, no. 3, pp. 560-599, 1984.
[CrossRef] [Google Scholar] [Publisher Link]
[3] A.W. Roscoe, The Theory and Practice of Concurrency, Prentice-Hall, 1997.
[Google Scholar] [Publisher Link]
[4] Range and Close, A Tour of Go. [Online]. Available: https://go.dev/tour/concurrency/4
[5] The Go Memory Model, 2022. [Online]. Available: https://go.dev/ref/mem
[6] Channel (Programming). [Online]. Available: https://en.wikipedia.org/wiki/Channel_(programming)
[7] Communicating Sequential Processes. [Online]. Available: https://en.wikipedia.org/wiki/Communicating_sequential_processes
[8] Actor Model. [Online]. Available: https://en.wikipedia.org/wiki/Actor_model
[9] Sql Package - database/sql - Go Packages, Go Standard Library Documentation, Version go1.22.3., 2024. [Online]. Available: https://pkg.go.dev/database/sql