in English suomeksi Exercises

Computer Organization I, HT 5

  1. [2 htp] Subroutines, macros, literals, variables, constants
    1. Give an example of a situation where routine XYZ would be better to implement as a macro than as a subroutine. Why? Example?
    2. Give an example of a situation where routine XYZ would be better to implement as a subroutine than as a macro. Why? Example?
    3. Give an example of a situation where constant value X would be better to implement as a literal than as a constant in the instruction. Why? Example?
    4. Give an example of a situation where constant value X would be better to implement as a constant in the instruction than a literal. Why? Example?
    5. How does using a literal differ from using a variable? Advantages? Disadvantages?
    6. How does using a literal differ from using constant field? Advantages? Disadvantages?

  2. [2 htp] Assume that a disk spins with speed 7200 rpm, it has one read/write head per surface, there are 2000 cylinders (tracks per surface), each track has 50 sectors, and sector size is 0.5 KB. Assume (unrealistically), that seek time (head transfer time) is linear to the number of tracks passed, and that it is 0.02 ms/track. Assume (unrealistically), that the location of each sector for one file is random, and from this one can deduce (with probability theory) that the average number of tracks passed is 667. Assume further (unrealistically), that the file is read from the disk one sector at a time.How long does it take, in average, to read one 333.33 KB file? What about 24 MB file?

  3. [2 htp] Linking. How would the Fig 7-15 (b) in Tanenbaum book [Tane99] change, if the modules were linked (from bottom up) in order ACDB instead of the order ABCD used in Fig. 7-15? 

    Please note that the addresses grow bottom-up in Fig. 7-15. Modules are defined in Fig 7-14.
     
  4. [2 htp] Memory mapped I/O. In example driver.k91 there is a device driver implemented with direct I/O. 
    1. How does the device driver know that the device has printed the given number?
    2. What does the device driver do while the device is printing the number? How long can this take?
    3. How does the device (device controller) tell the device driver that the given task is done? 
    4. Hoe does the application program (that call the device d river) know when the task given to the device is done?
    5. How should one modify the device driver, if one wanted to use indirect I/O instead? The purpose is not to give a precise answer, but just the general ideas on what needs to be changed in the driver in case indirect I/O was used.
      What is good/bad with this change? Are there any changes to the specifications for the device (device driver) because of this change

 


Teemu Kerola