58123-3 Computer Systems Organization (Tietokoneen toiminta ) Final exam 26.2.1999 Write the course name and the exam date along with your name, date of birth, and signature at the top of each of your answer sheets. 1. You have written a pretty large program consisting of several code modules using some common programming language such as C, Java or Pascal. You have saved the program modules in the memory of your computer. In order to be able to run the program you have to transform it into a form understood by the computer. To do that you need a translator (a compiler), a linker and a loader. a) Explain what a translator does. What is the purpose of the symbol table? What is the use of relocation bits? (8 p) b) What does a linker do? Why is it needed? (5 p) c) What is the task of a loader? (2 p) 2. In a multiprogramming system there can be many processes in the central memory, one at most can be in the running state. a) What is a process? (1 p) b) What does it mean to be in the running state? In what other states can a process be? (4 p) c) When and how does the process in the running state move to some other state? Explain all possible transitions from the running state to some other state. (6 p) d) What methods can a scheduler use when choosing the process to run? (4 p) 3. What is virtual memory? Why is it used? Where is it used? How does it work? What are the principle concepts of virtual memory? For what purpose is the translation lookaside buffer used? (15 p) 4. Answer shortly the following questions. a) What different addressing modes can be used in an instruction set? (6 p) b) Explain how the CPU executes instructions. (6 p) c) What is a cache? Why is it used? (2p) d) Big endian, little endian, where is the difference? (1 p)