ASSIGNMENT 1
CSC3021 Concurrent Programming 2023-2024
Submit by 5:59 pm on Monday 10th October 2023
Total 40 marks. Counts towards 30% of marks on CSC3021.
Question 1: Process Interleaving: Straight-Line Code [15 marks]
Consider the following program:
integer n := 1, k := 1
Process P
P1: n := k + 1
end P;
Process Q
Q1:
k := n - 1
end Q;
Analyse the above code and answer following questions:
• Consider whether all statements are atomic and transform the program
to load/store architecture if needed.
• Identify the conflicting pairs of atomic instructions.
• State an upper bound on the possible number of outcomes for this
program based on the number of processes and atomic instructions in
this program.
• State an upper bound on the possible number of outcomes for this
program based on the number of conflicting pairs found.
• What are the possible final values of ‘n’ and ‘k’? Justify your
answer.
Question 2: Process Interleaving with Control Flow [10 marks]
Consider the following program:
integer n := 1
boolean flag := true
Process P
P1: while( n == 1 ) {
; // nothing
}
P2: flag := false
end P;
Answer following questions:
Process Q
Q1: while( flag == true ) {
Q2: n := 1 – n
}
end Q;
(i) Consider whether all statements are atomic and transform the program to
load/store architecture if needed.
(ii) Identify all conflicting pairs of atomic instructions.
CSC3021 Concurrent Programming
最新推荐文章于 2025-11-25 12:11:25 发布
804

被折叠的 条评论
为什么被折叠?



