Homework Assignment 8 -- CS429 Fall 2013

Due Date: 23 Oct 2013

On the Piazza web page, on the Course Page, under Resources, is a program word.c and a data file scrabble6 (also on the CS web page for CS429 under Sample C programs)

  1. Compile word.c to generate word.o. Use "objdump -t" to generate a list of the symbols in word.o. How are the undefined symbols in this listing marked? What is the list of the undefined symbols for word.o? When you link word.o to create the executable word, where do the definitions of these undefined symbols come from (so that we don't have undefined externals?)

  2. Run word.c with gprof with scrabble6 as its input file and show the line from the gprof output for the function/procedure that takes the largest percentage time in this code.

  3. Assume we have a cache memory with 4 entries. Each entry is 16 bytes (initially empty). So a cache line is 16 bytes. The cache is fully associative. The following is a memory reference trace; The addresses are in hex.
    058 046 ff8 04b fd8 050 140 053 ff0 058 fe8 061 fe0 066 fd0 06e fc8 600 fc0 602
    How many cache misses would we have for the memory reference trace, assuming
    1. Optimal replacement, and
    2. LRU replacement?