Week 3: CST334

This week we learned about memory management. We learned about earlier static memory systems and how that differs from dynamic memory. Static memory was good for predictable operations, but dynamic memory was more flexible and opened the doors to more powerful computing. We also learned about virtual memory, and how it mimics a big space of memory for each individual process (even though physical memory space is limited).

The lectures described how memory is allocated, and how data is transferred between RAM and disk storage. We learned about how virtual memory ensures each process appears to have its own private memory so the processes don’t get in each other’s way. We also learned about how C functions malloc(), free(), and calloc() are used to manage memory. The function malloc() is used to allocate a specified amount, free() is used to release previously allocated memory, and is used to zero out and allocate memory. We also talked about how the operating system system manages memory through function calls like brk(), sbrk(), and mmap().

As far as virtual address translation, we learned about how both the operating system and computer’s hardware work together to convert virtual memory that the OS generates into an actual, physical address on the computer. We learned about how the MMU is used for translations and to ensure processes are kept isolated from one another. We were also introduced to topics like dynamic relocation (addresses are translated at runtime flexibly) and segmentation to better organize memory in logical ways.

The optional resources also offered a refresher on regex and grep. It’s been a long time since I used grep, but I do recall it being very handy for searching through complex projects with lots of files.


Comments

Popular posts from this blog

Journal Week 4

Week 5: CST438 Journal

This week