os211

Top 10 List of Week 08

1. CPU Scheduling Algorithms (YouTube Playlist)

There are various kinds of CPU Scheduling Algorithms, such as First Come First Serve (FCFS), Shortest Job First (SJF), Shortest Remaining Time (SRT), Round Robin (RR), and many more. This playlist covers many types of CPU scheduling algorithms. What I like most from the videos in this playlist is that it uses tables and timelines to describe the flow of the algorithm. This is very useful when learning because then we can get a better visualization on how the algorithm works.

2. CPU and I/O Burst Cycles (YouTube Video)

CPU and I/O Burst is a never ending alternating cycle, kind of. So, a CPU Burst occur when the CPU is processing a process, while I/O Burst is when the CPU is waiting for updates from the I/O. Back in the old days I like to open up the Windows Task Manager and open up the CPU Performance tab. Then I would move the Task Manager window around vigorously and watch the CPU utilization goes up. When I stop moving the window around, the CPU utilization goes down and back to normal. I would try to make the CPU utilization as close to 100% every time. Wah, gabut sekali ya :) It turns out that this is (probably, correct me if I’m wrong) an example of CPU and I/O Burst. More about this topic in the video. I really like this video because the explanation and visualization are easy to understand.

3. Preemptive and Non-Preemptive Scheduling (YouTube Video)

Preemptive and Non-Preemptive Scheduling are the two types of scheduling. Preemptive scheduling basically allows other process to take place instead of the actual process that should be executed. While non-preemptive scheduling does not allow this; in other words, process processing order cannot be changed. Of course, both of them has its own plus and minuses. More about this in the video. The video is a great source material for this topic because it gives examples on when does a preemptive and non-preemptive scheduling takes place based on the process’s states. This can be very helpful because we can connect the topic to a more familiar topic that we already understand.

4. CPU Bound vs. I/O Bound (YouTube Video)

Basically, CPU Bound process is the type of process that rely on and utilize the CPU more, while I/O Bound process is the type of process that rely on and utilize the I/O more. More about this in the video. The video presentation itself is probably not the best out there. However, the explanations are very easy to understand. He uses real life examples to help him explain about this topic. The way he presents the information is easy to follow and enjoyable.

5. Kernel vs User Level Threads (YouTube Video)

From what I learned from the video, Kernel Level Thread and User Level Thread basically has the same concepts. However, Kernel Level Threads is more of a low-level thread when compared to the User Level Thread. The video has a great explanation about this topic. Even though the duration of the video is short, the content is densely packed with knowledge. It also provides picture to help use better visualize the concept.

6. Completely Fair Scheduler (YouTube Video)

Completely Fair Scheduler is the basic scheduler of the Linux Kernel. Unlike most schedulers, this scheduler uses a red-black tree. More about this type of scheduler in the video. The video explanation is fun to follow. It also includes a little history about this scheduler, which is interesting to know about.

7. Symmetric Multiprocessing vs. Asymmetric Multiprocessing (YouTube Video)

Note
The explanation about symmetric and asymmetric multiprocessing starts at the 7:42 minute mark.

Symmetric Multiprocessing is when all the CPU is handling all the task. While Asymmetric Multiprocessing is when there each CPU handles one task. More explanations in detail can be found in this video. I like how the guy from the video uses diagrams to help him explain about symmetric and asymmetric multiprocessing. This way, we can get a better understanding and visualization about the concept.

8. What is Load Balancing? (YouTube Video)

I first hear about Load Balancing from the Web Design and Programming. It is used to distribute load such that all of the incoming loads can be served equally. It turns out that this concept is also used in operating systems. This video explains about load balancing in an easy to follow manner. It does not explain load balancing in operating systems directly. But we can connect both concepts easily when we can understand load balancing better. From what I can assume based on the facts that I learned, load balancing in operating system is used to distribute CPU loads.

9. Processor Affinity (YouTube Video)

Processor Affinity is the term that is used when processes from the same application is handled by the same CPU. This has its own plus and minuses. This way, there will be less cache miss because the data that are being used are the same. However, this may make the utilization of all CPUs unbalanced because one application may have more processes than the other. Hence, there will be a CPU that is handling way more processes than the other CPUs. This video uses a great way of visualizing the concepts using animations. The animations are very easy to understand. Other than that, the explanations are easy to follow as well. With those two combined, learning this topic becomes easier.

10. What is Non Uniform Memory Access? (YouTube Video)

Non-Uniform Memory Access, or NUMA for short, is the concept that is used in multiprocessor systems. This concept will allocate one memory to one processor, it will then connect those processors together. This way, each processor can have their own memory, which is good because if all of the processors use the same memory, then the bus will be too ‘crowded’. More about this in the video. This video enjoyable to watch. The explanations are clear and easy to understand. He also provides us with pictures of examples to help us understand the topic better.