Posts

Showing posts from August, 2025

CST 334: Week 8

  Write a 1 - 2 paragraph journal post, of at least 250 words, summarizing what your biggest takeaways from CST334 were, including any major challenges or topics you found particularly interesting.   One of my biggest takeaways from CST 334 is that material is very extensive and it would probably benefit me to take time when I have it to go back over it all at my own pace. I understand that all the material is meant to be covered in less than 8 weeks, but it seemed a bit unrealistic at times to expect us to be working on the weekly average worth of reading, lectures, and assignments while also doing some group work and preparing for the next exam. I need to take at least a week longer or so with all the material than we were given and do at least four more assignments for each module so I practice applying the material I had just learned. Another takeaway I had was that there was so much pre established code in most of the assignments that would have been helped to taken mor...

CST 334: Week 7

This week in CST 334, we learned about how the OS communicates with I/O devices. For example, we learned that devices consist of two components, their interface and their internal structure. Their interface is used by the system software to control it, while their internal structure is implemented to perform their specific utilization. The interface features three registers, the status, command, and data registers. The status register is used to determine whether the device is busy or not. The command register is used to determine what task the device intends to perform. Lastly, the data register is used to pass data in-between the device and the system.  It’s important to note that while the data register is bi-directional, the other two registers are only used by the OS in one direction, out to the command register and in from the status register. Additionally, the OS will utilize two different methods of communicating with a device, polling or interrupts. With polling the OS is ...

CST 334: Week 6

This week we learned about condition variables, semaphores, and common concurrency problems. In terms of conditional variables, they are useful when we want to make a thread sleep rather than spin as it waits to complete its execution. When a thread begins to spin as it waits for its turn with a lock, the thread still utilizes a substantial amount of processing power. To salvage or preserve this power, we can instead teach the thread to sleep rather than spin by applying conditional variables. A thread that chooses or needs to wait for a certain condition to be met will go to sleep using the wait() function, but its not until it is signaled by another thread that the condition has been met and it wakes again. The other thread can signal the initial thread in question by calling the signal() function or signal all threads waiting for the same condition at once by calling the broadcast() function. In terms of semaphores, they are similar to ticket locks as they both track values that det...