Home

Top 10 Lists: Week 06

  1. Concepts of Concurrency
    Concurrency is a condition when two or more activities happen simultaneously. There are many concurrency could happen in real life, just like the elevator or the intersection (at least that’s the example on the website).

  2. Managing Concurrency
    There are some ways to manage concurrency through hardware and software. Three common ways are multithreading (way of achieving a slightly finer granularity of concurrency within a process), multitasking (simulates concurrency on a single CPU by interleaving the execution of different tasks), and multiprocessing (every task assigned to every available processor).

  3. Inter Process Communication
    An interface in which a user can coordinate usage of various program that runs simultaneously/concurrently. IPC is used for exchange data between threads in one or more processes. This processes can ran through a single or multiple computer connected by a network.

  4. Multithread Process
    Oppose the singlethread process, multithread process allow multiple light thread runs simultaneously in a process. It is implemented through User Space and Kernel Space which each handled directly by user and operating system.

  5. Spinlock
    A spinlock is a variable which is set and read with an atomic operation. Spinlocks are used to protect global data accessed by tasks and interrupt handlers.

  6. Process
    Process is a program that running. Compared, process is known as active entity while program is passive entity. There are five states of a process: NEW (creation), READY (waiting for assigning to a processor), RUNNING (process on execution), WAITING (waiting for event that affect the process), TERMINATED (finished)

  7. Process Scheduling
    Process Scheduling is an activity of process manager to manage the removal of a running process and selection of another process on the basis of a particular strategy. The Operating Systems oftenly maintains some of important process scheduling queues: Job Queue (the one keeps running), Ready Queue (the one about to be executed) , and Device Queue (the one blocked)

  8. Schedulers
    This is a software that maintain the process scheduling, divided into three: Long Term Schedulers (job schedulers, choose which program about to be processed), Short Term Schedulers (CPU schedulers, maintain CPU performance), and Medium Term Schedulers (process swapping schedulers)

  9. Context Switch
    A mechanism to save and restore CPU state in process control so the process can be continued instantly. A context switcher enables multiple processes to share a single CPU

  10. Pthread
    Pthreads are defined as a set of C language programming types and procedure calls, implemented with a header/include file and a thread library - though this library may be part of another library, such as libc, in some implementations. Pthread is knwon as lightweight, efficient, and offer potential performances.