Posts

Showing posts from November, 2025

Week 5 Reflection: Concurrency and Threads

 This week we learned four main topics: concurrency, the thread API, locks, and lock based data structures. Concurrency is the idea that many tasks can appear to run at the same time, even if the system is really switching between them. The thread API teaches how to create threads, join them, and manage their behavior in a program. Locks are used to protect shared data so that only one thread can access a critical section at a time. Lock based data structures include locks in their operations to make them safe when multiple threads want to use them. Explaining these topics helped me think about what I understand. Concurrency made sense because I can imagine how tasks might overlap and cause unexpected results. The thread API also felt clear because it is similar to programming tasks I have done before. Locks also made sense to me, since their purpose is to prevent threads from interfering with each other. The hardest part of this week was not the lecture material but the midterm....

Journal Entry Week 4 (30 minutes)

This week we learned about paging, address translation, and how the operating system uses page tables. We practiced taking a virtual address, separating it into the VPN and the offset, finding the page table entry, and building the physical address. These topics showed me how memory is organized and how each process gets its own virtual view of memory. In simple terms, paging is a way for the operating system to divide memory into equal sized parts. A virtual address is what the program uses. The operating system uses the page table to translate it into a physical address. The VPN tells us which page we need and the offset tells us the exact place inside that page. I understand the idea, but I still have trouble when I work with long binary numbers. Sometimes I forget how many bits go to the VPN or to the offset. The hardest part for me this week was doing a full address translation on my own. I know the steps, but I get confused when the numbers are long or when there are many parts i...

Journal Entry – Week 3 Reflection

This week covered memory virtualization and memory allocation strategies, and it was one of the busiest weeks so far because of PA3. Between reading Computer Systems: A Programmer’s Perspective and working on the assignments, I started to really understand how memory is managed behind the scenes. The main topics were address spaces, address translation, segmentation, paging, and dynamic memory allocation. We also looked at how different strategies like first-fit, next-fit, and best-fit are used to decide where memory blocks go in the heap. From the reading, I learned that the next-fit strategy is similar to first-fit but continues searching from where the last allocation ended instead of restarting every time. I thought that was pretty clever because it makes the search faster, though the book mentioned that it can lead to worse memory utilization over time. That made me realize that memory management is really a tradeoff between speed and efficiency. I liked seeing how these strategi...

Journal Entry Week 2 – Process Management

1. Identify the topics we covered in class: This week focused on Process Management . We covered OSTEP chapters 4 to 8, which included Processes, Process API, Limited Direct Execution, CPU Scheduling, and MLFQ Scheduling . We also worked on Lab 2 (learning and scheduling practice) , PA2 code , Quiz 2 , and our group discussion. 2. Explain what each of the topics were in your own terms: A process is a program that’s running on the system. The Process API shows how new processes are created and controlled using system calls like fork() and exec() . Limited Direct Execution explains how the operating system allows programs to run directly on the CPU but still keeps control. CPU Scheduling is about how the system decides which process should run next, and MLFQ Scheduling changes process priorities depending on how much CPU time each one gets. 3. Identify least-understood topics: The hardest part for me this week was PA2 , especially setting everything up again after I formatted...

Journal Entry Week 1 (30 minutes) CST 334

Reflecting on this week, it has not been my favorite. Work has been stressful, which has made it harder for me to stay fully focused on class. Even with that, I tried to keep up with everything we learned and understand the main ideas. The main topics this week were the introduction to operating systems, computer architecture, Linux and the shell, command line basics, programming in C, and the math addendum. All of these concepts are connected around the main idea of processes, which is how an operating system manages and runs multiple programs simultaneously. In my own words, an operating system is like the manager of the computer. It makes sure everything runs smoothly, handles memory, and controls how programs share the system’s resources. The computer architecture review helped me remember how the CPU, memory, and storage interact, which made the operating system concepts easier to understand. Learning about Linux and the shell showed how we can use commands to interact with the sy...