正在加载图片...
●●● ●●●● 6.1 Background ●●●●● ●●●● ●●0●● ●●●0 ● f both the producer and consumer attempt to。 update the buffer concurrently, the assembly language statements may get interleaved One such interleaving is TO: producer execute register1=count [register1= 5] T1: producer execute register1= register1+1 register1= 6] T2: consumer execute register2=count Register= 5) T3: consumer execute register2= register2 -1 register2=41 T4: consumer execute count= register2 Icount=4] T5: producer execute count= registert Icount=61 The value of count may be either 4 or 6, where the correct result should be 57 6.1 Background ⚫ If both the producer and consumer attempt to update the buffer concurrently, the assembly language statements may get interleaved ⚫ One such interleaving is T0: producer execute register1 = count {register1 = 5} T1: producer execute register1 = register1 + 1 {register1 = 6} T2: consumer execute register2 = count {register2 = 5} T3: consumer execute register2 = register2 - 1 {register2 = 4} T4: consumer execute count = register2 {count = 4} T5: producer execute count = register1 {count = 6 } ⚫ The value of count may be either 4 or 6, where the correct result should be 5
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有