Part I
- Explain what memory-mapped I/O is and how it works.
- Explain what DMA is and how it works.
- Consider the following set of processes, with the length of the CPU-burst time given in milliseconds:
Process Burst Time Priority
P1 8 4
P2 1 1
P3 2 3
P4 1 5
P5 6 2
The processes are assumed to have arrived in the order P1, P2, P3, P4, P5, all at time 0.
- Draw four Gantt charts illustrating the execution of these processes using FCFS, SJF, a nonpreemptive priority (a smaller priority number implies a higher priority), and RR (quantum = 1) scheduling.
- What is the turnaround time of each process for each of the scheduling algorithms in part 3a?
- What is the waiting time of each process for each of the scheduling algorithms in part 3a?
- Which of the schedulers in part 3a results in the minimal waiting time (over all processes)?
- A UNIX process has two partsthe user part and the kernel part. Is the kernel part like a subroutine and a coroutine? Why?
Part II
Write a monitor in C++ to simulate the dining philosopher problem mentioned in the textbook using the conditional variables provided by the Pthreads API. Make sure that your implementation is able to handle 5 philosophers and is free of the race condition.
Reviews
There are no reviews yet.