<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="generator" content="Asciidoctor 2.0.12"> <meta name="description" content="Linux process management"> <meta name="keywords" content="ps aux"> <meta name="author" content="Apostolos rootApostolos@swarmlab.io"> <title>Linux process management !</title> <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/asciidoctor.js/1.5.9/css/asciidoctor.min.css"> <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.3/styles/github.min.css"> </head> <body class="article toc2 toc-right"> <div id="header"> <h1>Linux process management !</h1> <div class="details"> <span id="author" class="author">Apostolos rootApostolos@swarmlab.io</span><br> </div> <div id="toc" class="toc2"> <div id="toctitle">Table of contents</div> <ul class="sectlevel1"> <li><a href="#_process">1. process</a></li> <li><a href="#_linux_process_management">2. Linux process management</a></li> </ul> </div> </div> <div id="content"> <div class="sect1"> <h2 id="_process">1. process</h2> <div class="sectionbody"> <div class="paragraph"> <p>An instance of a running program is called a process. Every time you run a shell command, a program is run and a process is created for it.</p> </div> <div class="paragraph"> <p>In any modern operating system there can be more than one instance of a program loaded in memory at the same time.</p> </div> </div> </div> <div class="sect1"> <h2 id="_linux_process_management">2. Linux process management</h2> <div class="sectionbody"> <div class="paragraph"> <p>Operating systems need some ways to create processes.</p> </div> <div class="ulist"> <ul> <li> <p>In a very simple system designed for running only a single application (e.g., the controller in a microwave oven), it may be possible to have all the processes that will ever be needed be present when the system comes up.</p> </li> <li> <p>In general-purpose systems, however, some way is needed to create and terminate processes as needed during operation.</p> </li> </ul> </div> <div class="admonitionblock note"> <table> <tr> <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> <td class="content"> <div class="paragraph"> <p><strong>There are four principal events that cause a process to be created:</strong></p> </div> <div class="ulist"> <ul> <li> <p>System initialization.</p> </li> <li> <p>Execution of process creation system call by a running process.</p> </li> <li> <p>A user request to create a new process.</p> </li> <li> <p>Initiation of a batch job.</p> </li> </ul> </div> </td> </tr> </table> </div> <div class="paragraph"> <p>Process creation in UNIX and Linux are done through <strong>fork()</strong> or <strong>clone()</strong> system calls.</p> </div> <div class="paragraph"> <p>There are several steps involved in process creation.</p> </div> <div class="ulist"> <ul> <li> <p>process scheduling,</p> </li> <li> <p>interrupt handling,</p> </li> <li> <p>signaling,</p> </li> <li> <p>process prioritization,</p> </li> <li> <p>process switching,</p> </li> <li> <p>process state,</p> </li> <li> <p>process memory</p> </li> </ul> </div> </div> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.3/highlight.min.js"></script> <script> if (!hljs.initHighlighting.called) { hljs.initHighlighting.called = true ;[].slice.call(document.querySelectorAll('pre.highlight > code')).forEach(function (el) { hljs.highlightBlock(el) }) } </script> </body> </html>