<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dikapediav2.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Processes</id>
	<title>Processes - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://dikapediav2.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Processes"/>
	<link rel="alternate" type="text/html" href="https://dikapediav2.com/wiki/index.php?title=Processes&amp;action=history"/>
	<updated>2026-04-18T17:09:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://dikapediav2.com/wiki/index.php?title=Processes&amp;diff=154&amp;oldid=prev</id>
		<title>Ardika Sulistija: Created page with &quot;Related topics: * &lt;b&gt;Zombie Process&lt;/b&gt; * &lt;b&gt;Orphan Process&lt;/b&gt; * &lt;b&gt;Process Control Block (PCB)&lt;/b&gt; * &lt;b&gt;Threads&lt;/b&gt;  ----   &lt;b&gt;Processes&lt;/b&gt;: program in execution.   * Address space (memory) the program can use * State (registers, including program counter and stack pointer) * OS keeps track of all processes in a process table.  * Processes can create other processes.   A &lt;b&gt;program&lt;/b&gt; i...&quot;</title>
		<link rel="alternate" type="text/html" href="https://dikapediav2.com/wiki/index.php?title=Processes&amp;diff=154&amp;oldid=prev"/>
		<updated>2024-09-11T14:22:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Related topics: * &lt;a href=&quot;/wiki/Zombie_Process&quot; title=&quot;Zombie Process&quot;&gt;&amp;lt;b&amp;gt;Zombie Process&amp;lt;/b&amp;gt;&lt;/a&gt; * &lt;a href=&quot;/wiki/Orphan_Process&quot; title=&quot;Orphan Process&quot;&gt;&amp;lt;b&amp;gt;Orphan Process&amp;lt;/b&amp;gt;&lt;/a&gt; * &lt;a href=&quot;/wiki/Process_Control_Block_(PCB)&quot; title=&quot;Process Control Block (PCB)&quot;&gt;&amp;lt;b&amp;gt;Process Control Block (PCB)&amp;lt;/b&amp;gt;&lt;/a&gt; * &lt;a href=&quot;/wiki/Threads&quot; title=&quot;Threads&quot;&gt;&amp;lt;b&amp;gt;Threads&amp;lt;/b&amp;gt;&lt;/a&gt;  ----   &amp;lt;b&amp;gt;Processes&amp;lt;/b&amp;gt;: program in execution.   * Address space (memory) the program can use * State (registers, including program counter and stack pointer) * OS keeps track of all processes in a process table.  * Processes can create other processes.   A &amp;lt;b&amp;gt;program&amp;lt;/b&amp;gt; i...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Related topics:&lt;br /&gt;
* [[Zombie Process|&amp;lt;b&amp;gt;Zombie Process&amp;lt;/b&amp;gt;]]&lt;br /&gt;
* [[Orphan Process|&amp;lt;b&amp;gt;Orphan Process&amp;lt;/b&amp;gt;]]&lt;br /&gt;
* [[Process Control Block (PCB)|&amp;lt;b&amp;gt;Process Control Block (PCB)&amp;lt;/b&amp;gt;]]&lt;br /&gt;
* [[Threads|&amp;lt;b&amp;gt;Threads&amp;lt;/b&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Processes&amp;lt;/b&amp;gt;: program in execution. &lt;br /&gt;
&lt;br /&gt;
* Address space (memory) the program can use&lt;br /&gt;
* State (registers, including program counter and stack pointer)&lt;br /&gt;
* OS keeps track of all processes in a process table. &lt;br /&gt;
* Processes can create other processes. &lt;br /&gt;
&lt;br /&gt;
A &amp;lt;b&amp;gt;program&amp;lt;/b&amp;gt; is a &amp;lt;i&amp;gt;passive&amp;lt;/i&amp;gt; entity stored on a disk (executable file), the process is active. &lt;br /&gt;
&lt;br /&gt;
A &amp;lt;b&amp;gt;program&amp;lt;/b&amp;gt; becomes a &amp;lt;b&amp;gt;process&amp;lt;/b&amp;gt; when the executable file is loaded into memory. &lt;br /&gt;
&lt;br /&gt;
One program can be several processes.&lt;br /&gt;
* Consider multiple users executing the same program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;OS provides mechanisms for&amp;lt;/u&amp;gt;:&lt;br /&gt;
* process creation&lt;br /&gt;
* process termination&lt;br /&gt;
* forking of process&lt;br /&gt;
* prioritizing and scheduling processes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Process Creation====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Generally, processes are identified and managed via a &amp;lt;b&amp;gt;process identifier (PID)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Resource sharing options&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Parent and children share all resources&lt;br /&gt;
* Children share subset of parent&amp;#039;s resources&lt;br /&gt;
* Parent and child share no resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Execution options&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Parent and children execute concurrently&lt;br /&gt;
* Parent waits until children terminate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Process Termination====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Process terminates = all children terminated.&lt;br /&gt;
* &amp;lt;b&amp;gt;Cascading termination&amp;lt;/b&amp;gt; - All children, grandchildren, etc. are terminated.&lt;br /&gt;
* Termination initiated by OS.&lt;br /&gt;
&lt;br /&gt;
May wait for termination of child by using the &amp;lt;b&amp;gt;wait()&amp;lt;/b&amp;gt; system call. Call returns status information and the pid of the terminated process&lt;br /&gt;
 pid = wait(&amp;amp;status);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Zombie&amp;lt;/b&amp;gt; process: if no parent waiting (did not invoke wait()), then the process is a zombie.&amp;lt;/br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;b&amp;gt;Orphan&amp;lt;/b&amp;gt; process: if parent is terminated without invoking wait(), process is an orphan.&lt;/div&gt;</summary>
		<author><name>Ardika Sulistija</name></author>
	</entry>
</feed>