int dynaddrtran (int virtual_address) { if (virtual_address > FL) { printf ("Address too large.\n"); exit(1); } return BA + virtual_address; }
The user takes 1 second and the OS takes up an additional 1.74 seconds, so one "turnaround" time would be 2.74 seconds. See picture below.
1.74 / 2.74 = .635 or about 64%
b.) Why was it safe to put the base address or base addresses into registers which users could change? Wouldn't this give them access to every location in memory, thereby circumventing security?
c.) If the CDC's operating system needed to move a job around in memory while it was running (probably due to the need to compact memory), what would the OS have to do to get the addressing to still work out correctly?
d.) Why couldn't jobs be moved around in the IBM 360 once they started?
0: LOD 1000 2900: LOD 3900 1: ADD 1001 2901: ADD 3901 2: SUB 1002 2902: SUB 3902 3: STD 1003 2903: STD 3903 4: LOD 1100 2904: LOD 4000 5: SHL 2905: SHL 6: SHL 2906: SHL 7: ADD 1003 2907: ADD 3903 8: STD 1000 2908: STD 3900 9: (gap) (don't change any data!!!!) 1000: NUM 47 3900: NUM 47 1001: NUM 3 3901: NUM 3 1002: NUM 149 3902: NUM 149 1003: NUM 0 3903: NUM 0 ... ... 1100: NUM 99 4000: NUM 99