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);

Write 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.