CST 334, Journal Entry Week 3

This week, we dove into memory virtualization, and it honestly helped clear up a lot of the “magic” behind how processes run without interfering with each other. We started with address spaces, which basically let each process think it has its own chunk of memory—super useful for protection and isolation. Then we got into the C memory API, which I’ve used tons of times (like malloc() and free()), but I never really understood what was going on behind the scenes. Turns out there’s a whole system managing that memory, trying to avoid fragmentation and make allocation efficient.

We also learned about address translation using base-and-bounds. It’s a pretty clever way for the OS to map virtual addresses to physical ones while keeping things safe. Segmentation took that a step further by splitting memory into logical sections like code, heap, and stack—makes it easier to manage but can lead to fragmentation. Then we hit free space management, where we looked at strategies like first-fit and best-fit for allocating memory. Each has trade-offs, like speed vs. fragmentation.

We also had a small group project, it was just a starter to bring together a research paper, so we all contributed a few and in the end selected one to work on.

The lab and assignments were hands-on and really tied things together. Visualizing how memory gets allocated and translated made everything click. Overall, I came away with a better understanding of how memory management works and how the OS juggles everything behind the scenes to keep programs running smoothly.


Discussion & Comments