Posts

Showing posts from March, 2026

cd week_four

 Journal Entry Week 4 Topics We Covered Free-space management (malloc/free, fragmentation) TLBs (Translation Lookaside Buffers) Multi-level paging (smaller page tables) Swapping / virtual memory beyond physical memory Page faults and present bit Page replacement policies (FIFO, LRU, Random, Optimal) Cache performance (hit rate, AMAT, locality) Explaining the Topics     Free-space management is basically how memory gets handed out and taken back. The tricky part is fragmentation, where memory gets split into little pieces, and even if you technically have enough space, you can’t use it efficiently.     TLBs are like a shortcut for address translation. Instead of checking the page table every time, which is slow, we cache recent translations so we can reuse them quickly. That makes a huge difference in performance.     Multi-level paging solves the problem of page tables being way too big. Instead of storing one giant table, we break it into smaller piec...

cd week_three

Journal Entry Week 3      This week definitely felt like a big jump in difficulty again. Last week was about processes and CPU scheduling, but now we’re getting into memory and how the OS actually manages it. We have moved from how programs run to where everything is stored and how we find it, and that got complicated pretty fast. Topics We Covered Address spaces and virtual memory Base and bounds Segmentation Paging Address translation Memory allocation (malloc/free in C) Fragmentation (internal vs external) Explaining the Topics      Virtual memory and address spaces: each process thinks it has its own memory, but it’s actually mapped to physical memory.      Base and bounds: simple offset + limit system (bounds).      Segmentation: splits memory into logical chunks like code, heap, stack.      Paging: divides memory into equal-sized pages and frames; uses VPN + offset.      C memory: malloc/free...

cd week_two

Journal Entry Week 2      This week felt like things got way more complexed compared to last week. Before, it was kind of big-picture stuff like “what an OS is,” but now we actually started digging into how it really works under the hood, especially with processes and CPU stuff. Topics We Covered Processes (what they are and how they work) Process states (running, ready, blocked) Process API (fork, exec, wait) CPU virtualization Context switching Scheduling basics (FIFO, SJF, STCF, Round Robin) Intro to more advanced scheduling like MLFQ Explaining the Topics      A process is basically a program that’s actually running, not just sitting there as code. The OS takes that program and turns it into something active, with memory, and registers.      The whole idea of CPU virtualization finally clicked a bit more this week. The OS is basically juggling a bunch of processes by switching between them really fast, so it looks like everything is runni...

cd week_one

Journal Entry Week 1      This week was my first real dive into operating systems. Before this class, I saw the OS as just the thing that boots up my laptop. Now I’m starting to see it as the manager of everything happening behind the scenes. Topics We Covered The main topics we covered were: What a program does and how the CPU executes instructions The role of the operating system Virtualization Memory basics Concurrency and multithreading Persistence and file systems OS goals (performance, security, reliability, etc.) Basic computer architecture (CPU, RAM, buses, storage hierarchy) Memory layout of a running program (stack, heap, text, data) Basic command line and compilation workflow Explaining the Topics:      A program is basically a list of instructions, and the CPU’s job is to fetch, decode, and execute those instructions one by one. That seems simple, but when you zoom out, thousands (or millions) of instructions are flying by every second.  ...