Snapshotting my understanding before tackling homework assignment #1

August 22, 2020 | minutes read

Before tackling the homework assignment, I’m going to rate myself on the questions (below), from a scale of 1 (no freaking clue) to 5 (truly understand). The point of this exercise that I just made up myself is that I want to capture my understanding (or lack thereof) at a moment and time. Why do this? Because I know I’ve learned a ton in graduate school (and at work) over the past couple years and it’s easy to lose sight of those little victories and I want to look back (in a few days or in a few weeks) and say “Hey! Look at all your learned!”

questions from #1 homework assignment (Advanced Operating Systems)
questions from #1 homework assignment (Advanced Operating Systems)


1. Consider a processor that supports virtual memory. It has a virtually indexed physically tagged cache, TLB, and page table in memory. Explain what happens in such a processor from the time the CPU generates a virtual address to the point where the referenced memory contents are available to the processor.

4 out of 5

I’ve familiar with the virtually indexed physically tagged cache from both operating systems and high performance computing architecture. I am a bit fuzzy on some of the details but I understand the high level concept (thanks to the refresh course).

2. Distinguish between segmentation and paging.

2 out of 5

I understand paging but completely how it differs from segmentation.

3. Explain all the actions from the time a process incurs a page fault to the time it resumes execution. Assume that this is the only runnable process in the entire system.

3 out of 5

Not to be confused with a segmentation fault. But I understand this concept relatively well but I’m curious if the more I dig into this, the more I realized that I don’t understand page faults. If that happens, it’s a win situation since I’ll be increasing my depth on computing systems.

4. Explain the following terms: working set of a process, thrashing, paging daemon, swapper, loader, and linker.

1 out of 5

Absolutely nothing really. I mean, I wrote a compiler (in Compilers Theory and Practice course) and can recall how the program gets loaded into memory but I know next to nothing about the swapper, loader and linker.

5. Explain page coloring and how it may be used in memory management by an operating system.

1 out of 5

Coloring? What is that? Is this similar to the coloring techniques used for register allocation in compilers?

6. Explain clearly the costs associated with a process context switch.

3 out of 5

Probably need to understand more here but I can imagine that the instructor(s) want us to know a little more than what a process control block is and how we need to save/restore registers during a context switch.

7. Explain the functionality of the different layers found in the network protocol stack of an operating system such as Linux.

3.5 out of of 5

Not sure I entirely get the question. If this is the TCP/IP stack then yes, I have a firm understanding (probably a 4 out of 5). But if the question means something entirely different then probably a 3.

I’m Matt Chung. I’m a software engineer, seasoned technology leader, and father currently based in Seattle and London. I love to share what I know. I write about topic developing scalable & fail-safe software running in the AWS cloud, digital organization as a mechanism for unlocking your creativity, and maximizing our full potentials with personal development habits.

View all articles