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!”
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