Posts

Showing posts from March, 2025

CST 334 Week 4

We learned more about the fundamental duties of the operating system this past week in CST 334, especially in relation to process management and virtual memory. The way the operating system gives the impression that every process has its own separate CPU and memory was one of the ideas that opened my eyes the most. This is accomplished by combining memory virtualization, context switching, and process control blocks (PCBs), which enable the safe and effective coexistence of numerous processes. We looked at how the operating system loads a program into memory, initializes registers such as the program counter (PC), and starts the program's execution. I now have a better grasp of the fetch-decode-execute cycle and how the OS utilizes the scheduler to choose which process gets to use the CPU next thanks to the OSTEP readings. The internal workings of multitasking were made clear by concepts like time-sharing, CPU-bound vs I/O-bound processes, and state transitions between executing...

CST 334 - Week 3

I studied process management and context switching this week in CST 334. These concepts are crucial to how operating systems manage multitasking. Understanding intentional and involuntary context shifts was one important lesson learned. An involuntary context transition happens when the OS preempts a process because of time-slicing or priority scheduling, whereas a voluntary context switch happens when a process voluntarily gives up the CPU, such when it is waiting for I/O. This reaffirmed how crucial CPU scheduling is and how the operating system distributes resources across tasks equitably. Process states and transitions, such as the change between the Ready, Running, and Blocked phases, were another crucial idea. Comprehending scheduling algorithms such as Round Robin (RR), Shortest Job Next (SJN), and First-Come, First-Served (FCFS) enabled me to comprehend how various tactics impact system responsiveness and efficiency. Particularly noteworthy was round robin scheduling, whi...

CST 334 Week 2

I learned more about processes this week. Processes are instances of running applications that are controlled by the operating system (OS). Process creation, scheduling, and management are handled by the operating system (OS), which also ensures effective multitasking through time-sharing and CPU virtualization. The OS quickly switches between processes because there are frequently more than there are CPUs available, giving the appearance of simultaneous execution. The execution status of each process is determined by its lifetime, which consists of many states: running, ready, and stalled. The OS can effectively monitor and manage processes thanks to the process control block (PCB), which houses crucial data such the process ID, registers, memory allocation, and open files. Along with studying how system methods like fork(), exec(), and wait() help with process management, I also investigated the creation and termination of processes. Wait() makes sure a parent process stops until ...

CST 338 Week 2

I worked on HW01 this week, developing Java code, configuring IntelliJ, and expanding my knowledge of unit testing. Although the initial setup went without a hitch, it was more difficult than anticipated to pass every unit test. I had trouble with edge situations like empty strings, big inputs, and unexpected characters, but fundamental test cases were simple. I gained a better understanding of catch blocks and the significance of appropriately handling exceptions because of debugging these problems. I also came to the realization that, rather than only speculating about the problem, closely examining unit test outputs is crucial to determining what must be corrected. One achievement which I'm proud of is the efficient use of Java Collections and the successful implementation of Scanner for input processing. By utilizing Git to commit my work and IntelliJ's debugger rather than just print statements, I also enhanced my process. Debugging became far more effective as a resul...

CST 338 Week 1

Solving the CodingBat challenges required a structured approach: learning the problem first, breaking it down into logical steps, and finally coding up a solution based on Java's in-built functions. Planning was optimal, while blithely firing code at the problem created inefficiencies and unnecessary complexity. Using replaceAll() for list modifications and streams for non-destructive changes improved my solutions and made them more efficient. Edge conditions like empty lists or single-character strings sometimes led to unexpected crashes, requiring multiple attempts to sort out my code. Most issues required 1-2 attempts, but tough ones, like ensuring "xyz" wasn't followed by a period, required 4-5 attempts. This exercise as a whole reminded me of the importance of thinking ahead, using Java's functional programming features, and recognizing patterns in order to debug more efficiently.

Week 1 CST 334

This week, I learned about the role of operating systems to control processes, memory, and hardware resources. I learned how the OS provides a link between applications and hardware and maximizes the use of resources. Understanding processes and how processes run in an OS made me understand multitasking and system performance better. I also set up Docker to create a Linux environment for coding labs. This introduced me to containerization, where there is a consistent development environment. It was simple to install, and running my first Docker container helped consolidate my understanding of virtualization. This hands-on experience will come in handy during future labs.

Week 8

Part 1: Review Other Teams' final video projects 1.https://www.youtube.com/watch?v=IHjqfArZh9c Brain-Computer Interfaces (BCI) Is the topic well covered? Yes, It provides a thorough historical background, the science behind BCIs, and Neuralink's advancements. Is the presentation clear? Very clear, with a logical flow from past to future applications. How is the quality of the research? Excellent—well-supported by studies and real-world examples like Neuralink. How is the quality of the video production? Good use of visuals and structure. Is the video engaging and interesting? Yes, but it could have included more real-world case studies of patients using BCIs. Is the teamwork evident? Yes, multiple contributors enhance the depth of the topic. Is the video appropriate for the audience? Yes, accessible to both tech professionals and the general public. Suggestion: More discussion on the ethical challenges of BCIs (e.g., data privacy and hacking risks) would strengthen the prese...