Posts

Showing posts from November, 2024

CST 334 - Week 4

Hey everyone!       This week, I learned about how operating systems manage memory, which is one of their most important jobs. One topic was free space management , where the system keeps track of memory or storage that isn’t being used. Two common methods are bitmaps (using bits to mark if memory is free or taken) and linked lists (connecting free memory blocks together). Each method has its pros and cons, like how much space they use or how fast they work.      I also studied paging , which splits memory into small chunks called pages. These pages are mapped to physical memory, keeping processes separate and organized. However, this mapping can slow things down because the computer has to translate addresses often. To make it faster, Translation Lookaside Buffers (TLBs) store recent translations in a small, quick cache. I also learned about advanced page tables , which are smarter ways of organizing these mappings to save memory.    ...

CST 334 - Week 3

 Hello everyone! I am back with an update on my online journey of learning. It was quite a week, I must say.       In the third week of CST 334, I learned about memory virtualization, which is key to how operating systems manage and allocate memory. The first concept covered was Address Space , both in the video and slides, where we saw how the operating system uses address spaces to provide an abstraction between the physical memory and what the programs see, helping to avoid conflicts and manage resources better. Next, we explored the Memory API in C through a lecture and slides, which showed how programs request memory from the operating system using system calls, giving them the ability to allocate, access, and manage memory dynamically. We then delved into Address Translation , a process where the operating system translates virtual memory addresses into physical ones, ensuring that programs access the correct memory locations without interfering with othe...

CST 334 - Week 2

 Hey everyone!      I am back with another update of this online journey of learning. This week, we spent time learning about processes, focusing on the fork method and how the operating system handles tasks. In our studies, we used Chapters 4 through 8 of OSTEP, which cover the concept of a process, process APIs, CPU scheduling, and advanced techniques like the Multi-Level Feedback Queue (MLFQ). Understanding fork was especially valuable because it’s a method that lets a process create a copy of itself. This is important for many programs that need to perform multiple tasks simultaneously, like running background processes while the main task continues. We also practice this method through the lab that our professor had prepared for us. It was really fun because the instructions were clear and we knew exactly what to do. She even gave us a starter code to understand how to use the method.       We also explored Linux and the bash shell, gaining p...