Operating Systems: Week 3
During this week, we have gone into depth about the memory of a program. I read chapters 13 - 17, which covered address spaces, C Memory API, Address Translation & Base-and bounds, Segmentation, and Free Space management.
I learned that an address space refers to the range of memory addresses that a process can use. When a program is compiled into memory addresses and we have goals when dealing with memory. The goals are to have transparency, efficiency, and protection. With these goals, we have some challenges that can occur, which we can address with our solution of using virtual memory. This week, I have also learned how to use malloc() and free(), and the many mistakes that can be avoided.
Address translation uses the virtual addresses to determine if it's invalid (which will lead to a trap) or valid which will map it to physical memory. I also learned about base-and-bounds and how each process had these values. Additionally, I learned the importance of segmentation. Segmentation is part of a solution that allows for multiple base-and-bounds pairs per segment of a process's address space. In the last chapter of this week, I understood the value of free space management. The goals for managing free memory are correctness, speed, little memory overhead, and having as many requests satisfied. The important goal that we care about the most is correctness.
Overall, I realized that memory management is not as simple as I expected but rather more complex. However, it kept making more sense after going through each chapter.
Comments
Post a Comment