From 2a846399fece4608b1de576ec80bad30d2e5ac1d Mon Sep 17 00:00:00 2001 From: zeus Date: Sun, 21 Feb 2021 18:34:42 +0200 Subject: [PATCH] Linux-process-management --- Linux-process-management/1-76.png | Bin 0 -> 16610 bytes Linux-process-management/2-50.png | Bin 0 -> 10513 bytes .../Life_cycle_of_a_process.adoc | 352 +++++++++ .../Multithreaded_process.svg | 79 ++ Linux-process-management/Process_states.png | Bin 0 -> 80341 bytes ...mplified_Structure_of_the_Linux_Kernel.svg | 709 ++++++++++++++++++ .../fork-exec-exit-wait.png | Bin 0 -> 37909 bytes Linux-process-management/index.js | 45 ++ Linux-process-management/processes.adoc | 116 +++ .../program_in_memory2.png | Bin 0 -> 78995 bytes index.js | 8 +- 11 files changed, 1305 insertions(+), 4 deletions(-) create mode 100644 Linux-process-management/1-76.png create mode 100644 Linux-process-management/2-50.png create mode 100644 Linux-process-management/Life_cycle_of_a_process.adoc create mode 100644 Linux-process-management/Multithreaded_process.svg create mode 100644 Linux-process-management/Process_states.png create mode 100644 Linux-process-management/Simplified_Structure_of_the_Linux_Kernel.svg create mode 100644 Linux-process-management/fork-exec-exit-wait.png create mode 100644 Linux-process-management/index.js create mode 100644 Linux-process-management/processes.adoc create mode 100644 Linux-process-management/program_in_memory2.png diff --git a/Linux-process-management/1-76.png b/Linux-process-management/1-76.png new file mode 100644 index 0000000000000000000000000000000000000000..fc9a1e0c683e2be7b277c4ad633436881f51b0e8 GIT binary patch literal 16610 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 literal 0 HcmV?d00001 diff --git a/Linux-process-management/2-50.png b/Linux-process-management/2-50.png new file mode 100644 index 0000000000000000000000000000000000000000..6723a4b667fa35318d7e0a454e0fda685af166b6 GIT binary patch literal 10513 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 literal 0 HcmV?d00001 diff --git a/Linux-process-management/Life_cycle_of_a_process.adoc b/Linux-process-management/Life_cycle_of_a_process.adoc new file mode 100644 index 0000000..9292af7 --- /dev/null +++ b/Linux-process-management/Life_cycle_of_a_process.adoc @@ -0,0 +1,352 @@ += Linux process management ! +Apostolos rootApostolos@swarmlab.io +// Metadata: +:description: Life cycle of a process +:keywords: ps aux +:data-uri: +:toc: right +:toc-title: Table of contents +:toclevels: 4 +:source-highlighter: highlight +:no-header-footer: +:nofooter: +:last-update-label!: +:icons: font +:sectnums: + + +.Life cycle of a process +**** + +[.float-group] +-- +.fork-exec footnote:[http://www.it.uu.se/education/course/homepage/os/vt18/images/module-2/fork-exec-exit-wait.png[^]] +image::./fork-exec-exit-wait.png[350,350,role="related thumb right"] + +*fork()* is the the system call that the parent process uses to "divide" itself ("fork") into two identical processes. + +* After calling fork(), the created child process is an exact copy of the parent except for the return value of the fork() call. + +** This includes open files, register state, and all memory allocations, which includes the program's executable code. In some cases the two continue to run the same binary, +* the child switches to running another binary executable using the *exec()* system call. +-- +**** + +== Life cycle of a process + + + +* When a process forks, a complete copy of the executing program is made into the new process. +** This new process is a child of the parent process, and has a new process identifier (PID). + +* The fork() function returns the child's PID to the parent process. +** The fork() function returns 0 to the child process. +** This enables the two identical processes to distinguish one another. + + +* The parent process can either continue execution or wait for the child process to complete. + +* The child, after discovering that it is the child, replaces itself completely with another program, so that the code and address space of the original program are lost. + +* If the parent chooses to wait for the child to die, then the parent will receive the exit code of the program that the child executed. + +* To prevent the child becoming a zombie the parent should call wait on its children, either periodically or upon receiving the SIGCHLD signal, which indicates a child process has terminated. + +* One can also asynchronously wait on their children to finish, by using a signal handler for SIGCHLD, if they need to ensure everything is cleaned up. + + + +[NOTE] +==== +* When the child process calls exec(), all data in the original program is lost, and it is replaced with a running copy of the new program. + +** This is known as overlaying. + +* Although all data are replaced, the file descriptors that were open in the parent are closed only if the program has explicitly marked them close-on-exec. + +* This allows for the common practice of the parent creating a pipe prior to calling fork() and using it to communicate with the executed program. +==== + + +=== copy-on-write + + All processes are sharing the same set of pages and each one gets its own private copy when it wants to modify a page. + +*In such cases, a technique called copy-on-write (COW) is used.* + +With this technique, when a fork occurs, the parent process's pages are not copied for the child process. + +Instead, the pages are shared between the child and the parent process. + +Whenever a process (parent or child) modifies a page, a separate copy of that particular page alone is made for that process (parent or child) which performed the modification. + +This process will then use the newly copied page rather than the shared one in all future references. +The other process (the one which did not modify the shared page) continues to use the original copy of the page (which is now no longer shared). This technique is called copy-on-write since the page is copied when some process writes to it. + + + +[NOTE] +==== +*copy-on-write* is lazy copying, child process copy the page when try to write it. + +So basically, after a fork, almost child's memory is shared with parent. + +Before any of the processes made, every child process still have some private memory, modified from parent's or new allocating. + +That means even without any action the forked child process has some private memory. + +We can verify it with +[source,bash] +---- +cat /proc/PID/smaps +or +pmap PID +---- +==== + +[TIP] +==== +This operation avoids unnecessary overhead because copying an entire address space is a very slow and inefficient operation which uses a lot of processor time and resources. +==== + +=== Zombie processes + + A child process always first becomes a zombie before being removed from the resource table. + +When a process ends via exit, all of the memory and resources associated with it are deallocated so they can be used by other processes. + +The process's entry in the process table remains. + +The parent can read the child's exit status by executing the wait system call, whereupon the zombie is removed. + +The wait call may be executed in sequential code, but it is commonly executed in a handler for the SIGCHLD signal, which the parent receives whenever a child has died. + + +[NOTE] +==== +In most cases, under normal system operation zombies are immediately waited on by their parent and then reaped by the system – processes that stay zombies for a long time are generally an error and cause a resource leak, but the only resource they occupy is the process table entry – process ID. +[source,bash] +---- +It is not possible to kill such a process with the kill command, because it is already considered dead. +You can kill the parent process and then the zombie disappears as well. + +Zombies can be identified in the output from the Unix ps command by the presence of a "Z" in the "STAT" column +---- +==== + + +=== wait + + The child process will not be completely removed until the parent process knows of the termination of its child process by the wait() system call. + +A process (or task) may wait on another process to complete its execution. + +The parent process issue a wait system call, which suspends the execution of the parent process while the child executes. + +When the child process terminates, it returns an exit status to the operating system, which is then returned to the waiting parent process. + +The parent process then resumes execution. + +=== Orphan process + +A child process whose parent process terminates before it does becomes an orphan process. + +Such situations are typically handled with a special "root" (or "init") process, which is assigned as the new parent of a process when its parent process exits. + +This special process detects when an orphan process terminates and then retrieves its exit status, allowing the system to deallocate the terminated child process. + +=== Process States + +[source,bash] +---- +ps aux +---- + +In the *STAT* column, you'll see: + +* R: running or runnable, it is just waiting for the CPU to process it +* S: Interruptible sleep, waiting for an event to complete, such as input from the terminal +* D: Uninterruptible sleep, processes that cannot be killed or interrupted with a signal, usually to make them go away you have to reboot or fix the issue +* Z: Zombie, we discussed in a previous lesson that zombies are terminated processes that are waiting to have their statuses collected +* T: Stopped, a process that has been suspended/stopped + +== Thread + + A thread is an execution unit that has its own program counter, a stack and a set of registers that reside in a process + + +Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. + +The threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time. + +[.float-group] +-- +.A process with two threads footnote:[https://commons.wikimedia.org/w/index.php?curid=2233446[^]] +image::./Multithreaded_process.svg[350,350,role="related thumb right"] + +Threads in the same process share: + +* Process instructions +* open files, data +* signals and signal handlers +* current working directory +* User and group id +-- + +NOTE: A thread is also called Light Weight Process (LWP). + +=== Implementations + +* LinuxThreads +** The default thread implementation since Linux kernel 2.0 (introduced in 1996) +* Native POSIX Thread Library (NPTL) +** NPTL has been part of Red Hat Enterprise Linux since version 3, and in the Linux kernel since version 2.6. It is now a fully integrated part of the GNU C Library. +* Next Generation POSIX Thread (NGPT) +** A IBM developed version of POSIX thread library. The NGPT team collaborated closely with the NPTL team and combined the best features of both implementations into NPTL. + + +=== Threads vs. processes pros and cons + + +* processes are typically independent, while threads exist as subsets of a process +* processes carry considerably more state information than threads, whereas multiple threads within a process share process state as well as memory and other resources +* processes have separate address spaces, whereas threads share their address space +* processes interact only through system-provided inter-process communication mechanisms +* context switching between threads in the same process typically occurs faster than context switching between processes + + +Advantages and disadvantages of threads vs processes include: + +* *Lower resource consumption of threads*: using threads, an application can operate using fewer resources than it would need when using multiple processes. +* *Simplified sharing and communication of threads*: unlike processes, which require a message passing or shared memory mechanism to perform inter-process communication (IPC), threads can communicate through data, code and files they already share. + +TIP: *Thread crashes a process*: due to threads sharing the same address space, an illegal operation performed by a thread can crash the entire process; therefore, one misbehaving thread can disrupt the processing of all the other threads in the application. + + +==== When should you prefer fork() over threading and vice-verse? + +When you're doing a far more complex task than just instantiating a worker, or you want the implicit security sandboxing of separate processes. + +==== If I want to call an external application as a child, then should I use fork() or threads to do it? + +If the child will do an identical task to the parent, with identical code, use fork. For smaller subtasks use threads. + +==== it is bad thing to call a fork() inside a thread? + +it's computationally rather expensive to duplicate a process and a lot of subthreads. + +== Process Memory + + A process uses its own memory area to perform work. + +[.float-group] +-- +.Process Memory footnote:[https://gabrieletolomei.files.wordpress.com/2013/10/program_in_memory2.png?w=960[^]] +image::./program_in_memory2.png[350,350,role="related thumb right"] + +* Text Segment. +** The Text segment (a.k.a the Instruction segment) contains the executable program code and constant data. + +* Data Segment +** Heap +*** Heap is the segment from which the memory is provided. (e.g. malloc()) + +** BSS: +*** The area where zero-initialized data is stored. All the global variable which are not initialized in the program are stored in the BSS segment. + +** Data: +*** The area where initialized data are stored. + +* Stack Segment +** The stack segment is used by the process for the storage of automatic identifier, register variables, and function call information. +-- + +.what process is attached to a shared memory segment? +[source,bash] +---- +You can use: +ipcs -mp to get the process ID +and +with the command grep [shared memory segment] /proc/*/maps +---- + +TIP: *ipcs* shows information on the inter-process communication facilities for which the calling process has read access. +By default it shows information about all three resources: shared memory segments, message queues, and semaphore arrays. + +== Process priority (nice) + +In Linux we can set guidelines for the CPU to follow when it is looking at all the tasks it has to do. +These guidelines are called niceness or nice value. + +The "niceness" scale goes from + +* -20 (highest priority value) +* 19 (lowest priority value) +* default is 0 + +The nice priority is actually used for user programs. + +NOTE: Priority is all about managing processor time + +[source,bash] +---- +nice run a program with modified scheduling priority +chrt allows to set your scheduling policy as well as priority. +---- +== Scheduler + + +[.float-group] +-- +.Structure of the Linux kernel footnote:[By ScotXW - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=47075153[^]] +image::./Simplified_Structure_of_the_Linux_Kernel.svg[350,350,role="related thumb right"] + + The scheduler is the Linux kernel part that decides which runnable process will be executed by the CPU next. + +It handles CPU resource allocation for executing processes, and aims to maximize overall CPU utilization while also maximizing interactive performance. + + + +-- + +[NOTE] +==== + +The scheduler makes it possible to execute multiple programs at the same time, thus sharing the CPU with users of varying needs. + +* Minimizing response time +* Maximizing overall CPU utilization +==== + +TIP: Since Linux 2.6.23, the default scheduler is CFS, the "Completely Fair Scheduler". The + CFS scheduler replaced the earlier "O(1)" scheduler. footnote:[https://en.wikipedia.org/wiki/Completely_Fair_Scheduler[^]] footnote:[https://www.kernel.org/doc/html/latest/scheduler/index.html[^]] + + +== Context switching + +*Context switch* is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point. +This allows multiple processes to share a single central processing unit (CPU), and is an essential feature of a multitasking operating system. + +In the Linux kernel, context switching involves + +* switching registers +* stack pointer +* program counter +* flushing the translation lookaside buffer (TLB) +* and loading the page table of the next process to run (unless the old process shares the memory with the new). + +== Interrupts + +An interrupt is an event that alters the normal execution flow of a program and can be generated by hardware devices or even by the CPU itself. + +Interrupts can be grouped into two categories based on the source of the interrupt: + +* synchronous, generated by executing an instruction +* asynchronous, generated by an external event +** For example a network card generates an interrupts to signal that a packet has arrived. + +[source,bash] +---- +Information related to hard interrupts at /proc/interrupts +---- + diff --git a/Linux-process-management/Multithreaded_process.svg b/Linux-process-management/Multithreaded_process.svg new file mode 100644 index 0000000..9e11a69 --- /dev/null +++ b/Linux-process-management/Multithreaded_process.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + WaktuTime + ProsesProcess + Utas #1Thread #1 + Utas #2Thread #2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Linux-process-management/Process_states.png b/Linux-process-management/Process_states.png new file mode 100644 index 0000000000000000000000000000000000000000..e9b736556dceaf8343e964edc221d1c54e5f2ee1 GIT binary patch literal 80341 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μ-p)FipAw7S=!3&w2 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 M9YyJ4Ndv$C1EwN>+5i9m literal 0 HcmV?d00001 diff --git a/Linux-process-management/Simplified_Structure_of_the_Linux_Kernel.svg b/Linux-process-management/Simplified_Structure_of_the_Linux_Kernel.svg new file mode 100644 index 0000000..6a61cdd --- /dev/null +++ b/Linux-process-management/Simplified_Structure_of_the_Linux_Kernel.svg @@ -0,0 +1,709 @@ + + + + + Simplified Structure of the Linux Kernel + + + + + + + + image/svg+xml + + Simplified Structure of the Linux Kernel + 2016-02-20 + + + Shmuel Csaba Otto Traian Xerxes + + + + + Shmuel Csaba Otto Traian Xerxes + + + + + Andrew Stuart Tanenbaum + + + Illustrates three major components of the Linux kernel. Missing netfilter and nftables. Taken from "Modern Operating Systems" ISBN 0-13-359162-X + en-US + + + + https://commons.wikimedia.org/wiki/File:Simplified_Structure_of_the_Linux_Kernel.svg + + + https://commons.wikimedia.org/wiki/File:Simplified_Structure_of_the_Linux_Kernel.svg + https://commons.wikimedia.org/wiki/File:Simplified_Structure_of_the_Linux_Kernel.svg + + + + + + + + + + + + + + + + + by Shmuel Csaba Otto Traian Xerxes; GFDL 1.3 & CC-BY-SA 4.0; 2016-02-20 + + + + + + + + + + + + + + + + + + + + + + + + + + Linux kernel SCI (System Call Interface) + IRQs + Dispatcher + I/O subsystem + Memorymanagementsubsystem + Processmanagementsubsystem + Signalhandling + process/threadcreation &termination + Linux kernelProcessScheduler + Virtualmemory + Pagingpagereplacement + Pagecache + File systems + Genericblock layer + Linux kernelI/O Scheduler + Blockdevicedrivers + Sockets + Networkprotocols + Networkdevicedrivers + Terminals + Characterdevicedrivers + Linediscipline + Linux kernelVirtual File System + Linux kernelPacket Scheduler + Netfilter / Nftables + + diff --git a/Linux-process-management/fork-exec-exit-wait.png b/Linux-process-management/fork-exec-exit-wait.png new file mode 100644 index 0000000000000000000000000000000000000000..504e75292406f1d00a0d84585b409b7a45302d89 GIT binary patch literal 37909 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

