The following snippet of pseudo code for the producer consum…
The following snippet of pseudo code for the producer consumer problem using semaphores has a logical error. Identify the location of the error, explain what can go wrong, and suggest a fix to eliminate the error. (Hint: you can assume that all down and up calls would be successful and not return an error code). semaphore m(1) // initialize counter to 1 semaphore s(0); // initialize counter to 0 Producer ============= sem_wait(&m) while (buffer full) { sem_post(&m); sem_wait(&s); } // insert item into the buffer sem_post(&s); sem_post(&m); Consumer ============== sem_wait(&m); while (buffer empty) { sem_post(&m); sem_wait(&s); } // remove an item from the buffer sem_post(&s); sem_post(&m);
Read DetailsWrite pseudocode that creates a child process, switches its…
Write pseudocode that creates a child process, switches its standard output (1) and standard error (2), and lets the child process execute a program whose name is provided as a command line argument. As an example, assume that helloworld binary’s main function is implemented as follows: int main(int argc, char **argv) { write(1,”HELLO”,6); write(2,”WORLD”,6); return 0; } Let’s assume that the binary of the code you will implement is called changingWorlds would be called as $ ./changingWorlds helloworld and after this the child process that will execute helloworld writes “HELLO” to file that was accessible through descriptor 2 in the parent process and writes “WORLD” to the file accessible through descriptor 1 in the parent process.
Read Details