CST 334 - Operating Systems - Week 4

 



During the fourth week, I learned more about memory virtualization, focusing on the concept of paging. Paging is a crucial method that divides virtual memory into fixed size pages, which are then mapped to physical memory frames. This process not only addresses issues related to fragmentation but also simplifies memory allocation, enhancing the overall flexibility of the system. The class’s readings highlighted the significant advantages of paging, such as its ability to support an abstract address space without assumptions about its use and the efficiency in free space management through the use of a free list. Understanding the address translation process, which involves converting a virtual address to a physical address by determining the virtual page number (VPN) and the offset within the page, was a great concept to understand. This knowledge is fundamental in comprehending how operating systems manage memory and ensure efficient access and protection mechanisms.

Also, we learned about the implementation and optimization of Translation Lookaside Buffers (TLBs), which are essential in speeding up the address translation process. TLBs act as a cache for popular virtual to physical address translations, significantly reducing the overhead associated with paging. The lecture’s readings explained how TLBs manage to achieve high hit rates by leveraging spatial and temporal locality. Additionally, I learned about the various TLB replacement policies, such as Least Recently Used (LRU) and Random, which are crucial in maintaining TLB efficiency during context switches. The detailed examples of multi-level page tables and their role in reducing the size of page tables while managing memory more efficiently were great. These concepts, combined with understanding the mechanisms and policies beyond physical memory, such as swap space and page replacement strategies, provided a comprehensive overview of how modern operating systems virtualize memory and manage it effectively under different conditions. We also had to do some page practicing for the lab and for the code assignment we had to build an Memory Management Unit MMU. For this project, we had to write some functions that allowed us to find free memory, split chunks, free chunks, coalesce chunks, allocate, and free memory.

Comments

Popular posts from this blog

CST 300 - Major ProSeminar - Week 1

CST 300 - Major ProSeminar - Week 2

CST 300 - Major ProSeminar - Week 4