Andrew login ID:Full Name:Section:15-213/18-243, Spring 2011Final ExamTuesday, May 3, 2011Page 1 of 33Instructions:• Make sure that your exam is not missing any sheets, then write your Andrew login ID, full name, andsection on the front.• This exam is closed book and closed notes. A notes sheet is attached to the back.• Write your answers in the space provided below the problem. If you make a mess, clearly indicateyour final answer.• The exam has a maximum score of 200 points.• The problems are of varying difficulty. The point value of each problem is indicated. Good luck!1 (24):2 (14):3 (20):4 (14):5 (14):6 (10):7 (14):8 (25):9 (15):10 (14):11 (14):12 (14):13 (8):TOTAL (200):Page 2 of 33Problem 1. (24 points):Multiple choice.Write the correct answer for each question in the following table:1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 17 18 19 20 21 22 23 241. Which of the following is a legitimate difference between IA-32 and x86-64?(a) Buffer overflow exploits are impossible under x86-64.(b) IA-32 has caller- and callee-saved register conventions, while x86-64 does not.(c) Under x86-64, any instructions that take 32-bit operands are illegal.(d) None of the above.2. Which of the following is the best justification for using the middle bits of an address as the set indexinto a cache rather than the most significant bits?(a) Indexing with the most significant bits would necessitate a smaller cache than is possible withmiddle-bit indexing, resulting in generally worse cache performance.(b) It is impossible to design a system that uses the most significant bits of an address as the setindex.(c) The process of determining whether a cache access will result in a hit or a miss is faster usingmiddle-bit indexing.(d) A program with good spatial locality is likely to make more efficient use of the cache withmiddle-bit indexing than with high-bit indexing.3. Which of the following is not true about POSIX-style signals?(a) Certain signals cannot be blocked.(b) A process can send a signal to itself.(c) A signal handler executing as the result of a received signal can never be interrupted by anotherincoming signal.(d) Signals can only be delivered when returning from system mode.Page 3 of 334. Which of the following is not a benefit of virtual memory?(a) It allows the virtual address space to be larger than the physical address space(b) No process can accidentally access the memory of another process(c) The TLB is more effective since without it dereferencing a virtual address now requires two ormore memory accesses(d) Different processes can have overlapping virtual address spaces without conflict5. Which of the following is a difference between blocking and ignoring a signal?(a) Once a blocked signal is unblocked, it will be handled by the process. A signal that comes whileit is being ignored will never be handled.(b) SIGSTOP and SIGINT can be ignored, but not blocked.(c) Ignoring a signal only causes it to have no effect, while blocking a signal returns the signal toits sender.(d) None of the above6. Where is the first argument to a function located in 32-bit assembly code, immediately after the callinstruction is executed?(a) %ebp + 0x4(b) %ebp - 0x4(c) %esp + 0x4(d) %exp - 0x4Page 4 of 337. Consider the following piece of code, where out.txt’s contents are “abc”:int main(int argc, char**argv){int fd = open("out.txt", O_RDWR);char str[] = "xyz";char c;write(fd1, str, 1);read(fd1, &c, 1);write(fd1, &c, 1);return 0;}What is the contents of out.txt after the code is run? Assume all system calls succeed.(a) xbb(b) xba(c) xac(d) boat8. Which of the following is the best reason to choose FastCGI over CGI?(a) Superior support by web servers like Apache(b) Lower process creation costs(c) Lower process communication costs(d) Better process locality (all tasks can be executed locally)9. Which of the following system calls can fail due to a network failure?(a) socket(...)(b) listen(...)(c) bind(...)(d) gethostbyname(...)10. Which of the following are copied on fork and preserved on exec?(a) Global variables.(b) File descriptor tables.(c) Open file entry structs.(d) None of the above.Page 5 of 3311. Why would the kernel designer opt for a 2-level page table when a full 2-level page table takes upmore memory than a full 1-level page table?(a) 2-level tables can translate virtual addresses faster.(b) 2-level tables can reference more memory than 1 level tables.(c) Most of the time, a 2-level page table will take up less memory than a 1 level page table.(d) They wouldn’t. Adding more tables offers no advantages.12. What section of memory holds the assembly for printf?(a) Stack(b) Kernel memory(c) Shared libraries(d) Heap13. Every thread has its own .(a) Heap(b) Global values(c) Stack(d) Text data14. Why is gethostbyname not thread safe?(a) Only one thread at a time can do a DNS lookup(b) It doesn’t have a mutex around it(c) It returns a pointer to global shared memory(d) It shares instructions with other threads15. If a page table on a 32-bit system is 2KB in size, how many entries does it contain?(a) 2048(b) 1024(c) 512(d) 256Page 6 of 3316. What is the function of the TLB?(a) Caches data(b) Caches instructions(c) Caches translation of virtual addresses(d) Translates physical addresses to virtual addresses17. What is distinctive about superscalar processors?(a) Can run at frequencies over 3.5GHz(b) Can address over 4GB of memory(c) Can perform more than one instruction per cycle(d) Can have more than 2 levels of cache(e) Have more than one core per processor18. True/False: When requested to send 20 bytes over a network socket, execution will block until all 20bytes have been sent.(a) True(b) False19. True/False: When printf returns, the programmer cannot be guaranteed that the data has appearedon the user’s terminal.(a) True(b) False20. Which of the following tools would you first use to debug an application which is exiting with theerror “Segmentation fault”?(a) gdb(b) strace(c) strings(d) objdumpPage 7 of 3321. Which of the following tools would you first use to debug a network application that never appears toaccept any connections?(a) gdb(b) strace(c) objdump(d) valgrind22. Which of the following tools would you first use to debug an application which is exiting with aglibc error: double free detected?(a) gdb(b) strace(c) wireshark(d) valgrind23. A 256-byte 4-way set associative cache with 16 byte blocks has(a) 4 sets(b) 16 sets(c) 64 sets(d) No sets24. Imagine a floating point
View Full Document