Implement a resource manager on client-server programs. The scheduling algorithm will be round-robin. The resource manager will provide three different types of resources with two instances of each. Multiple clients will work with one server and the server will take clients from the New State to the Ready State when the proper resources are available. The scheduler will be called in every time a process ends. When resources are available, the process will be moved to the ready state. The server will provide the time that the process was moved into the Ready state and the time it completed releasing all resources. The client programs request the resources needed and the CPU burst time from the user.
There are basically two programs, one is the client and the other is the server. The server starts and asks the user for a time slice, the number of processes, once that is entered then it creates private FIFOs for each client and waits for resource requests from the individual clients. Each instance of the client program runs, and asks for three resource requests and a CPU burst time. This data is passed to the server through a FIFO. The server accepts each clients request creating a thread for each one and uses mutex to lock the individual resources. Before each process starts a table should be displayed with the resources available. Once the requested resources are locked, it performs the CPU burst(time passed in seconds) which is basically waiting for the time span entered for the user to pass. Once that time in seconds is over, it releases all the resources that are being held. This is done for each process using a specific time slice and round-robin scheduling. If resources are not available for a particular process, it is skipped for the next process until they are available for it to use. After each process ends, the time taken should be sent back to the client. Using gcc 3.2
SunOS 5.9
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
C Language
Solaris OS 5.9
Gcc 3.2