Skip to main content

CST335 Week 6 Journal Entry

 This week we learned about semaphores and their role in synchronizing processes in computer science. Semaphores are synchronization tools used to manage concurrent processes by utilizing counters to control access to shared resources. They can be categorized into binary semaphores, which only take values 0 and 1, and act like a lock, and counting semaphores, which can take non-negative integer values to allow multiple processes to access a finite number of resources. Understanding semaphores is essential for ensuring that concurrent processes do not cause conflicts or data corruption.

We also learned how to use semaphores in coding. We learned to write simple code with semaphores that involved initializing the semaphore, and performing wait and signal operations. By controlling the semaphores we ensured that resources were accessed in a controlled manner. We also learned a little about other synchronizations variables like monitors and were able to see the tradeoffs between the different techniques. This week I was able to learn a great deal more about synchronization and the importance of careful resource management in concurrent programming.

Comments

Popular posts from this blog

CST 370 Week 4 Journal

 This week primarily consisted of the Mid term which encompassed the first three weeks of learning. So far, this class has been challenging, but I am beginning to grasp some of the main concepts. I find that doing a daily review of the materials I have learned helps me to feel a little more confident that I understand. I feel that the main ideas have been computing the time complexity of the algorithm and getting familiar with some established algorithms for solving common problems. I will continue to study the new material and review previous materials to continue to improve.

Week 5 Learning Journal

Part One:  Supporting and Commenting on Teammate's Goals I visited the following teammate's blogs and commented on their goals. Juan's Blog Vance's Blog Part Two: Possible Capstone Ideas The three ideas I have for my capstone project are two different mobile apps and one indie game. For the two apps I am thinking of creating something in Swift, the programming language of iOS. The first app is a passion project that involves a list builder for a miniature tabletop game called OnePageRules. It is an independent miniature game ruleset and already has a web version. My app would take that template and adapt it for iOS. The second app would be a simple star wars app that utilizes an online API for Star Wars call SWAPI. This API has a number of entries related to the Star Wars universe in JSON format. My app would connect to this online API, download specific pieces of data and display them in the app.  The third idea would be to create a simple side scroller game. The game ...

CST334 Week 4 Journal Entry

 During this week of CST334 we continued to learn about memory virtualization, focusing on the technique of paging. Paging divides virtual memory into fixed-size pages that are mapped to physical memory frames, reducing fragmentation. We practiced using page tables and multi-level paging to learn how the Memory Management Unit (MMU) translates virtual to physical addresses. We also learned about temporal and spatial locality and calculated average memory access times with paging. We also explored the mechanics of swapping in operating systems and simulated various page replacement policies and analyzing their effects. This week helped me to continue to build on my understanding of efficient memory management and virtualization techniques in operating systems.