CST334 OS Week 3 Memory Management
This week we learned about memory management. Two approaches were covered:
- Base and bounds
- Paging
It is a difficult topic to understand; I spent a lot of time with the reading and the videos. The page table, especially in the programming assignment, took me a while to wrap my head around how to interact with it in the code. The concept isn't hard, but I did stumble on VPNs being a certain length compared to PFNs and how both have separate components on the most and least significant sides of the bits.
The base and bounds one really surprised me; I would not have thought there were registers in the CPU that are constantly being swapped out per process and per instruction. It does make a lot more sense now in light of all the context switching topics discussed previously; I'm truly beginning to appreciate how the CPU really does everything one at a time, no matter how fluid it seems to everyday computer users.
I have an old Epson HX-20 that I wanted to do some programming on, and I googled if it's processor had some of these functions. It doesn't; it is a much simpler processor where a program has access to everything in memory, no per-process protection. Or virtualization of any kind. And the OS is code stored on another chip, though google suggested it is more of a runtime. But maybe it would be fun to learn about addressing memory on that PC, or even writing a memory management program (but I suppose it would run extremely slow if it had to do what hardware does for us now on modern CPUs).
Comments
Post a Comment