Posts

Showing posts from July, 2025

Journal Week 5

     The most interesting piece was about the magic of concurrency. Rather than just having one path of execution, threading allows for multiple paths of execution to happen at once. But then a problem can happen when multiple threads reach a part of the code where resources or variables are shared amongst different processes. It’s okay if they are just reading the data, but if information is going to be read and overwritten it becomes a problem. If two threads, try to access and manipulate data at the same time then it may cause problems as the variable or resources are no longer the indented values. This dilemma where resources are being read and overwritten at the same time is called a race condition.       With race conditions causing unpredictable results, mutexes come to the rescue to help control the rate at which threads access critical sections Mutex is short for mutual exclusion. Mutexes serve as a “lock” around critical parts of code. This l...

Journal Entry Week 3

One of the most interesting things I learned this week is how a program converts a virtual memory address into a physical memory address located on the local RAM (random access memory). Having memory virtualization is very important. Being able to proctect the physical memory address prevents malicious activity from programs from go in and tamper with sensitive data (or even internal system). By making each program’s memory private, it prevents crashes and ensure data security.  From a more technical standpoint, the physical memory is allocated into four possible segments; Code, Heal, unallocated, or the Stack. By using the first two bits, we are able to see translate which of the four location the address belongs to. The offset binary value is then converted into hex. The hex value is then compared the allocation size. If the hex value is greater than the allocated size, then an error would occur. This error is known as an out of bounds error and denies access to the requesting pr...

Journal Entry Week 2

 One of the most interesting things I learned this week was about CPU scheduling. Everyday I use my phones or laptop, I take for granted the amount of processing power that is being the machine! This week the most tedious thing we did was hand calculate turn around time and response time. We also had to assume that there was only one available core, as other resources were not factored into the calculation.  Among the different kinds of scheduling , each of them have their own strengths and weaknesses. For example the Round- Robin scheduling excels at response time but sacrifices turnaround time in the process. By frequently switching to different jobs in small slices, the computer is able to work on all jobs what seems like simultaneously. With responses times at basically zero,  the amount of context switching that the computer has to do may drastically increase the turn around time.  Another scheduling algorithm we applied this week was the shortest Job priority. ...

CST334 Operating Systems Week 1

This week was kind of an eye opener. Being raised in an era where the internet just started booming, I always saw a computer as a black box. Almost like a modern-day Ouija board; I use the letters on a magic board and I get to see and speak to another person not in the room.  The internet has become the culmination, and as a teenager I used that knowledge to download sketchy mp3 files off a green citrus application.   I never really thought about computers and how an operating system served as an API. As I my make my way through these computer science course, I now see that I stand on the shoulders of giants. I’ve grown a deeper appreciation for all groundwork laid before me. Breaking down everything that an operating system does for the user is incredible. By the use of virtualization, it almost seems like how flawless using a computer uses its resources. From the users perspective, you kind of just expect it work out of the box.  Another Idea that I take for gr...