eolas/neuron/d0ed26d0-cdc8-4643-8c09-445408195f9b/.neuron/output/Processes.html

53 lines
14 KiB
HTML
Raw Normal View History

2024-10-20 19:00:04 +01:00
<!DOCTYPE html><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><meta content="width=device-width, initial-scale=1" name="viewport" /><!--replace-start-0--><!--replace-start-5--><!--replace-start-8--><title>Processes - My Zettelkasten</title><!--replace-end-8--><!--replace-end-5--><!--replace-end-0--><link href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.8.7/dist/semantic.min.css" rel="stylesheet" /><link href="https://fonts.googleapis.com/css?family=Merriweather|Libre+Franklin|Roboto+Mono&amp;display=swap" rel="stylesheet" /><!--replace-start-1--><!--replace-start-4--><!--replace-start-7--><link href="https://raw.githubusercontent.com/srid/neuron/master/assets/neuron.svg" rel="icon" /><meta content="Programs are sequences of machine instructions stored in a file. However they do not work by themselves. Something needs to load the files intructions into memory, direct the CPU to run the program and manage it during runtime. The OS does this via processes." name="description" /><meta content="Processes" property="og:title" /><meta content="My Zettelkasten" property="og:site_name" /><meta content="article" property="og:type" /><meta content="Processes" property="neuron:zettel-id" /><meta content="Processes" property="neuron:zettel-slug" /><meta content="Linux" property="neuron:zettel-tag" /><meta content="operating-systems" property="neuron:zettel-tag" /><script type="application/ld+json">[]</script><style type="text/css">body{background-color:#eeeeee !important;font-family:"Libre Franklin", serif !important}body .ui.container{font-family:"Libre Franklin", serif !important}body h1, h2, h3, h4, h5, h6, .ui.header, .headerFont{font-family:"Merriweather", sans-serif !important}body code, pre, tt, .monoFont{font-family:"Roboto Mono","SFMono-Regular","Menlo","Monaco","Consolas","Liberation Mono","Courier New", monospace !important}body div.z-index p.info{color:#808080}body div.z-index ul{list-style-type:square;padding-left:1.5em}body div.z-index .uplinks{margin-left:0.29999em}body .zettel-content h1#title-h1{background-color:rgba(33,133,208,0.1)}body nav.bottomPane{background-color:rgba(33,133,208,2.0e-2)}body div#footnotes{border-top-color:#2185d0}body p{line-height:150%}body img{max-width:100%}body .deemphasized{font-size:0.94999em}body .deemphasized:hover{opacity:1}body .deemphasized:not(:hover){opacity:0.69999}body .deemphasized:not(:hover) a{color:#808080 !important}body div.container.universe{padding-top:1em}body div.zettel-view ul{padding-left:1.5em;list-style-type:square}body div.zettel-view .pandoc .highlight{background-color:#ffff00}body div.zettel-view .pandoc .ui.disabled.fitted.checkbox{margin-right:0.29999em;vertical-align:middle}body div.zettel-view .zettel-content .metadata{margin-top:1em}body div.zettel-view .zettel-content .metadata div.date{text-align:center;color:#808080}body div.zettel-view .zettel-content h1{padding-top:0.2em;padding-bottom:0.2em;text-align:center}body div.zettel-view .zettel-content h2{border-bottom:solid 1px #4682b4;margin-bottom:0.5em}body div.zettel-view .zettel-content h3{margin:0px 0px 0.4em 0px}body div.zettel-view .zettel-content h4{opacity:0.8}body div.zettel-view .zettel-content div#footnotes{margin-top:4em;border-top-style:groove;border-top-width:2px;font-size:0.9em}body div.zettel-view .zettel-content div#footnotes ol > li > p:only-of-type{display:inline;margin-right:0.5em}body div.zettel-view .zettel-content aside.footnote-inline{width:30%;padding-left:15px;margin-left:15px;float:right;background-color:#d3d3d3}body div.zettel-view .zettel-content .overflows{overflow:auto}body div.zettel-view .zettel-content code{margin:auto auto auto auto;font-size:100%}body div.zettel-view .zettel-content p code, li code, ol code{padding:0.2em 0.2em 0.2em 0.2em;background-color:#f5f2f0}body div.zettel-view .zettel-content pre{overflow:auto}body div.zettel-view .zettel-content dl dt{font-weight:bold}body div.zettel-view .zettel-content blockquote{background-color:#f9f9f9;border-left:solid 10px #cccccc;margin:1.5em 0px 1.5em 0px;padding:0.5em 10px 0.5em 10px}
async=""
id="MathJax-script"
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
></script>
<link
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/themes/prism.min.css"
rel="stylesheet"
/><link rel="preconnect" href="https://fonts.googleapis.com" /><link
rel="preconnect"
href="https://fonts.gstatic.com"
crossorigin
/><link
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Sans+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
rel="stylesheet"
/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/components/prism-core.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<style>
body .ui.container,
body ul {
font-family: "IBM Plex Sans" !important;
}
body blockquote {
border-left-width: 3px !important;
font-style: italic;
}
.headerFont,
.ui.header,
body h1,
h2,
h3,
h4,
h5,
h6 {
font-family: "IBM Plex Sans Condensed" !important;
}
body p {
line-height: 1.4;
}
.monoFont,
body code,
pre,
tt {
font-family: "IBM Plex Mono" !important;
font-size: 12px !important;
line-height: 1.4 !important;
}
</style>
<!--replace-end-7--><!--replace-end-4--><!--replace-end-1--></head><body><div class="ui fluid container universe"><!--replace-start-2--><!--replace-start-3--><!--replace-start-6--><div class="ui text container" id="zettel-container" style="position: relative"><div class="zettel-view"><article class="ui raised attached segment zettel-content"><div class="pandoc"><h1 id="title-h1">Processes</h1><p>Programs are sequences of machine instructions stored in a file. However they do not work by themselves. Something needs to load the files intructions into memory, direct the CPU to run the program and manage it during runtime. The OS does this via processes.</p><p>A process <strong>is a running instance of a given program</strong>. It can be thought of as a container in which a program runs. This container includes:</p><ul><li>a copy of the program code loaded into memory</li><li>a memory address</li><li>other information about the state of the process</li></ul><p>Other than the <code>init</code> process started by the kernel (PID1) (see <img alt="systemd" src="/static/systemd.md" />), every process has a parent process that started it. This parent-child relationship creates a tree of processes.</p><p>It is possible that a parent process will terminate before one of its child processes. In this instance the child becomes an orphan. When this occurs in <span><code class="inline-tag">#Linux</code></span>, the orphan process is adopted by <code>init</code>.</p><p>Below, I have used the <code>pstree</code> utility to list all the running processes on my machine hierarchically.</p><p><img alt="diagram of pstree output" src="/static/ps-tree.png" /></p><p>Children are represented vertically and horizontally.</p><pre><code class="language-none">├─terminator─┬─zsh───tmux: client
│ ├─zsh───pstree
│ └─6*[{terminator}]
</code></pre><p>For instance here, <code>terminator</code> is a child of <code>init</code>, as are <code>zsh</code> and <code>tmux</code> but they are also children of <code>terminator</code>.<code>pstree</code> is a child of <code>zsh</code> and therefore also a child (grandchild) of <code>terminator</code>.</p><p>Each process has a unique identifier called a <em>process identifier</em>, a <em>processID</em> or just <em>PID</em>.</p><h2 id="related-notes">Related notes</h2><p><img alt="systemd" src="/static/systemd.md" /></p><p><img alt="ps" src="/static/ps.md" /></p><p><img alt="Monitoring processes and resources" src="/static/Monitoring_processes_and_resources.md" /></p></div></article><nav class="ui attached segment deemphasized backlinksPane" id="neuron-backlinks-pane"><h3 class="ui header">Backlinks</h3><ul class="backlinks"><li><span class="zettel-link-container cf"><span class="zettel-link"><a href="The_kernel.html">The kernel</a></span></span><ul class="context-list" style="zoom: 85%;"><li class="item"><div class="pandoc"><p>Within the <a href="./Basic_model_of_the_operating_system.md">hierarchy of the OS</a>, the kernel acts as the primary mediator between the hardware (CPU, memory) and <a href="./User_Space.md">user</a> <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Processes"><a href="Processes.html">processes</a></span></span>. Lets look at each of its responsibilities in greater depth:</p></div></li><li class="item"><div class="pandoc"><p>In Linux we can view, kill, pause and resume processes using <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Processes"><a href="Processes.html">ps</a></span></span>.</p></div></li></ul></li><li><span class="zettel-link-container cf"><span class="zettel-link"><a href="Monitoring_processes_and_resources.html">Monitoring processes and resources</a></span></span><ul class="context-list" style="zoom: 85%;"><li class="item"><div class="pandoc"><p>We can use <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Processes"><a href="Processes.html">ps</a></span></span> to list the currently running processes but it does not provide much information about the resource metrics or how the process changes over time. We can use <code>top</code> to get more information.</p></div></li></ul></li></ul></nav><nav class="ui attached segment deemphasized bottomPane" id="neuron-tags-pane"><div><span class="ui basic label zettel-tag" title="Tag">Linux</span><span class="ui basic label zettel-tag" title="Tag">operating-systems</span></div></nav><nav class="ui bottom attached icon compact inverted menu blue" id="neuron-nav-bar"><!--replace-start-9--><!--replace-end-9--><a class="right item" href="impulse.html" title="Open Impulse"><i class="wave square icon"></i></a></nav></div></div><!--replace-end-6--><!--replace-end-3--><!--replace-end-2--><div class="ui center aligned container footer-version"><div class="ui tiny image"><a href="https://neuron.zettel.page"><img alt="logo" src="https://raw.githubusercontent.com/srid/neuron/master/assets/neuron.svg" title="Generated by Neuron 1.9.35.3" /></a></div></div></div></body></html>