These refresher exercises are meant to help reinforce C programming concepts that should have been covered in CS210 or CS/ECE250. In some cases, these exercises may go above and beyond what has been covered when you took these classes, which is sometimes due to instructor-specific choices or the need to cover a wide breadth of concepts (especially CS/ECE250). Also, some students have a large gap from these introductory courses to when they take CS310, so these exercises can be a very helpful refresher.
You will find that these concepts appear in many of the labs for CS310, including the very first lab (Lab Util). These exercises provide an isolated playground to explore these concepts separate from the relatively-large codebase of xv6.
Note that none of these exercises are required or graded. We will talk about these exercises during the first discussion section.
Currently, we focus on the following concepts:
Here are a collection of (usually bite-sized) resources for the various concepts above. Most of these use the Dive Into Systems (DIS) book from CS210.
sizeof)extern)You can find the code for the exercises via this GitLab repository:
https://gitlab.oit.duke.edu/os-course/refresher
You should read the comments in the files and look out for “TODO” and “Fill In” comments that point out the subset of code that you should modify.
You can build the exercises by running make for everything, or make
compute and make arith for the individual exercises. Afterwards, you can
run the exercises via ./compute and ./arith.
If you need an environment to develop, build, and execute these exercises, you should already be able to reserve a VCM instance for CS310 via Duke Kits.