Using C This assignment is meant to: Build on the OS like platform… Using CThis assignment is meant to:Build on the OS like platform you have developed to:Simulate another OS function (in this case implement a simple semaphore)Capability to receive and respond to system call-like requests from multiple clients requesting to lock and unlock the semaphore so they can implement a critical section/mutual exclusion section of code. Objective: Create programs that are run independently and can use simple IPC using FIFOs/named pipes to pass information back and forth in a client/server fashion. The information/request from the client will look like simple semaphore system calls and will include information for the server to be able to identify which client requested it and what request it is and its associated parameters. Server program:The server program will add the implementation of ONE semaphore that multiple clients can issue request to lock and unlock (P/wait and V/signal operations). Server program will continue to be iterative server which can receive requests from multiple clients, although it process the requests in a serial fashion, one at a time, i.e., request from client one, request from client three, request from client two etc. as in Prog.2. Add a couple of system calls as follows: 1-System call Request from a connected client requesting to “lock the semaphore” – a P/wait request. If the semaphore is free (unlocked) a reply should be sent immediately to the client indicating the semaphore has been locked the reply would allow the client to continue. If the semaphore is not free (locked by another client), the requesting (client) should be put in a wait queue and NO reply should be sent to the client (which will effectively block the client from continuing at this point. 2-System call-like Request from a connected client requesting to “unlock the semaphore” – a V/signal request. At this point, if no other client is waiting for the semaphore, the semaphore should be unlocked and a simple ack reply should be sent to the client. If at least one client is waiting for the semaphore, in addition to the ack sent to the client doing the signal request, one of the clients waiting for the semaphore should be removed from the wait queue and a reply should be sent to THAT client indicating that it now owns the semaphore, effectively unblocking it and allowing it to continue. After each of type of requests, the server should print to the screen enough information to show which client is requesting and what the request was (client ID/number, type of requests, and associated parameters if any). It should also print the reply being sent. Client Program:The client add an option for the user to select executing a critical section something like:{ // NON – CRITICAL SECTIONAn inner loop that will run 20-30 times where the client will continually print a message (maybe every second or so) to the screen indicating that it is processing in its NON-CRITICAL SECTIONAfter the NON-CRITICAL SECTION LOOP the client should print a message: WAITING TO GET INTO THE CRITICAL SECTION *Send a wait request to the server (locking the semaphore) and wait for a reply // CRITICAL SECTIONAn inner loop that will also run 20-30 times where the client will continually print a message (maybe every second or so) to the screen indicating that it is processing “inside” its CRITICAL SECTION After the CRITICAL SECTION LOOP the client should print a message: LEAVING THE CRITICAL SECTION *Send a signal request to the server (freeing the semaphore) and wait for a reply} You should implement a Wait and Signal function that are called from inside the block above when appropriate. The Wait function should send a wait request to the server and expect a reply before returning. The Signal function should send a signal request to the server and expect a reply before returning.Engineering & Technology Computer Science CSCI MISC
You will get a plagiarism-free paper and you can get an originality report upon request.
All the personal information is confidential and we have 100% safe payment methods. We also guarantee good grades
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more