Posts

Showing posts from December, 2024

CST 334 - Week 8

 Hey everyone, This is the last week of this class. Time went by so fast and I learned so much!       This week in CST 334, I explored the concept of persistence, both as it applies to operating systems and as a crucial trait for success in this course. In the context of operating systems, persistence refers to the ability to maintain system state and data beyond the lifespan of the processes that created them. This is achieved through storage mechanisms such as file systems, databases, and other non-volatile storage solutions. Understanding how operating systems manage data storage, retrieve persistent states, and ensure data integrity has been eye-opening. Concepts such as journaling file systems and crash recovery mechanisms illustrate the importance of designing systems that can withstand unexpected interruptions and preserve critical information.      On a personal level, persistence in this course has meant pushing through challenges such ...

CST 334 - Week 7

 Hey everyone,      This week in CST 334, I studied the concept of persistence and explored how operating systems manage data storage reliably over time. The readings from OSTEP Chapters 36 to 40 and the accompanying lectures focused on key topics such as I/O devices, hard disk drives, RAIDs (Redundant Arrays of Inexpensive Disks), files and directories, and file system implementation. I learned how I/O devices interact with the operating system to transfer data between the system and storage devices. Chapter 37 provided a detailed explanation of how hard disk drives operate, including their physical structure and the challenges in optimizing performance for data access. Chapter 38 introduced RAIDs, which use multiple drives to improve reliability, performance, or both, through techniques like mirroring and striping.      The lectures and slides on persistence and file system implementation explained how operating systems organize data into files and ...

CST 334 - Week 6

 Hey everyone!      This week we submitted our research collab project. It was quite interesting and fun. I learned a lot and our team bonded more as well. We also learned many new things through our lectures and labs.       Concurrency is a critical concept in computer systems, enabling multiple processes to execute simultaneously. However, with great power comes great complexity.       A semaphore is a synchronization primitive that helps manage access to shared resources in a concurrent environment. Semaphores can be thought of as counters that control the number of processes allowed to access a resource. They come in two main types :             - Counting Semaphores : These can have values greater than one and are often used to manage a   pool of resources, such as threads or connections.           - Binary Semaphores : These function like locks and c...