<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Maymounth's Blog</title>
	<atom:link href="http://mymounth.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mymounth.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Mon, 13 Jul 2009 14:17:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mymounth.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Maymounth's Blog</title>
		<link>http://mymounth.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mymounth.wordpress.com/osd.xml" title="Maymounth&#039;s Blog" />
	<atom:link rel='hub' href='http://mymounth.wordpress.com/?pushpress=hub'/>
		<item>
		<title>tugas pertemuan 5</title>
		<link>http://mymounth.wordpress.com/2009/07/13/tugas-pertemuan-5/</link>
		<comments>http://mymounth.wordpress.com/2009/07/13/tugas-pertemuan-5/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 14:17:59 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mymounth.wordpress.com/?p=49</guid>
		<description><![CDATA[Proses adalah sebuah program yang sedang dieksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Alokasi sumber daya tersebut dikelola oleh Sistem Operasi. Umpamanya, walku CPU, memori, berkas-berkas, dan perangkat-perangkat M/K. Ketika proses tersebut berhenti dijalankan, sistem operasiakan mendapatkan kembali semua sumber daya yang bisa digunakan kembali. Proses berisi instruksi, data, program counter, register [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=49&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-indent:1.27cm;margin-bottom:0;line-height:150%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><strong>Proses</strong></span><span style="font-size:100%;"> adalah sebuah program yang sedang dieksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Alokasi sumber daya tersebut dikelola oleh Sistem Operasi. Umpamanya, walku CPU, memori, berkas-berkas, dan perangkat-perangkat M/K. Ketika proses tersebut berhenti dijalankan, sistem operasiakan mendapatkan kembali semua sumber daya yang bisa digunakan kembali.</span></span></p>
<p style="text-indent:1.27cm;margin-bottom:0;line-height:150%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><span id="more-49"></span><br />
</span></span></p>
<p style="text-indent:1.27cm;margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Proses berisi instruksi, data, program counter, register pemroses, stack data, alamat pengiriman dan variabel pendukung lainnya.Terdapat beberapa definisi mengenai proses, antara lain :</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">a. Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen proses adalah masalah utama dalam perancangan sistem operasi.</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">b. Proses adalah program yang sedang dieksekusi.</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">c. Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi.</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"> Peran sistem operasi dalam kegiatan proses adalah mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses tersebut.Banyak proses yang dijalankan bersamaan, dimana setiap proses mendapat bagian memori dan kendali sendiri-sendiri (peran SO), sehingga setiap proses (program) memiliki prinsip :</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">a. Independent, artinya program-program tersebut berdiri sendiri, terpisah dan saling tidak bergantung.</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">b. One program at any instant, artinya hanya terdapat satu proses yang dilayani pemroses pada satu saat.</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"> Dalam multiprogramming, teknik penanganan proses adalah dengan mengeksekusi satu proses dan secara cepat beralih ke proses lainnya (bergiliran),sehingga menimbulkan efek paralel semu (</span><span style="font-size:100%;"><em>pseudoparallelism</em></span><span style="font-size:100%;">).</span></span></p>
<p style="margin-bottom:0;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"> </span></span></p>
<p style="text-indent:1.27cm;margin-bottom:0;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Terdapat sumber daya yang tak dapat dipakai bersama pada saat bersamaa, seperti printer. Sumber daya seperti ini disebut sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/section. Hanya satu program pada saat yang diijinkan masuk critical region. Pemrogram tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini karena maksud program tidak dapat diketahui.</span></span></p>
<p style="text-indent:1.27cm;margin-bottom:0;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Sistem operasi hanya menyediakan layanan (berupa system call) untuk mencegah proses masuk critical section yang sedang dimasuki proses lain. Pemrogram harus menspesifikasikan bagian-bagian critical region sehingga sistem operasi akan menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk critical region yang sedang dipakai proses lain. inilah yang dimaksud dengan mutual exclusion. Pemaksaan adanya mutual eclusion menimbulkan dua masalah, yaitu:</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">-deadlock,<br />
- startvation.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Dalam sistem komputer, terdapat banyak sumber daya yang hanya bisa dimanfaatkan oleh satu proses pada suatu waktu. Contohnya adalah penggunaan sumber daya seperti <em>printer</em>, <em>tape drives</em> dan <em>CD-ROM drives</em>. Dua buah proses yang menggunakan slot yang sama pada tabel proses dapat menyebabkan kerusakan pada sistem. Untuk itu, setiap sistem operasi memiliki mekanisme yang memberikan akses eksklusif pada sumber daya.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Pada kenyataannya, proses membutuhkan akses eksklusif untuk beberapa sumber daya sekaligus. Bayangkan apabila sebuah proses, sebut saja proses A, meminta sumber daya X dan mendapatkannya. Kemudian ada proses B yang meminta sumber daya Y dan mendapatkannya juga. Setelah itu, proses A meminta sumber daya Y dan proses B meminta sumber daya X. Pada situasi tersebut, kedua proses harus ter- <em>block</em> dan menunggu secara terus-menerus. Keadaan seperti itu dinamakan <em><span style="font-style:normal;">deadlock</span></em>.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><em>Deadlock</em><span style="font-weight:bold;"> </span>secara bahasa berarti buntu atau kebuntuan. Dalam definisi lebih lengkap, <em><span style="font-style:normal;">deadlock</span></em> berarti suatu keadaan dimana sistem seperti terhenti dikarenakan setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Keadaan seperti ini hanya dapat terjadi pada akses terhadap sumber daya yang tidak bisa dibagi atau <em><span style="font-style:normal;">non</span></em><em>-</em><em><span style="font-style:normal;">sharable</span></em>.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><em>Starvation</em><span style="font-weight:bold;"> </span>adalah keadaan dimana satu atau beberapa proses &#8216;kelaparan&#8217; karena terus dan terus menunggu kebutuhan sumber dayanya dipenuhi. Namun, karena sumber daya tersebut tidak tersedia atau dialokasikan untuk proses lain, akhirnya proses yang membutuhkan tidak bisa memilikinya. Kondisi seperti ini merupakan akibat dari keadaan menunggu yang berkepanjangan.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Di contoh lalu lintas jembatan, terlihat bahwa kejadian deadlock yang berlangsung secara terus-menerus dan tiada akhir dapat menyebabkan terjadinya starvation. Akan tetapi, deadlock bukanlah satu-satunya penyebab terjadinya starvation. Lalu lintas yang didominasi oleh kendaraan-kendaraan dari satu arah pun dapat menyebabkan terjadinya starvation. Akibat yang terjadi adalah kendaraan dari arah lain menjadi terus menunggu giliran untuk berjalan hingga akhirnya mengalami starvation.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><em>Race condition</em> adalah suatu kondisi dimana dua atau lebih proses mengakses <em>shared memory</em>/sumber daya pada saat yang bersamaan dan hasil akhir dari data tersebut tergantung dari proses mana yang terakhir selesai dieksekusi sehingga hasil akhirnya terkadang tidak sesuai dengan yang dikehendaki.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><em>Monitor</em><span style="font-weight:bold;"> </span>adalah suatu tipe data abstrak yang dapat mengatur aktivitas serta penggunaan <em>resource</em> oleh beberapa <em>thread</em>. Ide monitor pertama kali diperkenalkan oleh C.A.R Hoare dan Per Brinch-Hansen pada awal 1970-an.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Monitor terdiri atas data-data <em>private</em> dengan fungsi-fungsi <em>public</em> yang dapat mengakses data-data tersebut. <em>Method-method</em> dalam suatu monitor sudah dirancang sedemikian rupa agar hanya ada satu buah <em>method</em> yang dapat bekerja pada suatu saat. Hal ini bertujuan untuk menjaga agar semua operasi dalam monitor bersifat <em>mutual exclusion</em>.</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Monitor dapat dianalogikan sebagai sebuah bangunan dengan tiga buah ruangan yaitu satu buah ruangan kontrol, satu buah ruang-tunggu-masuk, satu buah ruang-tunggu-dalam. Ketika suatu <em>thread</em> memasuki monitor, ia memasuki ruang-tunggu-masuk (<em>enter</em>). Ketika gilirannya tiba, <em>thread</em> memasuki ruang kontrol (<em>acquire</em>), di sini <em>thread</em> menyelesaikan tugasnya dengan <em>shared resource</em> yang berada di ruang kontrol (<em>owning</em>). Jika tugas <em>thread</em> tersebut belum selesai tetapi alokasi waktu untuknya sudah habis atau <em>thread</em> tersebut menunggu pekerjaan <em>thread</em> lain selesai, <em>thread</em> melepaskan kendali atas monitor (<em>release</em>) dan dipindahkan ke ruang-tunggu-dalam (<em>waiting queue</em>). Ketika gilirannya tiba kembali, <em>thread</em> memasuki ruang kontrol lagi (<em>acquire</em>). Jika tugasnya selesai, ia keluar dari monitor (<em>release and exit</em>).</span></span></p>
<p style="margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Karena masalah sinkronisasi begitu rumit dan beragam, monitor menyediakan tipe data <em>condition</em> untuk <em>programmer</em> yang ingin menerapkan sinkronisasi yang sesuai untuk masalah yang dihadapinya. <em>Condition</em> memiliki operasi-operasi: </span></span></p>
<ol style="color:#3366ff;font-family:arial;">
<li>
<p style="margin-top:.49cm;margin-bottom:0;line-height:100%;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><span style="font-size:85%;">Wait</span>, 	sesuai namanya <em>thread</em> yang memanggil fungsi ini akan 	dihentikan kerjanya.</span></span></p>
</li>
<li>
<p style="margin-bottom:.49cm;line-height:100%;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><span style="font-size:85%;">Signal</span>, 	jika suatu <em>thread</em> memanggil fungsi ini, satu (dari 	beberapa) <em>thread</em> yang sedang menunggu akan dibangunkan 	untuk bekerja kembali. Operasi ini hanya membangunkan tepat satu 	buah <em>thread</em> yang sedang menunggu. Jika tidak ada <em>thread</em> yang sedang menunggu, tidak akan terjadi apa-apa.</span></span></p>
</li>
</ol>
<p style="margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="center"><span style="color:#000000;"> </span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Bayangkan jika pada suatu saat sebuah <em>thread</em> A memanggil fungsi <span style="font-size:85%;">signal</span> pada <em>condition</em> x (<span style="font-size:85%;">x.signal()</span>) dan ada sebuah <em>thread</em> B yang sedang menunggu operasi tersebut (B telah memanggil fungsi <span style="font-size:85%;">x.wait()</span> sebelumnya), ada dua kemungkinan keadaan <em>thread</em> A dan B setelah A mengeksekusi <span style="font-size:85%;">x.signal()</span>: </span></span></p>
<ol style="color:#3366ff;font-family:arial;">
<li>
<p style="margin-top:.49cm;margin-bottom:0;line-height:100%;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><span style="font-size:85%;">Signal-and-Wait</span>, 	A menunggu sampai B keluar dari monitor atau menunggu <em>condition</em> lain yang dapat mengaktifkannya.</span></span></p>
</li>
<li>
<p style="margin-bottom:.49cm;line-height:100%;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><span style="font-size:85%;">Signal-and-Continue</span>, 	B menunggu sampai A keluar dari monitor atau menunggu <em>condition</em> lain yang dapat mengakifkannya.</span></span></p>
</li>
</ol>
<p style="margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Monitor dikembangkan karena penggunaan semafor yang kurang praktis. Hal itu disebabkan kesalahan pada penggunaan semafor tidak dapat dideteksi oleh <em>compiler</em>. Keuntungan memakai monitor: </span></span></p>
<ol style="color:#3366ff;font-family:arial;">
<li>
<p style="margin-top:.49cm;margin-bottom:0;line-height:100%;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Kompilator pada 	bahasa pemrograman yang telah mengimplementasikan monitor akan 	memastikan bahwa <em>resource</em> yang dapat diakses oleh beberapa 	<em>thread</em> dilindungi oleh monitor, sehingga prinsip <em>mutual 	exclusion</em> tetap terjaga.</span></span></p>
</li>
<li>
<p style="margin-bottom:.49cm;line-height:100%;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Kompilator bisa 	memeriksa kemungkinan adanya <em>deadlock</em>.</span></span></p>
</li>
</ol>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Dalam kehidupan nyata, <strong>semafor</strong> adalah sistem sinyal yang digunakan untuk berkomunikasi secara <em>visual</em>. Dalam <em>software</em>, semafor adalah sebuah variabel bertipe <span style="font-size:85%;">integer</span> yang selain saat inisialisasi, hanya dapat diakses melalui dua operasi standar, yaitu <em>increment</em> dan <em>decrement</em>. Semafor digunakan untuk menyelesaikan masalah sinkronisasi secara umum. Berdasarkan jenisnya, semafor hanya bisa memiliki nilai 1 atau 0, atau lebih dari sama dengan 0. Konsep semafor pertama kali diajukan idenya oleh Edsger Dijkstra pada tahun 1967.</span></span></p>
<p style="margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Operasi standar pada semafor (dalam bahasa pemrograman C): </span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:85%;">void kunci(int sem_value) {</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:85%;">while(sem_value &lt;= 0);</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:85%;">sem_value&#8211;;</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:85%;">}</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"> </span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:85%;">void buka(int sem_value) {</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:85%;">sem_value++;</span></span></p>
<p style="margin-bottom:0;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:85%;">}</span></span></p>
<p style="text-indent:1.27cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Nama asli dari operasi tersebut sebenarnya adalah <em>Proberen (test)</em> dan <em>Verhogen (increment).</em> Namun, sebutan untuk 2 method ini sangat beragam, antara lain sering dikenal dengan nama : <span style="font-size:85%;">release</span> dan <span style="font-size:85%;">acquire</span>, <span style="font-size:85%;">P</span> dan <span style="font-size:85%;">V</span>, serta <span style="font-size:85%;">kunci</span> dan <span style="font-size:85%;">buka</span>. Dalam buku ini akan digunakan istilah <span style="font-size:85%;">buka</span> dan <span style="font-size:85%;">kunci</span>. Fungsi <span style="font-size:85%;">wait</span> dipanggil ketika <em>thread</em> akan memasuki <em>critical section</em>-nya atau ketika <em>thread</em> akan memakai <em>resource</em> yang tersedia. Jika <span style="font-size:85%;">sem_value</span> kurang dari sama dengan 0, <em>thread</em> tersebut harus menunggu sampai <em>thread</em> lain memanggil fungsi <span style="font-size:85%;">buka</span>. Fungsi <span style="font-size:85%;">buka</span> dipanggil ketika <em>thread</em> meningggalkan <em>critical section</em>-nya atau ketika melepaskan <em>resource</em> yang telah digunakannya. Tentu saja kedua operasi tersebut harus bersifat atomik karena <span style="font-size:85%;">sem_value</span> dapat diakses oleh beberapa proses (<em>shared resource</em>).</span></span></p>
<p style="margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Semafor memiliki dua jenis, yaitu: </span></span></p>
<ol style="color:#3366ff;font-family:arial;">
<li>
<p style="margin-top:.49cm;margin-bottom:0;line-height:100%;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><em><strong>Binary 	semaphore</strong></em><strong> . </strong>Semafor ini hanya memiliki nilai 1 	atau 0. Sering juga disebut sebagai semafor primitif</span></span></p>
</li>
<li>
<p style="margin-bottom:.49cm;line-height:100%;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><em><strong>Counting 	semaphore</strong></em><strong> . </strong>Semafor ini memiliki nilai 0, 1, serta integer lainnya. Banyak sistem operasi yang tidak secara langsung mengimplementasikan semafor ini, tetapi dengan memanfaatkan <em>binary semaphore</em></span></span></p>
</li>
</ol>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;color:#3366ff;font-family:arial;" align="justify"><span style="color:#000000;"></p>
<p></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;color:#3366ff;font-family:arial;" align="justify"><span style="color:#000000;"></p>
<p></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;color:#3366ff;font-family:arial;" align="justify"><span style="color:#000000;"></p>
<p></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-weight:bold;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:130%;">Sinkronisasi Pada Linux</span></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Pada suatu saat dalam sebuah kernel, tidak terkecuali kernel Linux, dapat terjadi <em>concurrent access</em>. Yang dimaksud dengan <em>concurrent access</em> adalah beberapa <em>thread</em> yang sedang berjalan mengakses <em>resources</em> yang sama dalam waktu yang sama. Jika hal ini terjadi, <em>thread-thread</em> tersebut akan saling meng- <em>overwrite</em> perubahan yang dilakukan <em>thread</em> sesamanya sebelum perubahan tersebut mencapai <em>state</em> yang konsisten. Sehingga hasil dari proses tidak seperti yang diharapkan. Dalam hal ini diperlukan proteksi dalam kernel yang bersangkutan. Proteksi dapat dilakukan dengan sinkronisasi.</span></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Proteksi <em>resources</em> dari <em>concurrent access</em> bukanlah merupakan hal yang mudah. Beberapa tahun yang lalu sebelum Linux mendukung adanya <em>symmetrical multiprocessing</em>, proteksi masih mudah dilakukan. Karena hanya ada satu processor yang didukung, satu-satunya cara bagi <em>resources</em> dapat diakses secara <em>concurrent</em> (bersama-sama) oleh <em>thread</em> adalah ketika ada <em>interrupt</em> atau memang ada jadwal dari kernel bahwa <em>thread</em> lain diperbolehkan untuk mengakses <em>resources</em> tersebut.</span></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Namun dengan berkembangnya zaman, Linux akhirnya mendukung adanya <em>symmetrical multiprocessing</em> dalam versi 2.0 kernelnya. <em>Multiprocessing</em> artinya <em>kernel code</em> dapat dijalankan dalam dua atau lebih processor. Jika tanpa proteksi, <em>code</em> yang dijalankan dalam dua processor yang berbeda dapat mengakses <em>resources</em> yang sama dalam waktu yang sama. Dengan adanya Linux 2.6 kernel yang mendukung adanya konsep <em>preemptive</em>, <em>scheduler</em> dalam kernel dapat meng <em>interrupt kernel code</em> yang sedang berjalan untuk memberi kesempatan bagi <em>kernel code</em> lain untuk dijalankan. Dengan demikian pengaksesan <em>resources</em> yang sama dalam waktu yang sama dapat dihindari.</span></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-weight:bold;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:130%;">Siskronisasi pada Windows</span></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;">Sistem Operasi khususnya seperti windows memiliki <em>concurrent program </em><em><span style="font-style:normal;">yang memiliki </span></em><em>entry point </em><em><span style="font-style:normal;">lebih dari satu dan beberapa dapat aktif dalam satu waktu. Contohnya dapat terjadi ketika suatu proses membuat </span></em><em>system call, </em><em><span style="font-style:normal;">diblok didalam (menunggu disk operasi selesai) dan ketika menunggu proses yang lain membuat </span></em><em>system call</em><em><span style="font-style:normal;">. Contoh yang lain adalah saat penyelaan mungkin terjadi ketika </span></em><em>system call</em><em><span style="font-style:normal;"> sedang di lakukan. Pada kasus ini yang melayani </span></em><em>system call </em><em><span style="font-style:normal;">yang didpat lebih dulu sesuai dengan pembuat penyela, yang merupakan aktivitas operasi sistem yang lain.</span></em></span></span></p>
<p style="text-indent:.64cm;margin-top:.49cm;margin-bottom:.49cm;line-height:100%;font-family:arial;" align="justify"><span style="color:#000000;"><span style="font-size:100%;"><em><span style="font-style:normal;">Sebagai aktivitas sistem operasi, kadang-kadang di eksekusi atas nama proses user sendiri. Kemudian kita biasanya akan mengetahui proses yang terjadi baru-baru saja. Tetapi secara khususnya aktivitas sistem operasi atas nama proses ini. Dengan kata lain thread mungkin juga dengan cara bersamaaan membentuk </span></em><em>concurrent program</em><em><span style="font-style:normal;"> dan persisnya pada masakah yang sama dan diterapkan pada keadaan itu secara benar.</span></em></span></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=49&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/07/13/tugas-pertemuan-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>
	</item>
		<item>
		<title>Tugas Pertemuan 8</title>
		<link>http://mymounth.wordpress.com/2009/07/13/tugas-pertemuan-8/</link>
		<comments>http://mymounth.wordpress.com/2009/07/13/tugas-pertemuan-8/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 14:01:04 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mymounth.wordpress.com/?p=45</guid>
		<description><![CDATA[VIRTUAL MEMORY 1. Konsep Dasar Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program. Tanpa memori virtual, memori logis akan langsung dibawa ke memori fisik (memori utama). Disinilah memori virtual melakukan pemisahan dengan menaruh memori logis ke secondary storage (disk sekunder) dan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=45&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>VIRTUAL MEMORY</p>
<p><span id="more-45"></span></p>
<p>1. Konsep Dasar</p>
<p>Memori virtual adalah suatu teknik yang memisahkan antara memori  	logis dan memori fisiknya. 	Memori logis merupakan kumpulan keseluruhan halaman dari suatu program.  	Tanpa memori virtual, 	memori logis akan langsung dibawa ke memori fisik (memori utama).  	Disinilah memori virtual melakukan 	pemisahan dengan menaruh memori logis ke <span><em>secondary  	storage</em></span> (disk sekunder) dan hanya membawa 	halaman yang diperlukan ke memori utama (memori fisik). Teknik ini  	menempatkan keseluruhan program 	di disk sekunder dan membawa halaman-halaman yang diperlukan ke memori  	fisik sehingga memori 	utama hanya akan menyimpan sebagian alamat proses yang sering digunakan  	dan sebagian lainnya akan 	disimpan dalam disk sekunder dan dapat diambil sesuai dengan kebutuhan.  	Jadi jika proses yang sedang 	berjalan membutuhkan instruksi atau data yang terdapat pada suatu  	halaman tertentu maka halaman 	tersebut akan dicari di memori utama. Jika halaman yang diinginkan  	tidak ada maka akan dicari ke disk 	sekunder.</p>
<p><a name="c532-f01"></a></p>
<p><strong>Gambar 5.1. Memori Virtual</strong></p>
<p><img src="/DOCUME%7E1/Maimuna/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /><img class="alignnone size-full wp-image-46" title="gmbr" src="http://mymounth.files.wordpress.com/2009/07/gmbr.jpg" alt="gmbr" width="603" height="424" /></p>
<p>Pada gambar diatas ditunjukkan ruang sebuah memori virtual yang  	dibagi menjadi bagian-bagian 	yang sama dan diidentifikasikan dengan nomor <span><em>virtual  	pages</em></span>.  	Memori fisik dibagi menjadi <span><em>page frames</em></span> yang berukuran sama dan diidentifikasikan dengan nomor <span><em>page  	frames</em></span>.  	Bingkai (<span><em>frame</em></span>) menyimpan data dari 	halaman. Atau memori virtual memetakan nomor <span><em>virtual  	pages</em></span> ke nomor <span><em>page frames</em></span>.   <span><em>Mapping</em></span> (pemetaan) 	menyebabkan halaman virtual hanya dapat mempunyai satu lokasi alamat  	fisik.</p>
<p>2.  Perbedaannya di Linux dan Windows</p>
<p>Di Windows<br />
Pada komputer kita, jumlah memory yang tersedia adalah jumlah antara memory fisik/RAM dengan virtual memory. Virtual memory adalah sebuah porsi pada hard disk yang di-set menyerupai RAM oleh system. Virtual memory merupakan ruang penyimpanan sementara yang digunakan untuk menjalankan program yang membutuhkan memory yang lebih besar dari memory fisik.<br />
Virtual memory berupa file yang bernama pagefile.sys yang di-set hidden oleh Windows. File ini disebut paging file, yang digunakan untuk menampung program dan data yang tidak cukup di memory fisik. Virtual memory lebih lambat daripada memory fisik, dan penggunaan yang terlalu banyak dapat menurunkan kinerja sistem. Sehubungan dengan itu, windows memindahkan proses yang tidak terlalu sering ke virtual memory, dan membiarkan proses yang sering digunakan di memory fisik. Jadi ini sangat efisien.<br />
Ukuran dari virtual memory dapat kita rubah, Windows merekomendasikan ukuran minimal dari vitual memory adalah 1.5 kali dari memory fisik kita.<br />
Jika anda memiliki beberapa harddisk, misal hardisk pertama adalah C: dan harddisk kedua adalah D: dan anda jarang menggunakan drive D:, anda dapat memindahkan virtual memory ke drive D:. Memindahkan virtual memory ke harddisk yang jarang digunakan akan sedikit meningkatkan performa. Alasannya adalah, pada harddisk pertama biasanya head dari harddisk sangat sibuk untuk membuka program, dokumen, menyimpan file dan masih banyak lagi. Tetapi ingat, cara ini tidak akan berguna bila drivenya terletak pada harddisk yang sama atau dengan kata lain sebuah partisi.<br />
Cara Kerja<br />
Virtual Memory digunakan dengan membuat suatu file khusus yang disebut swapfile atau paging file. Virtual memory digunakan pada saat operating system kehabisan memory, dimana o.s. akan memindahkan data yang paling terakhir diakses ke dalam swapfile di hardisk. Hal ini mengosongkan/ membebaskan beberapa ruang kosong pada memory untuk aplikasi yang akan digunakan selanjutnya. Operating system akan melakukan hal ini secara terus menerus ketika data baru diisi pada ram.<br />
Kemudian, pada saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data yang paling terakhir dipakai di dalam memory (ram). Hal ini mengakibatkan swapfile bersifat seperti ram, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa karena operating system tidak dapat secara langsung menjalankan program dari swapfile, beberapa program mungkin tidak akan berjalan walau dengan swapfile yang besar jika kita hanya memiliki ram yang kecil.<br />
 Virtual Memory<br />
Di Linux<br />
Managemen Memori di Linux<br />
A. Managemen Memori Fisik<br />
Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem. Memori managemen merupakan salah satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya.<br />
Dengan memori virtual kita dapat:<br />
1. Ruang alamat yang besar<br />
Sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.<br />
2. Pembagian memori fisik yang adil<br />
Managemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses.<br />
3. Perlindungan<br />
Memori managemen menjamin setiap proses dalam sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain dalam sistem tersebut.<br />
4. Penggunaan memori virtual bersama<br />
Memori virtual mengizinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda.<br />
Memori Virtual<br />
Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.<br />
Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:<br />
1. Virtual PFN<br />
2. PFN fisik<br />
3. informasi akses page dari page tersebut<br />
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.<br />
Demand Paging<br />
Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke memori hanya ketika program dijalankan disebut demand paging.<br />
Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini.<br />
CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali.<br />
Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image tersebut terdapat dalam memori fisik.<br />
Swaping<br />
Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem.<br />
Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap.<br />
Pengaksesan Memori Virtual Bersama<br />
Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.<br />
Efisiensi<br />
Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem. Disamping membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa cache dalam managemen memori di linux:</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=45&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/07/13/tugas-pertemuan-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/07/gmbr.jpg" medium="image">
			<media:title type="html">gmbr</media:title>
		</media:content>
	</item>
		<item>
		<title>Tugas SO (P.Husni) pertemuan 7</title>
		<link>http://mymounth.wordpress.com/2009/06/29/tugas-so-p-husni-pertemuan-7/</link>
		<comments>http://mymounth.wordpress.com/2009/06/29/tugas-so-p-husni-pertemuan-7/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 14:02:31 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mymounth.wordpress.com/?p=42</guid>
		<description><![CDATA[TUGAS PERTEMUAN 7 Jelaskan istilah pengalamatan Logical, Relative dan Physical! Pengalamatan Phisical Adalah pengalamatan setiap sel memori yang memiliki nomor unit yang membentuk alamat memori mutlak / fisik, alamat memori yang sebenarnya di dalam memory utama Pengalamatan Relative Adalah pengalamatan memori yang digunakan oleh user’s dalam bahasa mesin atau alamat yang dihasilkan oleh CPU. Alamat [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=42&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;">TUGAS PERTEMUAN 7</p>
<p style="text-align:center;">
<ol>
<li>Jelaskan istilah pengalamatan Logical, Relative dan Physical!</li>
</ol>
<ul>
<li>Pengalamatan Phisical</li>
</ul>
<p>Adalah pengalamatan setiap sel memori yang memiliki nomor unit yang membentuk alamat memori mutlak / fisik, alamat memori yang sebenarnya di dalam memory utama</p>
<ul>
<li>Pengalamatan Relative</li>
</ul>
<p>Adalah pengalamatan memori yang digunakan oleh user’s dalam bahasa mesin atau alamat yang dihasilkan oleh CPU. Alamat diekspresikan sebagai suatu lokasi relatif terhadap beberapa poin yang diketahui</p>
<ul>
<li>Pengalamatan Logical</li>
</ul>
<p>Mengacu ke suatu lokasi memory terlepas dari <em>assignment </em>data terkini ke memory.</p>
<p><span id="more-42"></span></p>
<p>2. Jelaskan perbedaan Partition, Segmentation dan Paging!</p>
<ul>
<li>Partition merupakan metode awal pengelolaan memory sebelum hadirnya <em>virtual memory</em>
<ul>
<li>Paging merupakan metode yang memungkinkan suatu alamat fisik memori yang tersedia dapat tidak berurutan. Dapat pula diartikan Membagi memory ke dalam chunks (bagian-bagian) kecil berukuran tetap dan sama, dan membagi setiap proses ke dalam chunk berukuran sama tersebut</li>
<li>Segmentation merupakan skema manajemen memori yang mendukung cara pandang seorang programmer terhadap memori.</li>
</ul>
</li>
</ul>
<p>3. Bagaimana perhitungan Alamat Absolut pada Paging dan Segmentation !</p>
<ul>
<li>Pada paging</li>
</ul>
<p><em>Paging unit</em> mengubah <em>linear addresses </em> ke <em>physical adresses</em>. <em>Paging unit </em> mengecek tipe permintaan akses yang melanggar hak akses dari <em>linear address</em>. Jika akses memori tidak valid, maka akan menghasilkan eksepsi <em>page fault</em>.</p>
<p>Untuk efisiensi, <em>linear address</em> dikelompokkan dalam interval <em>fixed-length</em> yang disebut <em>pages; linear addressess</em> kontigu pada sebuah page dipetakan ke <em>physical addresses </em> kontigu. <em>Paging unit </em>menganggap semua RAM terpartisi menjadi <em>fixed-length page frames</em>. Setiap <em>page frame</em> mengandung sebuah page. Struktur data yang memetakan <em>linear </em>ke <em>physical addressses </em>disebut <em>page tables</em>, tersimpan dalam memori utama dan harus diinisialisasi secara tepay oleh kernel sebelum memfungsikan <em>paging unit</em>.</p>
<ul>
<li>Pada segmentation</li>
</ul>
<p>Dimulai dengan model 80386, microprocessor Intel menampilkan translasi alamat dengan 2 cara berbeda, yang disebut <em>real mode </em>dan <em>protected mode</em>.  <em>Real mode</em> untuk memelihara kompatibilitas prosesor dengan model yang lebih lama dan untuk OS agar dapat melakukan <em>bootstrap</em>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=42&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/06/29/tugas-so-p-husni-pertemuan-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>
	</item>
		<item>
		<title>Tugas P.Yoga ke-2</title>
		<link>http://mymounth.wordpress.com/2009/03/30/tugas-pyoga-ke-2/</link>
		<comments>http://mymounth.wordpress.com/2009/03/30/tugas-pyoga-ke-2/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 23:49:46 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mymounth.wordpress.com/?p=38</guid>
		<description><![CDATA[DMA Seperti yang telah dijelaskan sebelumnya bahwa mekanisme interupsi tidak efisien untuk melakukan transfer data yang besar. Transfer data dilakukan per word. Pada mekanisme interupsi, untuk tiap word data yang ditransfer, prosesor tidak akan menunggu data tersedia pada perangkat yang mengirim data maupun data selesai ditulis oleh perangkat yang menerima data. Dalam situasi tersebut prosesor [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=38&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--></p>
<h2 class="title" style="clear:both;">DMA</h2>
<p><a class="indexterm" name="id2607464"></a></p>
<p>Seperti yang telah dijelaskan sebelumnya bahwa mekanisme  	interupsi tidak efisien untuk melakukan transfer data yang  	besar. Transfer data dilakukan per word. Pada mekanisme  	interupsi, untuk tiap word data yang ditransfer, prosesor  	tidak akan menunggu data tersedia pada perangkat yang  	mengirim data maupun data selesai ditulis oleh perangkat  	yang menerima data. Dalam situasi tersebut prosesor akan  	mengganti proses yang sedang dieksekusinya (yang melakukan  	transfer data) dengan proses lain  	(<span class="foreignphrase"><em class="foreignphrase">context switch</em></span>). Jika ukuran  	data yang ditransfer cukup besar, prosesor akan berulang  	kali melakukan  	<span class="foreignphrase"><em class="foreignphrase">context switch</em></span>, padahal  	<span class="foreignphrase"><em class="foreignphrase">context switch</em></span> akan  	menimbulkan <span class="foreignphrase"><em class="foreignphrase">overhead</em></span>. Oleh  	karena itu kelemahan mekanisme interupsi untuk menangani  	transfer data yang besar disebabkan oleh  	<span class="foreignphrase"><em class="foreignphrase">context switch</em></span>. Untuk  	menangani kelemahan tersebut, digunakan suatu unit kontrol  	khusus yang disediakan untuk mentrasfer data langsung antar  	perangkat eksternal dan memori utama tanpa intervensi terus  	menerus dari prosesor. Unit kontrol khusus tersebut adalah  	DMA.</p>
<p><span id="more-38"></span></p>
<p>Sistem modern dapat mengurangi beban CPU untuk melakukan  	operasi M/K, yaitu dengan menggunakan pengendali DMA.  	Dengan demikian CPU dapat melakukan tugas lain sementara  	operasi M/K dilakukan. Setiap pengendali peralatan dapat  	saja memiliki perangkat keras DMA tersendiri. Alternatif  	lain adalah dengan memiliki sebuah pengendali DMA pada  	<span class="foreignphrase"><em class="foreignphrase">motherboard</em></span> yang mengatur  	transfer ke berbagai peralatan.</p>
<p>Untuk memulai transfer data secara DMA,  	<span class="foreignphrase"><em class="foreignphrase">driver</em></span> peralatan akan  	menulis blok perintah DMA memori yang menunjuk sumber data,  	tujuan, dan jumlah byte yang akan ditransfer. CPU kemudian  	akan mengirimkan alamat blok perintah ini pada pengendali  	DMA. pengendali DMA akan memproses informasi ini untuk  	kemudian mengoperasikan bus memori.</p>
<p>Transfer sebanyak 1 byte/word per satuan waktu oleh  	pengendali DMA disebut sebagai  	<span class="foreignphrase"><em class="foreignphrase">cycle stealing</em></span> karena  	pengendali menggunakan  	<span class="foreignphrase"><em class="foreignphrase">bus cycle</em></span> milik CPU. Dengan  	<span class="foreignphrase"><em class="foreignphrase">cycle stealing</em></span> penggunaan  	bus oleh CPU akan tertunda beberapa waktu karena bus  	digunakan untuk proses DMA.</p>
<p>Tiga langkah dalam transfer DMA:</p>
<div class="orderedlist">
<ol type="1">
<li>prosesor menyiapkan DMA transfer dengan  			menyediakan data-data dari perangkat,  			operasi yang akan ditampilkan, alamat  			memori yang menjadi sumber dan tujuan data,  			dan banyaknya byte yang ditransfer.</li>
<li>Pengendali DMA memulai operasi (menyiapkan  			bus, menyediakan alamat,menulis dan membaca  			data) samapai seluruh blok sudah ditransfer.</li>
<li>Pengendali DMA menginterupsi prosesor,  			dimana selanjutnya akan ditentukan tindakan  			berikutnya.</li>
</ol>
</div>
<div class="figure"><a name="c637-f03"></a></p>
<p class="title"><strong>Gambar 10.3. DMA</strong></p>
<p class="title"><strong><img class="alignnone size-full wp-image-39" title="gbr" src="http://mymounth.files.wordpress.com/2009/03/gbr.jpg" alt="gbr" width="450" height="281" /><br />
</strong></p>
</div>
<p class="MsoNormal"><strong><em>Contoh program array dimensi 2</em></strong></p>
<p class="MsoNormal">/*Program :array.cpp*/</p>
<p class="MsoNormal">#include &lt;stdio.h&gt;</p>
<p class="MsoNormal">Void printArray(int [] [3]);</p>
<p class="MsoNormal">Main()  {</p>
<p class="MsoNormal">int matrik1[2] [3] ={ {1,2,2}, {4,5,6} },</p>
<p class="MsoNormal">matrik2[2] [3] ={ {1,2,3,4,5,} },</p>
<p class="MsoNormal">matrik3[2] [3] ={ {1,2}, {4} },</p>
<p class="MsoNormal">printArray(matrik1) ;</p>
<p class="MsoNormal">printArray(matrik2) ;</p>
<p class="MsoNormal">printArray(matrik3) ;</p>
<p class="MsoNormal">return 0;</p>
<p class="MsoNormal">}</p>
<p class="MsoNormal"><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--> &lt;!&#8211;  /* Font Definitions */  @font-face 	{font-family:&#8221;Cambria Math&#8221;; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:&#8221;"; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&#8221;Calibri&#8221;,&#8221;sans-serif&#8221;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:&#8221;Times New Roman&#8221;; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:&#8221;Times New Roman&#8221;; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} &#8211;&gt; <!--[if gte mso 10]&gt;--><br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:&#8221;Table Normal&#8221;;<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-priority:99;<br />
mso-style-qformat:yes;<br />
mso-style-parent:&#8221;";<br />
mso-padding-alt:0in 5.4pt 0in 5.4pt;<br />
mso-para-margin-top:0in;<br />
mso-para-margin-right:0in;<br />
mso-para-margin-bottom:10.0pt;<br />
mso-para-margin-left:0in;<br />
line-height:115%;<br />
mso-pagination:widow-orphan;<br />
font-size:11.0pt;<br />
font-family:&#8221;Calibri&#8221;,&#8221;sans-serif&#8221;;<br />
mso-ascii-font-family:Calibri;<br />
mso-ascii-theme-font:minor-latin;<br />
mso-fareast-font-family:&#8221;Times New Roman&#8221;;<br />
mso-fareast-theme-font:minor-fareast;<br />
mso-hansi-font-family:Calibri;<br />
mso-hansi-theme-font:minor-latin;}</p>
<p class="MsoNormal"><strong><em>Contoh Program array pointer</em></strong></p>
<p class="MsoNormal">//Program :pointer6. cpp</p>
<p class="MsoNormal">#include &lt;iostream.h&gt;</p>
<p class="MsoNormal">int main()</p>
<p class="MsoNormal">{</p>
<p class="MsoNormal">Int numbers[5];</p>
<p class="MsoNormal">Int *p;</p>
<p class="MsoNormal">p = numbers; *p = 10;</p>
<p class="MsoNormal">p++; *p =20;</p>
<p class="MsoNormal">p = &amp;numbers[2];<span> </span>*p = 30;</p>
<p class="MsoNormal">p = numbers + 3;<span> </span>*p = 40;</p>
<p class="MsoNormal">p = numbers;<span> </span>*(p+4) = 50;</p>
<p class="MsoNormal">for<span> </span>(int n=0; n&lt;5; n++)</p>
<p class="MsoNormal"><span> </span>cout &lt;&lt; numbers[n] &lt;&lt; “, “;</p>
<p class="MsoNormal">return 0;</p>
<p class="MsoNormal">}</p>
<p class="MsoNormal"><strong>Output :</strong></p>
<p class="MsoNormal"><strong><span> </span></strong>10, 20, 30, 40, 50,</p>
<p class="MsoNormal">
<p style="text-align:left;"><strong>Fungsi penukaran dua buah variabel</strong><br />
#include &lt;iostream.h&gt;<br />
void Tukarkan(int Angka1, int Angka2)<br />
{<br />
int temp = Angka1;<br />
Angka1 = Angka2;<br />
Angka2 = temp;<br />
}<br />
main()<br />
{<br />
int X = 1, Y = 99;<br />
cout &lt;&lt; “Sebelum ditukarkan”;<br />
cout &lt;&lt; “\nX = ” &lt;&lt; X &lt;&lt; “, Y = ” &lt;&lt; Y;<br />
Tukarkan(X, Y);<br />
cout &lt;&lt; “\nSetelah ditukarkan”;<br />
cout &lt;&lt; “\nX = ” &lt;&lt; X &lt;&lt; “, Y = ” &lt;&lt; Y;<br />
}<br />
Mengapa nilai X dan Y tidak bertukaran pada program di atas, dan bagaimana cara<br />
memperbaikinya. Cobalah program sorting di bawah ini, dengan masih menggunakan fungsi<br />
Tukarkan di atas.</p>
<p style="text-align:left;">void Cetak(int D[])<br />
{<br />
for (int i=0; i&lt;6; i++)<br />
cout &lt;&lt; D[i] &lt;&lt; ” “;<br />
cout &lt;&lt; endl;<br />
}<br />
main()<br />
{<br />
int Data[6] = {10, 3, 5, 20, 15, 7};<br />
cout &lt;&lt; “Sebelum disortir:\n”;<br />
Cetak(Data);<br />
cout &lt;&lt; “Proses sortir:\n”;<br />
for (int i=0; i&lt;5; i++) {<br />
for (int j=4; j&gt;=i; j–) {<br />
if (Data[j+1] &lt; Data[j])<br />
Tukarkan(Data[j], Data[j+1]);<br />
Cetak(Data);<br />
}<br />
cout &lt;&lt; “—–\n”;<br />
}<br />
}</p>
<p><strong>Struktur Bahasa C++</strong><br />
Contoh 1 : Hasil :<br />
// my first program in C++ Hello World!<br />
#include &lt;iostream.h&gt;<br />
int main ()<br />
{<br />
cout &lt;&lt; &#8220;Hello World!&#8221;;<br />
return 0;<br />
}<br />
Sisi kiri merupakan source code, yang dapat diberi nama hiworld.cpp dan sisi kanan adalah<br />
hasilnya setelah di-kompile dan di-eksekusi.</p>
<p>Program diatas merupakan salah satu program paling sederhana dalam C++, tetapi dalam<br />
program tersebut mengandung komponen dasar yang selalu ada pada setiap pemrograman<br />
C++. Jika dilihat satu persatu :<br />
// my first program in C++<br />
Baris ini adalah komentar. semua baris yang diawali dengan dua garis miring (//) akan<br />
dianggap sebagai komentar dan tidak akan berpengaruh terhadap program. Dapat<br />
digunakan oleh programmer untuk menyertakan penjelasan singkat atau observasi<br />
yang terkait dengan program tersebut.<br />
#include &lt;iostream.h&gt;<br />
Kalimat yang diawali dengan tanda (#) adalah are preprocessor directive. Bukan<br />
merupakan baris kode yang dieksekusi, tetapi indikasi untuk kompiler. Dalam kasus ini<br />
kalimat #include &lt;iostream.h&gt; memberitahukan preprocessor kompiler untuk<br />
menyertakan header file standard iostream. File spesifik ini juga termasuk library<br />
deklarasi standard I/O pada C++ dan file ini disertakan karena fungsi-fungsinya akan<br />
digunakan nanti dalam program.<br />
int main ()<br />
Baris ini mencocokan pada awal dari deklarasi fungsi main. fungsi main merupakan<br />
titik awal dimana seluruh program C++ akan mulai dieksekusi. Diletakan diawal,<br />
ditengah atau diakhir program, isi dari fungsi main akan selalu dieksekusi pertama<br />
kali. Pada dasarnya, seluruh program C++ memiliki fungsi main.<br />
main diikuti oleh sepasang tanda kurung () karena merupakan fungsi. pada C++, semua<br />
fungsi diikuti oleh sepasang tanda kurung () dimana, dapat berisi argumen didalamnya.<br />
Isi dari fungsi main selanjutnya akan mengikuti,berupa deklarasi formal dan<br />
dituliskan diantara kurung kurawal ({}), seperti dalam contoh.<br />
cout &lt;&lt; &#8220;Hello World&#8221;;<br />
Intruksi ini merupakan hal yang paling penting dalam program contoh. cout merupakan<br />
standard output stream dalam C++ (biasanya monitor). cout dideklarasikan dalam<br />
header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan.<br />
Perhatikan setiap kalimat diakhiri dengan tanda semicolon (;). Karakter ini<br />
menandakan akhir dari instruksi dan harus disertakan pada setiap akhir instruksi<br />
pada program C++ manapun.<br />
return 0;<br />
Intruksi return menyebabkan fungsi main() berakhir dan mengembalikan kode yang<br />
mengikuti instruksi tersebut, dalam kasus ini 0. Ini merupakan cara yang paling sering<br />
digunakan untuk mengakhiri program.<br />
Tidak semua baris pada program ini melakukan aksi. Ada baris yang hanya berisi komentar<br />
(diawali //), baris yang berisi instruksi untuk preprocessor kompiler (Yang diawali<br />
#),kemudian baris yang merupakan inisialisasi sebuah fungsi (dalam kasus ini, fungsi main)<br />
dan baris yang berisi instruksi (seperti, cout &lt;&lt;), baris yang terakhir ini disertakan dalam<br />
blok yang dibatasi oleh kurung kurawal ({}) dari fungsi main.</p>
<p>Struktur program dapat dituliskan dalam bentuk yang lain agar lebih mudah dibaca, contoh :<br />
int main ()<br />
{<br />
cout &lt;&lt; &#8221; Hello World &#8220;;<br />
return 0;<br />
}<br />
Atau dapat juga dituliskan :<br />
int main () { cout &lt;&lt; &#8221; Hello World &#8220;; return 0; }<br />
Dalam satu baris dan memiliki arti yang sama dengan program-program sebelumnya. pada C++<br />
pembatas antar instruksi ditandai dengan semicolon (;) pada setiap akhir instruksi.<br />
Contoh 2 : Hasil :<br />
// my second program in C++ Hello World! I&#8217;m a C++ program<br />
#include &lt;iostream.h&gt;<br />
int main ()<br />
{<br />
cout &lt;&lt; &#8220;Hello World! &#8220;;<br />
cout &lt;&lt; &#8220;I&#8217;m a C++ program&#8221;;<br />
return 0;<br />
}</p>
<ul>
<li><strong>Identifiers</strong></li>
</ul>
<p>Identifier adalah untaian satu atau lebih huruf, angka, atau garis bawah ( _ ). Panjang dari<br />
identifier, tidak terbatas, walaupun untuk beberapa kompiler hanya 32 karakter pertama<br />
saja yang dibaca sebagai identifier (sisanya diabaikan). Identifier harus selalu diawali<br />
dengan huruf atau garis bawah ( _ ).</p>
<p>Sebagai tambahan, represetasi alternatif dari operator, tidak dapat digunakan sebagai<br />
identifier. Contoh :<br />
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq,<br />
xor, xor_eq<br />
catatan: Bahasa C++ adalah bahasa yang &#8220;case sensitive&#8221;, ini berarti identifier yang<br />
dituliskan dengan huruf kapital akan dianggap berbeda dengan identifier yang sama tetapi<br />
dituliskan dengan huruf kecil, sabagai contoh : variabel RESULT tidak sama dengan variable<br />
result ataupun variabel Result.</p>
<ul>
<li><strong>Deklarasi variabel</strong></li>
</ul>
<p>Untuk menggunakan variabel pada C++, kita harus mendeklarasikan tipe data yang akan<br />
digunakan. Sintaks penulisan deklarasi variabel adalah dengan menuliskan tipe data yang akan<br />
digunakan diikuti dengan identifier yang benar, contoh :<br />
int a;<br />
float mynumber;<br />
Jika akan menggunakan tipe data yang sama untuk beberapa identifier maka dapata<br />
dituliskan dengan menggunakan tanda koma, contoh :<br />
int a, b, c;<br />
Tipe data integer (char, short, long dan int) dapat berupa signed atau unsigned tergantung<br />
dari kisaran nilai yang akan direpresentasikan. Dilakukan dengan menyertakan keyword<br />
signed atau unsigned sebelum tipe data, contoh :<br />
unsigned short NumberOfSons;<br />
signed int MyAccountBalance;<br />
Jika tidak dituliskan, maka akan dianggap sebagai signed.<br />
Contoh 3 :<br />
Hasil :<br />
// operating with variables<br />
#include &lt;iostream.h&gt; 4<br />
int main ()<br />
{<br />
// declaring variables:<br />
int a, b;<br />
int result;<br />
// process:<br />
a = 5;<br />
b = 2;<br />
a = a + 1;<br />
result = a &#8211; b;</p>
<ul>
<li><strong>Konstanta Define (#define)</strong></li>
</ul>
<p>Dengan format :<br />
#define identifier value<br />
Contoh :<br />
#define PI 3.14159265<br />
#define NEWLINE &#8216;\n&#8217;<br />
#define WIDTH 100<br />
Setelah didefinisikan seperti diatas, maka kita dapat menggunakannya pada seluruh program<br />
yang kita buat, contoh :<br />
circle = 2 * PI * r;<br />
cout &lt;&lt; NEWLINE;</p>
<ul>
<li><strong>Deklarasi Konstanta (const)</strong></li>
</ul>
<p>const int width = 100;<br />
const char tab = &#8216;\t&#8217;;<br />
const zip = 12440;</p>
<ul>
<li><strong>Assignation (=).</strong></li>
</ul>
<p>int a, b; // a:? b:?<br />
a = 10; // a:10 b:?<br />
b = 4; // a:10 b:4<br />
a = b; // a:4 b:4<br />
b = 7; // a:4 b:7<br />
Hasil dari contoh diatas, a bernilai 4 dan b bernilai 7.</p>
<ul>
<li><strong>Arithmetic operators ( +, -, *, /, % )</strong></li>
</ul>
<p>+ addition<br />
- subtraction<br />
* multiplication<br />
/ division<br />
% module</p>
<ul>
<li><strong>Compound assignation operators</strong></li>
</ul>
<p>(+=, -=, *=, /=, %=, &gt;&gt;=, &lt;&lt;=, &amp;=, ^=, |=)</p>
<ul>
<li><strong>Increase (++) and decrease (&#8211;).</strong></li>
</ul>
<p>Contoh :<br />
a++;<br />
a+=1;<br />
a=a+1;</p>
<ul>
<li><strong>Relational operators ( ==, !=, &gt;, &lt;, &gt;=, &lt;= )</strong></li>
</ul>
<p>== Equal<br />
!= Different<br />
&gt; Greater than<br />
&lt; Less than<br />
&gt;= Greater or equal than<br />
&lt;= Less or equal than</p>
<ul>
<li><strong>Logic operators ( !, &amp;&amp;, || ).</strong></li>
</ul>
<p>!(5 == 5) returns false because the expression at its right (5 == 5)<br />
would be true.<br />
!(6 &lt;= 4) returns true because (6 &lt;= 4) would be false.<br />
!true returns false.<br />
!false returns true.</p>
<ul>
<li><strong>Conditional operator ( ? ).</strong></li>
</ul>
<p>condition ? result1 : result2<br />
Jika kondisi true maka akan menghasilkan result1, jika tidak akan menghasilkan result2.<br />
7==5 ? 4 : 3 returns 3 since 7 is not equal to 5.<br />
7==5+2 ? 4 : 3 returns 4 since 7 is equal to 5+2.<br />
5&gt;3 ? a : b returns a, since 5 is greater than 3.<br />
a&gt;b ? a : b returns the greater one, a or b.</p>
<ul>
<li><strong>Bitwise Operators ( &amp;, |, ^, ~, &lt;&lt;, &gt;&gt; ).</strong></li>
</ul>
<p class="MsoNormal">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=38&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/03/30/tugas-pyoga-ke-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/gbr.jpg" medium="image">
			<media:title type="html">gbr</media:title>
		</media:content>
	</item>
		<item>
		<title>Microkernel</title>
		<link>http://mymounth.wordpress.com/2009/03/30/microkernel/</link>
		<comments>http://mymounth.wordpress.com/2009/03/30/microkernel/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 23:09:57 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mymounth.wordpress.com/?p=35</guid>
		<description><![CDATA[Threads Programming · Java Java adalah salah satu bahasa pemrograman yang mendukung penggunaan multithreading. Saat sebuah program Java dieksekusi, yaitu saat main() dijalankan, ada sebuah thread utama yang bekerja. Thread lain yang dibutuhkan dapat dibentuk dengan menuliskan kode program tertentu. Pada kondisi dan keperluan tertentu, thread pada program Java yang sedang dijalankan juga dapat digabung [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=35&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align:center;color:#3366ff;" align="center"><span style="font-size:85%;"><strong><span style="color:#ff0000;font-size:100%;">Threads Programming</span> </strong></span></p>
<p class="MsoNormal" style="margin-left:39pt;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-family:Symbol;font-size:85%;"><span>·<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;"><strong>Java</strong></span></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.45pt;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Java adalah salah satu bahasa pemrograman yang mendukung penggunaan multithreading.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Saat sebuah program Java dieksekusi, yaitu saat </span><span style="font-family:&quot;font-size:85%;">main() </span><span style="font-family:&quot;font-size:85%;">dijalankan, ada sebuah <em>thread </em>utama yang bekerja. Thread lain yang dibutuhkan dapat dibentuk dengan menuliskan kode<em> </em>program tertentu. Pada kondisi dan keperluan tertentu, thread pada program Java yang<em> </em>sedang dijalankan juga dapat digabung dengan thread utama ataupun dibatalkan.<em> </em></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Keseluruhan <em>thread </em>dalam Java diatur oleh <em>Java Virtual Machine </em>(JVM) sehingga sulit<em> </em>untuk menentukan apakah <em>thread </em>Java berada di <em>user-level </em>atau <em>kernel-level</em>.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;"><span id="more-35"></span><br />
</span></p>
<p><span style="font-size:85%;"><a href="http://3.bp.blogspot.com/_xHJoIWNhunM/SdD3NyGBSzI/AAAAAAAAABE/CmYcZk9G6xs/s1600-h/thread.JPG"><img style="cursor:pointer;width:320px;height:249px;" src="http://3.bp.blogspot.com/_xHJoIWNhunM/SdD3NyGBSzI/AAAAAAAAABE/CmYcZk9G6xs/s320/thread.JPG" border="0" alt="" /></a></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Suatu <em>thread </em>bisa berada pada salah satu dari status berikut:</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">· </span><span style="font-size:85%;"><strong><em><span style="font-family:&quot;">New</span></em></strong><strong><span style="font-family:&quot;">. </span></strong><em><span style="font-family:&quot;">Thread </span></em></span><span style="font-family:&quot;font-size:85%;">yang berada di status ini adalah objek dari kelas </span><span style="font-family:&quot;font-size:85%;">Thread </span><span style="font-family:&quot;font-size:85%;">yang baru dibuat, yaitu saat instansiasi objek dengan <em>statement new</em>. Saat <em>thread </em>berada di status </span><span style="font-family:&quot;font-size:85%;">new</span><span style="font-family:&quot;font-size:85%;">, belum ada sumber daya yang dialokasikan, sehingga <em>thread </em>belum bisa menjalankan perintah apapun.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-family:Wingdings;font-size:85%;"><span>Ø<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-family:&quot;font-size:85%;">Menjalankan <em>thread</em>. Agar <em>thread </em>bisa menjalankan tugasnya, method </span><span style="font-family:&quot;font-size:85%;">start() </span><span style="font-family:&quot;font-size:85%;">dari kelas </span><span style="font-family:&quot;font-size:85%;">Thread </span><span style="font-family:&quot;font-size:85%;">harus dipanggil. Ada dua hal yang terjadi saat pemanggilan method </span><span style="font-family:&quot;font-size:85%;">start()</span><span style="font-family:&quot;font-size:85%;">, yaitu alokasi memori untuk <em>thread </em>yang dibuat dan pemanggilan method </span><span style="font-family:&quot;font-size:85%;">run()</span><span style="font-family:&quot;font-size:85%;">.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">· </span><span style="font-size:85%;"><strong><em><span style="font-family:&quot;">Runnable</span></em></strong><strong><span style="font-family:&quot;">. </span></strong></span><span style="font-family:&quot;font-size:85%;">Saat method </span><span style="font-family:&quot;font-size:85%;">run() </span><span style="font-family:&quot;font-size:85%;">dipanggil, status <em>thread </em>berubah menjadi <em>runnable</em>, artinya <em>thread </em>tersebut sudah memenuhi syarat untuk dijalankan oleh JVM. <em>Thread </em>yang sedang berjalan juga dikategorikan dalam status <em>runnable</em>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-family:Wingdings;font-size:85%;"><span>Ø<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;"><em><span style="font-family:&quot;">Blocking statement </span></em></span><span style="font-family:&quot;font-size:85%;">dan interupsi M/K<strong>, </strong>yaitu kondisi yang menghalangi pengeksekusian <em>thread</em>. Ada berbagai jenis blocking statement. Yang pertama adalahpemanggilan method sleep(), suatu method yang menerima argumen bertipe <em>integer</em>dalam bentuk milisekon. Argumen tersebut menunjukkan seberapa lama <em>thread </em>akan&#8221;tidur&#8221;. Selain </span><span style="font-family:&quot;font-size:85%;">sleep()</span><span style="font-family:&quot;font-size:85%;">, dulunya dikenal method </span><span style="font-family:&quot;font-size:85%;">suspend()</span><span style="font-family:&quot;font-size:85%;">, tetapi sudah disarankan untuk tidak digunakan lagi karena mengakibatkan terjadinya <em>deadlock</em>. Di samping <em>blocking statement</em>, adanya interupsi M/K juga dapat menyebabkan <em>thread </em>menjadi <em>blocked</em>.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">· </span><span style="font-size:85%;"><strong><em><span style="font-family:&quot;">Blocked</span></em></strong><strong><span style="font-family:&quot;">. </span></strong></span><span style="font-family:&quot;font-size:85%;">Status <em>blocking </em>menunjukkan bahwa sebuah <em>thread </em>terhalang untuk menjalankan</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">tugasnya, sehingga dapat dikatakan <em>thread </em>tersebut terhenti untuk sementara. <em>Thread </em>akan menjadi <em>runnable </em>kembali jika interval method </span><span style="font-family:&quot;font-size:85%;">sleep()</span><span style="font-family:&quot;font-size:85%;">-nya sudah berakhir, ataupemanggilan method </span><span style="font-family:&quot;font-size:85%;">resume() </span><span style="font-family:&quot;font-size:85%;">untuk mengakhiri method </span><span style="font-family:&quot;font-size:85%;">suspend(,) </span><span style="font-family:&quot;font-size:85%;">atau karena M/K sudah tersedia lagi.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-family:Wingdings;font-size:85%;"><span>Ø<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-family:&quot;font-size:85%;">Keluar dari method </span><span style="font-family:&quot;font-size:85%;">run(). </span><span style="font-family:&quot;font-size:85%;">Hal ini bisa terjadi karena <em>thread </em>tersebut memang telah</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">menyelesaikan pekerjaannya di method </span><span style="font-family:&quot;font-size:85%;">run()</span><span style="font-family:&quot;font-size:85%;">, maupun karena adanya pembatalan <em>thread</em>.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">·<span> </span></span><span style="font-size:85%;"><strong><em><span style="font-family:&quot;">Dead</span></em></strong><strong><span style="font-family:&quot;">. </span></strong></span><span style="font-family:&quot;font-size:85%;">Setelah keluar dari method </span><span style="font-family:&quot;font-size:85%;">run(), </span><span style="font-size:85%;"><em><span style="font-family:&quot;">thread </span></em></span><span style="font-family:&quot;font-size:85%;">akan berada dalam status <em>dead </em>dan menjadi tidak aktif lagi. Status jelas dari sebuah <em>thread </em>tidak dapat diketahui, tetapimethod </span><span style="font-family:&quot;font-size:85%;">isAlive() </span><span style="font-family:&quot;font-size:85%;">mengembalikan nilai boolean untuk mengetahui apakah <em>thread</em> tersebut <em>dead </em>atau tidak.</span></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.45pt;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Setiap program Java memiliki paling sedikit satu <em>thread</em>, yang otomatis terbentuk saat dieksekusi. Untuk kebutuhan tertentu, bahasa pemrograman Java memungkinkan adanya pembuatan dan manajemen <em>thread </em>tambahan oleh JVM (Java Virtual Machine).</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Sebuah <em>thread </em>bisa berada di salah satu dari 4 status, yaitu <strong><em>new</em></strong><em>, <strong>runnable</strong>, <strong>blocked</strong>, </em>dan <strong><em>dead</em></strong>. Ada dua cara untuk membuat <em>thread </em>dalam Java, yaitu dengan meng-<em>extends </em>kelas </span><span style="font-family:&quot;font-size:85%;">Thread </span><span style="font-family:&quot;font-size:85%;">atau dengan meng-<em>implements interface </em></span><span style="font-family:&quot;font-size:85%;">Runnable</span><span style="font-family:&quot;font-size:85%;">.</span></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.45pt;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Dalam beberapa kondisi, <em>thread </em>yang dibuat dapat digabungkan dengan <em>parent thread</em>-nya.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Penggabungan ini menggunakan method </span><span style="font-family:&quot;font-size:85%;">join()</span><span style="font-family:&quot;font-size:85%;">, yang berfungsi agar suatu <em>thread </em>induk menunggu <em>thread </em>yang dibuatnya selesai menjalankan tugasnya, baru mulai mengeksekusi perintah selanjutnya.</span></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.45pt;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Pembatalan thread secara <em>asynchronous </em>dilakukan dengan pemanggilan method </span><span style="font-family:&quot;font-size:85%;">stop()</span><span style="font-family:&quot;font-size:85%;">.</span></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.45pt;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Akan tetapi, cara ini terbukti tidak aman, sehingga untuk menterminasi <em>thread </em>digunakanlah <em>deferred cancellation</em>. Pembatalan dilakukan dengan pemanggilan method </span><span style="font-family:&quot;font-size:85%;">interrupt() </span><span style="font-family:&quot;font-size:85%;">untuk mengeset status interupsi, serta </span><span style="font-family:&quot;font-size:85%;">isInterrupted() </span><span style="font-family:&quot;font-size:85%;">atau </span><span style="font-family:&quot;font-size:85%;">interrupted() </span><span style="font-family:&quot;font-size:85%;">untuk memeriksa status interupsi tersebut.<br />
Program Java dapat dijalankan di berbagai <em>platform </em>selama <em>platform </em>tersebut mendukung</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">JVM. Pemetaan <em>thread </em>Java ke <em>host operating system </em>tergantung pada implementasi JVM di sistem operasi tersebut.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;">contoh program:</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;">class CobaThread2 implements Runnable<br />
{<br />
public void run()<br />
{<br />
for(int ii = 0; ii&lt;4; t1 =&#8221; new&#8221; t2 =&#8221; new&#8221; ii =&#8221; 0;&#8221;&gt;<span style="font-family:&quot;font-size:85%;"></span></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><strong><span style="font-family:&quot;"> Rujukan</span></strong></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">www.google.com</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">[Lewis1998] John Lewis dan William Loftus. 1998. <em>Java Software Solutions Foundation Of</em></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><em><span style="font-family:&quot;">Program Design</span></em></span><span style="font-family:&quot;font-size:85%;">. First Edition. Addison Wesley.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. <em>Operating</em></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><em><span style="font-family:&quot;">Systems Concepts</span></em></span><span style="font-family:&quot;font-size:85%;">. Seventh Edition. John Wiley &amp; Sons.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">[Tanenbaum1997] Andrew Tanenbaum dan Albert Woodhull. 1997. <em>Operating Systems</em></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><em><span style="font-family:&quot;">Design and Implementation</span></em></span><span style="font-family:&quot;font-size:85%;">. Second Edition. Prentice-Hall.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">[WEBJava2007] Java 2 Platform SE v1.3.1. 2007. <em>Java 2 Platform SE v1.3.1: Class Thread</em></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><em><span style="font-family:&quot;">– </span></em><em><span style="font-family:&quot;">http://java.sun.com/j2se/1.3/docs/api/java/lang/Thread.html </span></em></span><span style="font-family:&quot;font-size:85%;">. Diakses 27</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">Februari 2007.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-family:&quot;font-size:85%;">[WEBJTPD2007] Java Thread Primitive Deprecation. 2007. <em>Java Thread Primitive</em></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><em><span style="font-family:&quot;">Deprecation –</span></em></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><em><span style="font-family:&quot;">http://java.sun.com/j2se/1.3/docs/guide/misc/threadPrimitiveDeprecatio n.html </span></em></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><strong><em><span style="font-family:&quot;"> </span></em></strong></span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;"><strong><em><span style="font-family:&quot;"><br />
</span></em></strong></span></p>
<p class="MsoNormal" style="margin-left:39pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-family:Symbol;font-size:85%;"><span>·<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;"><strong><span style="font-family:&quot;">C/C++</span></strong></span></p>
<p class="MsoNormal" style="margin-left:21pt;text-align:justify;color:#3366ff;"><span style="font-size:85%;"><strong><span style="font-family:&quot;"> </span></strong></span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-size:85%;"><strong><span lang="IN">Pendekatan dasar</span></strong></span><span style="font-size:85%;" lang="IN"></p>
<p><span> </span><span> </span>Yang membuat thread, anda harus menentukan sebuah fungsi yang akan menjadi entry point untuk thread. Pada tingkat sistem operasi, ini adalah fungsi normal. Kita harus melakukan beberapa trik untuk wrap C + + di kelas karena data tidak dapat berfungsi normal fungsi anggota dari kelas. Namun, dapat statis fungsi anggota dari kelas. Ini adalah apa yang akan kita gunakan sebagai entry point. Ada disini gotcha though. Static fungsi anggota tidak memiliki akses ke ini pointer dari C + + objek. Mereka hanya dapat mengakses data statis. Untungnya, ada cara untuk melakukannya. Entry point thread fungsi mengambil void * sebagai parameter sehingga pemanggil dapat typecast lulus dan data apapun ke dalam urutan. Kami akan menggunakan ini untuk melewati ini dengan fungsi statis. Fungsi yang statis akan typecast yang void * dan menggunakannya untuk memanggil fungsi anggota yang tidak statis. </span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;" lang="IN"><br />
<strong>Pelaksanaan </strong></p>
<p><span> </span><span> </span>Harus menyebutkan bahwa kita akan mendiskusikan thread kelas dengan fungsi terbatas. Adalah mungkin untuk berbuat lebih banyak dengan thread dari kelas ini akan memungkinkan.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">class Thread</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">{</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>public:</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>Thread();</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>int Start(void * arg);</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>protected:</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>int Run(void * arg);</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>static void * EntryPoint(void*);</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>virtual void Setup();</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>virtual void Execute(void*);</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>void * Arg() const {return Arg_;}</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>void Arg(void* a){Arg_ = a;}</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>private:</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>THREADID ThreadId_;</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>void * Arg_;</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">};</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">Thread::Thread() {}</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">int Thread::Start(void * arg)</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">{</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>Arg(arg); // store user data</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>int code = thread_create(Thread::EntryPoint, this, &amp; ThreadId_);</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>return code;</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">}</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">int Thread::Run(void * arg)</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">{</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>Setup();</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>Execute( arg );</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">}</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">/*static */</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">void * Thread::EntryPoint(void * pthis)</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">{</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>Thread * pt = (Thread*)pthis;</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>pthis-&gt;Run( Arg() );</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">}</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">virtual void Thread::Setup()</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">{</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>// Do any setup here</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">}</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">virtual void Thread::Execute(void* arg)</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">{</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN"><span> </span>// Your code goes here</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-family:&quot;font-size:85%;" lang="IN">}</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-size:85%;" lang="IN"><span> </span><span> </span>Penting untuk memahami bahwa kita rata C + + di sekitar objek thread. Setiap obyek akan menyediakan sebuah antarmuka untuk satu thread. Urutan dan objek tidak sama. Objek bisa ada tanpa urutan. Dalam pelaksanaan ini, urutan tidak benar-benar ada sampai Mulai fungsi dipanggil.</p>
<p><span> </span><span> </span>Pemberitahuan bahwa simpan pengguna argumen dalam kelas. Hal ini diperlukan karena kami memerlukan tempat untuk menyimpan sementara ia sampai benang dimulai. Sistem operasi thread panggilan memungkinkan kami untuk lulus argumen tapi kami telah menggunakannya untuk lulus pointer ini. Jadi kita simpan nyata pengguna argumen di kelas itu sendiri dan ketika menjalankan fungsi disebut dapat memperoleh akses ke argumen.</p>
<p>Thread (); Ini adalah pembina.</p>
<p>Mulai int (void * arg); Fungsi ini memberikan cara untuk membuat urutan dan ia mulai terjadi. Argumen arg menyediakan cara bagi pengguna data yang akan disampaikan ke dalam urutan. Start () membuat thread panggil oleh sistem operasi thread penciptaan fungsi.</p>
<p>int start (void * arg); Ini adalah fungsi lindung yang tidak boleh dimodifikasi dengan.</p>
<p>static void * EntryPoint (void * pthis); Fungsi ini berfungsi sebagai titik masuk ke thread. Ini hanya untuk memuntahkan pthis dan Thread *</p>
<p>virtual void setup (); Fungsi ini dipanggil setelah thread telah dibuat sebelum setup () dipanggil. Jika Anda mengabaikan fungsi ini, ingatlah untuk memanggil kelas parent setup().</p>
<p>Jalankan virtual void (void *); Anda harus menimpa fungsi ini memberikan Anda sendiri fungsi. </span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-size:85%;" lang="IN"><br />
<strong>Kelas yang menggunakan Thread</strong> </span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;" lang="IN"><br />
<span> </span><span> </span>Untuk menggunakan urutan kelas, Anda mendapatkan kelas baru. Anda menimpa Jalankan () fungsi di mana Anda memberikan fungsionalitas sendiri. Anda mungkin menimpa Setup () berfungsi untuk melakukan sesuatu sebelum memulai tugas Jalankan disebut. Jika Anda mengabaikan Setup (), ingat untuk memanggil orang tua kelas Setup ().</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;" lang="IN"><br />
</span></p>
<p class="MsoNormal" style="color:#3366ff;"><span style="font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="margin-left:21pt;text-align:justify;color:#3366ff;"><span style="font-size:85%;"><strong><span style="font-family:&quot;"> </span></strong></span></p>
<p class="MsoNormal" style="margin-left:21pt;text-align:justify;color:#3366ff;"><span style="font-size:85%;"><strong><span style="font-family:&quot;"> <span style="color:#ff0000;font-size:100%;"> MICROKERNEL </span><br />
</span></strong></span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-36pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><strong><span><span><span style="font-family:&quot;"> </span>I.<span style="font-family:&quot;"> </span></span></span></strong><strong><span lang="IN">Keuntungan </span></strong><strong><span>dari </span><span lang="IN">Microkernel Organisasi </span></strong></span><!--[endif]--><span style="font-size:85%;" lang="IN"><br />
Sejumlah keuntungan bagi penggunaan microkernels telah dilaporkan dalam literatur<br />
(misalnya, [FINK04], [LIED96a], [WAYN94a]). </span><span style="font-size:85%;">Termasuk : <strong></strong></span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><span>a.<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;" lang="IN">Tampilan antarmuka </span><span style="font-size:85%;"></span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><span>b.<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;">K</span><span style="font-size:85%;" lang="IN">emungkinan diperpanjang</span><span style="font-size:85%;">(Extensibility)</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><span>c.<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;" lang="IN">Fleksibilitas</span><span style="font-size:85%;"></span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><span>d.<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;" lang="IN">Portabilitas </span><span style="font-size:85%;"></span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><span>e.<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;" lang="IN">Reliabilitas </span><span style="font-size:85%;"></span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><span>f.<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;" lang="IN">sistem dukungan</span><span style="font-size:85%;"> terdistribusi</span> <span style="font-size:85%;"></span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><span>g.<span style="font-family:&quot;"> </span></span></span><!--[endif]--><span style="font-size:85%;" lang="IN">Dukungan untuk berorientasi objek sistem operasi (OOOSS) </span><span style="font-size:85%;"></span></p>
<p class="MsoNormal" style="margin-left:35.45pt;text-align:justify;color:#3366ff;"><span style="font-size:85%;"> </span></p>
<p class="MsoNormal" style="margin-left:35.45pt;text-align:justify;text-indent:35.45pt;color:#3366ff;"><span style="font-size:85%;"><strong><span>D</span><span lang="IN">esain antarmuka</span></strong><strong><span> microkernel</span></strong></span><span style="font-size:85%;"> </span><span style="font-size:85%;" lang="IN">membebankan pada permintaan yang dilakukan oleh sebuah proses. Proses tidak perlu membedakan antara kernel dan user-tingkat-tingkat layanan karena semua layanan yang disediakan oleh sarana pesan lewat.<br />
Setiap OS pasti akan perlu untuk mendapatkan fitur tidak dalam desain yang sekarang, baru sebagai perangkat keras dan perangkat lunak teknik yang baru developed</span><span style="font-size:85%;">. </span><span style="font-size:85%;" lang="IN">Arsitektur</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">microkernel memfasilitasi <strong>kemungkinan diperpanjang</strong>, memungkinkan penambahan</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">layanan baru serta penyediaan berbagai layanan di daerah yang sama fungsional . Misalnya,</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">mungkin ada beberapa file organisasi untuk disket; setiap organisasi dapat dilaksanakan sebagai pengguna tingkat proses daripada file memiliki beberapa layanan yang tersedia di kernel. Dengan demikian, pengguna dapat memilih dari berbagai layanan yang memberikan yang terbaik sesuai untuk pengguna yang needs.With arsitektur microkernel, ketika sebuah fitur baru yang ditambahkan, hanya dipilih server perlu diubah atau added.The dampak baru atau diubah ke server dibatasi subset dari sistem. Lebih jauh lagi, modifikasi tidak</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">memerlukan bangunan baru kernel. </span><span style="font-size:85%;"><span> </span></span></p>
<p class="MsoNormal" style="margin-left:35.45pt;text-align:justify;text-indent:35.45pt;color:#3366ff;"><span style="font-size:85%;" lang="IN">Berkaitan dengan kemungkinan diperpanjang dari arsitektur microkernel adalah</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;"><strong><span lang="IN">fleksibilitas</span></strong></span><span style="font-size:85%;">.</span><span style="font-size:85%;" lang="IN"><br />
Tidak hanya fitur-fitur baru dapat ditambahkan ke sistem operasi, tetapi juga fitur-fitur yang ada dapat subtracted produksi yang lebih kecil, lebih efisien pelaksanaan. microkernel berbasis OS tidak harus kecil sistem. Memang, struktur lends sendiri untuk menambahkan berbagai fitur. Tetapi tidak semua kebutuhan, misalnya, tingkat keamanan yang tinggi atau kemampuan untuk melakukan komputasi didistribusikan. Jika besar (dari segi persyaratan memori) yang dibuat fitur opsional, pada produk akan menarik lebih banyak jenis pengguna.<br />
Intel dekat monopoli banyak dari segmen pasar komputer platform isunlikely harus berkelanjutan indefinitely.</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;">(<strong>Portabilitas</strong>) </span><span style="font-size:85%;" lang="IN">Mud</span><span style="font-size:85%;">ah </span><span style="font-size:85%;" lang="IN">dibawa menjadi fitur yang menarik dari sebuah OS. Pada arsitektur microkernel, semua atau setidaknya sebagian besar processor</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">specific kode di microkernel.</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">pelabuhan yang diperlukan untuk perubahan sistem yang baru untuk prosesor yang lebih sedikit dan cenderung diatur dalam kelompok logis.<br />
Ukuran yang lebih besar dari produk perangkat lunak, yang lebih sulit itu adalah untuk memastikan para <strong>reliability</strong>.</span><span style="font-size:85%;"> sedangkan</span><span style="font-size:85%;" lang="IN"> desain modular membantu meningkatkan kehandalan, keuntungan lebih besar dapat dicapai dengan microkernel architecture.</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">Microkernel</span><span style="font-size:85%;"> kecil</span><span style="font-size:85%;" lang="IN"> dapat diuji ketat. penggunaan sejumlah aplikasi programming interface (API) meningkatkan kualitas produksi kesempatan untuk kode OS layanan di luar kernel. Programmer sistem memiliki batas jumlah API untuk menguasai dan keterbatasan sarana dan interaksi dengan demikian adversely mempengaruhi komponen sistem lainnya.<br />
Microkernel yang didistribusikan lends sendiri untuk mendukung sistem, termasuk <strong>kelompok yang didistribusikan oleh OS</strong>. Bila pesan yang dikirim dari klien ke</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">serverprocess, pesan harus menyertakan sebuah identifier layanan yang diminta. Jika</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">didistribusikan sistem (misalnya, sebuah cluster) dikonfigurasi sehingga semua proses dan identitas / tanda jasa yang unik, maka yang berlaku ada satu sistem gambar pada tingkat microkernel. Sebuah proses dapat mengirim pesan tanpa mengetahui di mana</span><span style="font-size:85%;"> target</span><span style="font-size:85%;" lang="IN"> komputer</span><span style="font-size:85%;">. </span><span style="font-size:85%;" lang="IN">kembali ke layanan ini dalam diskusi tentang sistem didistribusikan di Bagian Enam.<br />
arsitektur microkernel bekerja dengan baik dalam konteks <strong>obyek berorientasi sistem operasi.</strong> Berorientasi obyek dapat meminjamkan pendekatan disiplin untuk desain dari microkernel dan pengembangan modular ekstensi ke OS.As Hasilnya, sejumlah desain microkernel upaya yang bergerak ke arah orientasi obyek [WAYN94b]. Salah satu pendekatan yang menjanjikan untuk menikahi dengan arsitektur microkernel dengan prinsip-prinsip <strong>OOOS</strong> adalah penggunaan komponen [MESS96]. Komponen obyek dengan jelas antarmuka yang dapat saling berhubungan untuk membentuk sebuah bangunan di blok mode. Semua interaksi antara komponen menggunakan komponen antarmuka.<br />
Sistem lain, seperti Windows, tidak secara eksklusif atau bergantung sepenuhnya pada metode berorientasi objek tetapi ada berorientasi objek dimasukkan ke dalam prinsip-prinsip desain microkernel.</span><span style="font-size:85%;"></span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-36pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><strong><span lang="IN"><span><span style="font-family:&quot;"> </span>II.<span style="font-family:&quot;"> </span></span></span></strong><strong><span lang="IN">Kinerja</span></strong><strong><span lang="IN"> </span><span lang="IN">Microkernel </span></strong></span><!--[endif]--><span style="font-size:85%;" lang="IN"><br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">potensi kerugian dari microkernels yang sering dikutip adalah bahwa kinerja.</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">Memerlukan waktu lebih lama untuk membuat dan mengirim pesan melalui microkernel, dan menerima dan membaca sandi balasan, daripada membuat satu layanan panggilan. Namun, faktor lain datang ke dalam bermain sehingga sulit untuk menarik generalisasi tentang kinerja hukuman, jika ada.<br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">Banyak tergantung pada ukuran dan fungsi dari microkernel. [LIED96a] merangkum sejumlah studi memperlihatkan bahwa hukuman yang besar bagi kinerja apa mungkin disebut generasi pertama microkernels. Persisted despite</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">efforts hukuman ini untuk</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">mengoptimalkan microkernel kode. Tanggapan untuk satu masalah ini adalah microkernel yang toenlarge oleh reintegrating kritis server dan driver kembali ke theos. Perdana contoh pendekatan ini adalah Mach dan Chorus. Selektif meningkatkan fungsionalitas dari microkernel mengurangi jumlah user-kernel mode aktif dan jumlah ruang alamat proses switches.</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">ini akan mengurangi kinerja Work</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">around hukuman pada pihak ketiga yang kekuatan desain microkernel:<br />
minimal antarmuka, fleksibilitas, dan seterusnya. Pendekatan lain adalah membuat microkernel tidak besar tapi lebih kecil.<br />
[LIED96b] berpendapat bahwa, dirancang dengan baik, yang sangat kecil microkernel menghilangkan kinerja hukuman dan meningkatkan fleksibilitas dan kehandalan. Memberikan ide dari ukuran yang terlibat, yang khas microkernel generasi pertama terdiri dari 300 Kbytes kode panggilan dan 140 sistem antarmuka. Contoh kecil generasi kedua microkernelis L4 [HART97, LIED95], yang terdiri dari 12 Kbytes kode dan 7 sistem panggilan.<br />
Pengalaman dengan sistem ini menunjukkan bahwa mereka dapat melakukan dan atau lebih baik dari layered OS seperti UNIX.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-36pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><strong><span lang="IN"><span><span style="font-family:&quot;"><span> </span></span>III.<span style="font-family:&quot;"> </span></span></span></strong><strong><span lang="IN">Microkernel Desain </span></strong></span><!--[endif]--><span style="font-size:85%;" lang="IN"><br />
Karena berbeda microkernels pameran berbagai fungsi dan ukuran, tidak ada aturan keras dan cepat dapat dinyatakan tentang apa fungsi-fungsi yang disediakan oleh microkernel dan struktur diimplementasikan. Dalam bagian ini, kami hadir minimal set microkernel fungsi dan jasa, memberikan merasakan microkernel design.<br />
Microkernel yang harus menyertakan fungsi orang-orang yang bergantung secara langsung pada perangkat keras dan fungsi-fungsi yang diperlukan untuk mendukung server dan aplikasi yang beroperasi di mode.These pengguna fungsi jatuh ke dalam kategori umum rendahnya tingkat manajemen memori, interprocess komunikasi (IPC), dan I / O dan mengganggu manajemen.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-36pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><strong><span lang="IN"><span><span style="font-family:&quot;"> </span>IV.<span style="font-family:&quot;"> </span></span></span></strong><strong><span lang="IN">Memori rendah Tingkat Manajemen </span></strong></span><!--[endif]--><span style="font-size:85%;" lang="IN"><br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">Microkernel yang harus mengontrol hardwareconcept alamat ke ruang memungkinkan untuk melaksanakan perlindungan di tingkat proses. Sepanjang microkernel bertanggungjawab untuk pemetaan setiap halaman virtual ke fisik bingkai, sebagian besar memori manajemen, termasuk perlindungan dari satu ruang alamat dari proses yang lain dan halaman pengganti lainnya Pager algoritma dan logika, dapat diterapkan di luar kernel. Misalnya, modul memori virtual di luar microkernel ketika memutuskan untuk membawa suatu halaman ke dalam memori dan halaman yang sudah ada di dalam memori untuk diganti, yang microkernel peta halaman ini menjadi referensi alamat fisik di memori utama.<br />
Konsep yang Pager dan manajemen memori virtual dapat dilakukan di luar kernel telah diperkenalkan dengan Mach eksternal pager [YOUN87].<br />
Angka 4,11 menggambarkan pengoperasian eksternal pager. Ketika sebuah thread dalam aplikasi referensi halaman tidak dalam memori utama, halaman kesalahan terjadi eksekusi dan perangkap ke kernel.</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">kernel kemudian mengirimkan pesan ke pager proses menunjukkan halaman yang telah referenced.The pager dapat memutuskan untuk me-load halaman dan mengalokasikan halaman bingkai untuk tujuan itu. Yang pager dan kernel harus berinteraksi untuk memetakan pager logis dari operasi fisik ke halaman memory.Once tersedia, pager mengirimkan kembali pesan ke aplikasi tersebut.<br />
Teknik ini memungkinkan suatu proses untuk memetakan nonkernel file dan database ke dalam ruang alamat pengguna tanpa invoking kernel. Aplikasi khusus memori berbagi kebijakan dapat diterapkan di luar kernel.<br />
</span><span style="font-size:85%;"><strong><span>&gt;</span></strong></span><span style="font-size:85%;"> [</span><span style="font-size:85%;" lang="IN">LIED95] menunjukkan satu set hanya tiga microkernel operasi yang dapat mendukung eksternal memori virtual Pager dan manajemen:<br />
<strong>Grant</strong>: Pemilik alamat ruang (sebuah proses) dapat memberikan sejumlah yang lain ke halaman proses. Kernel menghapus halaman ini dari pemberi alamat dan memberikan ruang kepada proses yang ditunjuk.<br />
</span><span style="font-size:85%;"><strong><span>Map</span></strong></span><span style="font-size:85%;" lang="IN">: Sebuah proses dapat peta dari setiap halaman ke dalam ruang alamat proses lain, sehingga kedua proses memiliki akses ke halaman. Hal ini membuat memori bersama antara dua proses. Kernel mempertahankan tugas ini ke halaman yang asli pemilik tetapi pemetaan untuk memberikan ijin akses oleh proses lainnya.<br />
<strong>Flush</strong>: Sebuah proses dapat kembali halaman apapun yang diberikan atau dipetakan ke proses lainnya.<br />
Untuk memulai, kernel mengalokasikan memori fisik semua tersedia sebagai sumber daya untuk proses sistem dasar. Sebagai proses baru dibuat, dari halaman asli total ruang alamat dapat diberikan atau dipetakan ke proses yang baru. Seperti program yang dapat mendukung memori virtual beberapa program sekaligus.</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-36pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><strong><span lang="IN"><span><span style="font-family:&quot;"> </span>V.<span style="font-family:&quot;"> </span></span></span></strong><strong><span>Komunikasi Antarproses</span></strong></span><!--[endif]--><span style="font-size:85%;" lang="IN"><br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">Dasar bentuk komunikasi antara proses atau benang dalam microkernel OS adalah pesan. Sebuah pesan yang berisi header yang mengidentifikasi pengirim dan penerima proses dan tubuh yang berisi data langsung, sebuah pointer ke blok data, atau beberapa kontrol informasi tentang proses.<br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">Biasanya, kami dapat dari IPC sebagai berdasarkan port yang terkait dengan proses.<br />
J port, pada dasarnya, sebuah pesan telah antrian untuk proses tertentu; proses mungkin memiliki beberapa port. Yang terkait dengan port daftar kemampuan proses menunjukkan apa </span><span style="font-size:85%;">mungkin</span><span style="font-size:85%;" lang="IN"> berkomunikasi dengan proses ini. Port identitas dan kemampuan yang dikelola oleh kernel. Sebuah proses baru dapat memberikan akses ke sendiri dengan mengirimkan pesan ke kernel baru menunjukkan kemampuan pelabuhan.<br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">Catatan tentang pesan lewat sesuai here.Message melewati proses terpisah antara nonoverlapping dengan alamat spasi melibatkan memori-memori-untuk menyalin dan dengan itu adalah bounded oleh kecepatan dan memori tidak skala dengan prosesor speeds.Thus, sekarang OS penelitian mencerminkan kepentingan dalam urutan berbasis IPC memorysharing dan skema seperti remapping halaman (satu halaman dibagi beberapa proses).</span></p>
<p class="MsoNormal" style="text-align:justify;color:#3366ff;"><span style="font-size:85%;" lang="IN"> </span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-36pt;color:#3366ff;"><!--[if !supportLists]--><span style="font-size:85%;"><strong><span lang="IN"><span><span style="font-family:&quot;"> </span>VI.<span style="font-family:&quot;"> </span></span></span></strong><strong><span lang="IN">Manajemen</span></strong><strong><span> I/O dan Interupsi</span> </strong></span><!--[endif]--><span style="font-size:85%;" lang="IN"><br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">Dengan arsitektur microkernel, kemungkinan untuk menangani hardware interrupts sebagai pesan dan menyertakan I / O port di alamat spaces.</span><span style="font-size:85%;"> M</span><span style="font-size:85%;" lang="IN">icrokernel dapat mengenali interrupts tetapi tidak menangani mereka. , Namun menghasilkan sebuah pesan untuk pengguna tingkat saat ini yang terkait dengan proses yang mengganggu.<br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">Jadi, bila </span><span style="font-size:85%;">Interupsi</span><span style="font-size:85%;" lang="IN"> diaktifkan, pengguna tertentu tingkat proses diberikan ke kernel mengganggu dan mempertahankan pemetaan. Transformasi interrupts menjadi pesan harus dilakukan oleh microkernel, tetapi microkernel tidak terlibat dalam perangkat khusus menangani interrupt.<br />
</span><span style="font-size:85%;"><span> </span><span> </span></span><span style="font-size:85%;" lang="IN">[LIED96a] menyarankan melihat hardware sebagai kumpulan benang yang memiliki identitas / tanda unik thread dan mengirim pesan (hanya terdiri dari urutan ID) untuk perangkat lunak yang terkait dalam threads pengguna ruang.</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">menerima urutan menentukan apakah pesan yang berasal dari</span><span style="font-size:85%;" lang="IN"> </span><span style="font-size:85%;" lang="IN">i</span><span style="font-size:85%;">n</span><span style="font-size:85%;" lang="IN">terupsi dan menentukan spesifik </span><span style="font-size:85%;">interupsi</span><span style="font-size:85%;" lang="IN">.</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=35&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/03/30/microkernel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>

		<media:content url="http://3.bp.blogspot.com/_xHJoIWNhunM/SdD3NyGBSzI/AAAAAAAAABE/CmYcZk9G6xs/s320/thread.JPG" medium="image" />
	</item>
		<item>
		<title>Program pembalik kata C++(tugas P.Yoga)</title>
		<link>http://mymounth.wordpress.com/2009/03/30/program-pembalik-kata-ctugas-pyoga/</link>
		<comments>http://mymounth.wordpress.com/2009/03/30/program-pembalik-kata-ctugas-pyoga/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 14:46:37 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mymounth.wordpress.com/?p=30</guid>
		<description><![CDATA[Berikut Code nya #include&#60;stdio.h&#62; #include&#60;string.h&#62; char a[100];                              //varible a dengan input maksimum 100 karakter int b,c; void main() { printf(”masukkan kata = “); gets(a);                                     //input ke variable a b=strlen(a);                              //mencari jumlah kata printf(”balikkan kata = “); for(c=b;c&#62;=1;c–)                   //perulangan dari jumlah kata //yang paling akhir ke [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=30&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-31" title="gmbr1" src="http://mymounth.files.wordpress.com/2009/03/gmbr1.jpg" alt="gmbr1" width="450" height="418" /></p>
<p><span id="more-30"></span></p>
<p>Berikut Code nya</p>
<blockquote><p><code>#include&lt;stdio.h&gt;<br />
#include&lt;string.h&gt;</code></p>
<p>char a[100];                              //varible a dengan input maksimum 100 karakter</p>
<p>int b,c;<br />
void main()<br />
{<br />
printf(”masukkan kata = “);<br />
gets(a);                                     //input ke variable a<br />
b=strlen(a);                              //mencari jumlah kata<br />
printf(”balikkan kata = “);<br />
for(c=b;c&gt;=1;c–)                   //perulangan dari jumlah kata<br />
//yang paling akhir ke paling awal<br />
{<br />
char d=a[c-1];                          //ingat bahwa elemen array dimulai dari 0<br />
printf(”%c”,d);<br />
}<br />
}</p></blockquote>
<p>Berikut penjelasannya :</p>
<ul>
<li>strlen[a] merupakan perintah untuk menghitung panjang string. Contoh : KURSI panjangnya 5. Maka setelah ini kita definisikan ke integer, <strong>int b=strlen[a];</strong></li>
<li>agar bisa membalik kata, maka kita melakukan perulangan sederhana, dengan parameter bahwa perulangan dimulai dari urutan terbesar dari panjang kata</li>
<li><strong>for(c=b;c&gt;=1;c–). </strong>Perulangan akan berhenti juga urutan string sampai pada 0 <em>( INGAT!! panjang string dimulai dari 1 )</em></li>
<li>didalam perulangan, <strong>char d=a[c-1]; cetak d</strong>. Sebenernya disini kita membuat 1 variable char baru lagi. Didalam elemen a kita gunakan elemen <strong>[c-1]</strong>. Karena elemen pada array dimulai <strong>dari 0</strong>, sedangkan panjang string dimulai <strong>dari 1. </strong>Maka ketika panjang string 3 maka dia akan mencetak elemen dari <strong>a yang ke 2.</strong></li>
</ul>
<p>Sebenarnya, ada 1 cara lagi yang sangat mudah untuk membuat program pembalik kata ini. Kita bisa melakukannya dengan perintah <strong>strrev[ ]</strong>, yang fungsinya membalik isi string. Perintah ini terdapat dalam file header <strong>CTYPE.H</strong>, maka dibagian header harus dituliskan <strong>#include&lt;ctype.h&gt;</strong> Jika diterapkan kedalam bentuk code nya maka seperti ini :</p>
<blockquote><p><code>#include&lt;stdio.h&gt;<br />
#include&lt;string.h&gt;<br />
#include&lt;ctype.h&gt;</code></p>
<p>char a[100];</p>
<p>int b,c;<br />
void main()<br />
{<br />
printf(”masukkan kata = “);<br />
gets(a);<br />
strrev(a);<br />
printf(”balikkan kata = %s”,a);</p>
<p>}</p></blockquote>
<p>Hasilnya :</p>
<p><img class="alignnone size-full wp-image-32" title="gbr2" src="http://mymounth.files.wordpress.com/2009/03/gbr2.jpg" alt="gbr2" width="450" height="281" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=30&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/03/30/program-pembalik-kata-ctugas-pyoga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/gmbr1.jpg" medium="image">
			<media:title type="html">gmbr1</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/gbr2.jpg" medium="image">
			<media:title type="html">gbr2</media:title>
		</media:content>
	</item>
		<item>
		<title>tugas pertemuan ke 3</title>
		<link>http://mymounth.wordpress.com/2009/03/23/tugas-pertemuan-ke-3/</link>
		<comments>http://mymounth.wordpress.com/2009/03/23/tugas-pertemuan-ke-3/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 22:32:16 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mymounth.wordpress.com/?p=16</guid>
		<description><![CDATA[3.1 Pelajari sistem operasi Linux dan Windows (studi literatur) l Deskripsikan proses pada kedua SO tersebut l Bagaimana proses pembuatan &#38; penghentian proses? (termasuk switching-nya) Gunakan Shell Linux, jelaskan fungsi &#38; cara menggunakan perintah (plus contoh): - top - grep - cat top Fungsi tool ini untuk memonitor aktivitas CPU secara realtime. Menampilkan penggunaan prosesor, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=16&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--></p>
<p class="MsoNormal">3.1</p>
<p class="MsoNormal">Pelajari sistem operasi Linux dan Windows (studi literatur)</p>
<p class="MsoNormal" style="margin-left:15.95pt;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-size:9pt;font-family:Wingdings;"><span>l<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span> </span>Deskripsikan proses pada kedua SO tersebut</p>
<p class="MsoNormal" style="margin-left:15.95pt;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-size:9pt;font-family:Wingdings;"><span>l<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]-->Bagaimana proses pembuatan &amp; penghentian<span> </span>proses? (termasuk switching-nya)</p>
<p class="MsoNormal" style="margin-left:13.15pt;">
<p class="MsoNormal">Gunakan Shell Linux, jelaskan fungsi &amp; cara menggunakan perintah (plus contoh):</p>
<p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-size:9pt;font-family:Symbol;"><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]-->top</p>
<p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-size:9pt;font-family:Symbol;"><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]-->grep</p>
<p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-size:9pt;font-family:Symbol;"><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]-->cat</p>
<p class="MsoNormal" style="text-align:justify;"><strong>top </strong></p>
<p class="MsoNormal" style="text-align:justify;">Fungsi tool ini untuk memonitor aktivitas CPU secara realtime. Menampilkan penggunaan prosesor, pemakaian memori dan swap, layanan (service) yang aktif, serta uptime. Hampir semua distro menyertakan top dalam paket standarnya. Contohnya :<span> </span></p>
<p><img class="alignnone size-full wp-image-17" title="untitled2" src="http://mymounth.files.wordpress.com/2009/03/untitled2.jpg" alt="untitled2" width="450" height="295" /></p>
<p class="MsoNormal"><strong>Grep</strong></p>
<p class="MsoNormal"><span> </span>Fungsi : mencari isi suatu file di sembarang directory Format : grep –n ‘nama-file’ di-direktori Keterangan : grep akan mencari suatu variable dalam suatu baris tertentu, di dalam sembarang direktori pada semua file. Grep sangat berguna untuk menemukan kata tertentu dalam beberapa dokumen atau mencari adanya sebuah variable dalam sekelompok program.. Contoh :</p>
<p class="MsoNormal"><img class="alignnone size-full wp-image-19" title="12" src="http://mymounth.files.wordpress.com/2009/03/12.jpg" alt="12" width="450" height="295" /></p>
<p class="MsoNormal"><strong>cat </strong></p>
<p class="MsoNormal">Fungsi : menampilkan isi sebuah file (sama dengan perintah TYPE pada DOS) Cat berfungsi untuk mencetak ke layar monitor isi dari sebuah file text. Jika yang file dililihat menggunakan perintah ini bukan file text maka akan keluar karakterkarakter aneh pada layar. Untuk menghindari tercetaknya karakter-karakter aneh tersebut dapat digunakan perintah cat –vContoh :</p>
<p class="MsoNormal"><img class="alignnone size-full wp-image-20" title="22" src="http://mymounth.files.wordpress.com/2009/03/22.jpg" alt="22" width="450" height="295" /></p>
<p class="MsoNormal">3.2</p>
<p class="MsoNormal" style="text-align:justify;">1. Jelaskan alasan pembuatan &amp; penghentian suatu proses!</p>
<p class="MsoNormal" style="text-align:justify;"><img class="alignnone size-full wp-image-21" title="31" src="http://mymounth.files.wordpress.com/2009/03/31.jpg" alt="31" width="450" height="265" /></p>
<p class="MsoNoSpacing">2. Jelaskan tentang model proses lima status beserta kemungkinan transisinya!</p>
<p class="MsoNoSpacing">
<p class="MsoNoSpacing">Model proses lima status adalah model alur proses kerja dengan menggunakan lima pos atau lima pengaturan jalan proses sehingga alur dan penjadwalan proses dapat terkontrol.</p>
<p class="MsoNoSpacing"><img class="alignnone size-full wp-image-22" title="41" src="http://mymounth.files.wordpress.com/2009/03/41.jpg" alt="41" width="450" height="324" /></p>
<p class="MsoNoSpacing"><!--[if !mso]&gt;--><br />
<!--[if gte mso 9]&gt;  &lt;![endif]--><!--[if gte mso 9]&gt;   &lt;![endif]--></p>
<p class="MsoNoSpacing" style="margin-left:.5in;text-align:justify;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><!--[if gte vml 1]&gt;                      &lt;![endif]--><!--[if !vml]--><img src="/DOCUME~1/windows/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.jpg" alt="" hspace="12" width="624" height="404" align="left" /><!--[endif]-->proses baru akan masuk lewat pos New</p>
<p class="MsoNoSpacing" style="margin-left:.5in;text-align:justify;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]-->kemudian masuk pada pos Ready untuk antri giliran panggilan proses oleh Dispatch</p>
<p class="MsoNoSpacing" style="margin-left:.5in;text-align:justify;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]-->setelah dipanggil Dispatch akan diproses pasa pos Running</p>
<p class="MsoNoSpacing" style="margin-left:.5in;text-align:justify;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]-->bila waktu giliran habis namun proses belum selesai maka proses akan menuju pos Blocked untuk menunggu giliran masuk pos Ready untuk menyelesaikan sisa proses</p>
<p class="MsoNoSpacing" style="margin-left:.5in;text-align:justify;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]-->bila proses selesai sebelum waktu giliran habis maka proses akan keluar melalui pos exit dan akan diganti proses berikutnya</p>
<p class="MsoNoSpacing" style="text-align:justify;">3. Mengikuti soal sebelumnya, tetapi pada kehadiran dua status suspended.</p>
<p class="MsoNoSpacing" style="text-align:justify;"><img class="alignnone size-full wp-image-23" title="51" src="http://mymounth.files.wordpress.com/2009/03/51.jpg" alt="51" width="450" height="363" /></p>
<p class="MsoNormal" style="text-align:justify;text-indent:.5in;">Bila diamati dari diagram bloknya kita bisa menarik kepahaman bahwa denga diberlakukannya 2suspend akan mengoptimalkan kerja processor karena control dan seleksi proses yang dieksekusi dapat dilakukan dengan baik sehingga processor hanya mengeksekusi proses yang benar-benar memiliki prioritas tinggi dan juga memmbuang proses yang sekiranya<span> </span>bermasalah. Dengan 2suspend juga bermanfaat Proses dapat dieksekusi secara periodik (misal, sistem monitoring sistem atau accounting) &amp; boleh di-suspend selama menunggu waktu berikutnya, Proses induk berkeinginan men-suspend eksekusdari suatu urunan untuk menguji atau mengubah proses turunan tersebut atau mengkoordinasikan aktifitas dari berbagai keturunannya.</p>
<p class="MsoNormal" style="text-align:justify;text-indent:.5in;"><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--></p>
<p class="MsoNormal" style="text-align:justify;">4. Jelaskan elemen-elemen dari Process Control Block (PCB)!</p>
<p class="MsoNormal" style="text-align:justify;"><img class="alignnone size-full wp-image-24" title="6" src="http://mymounth.files.wordpress.com/2009/03/6.jpg" alt="6" width="450" height="351" /></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNoSpacing" style="text-align:justify;">
<p class="MsoNoSpacing" style="text-align:justify;">
<p class="MsoNormal">
<p class="MsoNormal">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=16&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/03/23/tugas-pertemuan-ke-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/untitled2.jpg" medium="image">
			<media:title type="html">untitled2</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/12.jpg" medium="image">
			<media:title type="html">12</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/22.jpg" medium="image">
			<media:title type="html">22</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/31.jpg" medium="image">
			<media:title type="html">31</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/41.jpg" medium="image">
			<media:title type="html">41</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/51.jpg" medium="image">
			<media:title type="html">51</media:title>
		</media:content>

		<media:content url="http://mymounth.files.wordpress.com/2009/03/6.jpg" medium="image">
			<media:title type="html">6</media:title>
		</media:content>
	</item>
		<item>
		<title></title>
		<link>http://mymounth.wordpress.com/2009/03/16/3/</link>
		<comments>http://mymounth.wordpress.com/2009/03/16/3/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 23:34:49 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mymounth.wordpress.com/2009/03/16/3/</guid>
		<description><![CDATA[SEJARAH LINUX Linux dimulai sebagai UNIX varian untuk IBM PC (Intel 80386) arsitektur. Linus Torvalds, seorang Finlandia mahasiswa ilmu komputer, menulis versi awal. Torvalds mengirimkan versi awal dari Linux di Internet pada tahun 1991. Sejak itu, sejumlah orang, bekerjasama melalui Internet, telah memberikan kontribusi untuk pengembangan Linux, semua di bawah kontrol Torvalds. Karena Linux gratis [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=3&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span id="more-3"></span>SEJARAH LINUX<br />
Linux dimulai sebagai UNIX varian untuk IBM PC (Intel 80386) arsitektur. Linus Torvalds, seorang Finlandia mahasiswa ilmu komputer, menulis versi awal. Torvalds mengirimkan versi awal dari Linux di Internet pada tahun 1991. Sejak itu, sejumlah orang, bekerjasama melalui Internet, telah memberikan kontribusi untuk pengembangan Linux, semua di bawah kontrol Torvalds. Karena Linux gratis dan kode sumber yang tersedia, menjadi sebuah awal alternatif lain UNIX kerja, seperti yang ditawarkan oleh Sun Microsystems dan IBM. Today, Linux is a full- Saat ini, Linux adalah penuh fitur sistem UNIX yang berjalan pada semua platform, dan banyak lagi, termasuk Intel Pentium dan Itanium, dan Motorola / IBM PowerPC.<br />
Kunci keberhasilan Linux telah ketersediaan paket perangkat lunak bebas di bawah naungan the Free Software Foundation (FSF). FSF&#8217;s goal is stable, platform-independent FSF Tujuan stabil, platform-independen perangkat lunak yang bebas, kualitas tinggi, dan embraced oleh komunitas pengguna. Dari proyek GNU FSF menyediakan peralatan untuk para pengembang perangkat lunak, dan GNU Public License (GPL) adalah meterai dari FSF persetujuan. Torvalds GNU alat yang digunakan dalam pengembangan kernel nya, yang ia kemudian dilepaskan di bawah GPL. Dengan demikian, distribusi Linux yang Anda lihat sekarang adalah produk dari FSF dari proyek GNU, Torvald dari setiap usaha, dan banyak kolaborator di seluruh dunia</p>
<p><!--more--><br />
Selain penggunaannya oleh banyak individu pemrogram, Linux kini telah dibuat signifikan penetrasi ke dalam dunia usaha. Hal ini tidak hanya karena adanya perangkat lunak bebas, tapi juga karena kualitas kernel Linux. Banyak programmer berbakat yang telah menyumbang versi terbaru, sehingga produk yang mengesankan teknis. Selain itu, Linux adalah sangat modular dan mudah dikonfigurasi. Ini memudahkan pemerasan kinerja optimal dari berbagai hardware platform. Plus, dengan kode sumber yang tersedia, vendor aplikasi dan dapat jeweran utilitas untuk memenuhi persyaratan tertentu. Sepanjang buku ini, kami akan memberikan rincian Linux kernel internals.</p>
<p>SEJARAH WINDOWS<br />
Cerita dimulai dengan Windows yang sangat berbeda sistem operasi, yang dikembangkan oleh Microsoft untuk pertama komputer pribadi IBM dan disebut sebagai MS-DOS atau PC-DOS .Versi awal, DOS 1.0, dirilis pada Agustus 1981. Ini terdiri dari 4000 baris bahasa assembly sumber kode dan berlari di 8 Kbytes yang menggunakan memori Intel 8086 microprocessor. IBM ketika mengembangkan sebuah harddisk berbasis komputer pribadi, PC XT, Microsoft dikembangkan DOS 2.0, dirilis pada 1983. It berisi dukungan untuk harddisk dan disediakan untuk hirarki direktori . Sekarang, disk hanya dapat berisi satu direktori file, yang mendukung maksimum 64 file. Sementara ini telah memadai di era disket, itu terlalu terbatas untuk hard disk, dan satu-direktori pembatasan terlalu lamban. Ini baru boleh ke direktori berisi subdirektori serta file. Yang baru rilis yang kaya juga menetapkan  perintah yang terdapat dalam sistem operasi untuk menyediakan fungsi-fungsi yang harus dilakukan oleh program eksternal sebagai utilitas yang disediakan dengan rilis 1. several Di antara kemampuan ditambahkan beberapa UNIX seperti fitur, seperti I / O redirection, yaitu kemampuan untuk mengubah input atau output identitas untuk suatu aplikasi, dan latar belakang pencetakan. Memori-penduduk berkembang menjadi bagian 24 Kbytes.<br />
Ketika IBM PC AT diumumkan pada tahun 1984, diperkenalkan Microsoft DOS 3.0 The AT. berisi prosesor Intel 80286 yang disediakan diperpanjang dan memori menangani perlindungan fitur-fitur.  Ini tidak digunakan oleh DOS . Untuk tetap kompatibel dengan rilis sebelumnya, maka Sistem operasi yang digunakan hanya 80.286 sebagai &#8220;cepat 8086.&#8221; Sistem operasi yang menyediakan dukungan untuk baru keyboard dan peripheral harddisk. Meskipun demikian, memori kebutuhan untuk berkembang36 Kbytes. Ada beberapa tokoh upgrade ke rilis 3,0 DOS 3.1, dirilis pada tahun 1984, berisi dukungan untuk jaringan dari PC. Besarnya porsi penduduk tidak berubah, ini telah dicapai dengan meningkatkan jumlah sistem operasi yang dapat swapped DOS 3,3, dirilis pada tahun 1987, memberikan dukungan untuk baris baru IBM mesin, yang PS / 2. Sekali lagi, ini rilis tidak mengambil keuntungan dari kemampuan prosesor pada PS / 2, yang disediakan oleh 80286 dan 32-bit 80386 keripik. Porsi penduduk yang pada tahap ini telah berkembang ke minimal 46 Kbytes, jika diperlukan dengan ekstensi tertentu opsional terpilih. Saat ini, DOS telah digunakan di lingkungan yang jauh melebihi kemampuan.  Itu berlakunya 80.486 kemudian Intel Pentium chip yang diberikan kuasa dan fitur yang cukup tidak dapat dieksploitasi oleh naif DOS. Meanwhile, beginning in the early Sementara itu, dimulai pada awal 1980-an, Microsoft mulai perkembangan grafis antarmuka pengguna (GUI) yang akan interposed antara pengguna dan DOS. Microsoft maksud adalah untuk bersaing dengan Macintosh, yang Sistem operasi ini tak dpt dibandingi untuk kemudahan penggunaan. By 1990, Microsoft had a version of the GUI, By 1990, Microsoft telah versi GUI, dikenal sebagai Windows 3.0, yang tergabung beberapa fitur ramah pengguna Macintosh. Namun, ia masih hamstrung oleh kebutuhan untuk berjalan di atas DOS.<br />
Setelah mencoba abortive oleh Microsoft dengan IBM untuk mengembangkan sebuah generasi operasi sistem, yang akan memanfaatkan kekuatan microprocessors yang baru dan yang akan menggabungkan kemudahan-of-fitur menggunakan Windows, Microsoft bulus keluar sendiri dan dikembangkan baru sistem operasi dari atas tanah, Windows NT. Windows NT exploits the capabilities of Windows NT exploits kemampuan microprocessors kontemporer dan menyediakan multitasking dalam satu atau beberapa pengguna-pengguna lingkungan.<br />
Versi pertama Windows NT (3,1) telah dirilis pada tahun 1993, dengan GUI sebagai Windows 3.1, sistem operasi Microsoft yang lain (the follow-on ke Windows 3.0). Akan tetapi, 3,1 NT adalah baru 32-bit dengan sistem operasi untuk mendukung kemampuan lama DOS dan Windows aplikasi serta menyediakan OS / 2 mendukung Setelah beberapa versi NT 3.x, Microsoft merilis NT 4.0. NT 4.0 has essentially the NT 4.0 memiliki dasarnya yang internal sama seperti arsitektur 3.x. Yang paling penting adalah bahwa perubahan eksternal NT 4.0 menyediakan sama seperti pengguna Windows 95, The major architectural change is that several graphics. Utama adalah bahwa perubahan arsitektur beberapa grafis komponen yang berjalan dalam modus pengguna sebagai bagian dari subsistem Win32 dalam 3.x telah dipindahkan ke Windows NT Eksekutif, yang berjalan dalam mode kernel. The benefit of this change is to speed up Manfaat dari perubahan ini adalah untuk mempercepat pengoperasian fungsi penting ini. Potensi kekecewaan adalah bahwa grafis fungsi sekarang memiliki akses ke tingkat rendah sistem layanan tersebut, yang dapat mempengaruhi keandalan dari system operasi.<br />
Pada tahun 2000, Microsoft memperkenalkan upgrade besar berikutnya, yang kini disebut Windows 2000. Lagi, Eksekutif yang pada arsitektur dan kernel fundamental yang sama seperti di NT 4.0, tetapi fitur-fitur baru telah ditambahkan. Penekanan pada Windows 2000 adalah penambahan layanan dan fungsi untuk mendukung proses didistribusikan. Pusat elemen Windows 2000 dari fitur-fitur baru adalah Active Directory, yang merupakan layanan direktori dapat didistribusikan ke peta nama acak objek apapun jenis informasi tentang benda mereka.<br />
Satu titik akhir umum untuk membuat tentang Windows 2000 adalah perbedaan antara Windows 2000 dan Windows Server 2000 desktop. In essence, the kernel and executive architecture and Pada dasarnya, kernel dan arsitektur dan eksekutif layanan tetap sama, tetapi berisi beberapa server layanan yang diperlukan untuk digunakan sebagai server jaringan.<br />
Pada tahun 2001, yang terbaru versi desktop Windows telah dirilis, yang dikenal sebagai Windows XP. Keduanya PC rumahan dan bisnis workstation versi XP yang ditawarkan. Juga pada tahun 2001, 64-bit versi XP diluncurkan. Pada tahun 2003, Microsoft memperkenalkan versi server baru, yang dikenal sebagai Windows Server 2003; baik 32-bit dan 64 bit versi yang tersedia. 64-bit versi XP dan Server 2003 dirancang khusus untuk 64-bit Intel Itanium hardware.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=3&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/03/16/3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://mymounth.wordpress.com/2009/03/14/hello-world/</link>
		<comments>http://mymounth.wordpress.com/2009/03/14/hello-world/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 04:35:48 +0000</pubDate>
		<dc:creator>maymounth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=1&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welcome to <a href="http://wordpress.com/">WordPress.com</a>. This is your first post. Edit or delete it and start blogging!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mymounth.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mymounth.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mymounth.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mymounth.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mymounth.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mymounth.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mymounth.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mymounth.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mymounth.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mymounth.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mymounth.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mymounth.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mymounth.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mymounth.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mymounth.wordpress.com&amp;blog=6951909&amp;post=1&amp;subd=mymounth&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mymounth.wordpress.com/2009/03/14/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ab02670cf9abe6682f5820dcddcb74b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maymounth</media:title>
		</media:content>
	</item>
	</channel>
</rss>
