mostafaelsawy.hashnode.dev[8] Understanding Swap Space and Page Replacement PoliciesIn modern computing, we often assume that each process's address space is small enough to fit entirely in physical memory. However, this assumption is far from reality. As we move towards systems that support multiple large, concurrently running proc...Oct 13, 2024·15 min read
mostafaelsawy.hashnode.dev[7] Understanding Paging in Computer SystemsAs we discussed in segmentation, we fixed the problem by dividing memory into variable-sized pieces. Unfortunately, this solution has its own issues. When you split space into variable-sized chunks, it can become fragmented, making allocation harder ...Oct 5, 2024·22 min read
mostafaelsawy.hashnode.dev[6] Understanding Segmentation in Computer SystemsAs you can see, even though the space between the stack and heap isn't used by the process, it still takes up physical memory when we move the whole address space to physical memory. This makes using a base and bounds register pair to virtualize memo...Sep 27, 2024·15 min read
mostafaelsawy.hashnode.dev[5] Memory APITypes of Memory Stack Memory Allocations and deallocations are managed implicitly by the compiler, also known as automatic memory. Declaring memory on the stack in C is simple. For example, if you need space for an integer called x in a function f...Sep 21, 2024·8 min read
mostafaelsawy.hashnode.dev[4] Address Space & Address TranslationBack in the day, early machines didn't really offer much in terms of user-friendly features. Basically, the physical memory of the machine looked something like this: The OS was a set of routines (like a library) that stayed in memory (starting at p...Sep 21, 2024·11 min read