<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.haidhi.my.id/wiki/index.php?action=history&amp;feed=atom&amp;title=OS_Manages_Hardware</id>
	<title>OS Manages Hardware - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.haidhi.my.id/wiki/index.php?action=history&amp;feed=atom&amp;title=OS_Manages_Hardware"/>
	<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;action=history"/>
	<updated>2026-11-01T20:53:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;diff=843&amp;oldid=prev</id>
		<title>SanzSkuy at 04:38, 24 August 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;diff=843&amp;oldid=prev"/>
		<updated>2026-08-24T04:38:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:38, 24 August 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l131&quot;&gt;Line 131:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 131:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Threads]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Threads]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Virtual Memory]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Virtual Memory]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Files]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[System Call]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[System Call]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Context Switch]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Context Switch]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
	<entry>
		<id>https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;diff=837&amp;oldid=prev</id>
		<title>SanzSkuy at 03:51, 24 August 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;diff=837&amp;oldid=prev"/>
		<updated>2026-08-24T03:51:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:51, 24 August 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l129&quot;&gt;Line 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 129:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Process]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Process]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Threads]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Virtual Memory]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Virtual Memory]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[System Call]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[System Call]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
	<entry>
		<id>https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;diff=832&amp;oldid=prev</id>
		<title>SanzSkuy at 02:55, 22 August 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;diff=832&amp;oldid=prev"/>
		<updated>2026-08-22T02:55:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:55, 22 August 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l128&quot;&gt;Line 128:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 128:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Lihat juga ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Lihat juga ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Process]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Virtual Memory]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Virtual Memory]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[System Call]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[System Call]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
	<entry>
		<id>https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;diff=831&amp;oldid=prev</id>
		<title>SanzSkuy: Created page with &quot;Catatan dari &#039;&#039;&#039;CS:APP&#039;&#039;&#039; (&#039;&#039;Computer Systems: A Programmer&#039;s Perspective&#039;&#039;) §1.7 — tentang bagaimana operating system menjadi perantara tunggal antara aplikasi dan hardware.  __TOC__  == Kenapa bab ini penting ==  Balik ke contoh &lt;code&gt;hello&lt;/code&gt;. Waktu shell nge-load dan menjalankan program &lt;code&gt;hello&lt;/code&gt;, terus &lt;code&gt;hello&lt;/code&gt; nge-print pesannya ke layar — &#039;&#039;&#039;nggak ada satu pun dari dua program itu yang nyentuh keyboard, display, disk, atau main memory s...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=OS_Manages_Hardware&amp;diff=831&amp;oldid=prev"/>
		<updated>2026-08-22T02:36:47Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Catatan dari &amp;#039;&amp;#039;&amp;#039;CS:APP&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Computer Systems: A Programmer&amp;#039;s Perspective&amp;#039;&amp;#039;) §1.7 — tentang bagaimana operating system menjadi perantara tunggal antara aplikasi dan hardware.  __TOC__  == Kenapa bab ini penting ==  Balik ke contoh &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt;. Waktu shell nge-load dan menjalankan program &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt;, terus &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; nge-print pesannya ke layar — &amp;#039;&amp;#039;&amp;#039;nggak ada satu pun dari dua program itu yang nyentuh keyboard, display, disk, atau main memory s...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Catatan dari &amp;#039;&amp;#039;&amp;#039;CS:APP&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Computer Systems: A Programmer&amp;#039;s Perspective&amp;#039;&amp;#039;) §1.7 — tentang bagaimana operating system menjadi perantara tunggal antara aplikasi dan hardware.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Kenapa bab ini penting ==&lt;br /&gt;
