Posts

Showing posts from December, 2025

Week 31: CST 334 - Operating Systems

WK07: Weekly Learning Reflection This week we covered several connected topics related to storage and input/output in operating systems. The main topics were I/O devices, hard disk drives, files and directories, and file system implementation. These topics helped explain how the operating system communicates with hardware and how data is stored and organized on disk. I/O devices focused on how the OS interacts with devices like disks and keyboards. We learned about programmed I/O, interrupts, and DMA, and how each method affects CPU usage and performance. Hard disk drives built on this by explaining how physical disks work, including seek time, rotational delay, and transfer time. This helped me better understand why disk access is much slower than memory access and why performance optimizations matter. The interlude on files and directories explained how files are organized and accessed. We learned that files are made up of data and metadata, and that directories are special files tha...

Week 30: CST 334 - Operating Systems

WK06: Weekly Learning Reflection This week's material focused heavily on thread synchronization, and I found that the topics connected more tightly than I expected. We covered condition variables, the bounded buffer implementation, the Anderson/Dahlin method for transforming ordinary classes into thread-safe ones, semaphores, and synchronization barriers. Although each topic introduced a new primitive or pattern, they all centered on the challenge of coordinating multiple threads correctly and avoiding issues like races, deadlock, or inconsistent shared state. In my own words, condition variables provide a way for a thread to sleep until some condition becomes true, while the lock protects shared data the condition depends on. Coding the bounded buffer helped me see why both the lock and the condition variable are essential; without the while loops, spurious wakeups or reordered scheduling would break correctness. The Anderson/Dahlin method made this even more procedural by giving ...