Knowledge: Understand distributed systems' architectures and communication models. Understand topics on processes of distributed systems. Learn the Blockchain technology and different cryptocurrencies (Bitcoin and Ethereum)
Skills: Use of different protocols for the programming of multi-threaded applications (OpenMP), distributed applications (MPI and ZeroMQ) and GPGPU applications (CUDA)
Course Content (Syllabus)
Introduction to Distributed Operating Systems. Process Synchronization and the client-server model. The RPC model and remote methods invocation. Distributed shared memory and distributed file systems (the file systems e.g. NFS and AFS) . Introduction to Web Operating Systems. Extending and integrating current operating systems in the Web framework. Distributed Web storage caching frameworks and Operating system services for naming, secure access and protection under distributed systems and the Web. Overview of the distributed operating systems (Mach, WebOS, Ghost etc) and new distributed technologies for Web information management (grid, cloud, directories etc).
Additional bibliography for study
G. Coulouris, J. Dollimore, T. Kindberg, "Distributed Systems, Concepts and Design", 2nd Ed., Addison-Wesley.
P. Sinha, "Distributed Operating Systems, Concepts and Design", IEEE Press.
Nutt, Gary J. Centralized and distributed operating systems, Englewood Cliffs, N.J.: Prentice Hall.
Ben-Ari, M., Principles of concurrent and distributed programming, New York: Prentice Hall