CS 0449 – Sample Final Exam

 

1.)           Which of the following attempts to guarantee the order and receipt of packets on a network?

                A)  IP

                B)  DNS

                C)  UDP

                D)  TCP

2.)           Which of these is not a synchronization primitive?

                A)  Padlock

                B)  Semaphore

                C)  Condition Variable

                D) Mutex

 

3.)           How does make know what files to rebuild when you run it?

                A) By checking the last-modified timestamps of the files              

                B)  By examining the Makefile for the dependency information

                C)  By checking the contents of the file for changes

                D) A and B 

                E)  B and C

 

4.)  (4 points) Of the following Berkley Socket functions, place the ones necessary to produce a working client in the order they should be executed

accept

bind

connect

listen

socket

 

 

5.) What are the possible valid outputs of the following program:

#include <stdio.h>

#include <unistd.h>

 

int main()

{

    if(fork()==0)

    {

        printf("Hi from the child!\n");

    }

    else

    {

        printf("Hi from the parent\n");

    }

 

    printf("Hi from both\n");

    return 0;

}

 

 

 

 

 

 

6.) (10 points) Examine the following code implementing an unrealistically simple queue:

 

#define MAX 100

int queue[MAX];

int tail=0;

int head=0;

 

void enqueue(int x)

{

       queue[tail++] = x;

}

 

int dequeue()

{

       return queue[head++];

}

 

a.)    Explain how a race condition might occur

 

 

 

 

b.)    How would you fix it?

 

 

 

 

7.)(6 points) If we have two threads T0 and T1 and two resources R0 and R1, explain how the two threads could end up deadlocked.

 

 

 

 

 

8.) Draw a diagram that describes how the pi_digit program was able to read the digits of pi from /dev/pi. Make sure you include the program, the driver, the OS kernel, /dev/pi, and the system calls involved.