Solutions - Computer Science

advertisement
CS Division – EECS Department
University of Central Florida
CGS 3763 – Operating System Concepts
Spring 2013 – dcm
Homework 4 (100 points)
Due Wednesday, March 13 2013 - 5 PM
A homework should be written in Word or Latex and should be Emailed to the TA
Edward Aymerich, Email: edward.aymerich@knights.ucf.edu
Subject of the Email: First.Last student name - HW4
Problem 4.1 (10pts)
What are two differences between user-level and kernel-level threads?
1. Kernel-level threads are supported and managed directly by the kernel, whereas userlevel threads are managed without kernel support.
2. The creation of user-level threads is usually faster than the creation of kernel-level
threads.
Problem 4.2(5pts)
Describe the actions taken by a kernel to context-switch between kernel level threads.
The kernel saves the state of the current thread, and then restores the state of the new
thread being scheduled.
Problem 4.3 (10pts)
What resources are used when a thread is created? How do they differ from those used
when a process is created?
A new context (CPU registers) and stack must be created for the new thread.
When a new process is created, a full PCB must be created, which has a lot more
information (memory allocated, list of open files, accounting information, etc.), and also
memory must be allocated for the code and data of the new process.
Problem 4.4 (5pts)
Which of the following program components are shared across threads in a multithreaded
process?
1. Register values
2. Heap memory
3. Global variables
4. Stack memory
Heap memory and Global variables are shared across threads.
Problem 4.5 (15pts)
Consider a multiprocessor system and a multithreaded program written using the many-tomany threading model. Let the number of user-level threads N be larger than P the number
of processors. Call K the number of kernel threads allocated to the program. Discuss the
performance implications of the following scenarios:
1. K < P
2. K = P
3. P < K < N
1. K<P
The process won't use all the processors in the system. All the work of the process will be
done by a few processors, taking more time for the process to finish.
2. K=P
The process will utilize all the processors in the system, therefore the work will finish as
soon as possible. But if a thread is blocked by a system call, then a processor is not utilized
while the thread waits, lowering the system usage.
3. P < K < N
All the processors in the system will be used by the process. The OS will have to schedule
the K threads over the P processors, with a little overhead for the context switching.
However, if a thread running in some processor gets blocked by a system call, the
scheduler can schedule another ready thread in that processor, maximizing system
utilization.
Problem 4.6 (15pts)
Define the concepts of CPU-bound and I/0-bound process. Why is it important for a
scheduler to distinguish the two.
A CPU-bound process is a process that spends most of his time executing instructions.
An I/O-bound process is one which spends most of his time waiting for I/O operations to
complete.
It is important for a scheduler to distinguish the two because this allows the scheduler to
keep a balanced system. If the scheduler only executes processes that are I/O-bound, then
the CPU is underutilized. On the contrary, if the scheduler only executes processes that
are CPU-bound then a high CPU utilization is achieved, but other system resources (such
as the hard drive or network interface) may be underused. A good balance of CPU-bound
and I/O-bound processes keeps the overall system as busy as possible.
Problem 4.7 (15pts)
Discuss how the following pairs of scheduling criteria conflict in certain settings.
1. CPU utilization and response time.
A system can have a better response time using a scheduling policy like Round
Robin, but the more frequent context switching could lower CPU utilization.
2. Average turnaround time and maximum waiting time.
The average turnaround time can be minimized using a Shortest Job First
scheduling policy, but this could increase the maximum waiting time, because
bigger jobs are always pushed behind smaller jobs.
3. I/O device utilization and CPU utilization.
To achieve maximum CPU utilization the scheduler must choose long running CPUbound processes, but doing so will lower I/O device utilization. To maximize I/O
device utilization, the scheduler must choose I/O-bound processes, which spend
most of their time waiting for the devices to reply, so the CPU utilization is lowered.
Problem 4.8 (6+6+6+2=20pts)
a.
FCFS
P1
0
SJF
P2 P4 P3
0 1 2
P2 P3
10 11
P5
4
Non preemptive Priority
P2 P5
0 1
P4 P5
13 14
19
P1
9
19
P1
6
P3
16
P4
18 19
RR (quantum=1)
P1 P2 P3 P4 P5 P1 P3 P5 P1 P5 P1 P5 P1 P5 P1 P1 P1 P1 P1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
b.
Turnaround time for each process:
FCFS
P1
10
P2
11
P3
13
P4
14
P5
19
SJF
19
1
4
2
9
Priority
16
1
18
19
6
RR
19
2
7
4
14
c.
Waiting time for each process:
FCFS
P1
0
P2
10
P3
11
P4
13
P5
14
Sum
48
Average
9.6
SJF
9
0
2
1
4
16
3.2
Priority
6
0
16
18
1
41
8.2
RR
9
1
5
3
9
27
5.4
d.
SJF results in the minimum average waiting time (3.2).
Problem 4.9 (5pts)
Which one of the following scheduling algorithms could result in starvation?
1. FCFS
2. SJF
3. RR
4. Priority
SJF and Priority. There could be starvation in SJF if shorter processes keep arriving,
preventing older (bigger) processes from being executed. Similarly, there could be
starvation in Priority if processes with high priority keep arriving, preventing older (with
less priority) processes from being scheduled.
Download