1. Match the entries in the left column with those ie downn the right Column, E.g. if entry #2 in the left column matches entry #C in the right column, write down C in the shaded box in row 2.
2. Consider the following state transition diagram for a finite state machine. The circles represent the states, and are labeled A through D. The arrows represent transitions between states. The input is represented by x and the output is y. Assume that the variable "PortA" provides the input value x, and that the output value is written to the variable "PortB".
Write the appropriate C code to implement this state transition diagram. Hint: Use the C construct "Struct" or arrays. Be sure to include comments to describe your code.
3.
a) What to the terms in the acronym "PID" Controller mean?
b) Suppose the gain k controls the proportional gain in a PID controller. State what happens to the response function when the gain is very low, and the gain is very high.
c) Why do we add the "I" and "D" terms to a controller? How does that change the response function?
4. Consider two wheels joined by an axle as shown in the following figure. This is a top view. The radius of each wheel is 4/pi centimeters (pi = 3.14159). The objective is to start at Position A and end at Position B. This involves traveling North for 8 cm, then turning right, and then traveling East for 4 cm. You can assume a hard turn, ie Wheel 2 is stationary when performing the right turn.
Assume that the wheels are driven by one stepper motor each. The state transition diagram for one stepper motor is shown below. Each transition moves the wheel by 18 degrees, ie each step is 18 degrees.
a) Draw a flow chart indicating the commands to be sent to the stepper motor for each wheel.
b) Write the C code in order to implement the movement from Position A to Position B.
5. You have been hired by a company to develop a Virtual Reality headset that will display streaming video. Briefly describe your design by addressing the following requirements:
(1) Latency. What types of latency will you consider?
(2) Bandwidth. Assume 30 frames per second and image size of 100x100 pixels, at 3 bytes per pixel, uncompressed.
(3) What factors will affect the latency of your system? Mention at least two factors.
(4) How will you improve the latency of your system? Suggest at least one possibility.
Your entire answer to this question should not exceed one page.
6. You are given the following list of tasks that need to be run. There is no synchronization between these tasks.
Process
|
Execution Time
|
Period
|
P1
|
1
|
4
|
P2
|
5
|
25
|
P3
|
5
|
50
|
P4
|
4
|
40
|
Determine whether this system is schedulable. (Hint: use the Rate Monotonic theorem).
Also assume that n (2^(1/n) - 1) c= In(2) = 0.69 for your calculation. What is the CPU utilization in this case?
7. A printer needs to be shared between 4 threads. Use semaphores to design a solution to this problem. Use Wait and Signal commands, and describe how your solution works.
8. Three threads, Thread', Thread2 and Thread3 need to be synchronized. Whichever thread gets to a certain point (synchronization point) of the main code will wait for the other threads to finish. Only when all three threads have arrived will the execution of the main code continue beyond the synchronization point. Use semaphores (signal and wait) to design a solution to this problem.
a) Describe the meaning of the semaphores you will use.
b) Create a table showing the states of the different semaphores you have chosen, and the order in which the different threads arrive at the synchronization point.