os211

Top 10 List of Week 06

  1. Concurrency vs. Parallelism
    Concurrecny and parallelism is two different concept that often gets confused. When I do quizzes, I also get confused, luckily, this website is here to help me. Now it can also help you!

  2. Process vs Threads On Linux
    Process and threads are two terms that are often heard, especially if you have a computer science background. What is process? What is thread? What is the difference? If you are wondering about that right now, you might want to check this website out.

  3. Why do we need to fork() to create new processes?
    To create a process in UNIX system, you fork the current process then do an exec system call to replace all the data from the parent process with that for the new process. But do I really need fork? Why not just create it directly from scratch? This stackoverflow post is asking this very question, and some helpful random strager is there to give an answer.

  4. Dalvik vs ART, Which one is Quicker for Android?
    On Android systems, there is something that is called a Runtime, you can think of Runtime as a software that is used to convert the High level language in to Machine level code. On newer Android versions, davlik is usually not common anymore, but you can still learn a thing and learn what makes developer switch over to ART on the link. Here is a Youtube Video that also explains it.

  5. What’s the difference between CPU Cores and Threads
    On a CPU there’s something that’s called Cores and Cores has a relation with Threads. If you are wondering what is CPU Cores and Threads (You might already know about threads if you check on entry number 2). This video is explaining about them and the difference in a simple term with simple analogy that will really help you to understand them.

  6. Multithreading on POSIX
    Multithreading is the ability of a central processing unit to provide multiple threads of execution concurrently, multithreading needs to be supported by the operating system itself. I like this website, because this website explains comprehensively almost everything about multithreading. Starting from the thread itself, it’s issues, and then build up to how to do multithreading in a POSIX-compliant system (like UNIX) with some code to help you understand.

  7. Is fork() important? Why use fork() at all?
    This is also another stackoverflow post that is related with my number three entry. This stackoverflow post explains about what is the purpose of fork(), it also explains a simple code example for a typical usage of fork. This post also tells several real usage of fork on webserver, google chrome, etc.

  8. I do not understand how execlp() works in Linux
    What is execlp() anyway? This is yet another stack overflow post that explains it. The execlp() function replaces the current process image with a new process image specified by file. This can be used in conjunction with the fork() function. You can check the stackoverflow post to know the basic functionality of that function because the post explains it in a simple and understandable way!

  9. Threading Issues in Operating Systems
    Multithreading is really useful, but it has it’s own drawbacks, for example is race condition, in which two or more threads can access shared data and they try to change it at the same time. This website explains the general issues about threading when using multi threading on an opearing systems in a clear way and divided into categories.

  10. Zombie processes and how to prevent them
    Zombiee? This is not the kind of zombie that you are thinking. Zombie process is a process which has finished the execution but still has entry in the process table to report to its parent process. You don’t want to create too many zombie process on your system, hence check this website to learn how different ways to prevent the creation of zombie process. This website also show you some example code to help you understand the concept.

That’s all from me for this week topic. See you on the next one 👋