Attention: this app was implemented for Linux Operating Systems.
In this architectures client processes interact directly with the DB. The DB is a simple file directory and synchronicity is controlled using file locking.
In order to run the insecure mode, clone or download the repository and then run:
$ chmod +x makeNoIPC
$ ./makeNoIpc
After that, the executable run was created.
$ chmod +x run
$ ./run
In this architectures client processes interact with workers, not with the DB. Workers are procceses created by the server to serve clients. Workers interact with de DB. For communication between worker and client, several IPC mechanisms were implemented:
- Sockets
- Message Queues
- FIFO
- Semaphores and Shared Memory
- Signals
To run the secure mode, clone or download the repository and then run:
$ chmod +x [ makeFIFO | makeQUEUE | makeSIGNALS | makeSEM_SHM | makeSOCKET ]
$ ./[ makeFIFO | makeQUEUE | makeSIGNALS | makeSEM_SHM | makeSOCKET ]
Depending on which IPC mechanism was chosen.
For example, to use FIFO use the makeFIFO script.
After that, the executables client and server were created. Then:
$ chmod +x client
$ chmod +x server
In two different terminals, run
$ ./client
$ ./server
Attention: server must be running for make actions with clients
This was the final project of Operating Systems course, at ITBA.
- Ivan Itzcovich
- Kevin Kraus
- Jorge Gomez