Posts

Showing posts from July, 2025

Journal Entry Week 5- CST334

This week in CST 334, I spent time getting comfortable with concurrency and threading, specifically using pthreads in C. One major realization was seeing how concurrent programming dramatically boosts application performance and usability. A simple, relatable example is how web browsers manage tasks simultaneously. You can smoothly scroll, click, and navigate websites, while downloading files or loading content continues in the background without causing delays or freezing the interface. Practicing with pthreads helped me understand core functions such as pthread_create , pthread_join , pthread_mutex_lock , and pthread_mutex_unlock . Learning the purpose of each function parameter and seeing how they impact thread management made the concepts clearer and more intuitive. Also, I noticed that while locks are essential for maintaining data consistency, improper usage can introduce overhead and reduce performance if not handled thoughtfully. The part I found particularly valuable this week...

Journal Entry Week 3 CST-334

 This week in CST 334 I focused on making the transition from abstract concepts to concrete practice in memory management. I started by defining the terms we use most often: an address space is the set of virtual addresses a process can reference, a virtual address is the number generated by the program, and the physical address is where that data actually lives in RAM. By simulating the base and bounds scheme on paper, I saw how adding a base register to each virtual address and checking it against a bounds register enforces safety and gives the process the illusion of starting at zero. Moving on to segmentation, I drew out separate segments for code, data, and stack to understand how that approach can reduce internal fragmentation and allow different permissions on each segment. Skipping notes alone and actually writing down the address translations helped me verify my understanding and pinpoint where errors could creep in. On the hands-on side, I practiced using malloc and free...

Journal Entry Week 2- CST334

This week in CST 334, I explored essential concepts of process management, particularly emphasizing process scheduling and its profound impact on overall system efficiency and performance. Understanding various scheduling algorithms provided valuable insights, particularly focusing on First In First Out (FIFO), Shortest Job First (SJF), and Shortest Time-to-Completion First (STCF). FIFO stood out due to its straightforward implementation and intuitive logic; however, its susceptibility to the "convoy effect," where shorter tasks are delayed behind significantly longer ones, highlighted a notable limitation. Conversely, SJF significantly improves turnaround times by prioritizing shorter tasks first, yet it comes with the impractical requirement of accurately predicting the durations of individual jobs beforehand. The Multi-Level Feedback Queue (MLFQ) scheduling algorithm was particularly fascinating, as it dynamically adapts by assigning varying priority levels based on the ob...

CST 334 Journal Entry Week 1

 Hello everyone, this week in CST 334 we started of with an engaging introduction to operating systems, giving me a better understanding of how they act as the essential link between software and hardware. I learned that an operating system manages resources, simplifies complex hardware interactions, and provides essential abstractions for users and developers. Additionally, I explored number base conversions, gaining proficiency in translating numbers between binary, decimal, and hexadecimal systems, which is crucial for low-level programming and understanding data representation at the hardware level. Furthermore, this week's lessons emphasized practical skills in programming. I became familiar with writing basic bash scripts, a helpful tool for automating repetitive tasks and executing programs in a Unix-like environment. Moreover, I gained hands-on experience in writing C programs using provided templates, allowing me to better understand the structure and syntax of C, which i...