os211

Top 10 List of Week 06

  1. Is Single Threading Faster Than Multi Threading?
    This forum thread is interesting as it shows comparation of using multithreading and singlethreading on a program and turns out single threading has faster runtime. The answers here suggest that multithreaded programs will take effect with large volume of data because with small data there will be more relative time needed to create thread, context switch, and release memory allocated.

  2. Background and Foreground Process
    Foreground process is any task that you can run directly and wait to complete, while background process is any task that you don’t need to wait before you can run more processes. Linux can switch between the two easily with bg and fg command.

  3. Orphan, Zombie, Daemon, and More Processes
    Processes can be classified into many types, mainly parent and child process. This article gives direct and simple explanation of it all in the easiest way possible.

  4. Implicit Threading
    In diverse with manually set threading, some compiler and programming language library have already implemented and hide their management of threads behind the scene like OpenMP in C. Whereas in java you can use Runnable interface and in python with threading module.

  5. Moore’s Law is Dead
    Moore’s law as we know from Computer Organization class is considered going to be dead shortly with new inventions in computing and processors. This web explains very deeply into it but a very interesting one to know improvement of modern technology.

  6. Concurrency vs Paralleslism
    These two might seem similar so it’s very important to know the differences between the two. An application can be concurrent but not parallel and vice versa. More details in this article.

  7. Multi Threading vs Hyper Threading
    I stumbled upon this new term hyper threading after learning about the usual multi threading. In short hyper threading works by allowing a single processor to operate like two separate processors, while multi threading works by allowing multiple threads within the context of a process independently.

  8. In Depth of Context Switching
    Context switching is mechanism done by operating system to change the state of multiple processes. This article gives a very good illustration and deep explanation about this topic.

  9. Web Server Concurrency
    Practical example of using concurrency in web server with C. The three ways include shared code, using a multiprocessing server, and polling server. This might be complicated but the concept of using concurrency in such real practical way is simply amazing.

  10. Concurrency Problems
    Dealing with multiple threads and processes can easily cause problems within it. The three main problems are lost updates, uncommiteed data, and inconsistent retrievals which are explained very well with example in this web.