Top 10 List of Week 06

  1. Operating System - Processes
    A process is basically a program in execution. The execution of a process must progress in a sequential fashion.A process is defined as an entity which represents the basic unit of work to be implemented in the system.

  2. Fork()
    Fork system call is used for creating a new process, which is called child process, which runs concurrently with the process that makes the fork() call (parent process). After a new child process is created, both processes will execute the next instruction following the fork() system call.

  3. Process control block
    A process control block (PCB) is a data structure used by computer operating systems to store all the information about a process. It is also known as a process descriptor.The role of the PCBs is central in process management: they are accessed and/or modified by most utilities, particularly those involved with scheduling and resource management.

  4. Exec family of functions in C
    The exec family of functions replaces the current running process with a new process. It can be used to run a C program by using another C program.

  5. execlp()
    The execlp() function replaces the current process image with a new process image specified by file. The new image is constructed from a regular, executable file called the new process image file. No return is made because the calling process image is replaced by the new process image.

  6. Inter Process Communication (IPC) Interprocess communication is the mechanism by which multiple processes can communicate with each other. This is one of the important feature provided by the operating system. These are the advantages of using IPC:
  7. Multi-Threading
    A thread is a flow of execution through the process code, with its own program counter that keeps track of which instruction to execute next, system registers which hold its current working variables, and a stack which contains the execution history.

  8. Concurrency
    Concurrency is the tendency for things to happen at the same time in a system. Concurrency is a natural phenomenon, of course. In the real world, at any given time, many things are happening simultaneously. When we design software to monitor and control real-world systems, we must deal with this natural concurrency. When dealing with concurrency issues in software systems, there are generally two aspects that are important: being able to detect and respond to external events occurring in a random order, and ensuring that these events are responded to in some minimum required interval. If each concurrent activity evolved independently, in a truly parallel fashion, this would be relatively simple: we could simply create separate programs to deal with each activity. The challenges of designing concurrent systems arise mostly because of the interactions which happen between concurrent activities. When concurrent activities interact, some sort of coordination is required.

  9. Single-threaded vs Multi-threaded Processes
    Single threaded processes contain the execution of instructions in a single sequence. In other words, one command is processes at a time.The opposite of single threaded processes are multithreaded processes. These processes allow the execution of multiple parts of a program at the same time. These are lightweight processes available within the process.Multithreaded processes can be implemented as user-level threads or kernel-level threads

  10. Memory layout of a process
    When a C program is created then it is just some pieces of Bytes which is stored in Hard Disk.When a program is double-clicked in windows then the program starts loading in memory and become a live entity.The program itself only contains instruction only but a process has more part which are: Stack Section, Heap Section, Data Section, Text Section.