Homework Assignment 7 CS 340d Unique Number: 50960 Spring, 2019 Given: March 11, 2019 Due: March 27, 2019 1. Using the file ``my-clock.c'' (see the homework page), measure the performance of each of your three different copy programs and the original copy specification. You will need to create three strings (of the number of bytes specified below) with all non-zero bytes, and with one final zero byte. Perform the following copies on each of your four measurement runs. This will produce a total of twelve measurements (three runs for each of the three implementations and the specification): 100,000 copies of 10K ( 10 * 1024) bytes. 10,000 copies of 100K ( 100 * 1024) bytes. 1,000 copies of 1M (1000 * 1024) bytes. a. Measure the performance of the specification: while( *dst++ = *src++ ); b. Measure the performance of your first implementation (HW 3, #1). c. Measure the performance of your second implementation (HW 4, #1). d. Measure the performance of your third implementation (HW 5, #1). You only need a single test input. The different size strings can be produced by starting at varying offsets from the end. Be sure to carefully document your test procedure. 2. Using computers to store and manipulate trees, and more generally graphs, is an important problem. In Lab #2, we will investigate how a storage allocator and a garbage collector operates, and you will be asked to implement a garbage collector. The details will appear in Lab #2. In preparation for this effort, please read pages 280 - 283 of the article: ``List Processing in Real Time on a Serial Computer'' by Henry G. Baker, Communications of the ACM, April, 1978, Volume 21, Number 4. Later, we may read this article to its end. In one full page (55 lines) of plain ASCII, document how this algorithm operates. Estimate the complexity of this algorithm; that is, for each CONS operation, how many memory references are made, both at allocation time and at garbage collection time. The algorithm is shown as pseudo code on page 283.