Top 10 List of Week 06

  1. Concurrency
    An MIT article with lots and lots of illustration, which I really like since it helps me understand concepts faster. At first, I only know concurrency as “multiple computations happening at the same time”, but this page explained that it isn’t that simple. There are shared memories, processes, threads, and time-slicing, which deal with how concurrent modules communicate, basically.

  2. Concurrent Processes
    Ah yes, your classic Geeks for Geeks page. Honestly there aren’t anything really special with this page, other than how it illustrates terms about concurrent processing with graphs. Perfect to take notes of. I learnt that there are three important terms about processes, which are multiprogramming environment, multiprocessing environment, and distributed processing environment.

  3. Threading Tutorial (Video)
    I rarely watch videos when learning since I like reading much better, but I didn’t find any articles about threads that I can understand, so I looked for a video instead. This video is pretty nice, not too short nor too long. This page is not about coding, but explains the concept of threading and how it works, like in the CPU, core, et cetera. This video is kind of eye opening for me since now I more or less understand those GHz details when I’m buying a processor.

  4. Inter Process Communication
    Another Geeks for Geeks page, this time about Inter Process Communication (IPC). It explains about the two ways processes can communicate with each other, which are shared memory or message passing. In shared memory, the example is producer and consumer, where the producer makes some items and the consumers take them. In message passing method, there’s no shared memory. Instead it usses a communication link where modules can send or receive. I really like the C examples in this page since it encourages me to try to code myself.

  5. Remote Procedure Call
    This topic is one of those I have no idea what is, so everything in this page is new knowledge for me. Other than the pretty clear and concise explanation, what I like from this page is the redirects (I can click on terms and it will bring me to pages explaining them) and also the continue reading recommendations. I spent some good minutes reading more pages other than this one, since it’s actually pretty entertaining. It’s like Wikipedia surfing!

  6. Fork System Call
    I did read what fork is about on slides, but I never really knew how it works in practice. This page explains about how the fork() system call works in C, which apparently creates new process called the child process. There can be different integer values from this sysem call, which are positive (which means the creation of the child failed), negative (which means returned to parent or caller), or zero (returned to the new child process). Similar to other links here, I like this page because of the example codes and the intended output, so I can know if I’m doing it right when coding.

  7. Learn Makefiles
    The creator of this simple website stated that they made this guide because they can never really quite wrap their head around Makefiles, which is, wow, relateable. Because of that reason too, they made this website easy to understand for beginners, completed with illustrations, a video, and some examples. The creator explained that the syntax of makefiles consists of rules, which are targets, prerequisites, and commands. Remembering these three doesn’t take that much time, but I did have some issues getting used to them.

  8. fork() and exec() System Calls (Video)
    A video I got recommended from a friend about fork() and exec() system calls. I do know the uses of these two system calls, but never really thought about the differences, so this video helped me the difference and relations between these two. This video has everything; clear narrator, live coding, and illustration doodles when needed. Neso Academy never disappoints so far!

  9. Using the wait function in C (Video)
    Yet another system call in C, this time the wait sytem call. I learned that the call to wait() blocks processes until one of the child processes exists or a signal is received. I like how this video is really clear and right to the point, so it doesn’t take too much time, only a short 10 minutes and I now understand how the wait system call works.

  10. Race Condition This one’s a Stack Overflow forum, which I often prefer compared to articles because it’s more relatable and easier to understand. Someone (from 12 years ago) asked what a race condition is and when does it occur. A reply explained that this race condition thing happens when there are two or more threads that can access the same data try to change that data at the same time. A lot of replies also give examples, which makes me understand how this race condition works.