Computer Systems: A Programmer's Perspective (3rd Edition)
Computer Systems: A Programmer's Perspective (3rd Edition)
3rd Edition
ISBN: 9780134092669
Author: Bryant, Randal E. Bryant, David R. O'Hallaron, David R., Randal E.; O'Hallaron, Bryant/O'hallaron
Publisher: PEARSON
Expert Solution & Answer
Book Icon
Chapter 12.5, Problem 12.7PP

Explanation of Solution

Instruction ordering of “badcnt.c”:

  • When performing instruction “H1”, the value of “%rdx1” and “%rdx2” is null and “cnt” value is “0”.
  • When performing instruction “L1”:
    • The instruction “L1” means loads the shared variable “cnt” into register “%rdx1”.
      • Hence, the value of “%rdx1” contains the value of “cnt” variable.
      • Therefore, %rdx1=0
  • When performing instruction “H1”, the value of “%rdx1” and “%rdx2” is null and “cnt” value is “0”.
  • When performing instruction “L2”:
    • The instruction “L2” means loads the shared variable “cnt” into register “%rdx2”.
      • Hence, the value of “%rdx2” contains the value of “cnt” variable.
      • Therefore, %rdx2=0
  • When performing instruction “U2”:
    • The instruction “U2” means update value in register “%rdx2”.
      • Update value means increment the value of “%rdx2” by “1”.

        %rdx2=%rdx2+1=0+1%rdx2=1

      • Therefore, %rdx2=1 and the value of “cnt” is “0”. Here, the “cnt” will be not be update. It only update after the instruction stored.
  • When performing instruction “S2”:
    • The instruction “S2” means store the updated value of register “%rdx2” into “cnt”.
      • Hence, %rdx2=1 and “cnt” value is “1”.
  • When performing instruction “U1”:
    • The instruction “U1” means update value in register “%rdx1”.
      • Update value means increment the value of “%rdx1” by “1”

Blurred answer
Students have asked these similar questions
Problem 1.10: Simplify F(A, B,C, D) = ACD+ A'B + D'
PROBLEM 21 - 0517: Write a subroutine which computes the roots of the quadratic equation a,x2 + a,x + a, = 0 according to the quadratic formula: X12 = (-az/2a,) + V[(a,/2a,)2 – (a,/a,)) (= [{a, + v(a?, - 4a,a,)} / 2a,]) (START SUBROUTINE QUAD COMPUTE, DISCRIMINANT (DISC) DISC
+ (18) + RI + R1 [18) + R1 R1 Consider following Program currently loaded in main memory. 1. 2. R1 3. Provide all the stages instruction 3 goes through during its execution
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education