Software Systems Spring 2005 For today, you should have: 1) Worked on your project refinement. 2) Read about the Lea allocator. Outline: 1) survey results 2) Lea allocator 3) Berger Zorn McKinley paper For next time you should: 1) finish your project refinement 2) finish Berger Zorn McKinley 3) prepare for a quiz on memory management Feedback feedback ----------------- Distribution of hours seems about right. Topic vs. depth tradeoff yielded a normal distribution centered around just right. Readings generally good. Suggestion to just buy Tanenbaum. Suggestion to have more tech papers. Question about my tendency to shoot down readings. Homeworks are not inspiring too canned, contrived, even (dare I say) tedious! hard to get started, then easy coding is an obstacle random pairing is unpleasant is homework a necessary evil? These homeworks are unusually constrained, because I am trying to reinforce material and develop techniques at the same time. Quizzes generally good. Suggestion to hand back solutions / self-grading. Exams generally good. A few people felt that the first exam didn't reflect their understanding. Projects are too early to tell Some are already excited, some are still wandering. Suggestion that next time I will have examples to show. Suggestion that more open-ended homeworks would help prepare. Other suggestions included: Remember to pop up peridocially for the big picture. 1 request for more interactivity, 1 request for less Partial coverage of the reading seems to be striking the balance between "sink or swim" and complete redundancy. Overall, many positive comments, which I appreciate. And the tone of suggestions/complaints was constructive, which I also appreciate. So, onward! The Lea Allocator ----------------- What are Lea's metrics for a good allocator? Which are the most important? What workloads does Lea think are most important? What are boundary tags, and how do they permit coalescing? Why would you ever want to defer coalescing? What are the two ways of allocating more space from the OS? What is the wilderness, and how is it different from other chunks? Interrogating the heap ---------------------- wget wb/ss/code/pointer.tgz tar -xzf pointer.tgz cd pointer make ./pointer Take a minute to read the code and make sense of the output. Then we'll talk, and you can draw pictures... Berger Zorn McKinley -------------------- 1) Read the abstract carefully. 2) Read the Introduction medium carefully. 3) Read the Conclusions section. What information _should_ be included in each of these sections? Abstract: Intro: Conclusions: Allen's pet peeve: papers in which these three sections are identical. 4) Sketch the outline of the paper by reading the section headings and the summary at the end of Section 1 What are the sections you think you need to read in detail in order to understand the important ideas in this paper? The following are the standard questions you should ask about any paper of this kind: 1) What kind of work did the authors do? 2) What workload did they use? 3) What are the performance metrics? 4) What are their conclusions? 5) Do their results support their conclusions? 6) What is the "take-away" message? Take 20 minutes to read the paper and answer these questions. As you read, mark things that you don't understand, that you think you need to understand.