5uexY_prE0n%4NroLvq{`O!#F;Lhr&(tVW<~Aa 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 (>GJXbvCumNQV%t) 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 creation *2->* execution *3->* termination *4->* removal + +=== process state + +An operating system kernel that allows multitasking needs processes to have certain states. Names for these states are not standardised, but they have similar functionality. + + +[.float-group] +-- +[.right] +image:./Process_states.png[350,350,role="related thumb right"] + +* the process is *"created"*. +* After that the process scheduler assigns it the *"waiting"* state. +* While the process is *"waiting"*, it waits for the scheduler to do a so-called context switch. +* The context switch loads the process into the processor and changes the state to *"running"* while the previously *"running"* process is stored in a *"waiting"* state. +* If a process in the *"running"* state needs to wait for a resource, it is assigned the *"blocked"* state. +* The process state is changed back to *"waiting"* when the process no longer needs to wait (in a blocked state). +* Once the process *finishes execution*, or is *terminated* by the operating system, it is no longer needed. +* The process is *removed instantly* or is moved to the *"terminated"* state. +* When removed, it just waits to be *removed from main memory*. + + +-- + + +=== Inter-process communication + +When processes need to communicate with each other they must share parts of their address spaces or use other forms of inter-process communication (IPC). + +* For instance in a shell pipeline, the output of the first process need to pass to the second one. +* another example is a task that can be decomposed into cooperating but partially independent processes which can run at once +** (i.e., using concurrency, or true parallelism - the latter model is a particular case of concurrent execution and is feasible whenever enough CPU cores are available for all the processes that are ready to run). + +NOTE: It is even possible for two or more processes to be running on different machines that may run different operating system (OS), therefore some mechanisms for communication and synchronization (called communications protocols for distributed computing) are needed (e.g., the *Message Passing Interface, often simply called MPI*). + + +==== communication between processes + +Processes can communicate with each other through: + +* Shared Memory +* Message passing + + +[.float-group] +-- +[.right] +image:./1-76.png[350,350,role="related thumb right"] +[.left] +image:./2-50.png[350,350,role="related thumb left"] +-- + +footnote:[https://www.geeksforgeeks.org/inter-process-communication-ipc/[^]] diff --git a/Linux-process-management/program_in_memory2.png b/Linux-process-management/program_in_memory2.png new file mode 100644 index 0000000000000000000000000000000000000000..87343994194e0badec6b9cda630f3c237ca7dd4b GIT binary patch literal 78995 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%0AZ1+5!8+96%SCTz8#@K(3O!&6FkSj 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

T2OC=8jS7D5@heE4|=Jta*n7|iAHgY+4o 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 literal 0 HcmV?d00001 diff --git a/index.js b/index.js index 381dc9f..2d24e0d 100644 --- a/index.js +++ b/index.js @@ -20,13 +20,13 @@ "url": "" }, { - "title": "mpi", - "subtitle": "Basics", - "level": "Elementary", + "title": "Linux process management", + "subtitle": "Life cycle of a process", + "level": "Intermediate", "desc": "description", "license": "CC BY-NC-ND 3.0", "lang": "el", - "dir": "hybrid-mpi", + "dir": "Linux-process-management", "url": "" } ]