The aim of this assignment was to implement an API which provides a number of calls allowing processes to memory map sections of a file located on a remote machine. Processes can then read and write to this memory area using the provided calls, with changes being propagated to the remote ﬁle by the library. Multiple processes from multiple client machines should be able to access and modify the same ﬁle on a remote machine. This was implemented in C on Ubuntu. Check out my Github for the full implementation.
The requirements consisted of a Client-Server model with:
- The server having the ability to open a number of files (or section of files) on the machine using a file descriptor, and storing them in memory.
- The client having the ability to demand that the server maps a particular file (or section of file) to memory.
- The client having the ability to demand that the server unmaps a particular file (or section of a file) from memory.
- The client having the ability to demand a part of the memory from the server.
- The client having the ability to alter a part of the memory from the server.