&lt;br /&gt;
Balik ke contoh &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt;. Waktu shell nge-load dan menjalankan program &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt;, terus &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; nge-print pesannya ke layar — &amp;#039;&amp;#039;&amp;#039;nggak ada satu pun dari dua program itu yang nyentuh keyboard, display, disk, atau main memory secara langsung&amp;#039;&amp;#039;&amp;#039;. Semuanya numpang layanan yang disediakan operating system.&lt;br /&gt;
&lt;br /&gt;
Ini bukan detail sepele. Ini fondasi kenapa kita bisa nulis &amp;lt;code&amp;gt;printf(&amp;quot;hello\n&amp;quot;)&amp;lt;/code&amp;gt; tanpa perlu tahu merek monitor atau protokol bus yang dipakai.&lt;br /&gt;
&lt;br /&gt;
== Layered view ==&lt;br /&gt;
&lt;br /&gt;
Model mentalnya: OS itu &amp;#039;&amp;#039;&amp;#039;lapisan software yang disisipkan di antara aplikasi dan hardware&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------------+&lt;br /&gt;
|         Application programs            |  &amp;lt;- Software&lt;br /&gt;
+-----------------------------------------+&lt;br /&gt;
|          Operating system               |  &amp;lt;- Software&lt;br /&gt;
+-----------+--------------+--------------+&lt;br /&gt;
| Processor | Main memory  | I/O devices  |  &amp;lt;- Hardware&lt;br /&gt;
+-----------+--------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aturannya keras: &amp;#039;&amp;#039;&amp;#039;semua usaha aplikasi buat memanipulasi hardware harus lewat OS&amp;#039;&amp;#039;&amp;#039;. Nggak ada jalan tikus. Kalau ada program yang mau nulis ke disk, dia harus minta ke OS.&lt;br /&gt;
&lt;br /&gt;
Konsekuensi praktisnya: batas antara aplikasi dan OS itu adalah &amp;#039;&amp;#039;&amp;#039;system call interface&amp;#039;&amp;#039;&amp;#039;. Setiap kali kode kita nyebrang garis itu, ada biaya (&amp;#039;&amp;#039;mode switch&amp;#039;&amp;#039;), dan itu jadi salah satu sumber overhead yang paling sering muncul di profiling.&lt;br /&gt;
&lt;br /&gt;
== Dua tujuan utama OS ==&lt;br /&gt;
&lt;br /&gt;
=== Proteksi — melindungi hardware dari penyalahgunaan ===&lt;br /&gt;
&lt;br /&gt;
Aplikasi yang &amp;#039;&amp;#039;runaway&amp;#039;&amp;#039; (bug, infinite loop, pointer liar) nggak boleh:&lt;br /&gt;
&lt;br /&gt;
* nimpa memory milik proses lain&lt;br /&gt;
* monopoli CPU selamanya&lt;br /&gt;
* ngerusak state device&lt;br /&gt;
&lt;br /&gt;
Mekanismenya nanti: privilege level (user mode vs kernel mode), MMU + page table buat isolasi memory, timer interrupt buat preemption.&lt;br /&gt;
&lt;br /&gt;
=== Abstraksi — menyediakan mekanisme yang sederhana dan seragam ===&lt;br /&gt;
&lt;br /&gt;
Hardware level rendah itu bentuknya &amp;#039;&amp;#039;&amp;#039;beda-beda dan sering liar banget&amp;#039;&amp;#039;&amp;#039;. Register controller SSD beda total sama register UART, beda lagi sama NIC. Kalau tiap aplikasi harus tahu detail tiap device, nulis program jadi mimpi buruk dan nggak portable.&lt;br /&gt;
&lt;br /&gt;
OS nyediain satu antarmuka seragam supaya aplikasi cukup belajar satu cara.&lt;br /&gt;
&lt;br /&gt;
== Tiga abstraksi fundamental ==&lt;br /&gt;
&lt;br /&gt;
OS mencapai &amp;#039;&amp;#039;&amp;#039;dua&amp;#039;&amp;#039;&amp;#039; tujuan di atas lewat &amp;#039;&amp;#039;&amp;#039;tiga&amp;#039;&amp;#039;&amp;#039; abstraksi yang saling bertumpuk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------ Processes ----------+&lt;br /&gt;
|              +-------------------- Virtual memory ------+|&lt;br /&gt;
|              |                 +------ Files ----------+||&lt;br /&gt;
|  +-----------+-+---------------+--+--------------------+||&lt;br /&gt;
|  |  Processor  |   Main memory    |    I/O devices     |||&lt;br /&gt;
|  +-------------+------------------+--------------------+||&lt;br /&gt;
+---------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perhatiin &amp;#039;&amp;#039;&amp;#039;cakupan&amp;#039;&amp;#039;&amp;#039; tiap abstraksi — ini bagian yang sering ketuker:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Abstraksi !! Hardware yang diabstraksikan&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Files&amp;#039;&amp;#039;&amp;#039; || I/O devices&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Virtual memory&amp;#039;&amp;#039;&amp;#039; || Main memory &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; disk I/O devices&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Processes&amp;#039;&amp;#039;&amp;#039; || Processor &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; main memory &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; I/O devices&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files — abstraksi untuk I/O devices ===&lt;br /&gt;
&lt;br /&gt;
Semua device dibungkus jadi &amp;quot;urutan byte&amp;quot;. Disk, keyboard, terminal, socket jaringan — semuanya bisa dibuka, dibaca, ditulis, ditutup lewat API yang sama. Ini filosofi &amp;#039;&amp;#039;&amp;quot;everything is a file&amp;quot;&amp;#039;&amp;#039; yang khas Unix.&lt;br /&gt;
&lt;br /&gt;
Efeknya: program yang nulis ke file bisa di-&amp;#039;&amp;#039;pipe&amp;#039;&amp;#039; ke program lain tanpa modifikasi apa pun.&lt;br /&gt;
&lt;br /&gt;
=== Virtual memory — abstraksi untuk main memory + disk ===&lt;br /&gt;
&lt;br /&gt;
Tiap proses seolah-olah punya &amp;#039;&amp;#039;&amp;#039;memory sendiri yang utuh dan kontinu&amp;#039;&amp;#039;&amp;#039;, mulai dari alamat 0 sampai batas atas ruang alamat. Padahal fisiknya memory itu dibagi-bagi dan sebagian bisa lagi &amp;quot;nginep&amp;quot; di disk.&lt;br /&gt;
&lt;br /&gt;
Kenapa disk ikut masuk? Karena isi memory bisa di-&amp;#039;&amp;#039;page out&amp;#039;&amp;#039; ke disk saat RAM sesak. Jadi virtual memory sebenarnya adalah abstraksi gabungan dari dua tingkat hierarki penyimpanan sekaligus.&lt;br /&gt;
&lt;br /&gt;
Ini juga yang bikin proteksi jadi mungkin: kalau dua proses pakai alamat &amp;lt;code&amp;gt;0x400000&amp;lt;/code&amp;gt;, itu merujuk ke halaman fisik yang beda.&lt;br /&gt;
&lt;br /&gt;
=== Processes — abstraksi untuk seluruh mesin ===&lt;br /&gt;
&lt;br /&gt;
Proses adalah ilusi bahwa &amp;#039;&amp;#039;&amp;#039;program kita satu-satunya yang jalan di mesin ini&amp;#039;&amp;#039;&amp;#039;, dengan CPU-nya sendiri, memory-nya sendiri, dan device-nya sendiri.&lt;br /&gt;
&lt;br /&gt;
Padahal aslinya puluhan sampai ratusan proses gantian pakai CPU yang jumlahnya jauh lebih sedikit. OS ngelakuin &amp;#039;&amp;#039;context switch&amp;#039;&amp;#039; — nyimpen state satu proses, restore state proses lain — cukup cepat sampai ilusinya nggak ketahuan.&lt;br /&gt;
&lt;br /&gt;
Jadi processes itu abstraksi paling &amp;quot;atas&amp;quot;: dia membungkus processor, main memory, &amp;#039;&amp;#039;&amp;#039;dan&amp;#039;&amp;#039;&amp;#039; I/O devices sekaligus.&lt;br /&gt;
&lt;br /&gt;
== Cara ngingetnya ==&lt;br /&gt;
&lt;br /&gt;
Tiga abstraksi itu tersusun kayak boneka matryoshka, makin ke atas makin banyak hardware yang dibungkus:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Files&amp;#039;&amp;#039;&amp;#039; → paling sempit, cuma I/O&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Virtual memory&amp;#039;&amp;#039;&amp;#039; → nambah main memory ke dalamnya&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Processes&amp;#039;&amp;#039;&amp;#039; → nambah processor, jadi lengkap&lt;br /&gt;
&lt;br /&gt;
Dan dua tujuan (proteksi + antarmuka seragam) itu &amp;#039;&amp;#039;&amp;#039;dicapai lewat&amp;#039;&amp;#039;&amp;#039; tiga abstraksi ini, bukan hal yang terpisah.&lt;br /&gt;
&lt;br /&gt;
== Catatan untuk kerja systems ==&lt;br /&gt;
&lt;br /&gt;
Beberapa hal yang nyambung ke topik performance:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;System call itu nggak gratis.&amp;#039;&amp;#039;&amp;#039; Karena semua akses hardware wajib lewat OS, jalur kritis yang sering nge-hit syscall bakal kena overhead &amp;#039;&amp;#039;mode switch&amp;#039;&amp;#039;. Ini alasan kenapa ada teknik kayak batching I/O, &amp;lt;code&amp;gt;io_uring&amp;lt;/code&amp;gt;, atau kernel bypass (DPDK, RDMA) di sistem yang butuh throughput tinggi.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Virtual memory bukan cuma soal kapasitas.&amp;#039;&amp;#039;&amp;#039; Page fault, TLB miss, dan NUMA placement semuanya lahir dari abstraksi ini. Program yang secara aritmetika identik bisa beda performanya berkali-kali lipat cuma gara-gara pola akses memory-nya beda.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Context switch punya harga.&amp;#039;&amp;#039;&amp;#039; Selain nyimpen register, cache dan TLB ikut &amp;quot;dingin&amp;quot; setelah switch. Ini salah satu alasan kenapa di HPC orang sering nge-&amp;#039;&amp;#039;pin&amp;#039;&amp;#039; thread ke core tertentu.&lt;br /&gt;
&lt;br /&gt;
== Istilah kunci ==&lt;br /&gt;
&lt;br /&gt;
; Operating system&lt;br /&gt;
: Lapisan software antara aplikasi dan hardware.&lt;br /&gt;
; Abstraction&lt;br /&gt;
: Antarmuka sederhana yang menyembunyikan kompleksitas di bawahnya.&lt;br /&gt;
; Process&lt;br /&gt;
: Abstraksi untuk processor, main memory, dan I/O devices.&lt;br /&gt;
; Virtual memory&lt;br /&gt;
: Abstraksi untuk main memory dan disk I/O devices.&lt;br /&gt;
; File&lt;br /&gt;
: Abstraksi untuk I/O devices, dilihat sebagai urutan byte.&lt;br /&gt;
; Context switch&lt;br /&gt;
: Proses menyimpan dan memulihkan state saat CPU berpindah proses.&lt;br /&gt;
&lt;br /&gt;
== Lihat juga ==&lt;br /&gt;
&lt;br /&gt;
* [[Virtual Memory]]&lt;br /&gt;
* [[System Call]]&lt;br /&gt;
* [[Context Switch]]&lt;br /&gt;
* [[CS:APP]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Computer Systems]]&lt;br /&gt;
[[Category:Operating System]]&lt;br /&gt;
[[Category:CS:APP]]&lt;/div&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
</feed>