- Fungsi : subprogram yang menerima masukan dan memmpunyai keluaran ecara langsun
- Proscedure: subprogram yang menerima masukan tetapi tidak memmpunyai keluaran secara langsung
Wednesday, November 24, 2010
Tugas Pendahuluan Praktikum Sistem Operasi Modul 5
Tugas Pendahuluan Praktikum Sistem Operasi Modul 4
- Bagaimana memanggil perintah eksternal Linux dari dalam skrip shell?
- Bagaimana cara mengetahui perintah apa saja yang disediakan oleh Linux?
- Bagaimana kita dapat mengetahui suatu perintah termasuk perintah Linux atau bawaan shellBash?
- Dipanggil dengan perintah-perintah shell sebelumnya. Misalnya: ls merupakan perimntah untuk menampilkan semua file aktif
- $ ls /bin
- Perintah Linux jika perintah tersebut terdapat pad direktori bin dan bawaan shellbash jika perintah itu tidak ada di direktori bin
Wednesday, October 27, 2010
Tugas Pendahuluan Praktikum Sistem Operasi Modul 3
Wednesday, October 20, 2010
Tugas Pendahuluan Praktikum Sistem Operasi Modul 1
Tugas Pendahuluan Praktikum Sistem Operasi Modul 2
- Bourne shell (sh) , diciptakan Stephen R. Bourne merupakan shell pertama yang dibuat oleh UNIX
- C shell (csh) , diciptakan Bill Joy yang merupakan pembuat vi dan yang mengimplementasikan struktur bahasa C.
- Korn shell (ksh) , diciptakan David G. Korn yang merupakan pembuat Bourne shell, tetapi tidak disebar luaskan.
Sunday, April 18, 2010
Window XP SP3 NASA II 2010

Year: 2009
Language: English
CD Key: Already Slipstreamed Original Key
Activation: Already activated
Install method: Unattended
File format: ISO
Yahoo multi messenger
Firefox 3.5
Flash player 10
Fire Tune
Winrar 3.8
K lite codec 5.1.8
Winamp 5.5.6 with 3D skins
.Net framework 2
Stardock Icon pacakger
Xoft spy Full (last edition)
clean unistaller
Dp projection
Madotate
Rocket Dock
True transperncy
Ubericon
Yzshadow

70 New 3D Wallpapers (High Resolution)
Windows 7 logon screen (optional.. you can change it)
Startup Screens: (optional.. you can change it)
Ubuntu linux apperance
Windows 7 apperance
Mac OS apperance
and more...
http://www.mediafire.com/?2jjauj3gyzj
http://www.mediafire.com/?ti4ndjhioy3
http://www.mediafire.com/?nwwmlrwjzoz
http://www.mediafire.com/?1hmr54zetyw
http://www.mediafire.com/?kmyngml2tie
http://www.mediafire.com/?yoygfnwwnmm
http://www.mediafire.com/?ytzzymfykna
http://www.mediafire.com/?ynm2ggmmmhw
http://www.mediafire.com/?1btnxz2dtyu
http://www.mediafire.com/?djkjwtn5n2m
http://www.mediafire.com/?ldjggyzzl5m
http://www.mediafire.com/?v0mnwhmjyer
http://www.mediafire.com/?qlde2k4myjd
Microsoft Windows XP SP3 2009 Final Lite 3.4a
Saturday, April 10, 2010
Model Multithreading
Sistem-sistem yang ada sekarang sudah banyak yang bisa mendukung untuk kedua pengguna dan kernel thread, sehingga model-model multithreading-nya pun menjadi beragam. Implementasi multithreading yang umum akan kita bahas ada tiga, yaitu model many-to-one, one-to-one, dan many-to-many.
Gambar 2-18. Model Multithreading. Sumber: . . .
Model Many to One
Model many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.Gambar 2-19. Model Many to One. Sumber: . . .
Model One to One
Model one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat model one-to-one lebih sinkron daripada model many-to-one dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model one-to-one diimplementasikan oleh Windows NT dan OS/2.Gambar 2-20. Model One to One. Sumber: . . .
Model Many to Many
Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor) dimana model many-to-one mengizinkan pengembang untuk membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu. Model one-to-one mempunyai konkurensi yang lebih tinggi, tetapi pengembang harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.Gambar 2-21. Model Many to Many. Sumber: . . .
Thread Dalam Solaris 2
Solaris 2 merupakan salah satu versi dari UNIX yang sampai dengan tahun 1992 hanya masih mendukung proses berat (heavyweight) dengan kontrol oleh satu buah thread. Tetapi sekarang Solaris 2 sudah berubah menjadi sistem operasi yang modern yang mendukung threads di dalam level kernel dan pengguna, multiprosesor simetrik (SMP), dan penjadualan real-time.Threads di dalam Solaris 2 sudah dilengkapi dengan library mengenai API-API untuk pembuatan dan managemen thread. Di dalam Solaris 2 terdapat juga level tengah thread. Di antara level pengguna dan level kernel thread terdapat proses ringan/ lightweight (LWP). Setiap proses yang ada setidaknya mengandung minimal satu buah LWP. Library thread memasangkan beberapa thread level pengguna ke ruang LWP-LWP untuk diproses, dan hanya satu user-level thread yang sedang terpasang ke suatu LWP yang bisa berjalan. Sisanya bisa diblok mau pun menunggu untuk LWP yang bisa dijalankan.
Operasi-operasi di kernel seluruhnya dieksekusi oleh kernel-level threads yang standar. Terdapat satu kernel-level thread untuk tiap LWP, tetapi ada juga beberapa kernel-level threads yang berjalan di bagian kernel tanpa diasosiasikan dengan suatu LWP (misalnya thread untuk pengalokasian disk). Thread kernel-level merupakan satu-satunya objek yang dijadualkan ke dalam sistem (lihat bagian berjudul Penjadual CPU mengenai scheduling). Solaris menggunakan model many-to-many.
Thread level pengguna dalam Solaris bisa berjenis bound mau pun unbound. Suatu bound thread level pengguna secara permanen terpasang ke suatu LWP. Jadi hanya thread tersebut yang bekerja di LWP, dan dengan suatu permintaan, LWP tersebut bisa diteruskan ke suatu prosesor. Dalam beberapa situasi yang membutuhkan waktu respon yang cepat (seperti aplikasi real-time), mengikat suatu thread sangatlah berguna. Suatu thread yang unbound tidak secara permanen terpasang ke suatu LWP. Semua threads unbound dipasangkan (secara multiplex) ke dalam suatu ruang yang berisi LWP-LWP yang tersedia untuk aplikasi. Secara default thread-thread yang ada adalah unbound.
Misalnya sistem sedang beroperasi, setiap proses bisa mempunyai threads level pengguna yang banyak. User-user level thread ini bisa dijadual dan diganti di antara LWP-LWP-nya oleh thread library tanpa intervensi dari kernel. User-level threads sangatlah efisien karena tidak dibutuhkan bantuan kerja kernel oleh thread library untuk menukar dari satu user-level thread ke yang lain.
Setiap LWP terpasang dengan tepat satu kernel-level thread, dimana setiap user-level thread tidak tergantung dari kernel. Suatu proses mungkin mempunyai banyak LWP, tetapi mereka hanya dibutuhkan ketika thread harus berkomunikasi dengan kernel. Misalnya, suatu LWP akan dibutuhkan untuk setiap thread yang bloknya konkuren di sistem pemanggilan. Anggap ada lima buah pembacaan berkas yang muncul. Jadi dibutuhkan lima LWP, karena semuanya mungkin mengunggu untuk penyelesaian proses I/O di kernel. Jika suatu proses hanya mempunyai empat LWP, maka permintaan yang kelima harus menunggu unuk salah satu LWP kembali dari kernel. Menambah LWP yang keenam akan sia-sia jika hanya terdapat tempat untuk lima proses.
Kernel-kernel threads dijadual oleh penjadual kernel dan dieksekusi di CPU atau CPU-CPU dalam sistemnya. Jika suatu kernel thread memblok (misalnya karena menunggu penyelesaian suatu proses I/O), prosesor akan bebas untuk menjalankan kernel thread yang lain. Jika thread yang sedang terblok sedang menjalankan suatu bagian dari LWP, maka LWP tersebut akan ikut terblok. Di tingkat yang lebih atas lagi, user-level thread yang sedang terpasang ke LWP tersebut akan terblok juga. Jika suatu proses mempunyai lebih dari satu LWP, maka LWP lain bisa dijadual oleh kernel.
Para pengembang menggunakan struktur-struktur data sebagai berikut untuk mengimplementasikan thread-thread dalam Solaris 2:
- Suatu user-level thread mempunyai thread ID, himpunan register (mencakup suatu PC dan stack pointer), stack dan prioritas (digunakan oleh library untuk penjadualan). Semua struktur data tersebut berasal dari ruang user.
- Suatu LWP mempunyai suatu himpunan register untuk user-level thread yang ia jalankan, juga memori dan informasi pencatatan. LWP merupakan suatu struktur data dari kernel, dan bertempat pada ruang kernel.
- Suatu kernel thread hanya mempunyai struktur data yang kecil dan sebuah stack. Struktur datanya melingkupi copy dari kernel-kernel registers, suatu pointer yang menunjuk ke LWP yang terpasang dengannya, dan informasi tentang prioritas dan penjadualan.
Gambar 2-22. Thread Solaris dan Java. Sumber: . . .
Thread Java
Seperti yang telah kita lihat, thread didukung selain oleh sistem operasi juga oleh paket library thread. Sebagai contoh, Win32 library mempunyai API untuk multithreading aplikasi Windows, dan Pthreads mempunyai fungsi manajmen thread untuk sistem POSIX-compliant. Java adalah unik dalam mendukung tingkatan bahasa untuk membuat dan managemen thread.Semua program java mempunyai paling sedikit satu kontrol thread. Bahkan program java yang sederhana mempunyai hanya satu main() method yang berjalan dalam thread tunggal dalam JVM. Java menyediakan perintah-perintah yang mendukung pengembang untuk membuat dan memanipulasi kontrol thread pada program.
Satu cara untuk membuat thread secara eksplisit adalah dengan membuat kelas baru yang diturunkan dari kelas thread, dan menimpa run() method dari kelas Thread tersebut.
Object yang diturunkan dari kelas tersebut akan menjalankan sebagian thread control dalam JVM. Bagaimana pun, membuat suatu objek yang diturunkan dari kelas Thread tidak secara spesifik membuat thread baru, tetapi start() method lah yang sebenarnya membuat thread baru.
Memanggil start() method untuk objek baru mengalokasikan memori dan menginisialisasikan thread baru dalam JVM dan memanggil run() method membuat thread pantas untuk dijalankan oleh JVM. (Catatan: jangan pernah memanggil run() method secara langsung. Panggil start() method dan ini secara langsung akan memanggil run() method).
Ketika program ini dijalankan, dua thread akan dibuat oleh JVM. Yang pertama dibuat adalah thread yang berasosiasi dengan aplikasi-thread tersebut mulai dieksekusi pada main() method. Thread kedua adalah runner thread secara ekspilisit dibuat dengan start() method. Runner thread memulai eksekusinya dengan run() method.
Pilihan lain untuk membuat sebuah thread yang terpisah adalah dengan mendefinisikan suatu kelas yang mengimplementasikan runnable interface. Runnable interface tersebut didefinisikan sebagai berikut:
Gambar 2-23. Runnable. Sumber: . . .
Public interface Runnable
{
Public abstract void run();
}Sehingga, ketika sebuah kelas diimplementasikan dengan runnable, kelas tersebut harus mendefinisikan run() method. Kelas thread yang berfungsi untuk mendefinisikan static dan instance method, juga mengimplementasikan runnable interface. Itu menerangkan bahwa mengapa sebuah kelas diturunkan dari thread harus mendefinisikan run() method.
Implementasi dari runnable interface sama dengan mengekstend kelas thread, satu-satunya kemungkinan untuk mengganti "extends thread" dengan "implements runnable".
Gambar 2-24. Class Worker2. Sumber: . . .
Class worker2 implements Runnable
{
Public void run() {
System. Out. Println ("I am a worker thread. ");
}
}Membuat sebuah thread dari kelas yang diimplementasikan oleh runnable berbeda dengan membuat thread dari kelas yang mengekstend thread. Selama kelas baru tersebut tidak mengekstend thread, dia tidak mempunyai akses ke objek static atau instance method — seperti start() method — dari kelas thread. Bagaimana pun, sebuah objek dari kelas thread adalah tetap dibutuhkan, karena yang membuat sebuah thread baru dari kontrol adalah start() method.
Di kelas kedua, sebuah objek thread baru dibuat melalui runnable objek dalam konstruktornya. Ketika thread dibuat oleh start() method, thread baru mulai dieksekusi pada run() method dari runnable objek. Kedua method dari pembuatan thread tersebut adalah cara yang paling sering digunakan.
Managemen Thread
Java menyediakan beberapa fasilitas API untuk mengatur thread — thread, diantaranya adalah:- Suspend(): berfungsi untuk menunda eksekusi dari thread yang sedang berjalan.
- Sleep(): berfungsi untuk menempatkan thread yang sedang berjalan untuk tidur dalam beberapa waktu.
- Resume(): hasil eksekusi dari thread yang sedang ditunda.
- Stop(): menghentikan eksekusi dari sebuah thread; sekali thread telah dihentikan dia tidak akan memulainya lagi.
Anda dapat melakukannya dengan mencatat bahwa start() method dari sebuah applet dipanggil ketika applet tersebut pertama kali ditampilkan. Apabila user meninggalkan halaman web atau applet keluar dari tampilan, maka method stop() pada applet dipanggil (ini merupakan suatu keuntungan karena start() dan stop() keduanya terasosiasi dengan thread dan applet). Jika user kembali ke halaman web applet, kemudian start() method dipanggil kembali. Destroy() method dari sebuah applet dipanggil ketika applet tersebut dipindahkan dari cache-nya browser. Ini memungkinkan untuk mencegah sebuah applet berjalan ketika applet tersebut sedang tidak ditampilkan pada sebuah web browser dengan menggunakan stop() method dari applet yang ditunda dan melaporkan eksekusi tersebut pada thread di applet start() method.
Keadaan Thread
Sebuah thread java dapat menjadi satu dari 4 kemungkinan keadaan:- new: sebuah thread pada keadaan ini ada ketika objek dari thread tersebut dibuat.
- runnable: memanggil start() method untuk mengalokasikan memori bagi thread baru dalam JVM dan memanggil run() method untuk membuat objek.
- block: sebuah thread akan diblok jika menampilkan sebuah kalimat pengeblokan. Contohnya: sleep() atau suspend().
- dead: sebuah thread dipindahkan ke keadaan dead ketika run() method berhenti atau ketika stop() method dipanggil.
Thread dan JVM
Pada penambahannya ke java program mengandung beberapa thread yang berbeda dari kontrol, disini ada beberapa thead yang sedang berjalan secara tidak sinkron untuk kepentingan dari penanganan sistem tingkatan JVM seperti managemen memori dan grafik kontrol. Garbage Collector mengevaluasi objek ketika JVM untuk dilihat ketika mereka sedang digunakan. Jika tidak, maka itu akan kembali ke memori dalam sistem.JVM dan Sistem Operasi
Secara tipikal implementasi dari JVM adalah pada bagian atas terdapat host sistem operasi, pengaturan ini mengizinkan JVM untuk menyembunyikan detail implementasi dari sistem operasi dan menyediakan sebuah kekonsistenan, lingkungan yang abstrak tersebut mengizinkan program-program java untuk beroprasi pada berbagai sistem operasi yang mendukung sebuah JVM. Spesifikasi bagi JVM tidak mengidentifikasi bagaimana java thread dipetakan ke dalam sistem operasi.Contoh Solusi Multithreaded
Pada bagian ini, kita memperkenalkan sebuah solusi multithreaded secara lengkap kepada masalah produser konsumer yang menggunakan penyampaian pesan. Kelas server pertama kali membuat sebuah mailbox untuk mengumpulkan pesan, dengan menggunakan kelas message queue kemudian dibuat produser dan konsumer threads secara terpisah dan setiap thread mereferensi ke dalam mailbox bersama. Thread produser secara bergantian antara tidur untuk sementara, memproduksi item, dan memasukkan item ke dalam mailbox. Konsumer bergantian antara tidur dan mengambil suatu item dari mailbox dan mengkonsumsinya. Karena receive() method dari kelas message queue adalah tanpa pengeblokan, konsumer harus mencek apakah pesan yang diambilnya tersebut adalah nol.Thread
Gambar 2-16. Thread. Sumber: . . .
Konsep Dasar
Secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut thread.Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter, himpunan register, dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.
Keuntungan
- Tanggap: Multithreading mengizinkan program untuk berjalan terus walau pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
- Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama.
- Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
- Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
User Threads
Gambar 2-17. User dan Kernel Thread. Sumber: . . .User thread didukung oleh kernel dan diimplementasikan oleh thread library ditingkat pengguna. Library mendukung untuk pembentukan thread, penjadualan, dan managemen yang tidak didukung oleh kernel.
Kernel Threads
Kernel thread didukung secara langsung oleh sistem operasi: pembentukan thread, penjadualan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya lebih lambat untuk membuat dan mengelola daripada pengguna thread. Bagaimana pun, selama kernel mengelola thread, jika suatu thread di block tehadap sistem pemanggilan, kernel dapat menjadualkan thread yang lain dalam aplikasi untuk dieksekusi. Juga, di dalam lingkungan multiprosesor, kernel dapat menjadualkan thread dalam prosesor yang berbeda. Windows NT, Solaris, dan Digital UNIX adalah sistem operasi yang mendukung kernel thread.Operasi-Operasi Pada Proses
Proses dalam sistem dapat dieksekusi secara bersama-sama, proses tersebut harus dibuat dan dihapus secara dinamis. Maka, sistem operasi harus menyediakan suatu mekanisme umtuk pembuatan proses dan terminasi proses.
Gambar 2-9. Operasi pada Proses. Sumber: . . .
Pembuatan Proses
Suatu proses dapat membuat beberapa proses baru, melalui sistem pemanggilan pembuatan proses, selama jalur eksekusi. Pembuatan proses dinamakan induk proses, sebagaimana proses baru di sebut anak dari proses tersbut. Tiap proses baru tersebut dapat membuat proses lainnya, membentuk suatu pohon proses (lihat Gambar 2-7).Secara umum, suatu proses akan memerlukan sumber tertentu (waktu CPU, memori, berkas, perangkat I/O) untuk menyelesaikan tugasnya. Ketika suatu proses membuat sebuah subproses, sehingga subproses dapat mampu untuk memperoleh sumbernya secara langsung dari sistem operasi. Induk mungkin harus membatasi sumber diantara anaknya, atau induk dapat berbagi sebagian sumber (seperti memori berkas) diantara beberapa dari anaknya. Membatasi suatu anak proses menjadi subset sumber daya induknya mencegah proses apa pun dari pengisian sistem yang telalu banyak dengan menciptakan terlalu banyak subproses.
Sebagai tambahan pada berbagai sumber fisik dan logis bahwa suatu proses diperoleh ketika telah dibuat, data pemula (masukan) dapat turut lewat oleh induk proses sampai anak proses. Sebagai contoh, anggap suatu proses yang fungsinya untuk menunjukkan status sebuah berkas, katakan F1, pada layar terminal. Ketika dibuat, akan menjadi sebagai sebuah masukan dari proses induknya, nama dari berkas F1, dan akan mengeksekusi menggunakan kumpulan data tersebut untuk memperoleh informasi yang diinginkan. Proses tersebut juga mendapat nama dari perangkat luar. Sebagian sistem operasi melewati sumber-sumber ke anak proses. Pada sistem tersebut, proses baru bisa mendapat dua berkas terbuka yang baru, F1 dan perangkat terminal dan hanya perlu untuk mentransfer data antara kedua berkas tersebut.
Ketika suatu proses membuat proses baru, dua kemungkinan ada dalam term eksekusi:
- Induk terus menerus untuk mengeksekusi secara bersama-sama dengan anaknya.
- Induk menunggu sampai sebagian dari anaknya telah diakhiri/terminasi.
- Anak proses adalah duplikat dari induk proses.
- Anak proses memiliki program yang terisikan didalamnya.
Umumnya, sistem pemanggilan execlp digunakan setelah sistem pemanggilan fork. Oleh satu dari dua proses untuk menggantikan proses ruang memori dengan program baru. Sistem pemanggilan execlp mengisi suatu berkas binary kedalam memori (menghancurkan gambar memori pada program yang berisikan sistem pemanggilan execlp) dan memulai eksekusinya. Dengan cara ini, kedua proses mampu untuk berkomunikasi, dan lalu untuk pergi ke arah yang berbeda. Induk lalu dapat membuat anak yang lebh banyak atau jika induk tidak punya hal lain untuk dilakukan ketika anak bekerja, induk dapat mengeluarkan sistem pemanggilan wait untuk tidak menggerakkan dirinya sendiri pada suatu antrian yang siap sampai anak berhenti. Program C ditunjukkan pada Gambar 2-10 mengilustrasikan sistem pemanggilan pada UNIX yang sebelumnya dijelaskan. Induk membuat anak proses menggunakan sistem pemanggilan fork(). Kini kita mempunyai dua proses yang berbeda yang menjalankan sebuah copy pada program yang sama. Nilai dari pid untuk anak proses adalah nol (zero): maka untuk induk adalah nilai integer yang lebih besar dari nol. Anak proses meletakkan ruang alamatnya dengan UNIX command /bin/ls (digunakan untuk mendapatkan pendaftaran directory) menggunakan sistem pemanggilan execlp(). Ketika anak proses selesai, induk proses menyimpulkan dari pemanggilan untuk wait() dimana induk proses menyelesaikannya dengan menggunakan sistem pemanggilan exit().
Secara kontras, sistem operasi DEC VMS membuat sebuah proses baru dengan mengisi program tertentu kedalam proses tersebut, dan memulai pekerjaannya. Sistem operasi Microsoft Windows NT mendukung kedua model: Ruang alamat induk proses dapat di duplikasi, atau induk dapat menspesifikasi nama dari sebuah program untuk sistem operasi untuk diisikan kedalam ruang alamat pada proses baru.
Terminasi Proses
Sebuah proses berakhir ketika proses tersebut selesai mengeksekusi pernyataan akhirnya dan meminta sistem operasi untuk menghapusnya dengan menggunakan sistem pemanggilan exit. Pada titik itu, proses tersebut dapat mengembalikan data (keluaran) pada induk prosesnya (melalui sistem pemanggilan wait) Seluruh sumber-sumber dari proses-termasuk memori fisik dan virtual, membuka berkas, dan penyimpanan I/O di tempatkan kembali oleh sistem operasi.Ada situasi tambahan tertentu ketika terminasi terjadi. Sebuah proses dapat menyebabkan terminasi dari proses lain melalui sistem pemanggilan yang tepat (contoh abort). Biasanya, sistem seperti itu dapat dipanggil hanya oleh induk proses tersebut yang akan diterminasi. Bila tidak, pengguna dapat secara sewenang-wenang membunuh job antara satu sama lain. Catat bahwa induk perlu tahu identitas dari anaknya. Maka, ketika satu proses membuat proses baru, identitas dari proses yang baru diberikan kepada induknya.
Induk dapat menterminasi/ mengakhiri satu dari anaknya untuk beberapa alasan, seperti:
- Anak telah melampaui kegunaannya atas sebagaian sumber yang telah diperuntukkan untuknya.
- Pekerjaan yang ditugaskan kepada anak telah keluar, dan sistem operasi tidak memeperbolehkan sebuah anak untuk meneruskan jika induknya berakhir.
Untuk mengilustrasikan proses eksekusi dan proses terminasi, kita menganggap bahwa, dalam UNIX, kami dapat mengakhiri suatu proses dengan sistem pemanggilan exit; proses induknya dapat menunggu untuk terminasi anak proses dengan menggunakan sistem pemanggilan wait. Sistem pemanggilan wait kembali ke pengidentifikasi proses dari anak yang telah diterminasi, maka induk dapat memberitahu kemungkinanan anak mana yang telah diterminasi. Jika induk menterminasi. Maka, anaknya masih punya sebuah induk untuk mengumpulkan status mereka dan mengumpulkan statistik eksekusinya.
Proses
Istilah job dan proses digunakan hampir dapat dipertukarkan pada tulisan ini. Walau kami pribadi lebih mneyukai istilah proses, banyak teori dan terminologi sistem-operasi dikembangkan selama suatu waktu ketika aktivitas utama sistem operasi adalah job processing. Akan menyesatkan untuk menghindari penggunaan istilah umum yang telah diterima bahwa memasukkn kata job (seperti penjadualan job) hanya karena proses memiliki job pengganti/ pendahulu.
Konsep Dasar dan Definisi Proses
Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor's register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global.Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.
Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja. Kami mendiskusikan masalah tersebut pada bagian berjudul Hubungan Antara Proses.
Keadaan Proses
Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:- New: Proses sedang dikerjakan/ dibuat.
- Running: Instruksi sedang dikerjakan.
- Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/ signal).
- Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
- Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
Gambar 2-1. Keadaan Proses. Sumber: . . .
Process Control Block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) - juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2-2. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk ini:- Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
- Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk proses ini.
- CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register, ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/ bekerja dengan benar setelahnya (lihat Gambar 2-3).
- Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi .
- Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
- Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar open berkas dan banyak lagi.
- PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apa pun yang dapat bervariasi dari prose ke proses.
Gambar 2-3. CPU Register. Sumber: . . .
MICROKERNEL
Karena sebuah mikrokernal harus dapat meletakkan layanan-layanan sistem operasi pada level teratas, fungsionalitas yang harus dimiliki oleh mikrokernel setidaknya melingkupi:
- Mekanisme pengaturan pengalamatan ruang, — dibutuhkan untuk mengatur proteksi ingatan.
- Mekanisme eksekusi secara abstrak untuk mengatur alokasi CPU — biasanya adalah thread atau pengaktifan penjadual; dan
- Komunikasi antarproses — dibutuhkan untuk menyediakan mekanisme pemanggilan peladen yang berjalan pada alamat ruang spesifik.
Penjelasan tentang macam KERNEL :
Beberapa sistem operasi yang menggunakan microkernel:
- IBM AIX, sebuah versi UNIX dari IBM
- Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
- Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac OS/X
- Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
- Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device, embedded device, dan PDA Phone.
Saturday, March 27, 2010
Tugas Pertemuan 3 ( 2 )
Alasan Pembuatan : tanpa adanya proses sebuah sistem operasi tidak dapat berjalan sebagaimana mestinya,karena tugas dari so adalah mengatur eksekusi,dimana sebuah eksekusi itu berjalan karena adanya manajemen proses.definisi dari proses itu sendiri adalah unit aktifitas yang dicirikan oleh eksekusi serangkaian instruksi, current state (status terkini) & himpunan instruksi sistem terkait (associated).
Alasan penghentian suatu proses : masih banyak aplikasi yang membutuhkan sumber daya sehingga Processor di-switch antar banyak aplikasi sehingga perangkat I/O dapat digunakan secara efisien dan juga menghindari komputer mengambang ( hang ).
Ø Jelaskan tentang model proses lima status beserta kemungkinan transisinya!
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.

* proses baru akan masuk lewat pos New
* kemudian masuk pada pos Ready untuk antri giliran panggilan proses oleh Dispatch
* setelah dipanggil Dispatch akan diproses pasa pos Running
* bila waktu giliran habis namun proses belum selesai maka proses akan menuju pos Blocked untuk menunggu giliran masuk pos Ready untuk menyelesaikan sisa proses
* bila proses selesai sebelum waktu giliran habis maka proses akan keluar melalui pos exit dan akan diganti proses berikutnya
Jelaskan tentang model proses dua status suspended beserta kemungkinan transisinya!
Model proses pada status dua suspended merupakan model proses yang mengakibatkan processor lebih cepat daripada I/O sehingga semua proses dapat menunggu I/O.Swap proses sedemikian ke disk untuk membebaskan lebih banyak memory & menugaskan processor pada lebih banyak proses.Dimana Status Blocked berubah menjadi Suspend ketika proses dialihkan ke disk.
kemungkinan transisinya:
· Swapping : SO harus membebaskan cukup main memory agar suatu proses siap eksekusi.
· Request User Interaktif: Misalnya, debugging atau berhubungan dengan
pemanfaatan sumber daya.
· Timing :Proses dapat dieksekusi secara periodik (misal, sistem monitoring sistem atau accounting) & boleh di-suspend selama menunggu waktu berikutnya.
· Request Proses Induk Proses induk berkeinginan men-suspend eksekusi dari suatu turunan untuk menguji atau mengubah proses turunan tersebut atau mengkoordinasikan aktifitas dari berbagai keturunannya.

Jelaskan elemen-elemen dari Process Control Block (PCB)!
Proses Suatu unit aktifitas yang dicirikan oleh eksekusi serangkaian instruksi, current state (status terkini) & himpunan instruksi sistem terkait (associated).
Suatu proses tersusun dari:
– Kode program (mungkin di-share)
– Sekumpulan data
– Sejumlah atribut yang mendeskripsikan status dari proses tersebut.
Selama proses berjalan, Process Control Block (PCB) mempunyai sejumlah elemen, mencakup
– Identifier
– State
– Priority
– Program counter
– Memory pointers
– Context data
– I/O status information
– Accounting information

Gambar-element pada PCB
Process Control Block (PCB) Berisi elemen-elemen proses yang dibuat dan dikelola oleh sistem operasi yang memberikan dukungan bagi banyak proses.
Tugas Pertemuan 3 (1)
* Deskripsikan proses pada kedua SO tersebut
* Bagaimana proses pembuatan & penghentian proses? (termasuk switching-nya)
Proses pada windows dan linux
Proses merupakan konsep pokok pada sistem operasi, karena salah satu tugas utama sistem operasi adalah bagaimana mengatur proses – proses yang berjalan di sistem. Sebenarnya apakah Proses itu?
Berikut beberapa definisi proses pada sistem operasi adalah :
1. Program yang sedang dalam keadaan dieksekusi.
2. Unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh system operasi.
Sistem operasi mengolah seluruh proses yang ada di sistem dan bertugas mengalokasikan sumber daya sumber daya ke proses yang membutuhkan sesuai dengan kebijaksanaan tertentu. Sumber daya yang dibutuhkan proses diantaranya CPU, memori, file serta I/O device.
Keadaan Proses
Proses – proses yang dikelola oleh sistem operasi akan melalui serangkaian keadaan yang merupakan bagian dari aktivitasnya. Keadaan proses ini disebut sebagai status proses yang terdiri dari:
Status New yaitu status dimana proses sedang dibuat.
Status Ready yaitu status dimana proses siap dieksekusi tetapi CPU mengerjakan proses lain.
Status Waiting yaitu status dimana proses sedang menunggu suatu kejadian menunggu operasi I/O selesai, menunggu signal dari proses lain, tersedianya
Status Running yaitu status dimana proses dieksekusi. Pada status ini instruksi – instruksi pada proses.
Status Terminated yaitu status dimana proses diakhiri. Kelima status proses tersebut dapat digambarkan pada diagram berikut:

Sebuah proses menjadi Waiting karena proses tersebut menunggu suatu kejadian tertentu seperti selesainya operasi I/O, misalnya perekaman data ke disk karena pada saat perekaman dilakukan proses sedang tidak menggunakan CPU maka scheduler segera mengalokasikan CPU ke proses lain yang telah Ready. Apabila kejadian yang ditunggu telah selesai maka proses dipindahkan kembali ke antrian Ready dan siap dijadwalkan.
- Sebuah proses dari keadaan Running dapat menjadi Ready kembali karena diinterupsi oleh proses lain. Interupsi dapat disebabkan karena jatah waktu yang diberikan CPU ke proses tersebut telah habis sementara proses masih memerlukan sejumlah waktu untuk selesai. Jatah waktu yang diberikan sering disebut sebagai quantum time (time slice) yang dapat berkisar antara 1 hingga 100 milidetik. Interupsi suatu proses terkait erat dengan strategi penjadwalan proses yang digunakan sistem operasi yaitu strategi preemptive dimana suatu proses dapat saja disela oleh proses lain pada saat Running.
- Sebuah proses menjadi Terminated disebabkan oleh beberapa hal diantaranya:
1. Proses memang sudah sele sai mengerjakan tugasnya, sehingga diakhiri secara normal
2. Melewati batas waktu yang telah diberikan.New Ready Running Terminated Waiting
3. Terjadi kesalahan perhitungan misalnya mengerjakan instruksi pembagian dengan nol (division by zero) , atau menyimpan angka yang lebih besar daripada yang dapat diakomodasi oleh perangkat keras.
4. Terjadi kegagalan I/O seperti kegagalan pembacaan dan penulisan file.
5. Proses induknya berakhir, pada kasus ini suatu proses dibuat oleh proses lain, proses pembuat disebut sebagai parent, sedangkan proses yang dibuat disebut sebagai child . Sistem dirancang untuk mengakhiri secara otomatis proses – proses childnya bila proses parent berakhir.
6. Proses child diakhiri atas permintaan proses parentnya. Pada kasus ini parent mengirim signal tertentu untuk mengakhiri childnya misalnya mengirim signal SIGQUIT, SIGKILL atau SIGTERM.
Proses pembuatan & penghentian proses? (termasuk switching-nya) pada so Windows
Pembuatan Proses:
– Memberikan suatu pengenal proses unik
– Mengalokasikan ruang bagi proses tersebut
– Menginisialisasi process control block
– Men-setup linkage yang tepat
– Membuat dan meng-expand struktur data lain
Proses Switching :
process switching muncul terkait adanya Event yang memicu terjadinya process switch yang mebedakan antara swithing modus dan proses sehingga apa saja yang harus dilakukan SO terhadap berbagai struktur data di bawah kontrolnya untuk mencapai suatu process switch.
Suatu process switch dapat terjadi kapapun SO memperoleh kontrol dari proses yang sedang (currently) berjalan. Event yang mungkin memberikan SO kontrol adalah
Langkah-langkah dalam process switch:
1. Simpan context dari processor termasuk program counter (PC) & register lain
2. Update process control block (PCB) dari proses yang saat terkini dalam status Running
3. Pindahkan PCB ke antrian yang tepat ready; blocked; ready/suspend
4. Pilih proses lain untuk dieksekusi
5. Update PCB dari proses terpilih
6. Update struktur data memory management
7. Restore (kembalikan) context dari proses terpilih
Proses pembuatan & penghentian proses? (termasuk switching-nya) pada so Linux
Proses dalam Linux merupakan sekumpulan struktur data yang menyediakan SO dengan semua informasi yang diperlukan untuk mengelola & mendispatch proses.Pembuatan proses dilakukan oleh system call kernel bernama fork( ).
Ini menyebabkan SO, dalam modus kernel, untuk:
1. Mengalokasi suatu slot dalam tabel proses untuk proses baru tersebut.
2. Memberikan suatu process-ID unik untuk proses anak.
3. Menyalin process image dari proses induk,dengan pengecualian suatu shared memory.
4. Naikkan counter terhadap file yang dimiliki oleh induk (parent) untuk mencerminkan bahwa suatu proses tambahan sekarang juga memiliki file-file tersebut.
5. Lewatkan proses anak dari status Ready ke Run.
6. Kembalikan nomor ID dari anak ke proses induk, dan nilai 0 ke proses anak.
Setelah membuat proses, Kernel dapat melakukan salah satu berikut, sebagai bagian dari rutin dispatcher:
– Tetap pada proses induk.
– Mentransfer kontrol ke proses anak
– Mentransfer kontrol ke proses yang lain
Proses Switching :
process switching muncul terkait adanya Event yang memicu terjadinya process switch yang membedakan antara swithing modus dan proses sehingga apa saja yang harus dilakukan SO terhadap berbagai struktur data di bawah kontrolnya untuk mencapai suatu process switch.
Gunakan Shell Linux, jelaskan fungsi & cara menggunakan perintah (plus contoh):
-Top
Perintah top digunakan untuk menampilkan proses pada CPU.Perintah ini untuk menampilkan proses yang sedang berjalan secara realtime (kontinue) dan bisa digunakan untuk menampilkan proses dan penggunaan resource yang paling aktif. Contohnya :

- Grep
Perintah grep digunakan untuk menyaring masukanya dan menampilkan baris-baris yang hanya mengandung pola yang Anda tentukan. Pola ini disebut reguler expression dan Perintah grep digunakan untuk menampilkan string yang sesuai dengan input yang berasal dari perintah lainnya.Contoh :

- cat
Perintah cat digunakan untuk menampilkan isi berkas.cat juga dapat digunakan untuk menulis isi sebuah file teks Contoh :
Saturday, June 13, 2009
Faktor Kecepatan, Transfer Rate & Konfigurasi IC pada RAM
Cara Menghitung Transfer Rate RAM dalam satuan Nanosecon
Kita dapat menghitung waktu transfer data sebuah RAM dalam satuan nanosecon (sepermiliar detik), atau waktu yang dibutuhkan oleh sebuah RAM untuk mengirimkan satu bit data kepada Processor.
Rumus yang digunakan adalah :
- Satuan 400 MHz dikonversikan kedalam Hertz, menjadi 400.000.000 Hertz. Ingat bahwa 1 MHz = 1.000.000 Hertz. Jadi 400 MHz bisa diartikan sebagai : 1/400.000.000 detik.
- Satuan 1 detik dikonversikan kedalam nansecon, menjadi 1.000.000.000 nanosecon. Ingat bahwa 1 detik = 1 miliar nanosecon.
- Kalikan bilangan 1/400.000.000 x 1.000.000.000 = 2.5 nanosecon.
- Jadi DDR PC3200 itu memiliki transfer rate time sebesar = 2.5 ns.
Tabel perbandingan antara Bus (MHz) dan Waktu transfer RAM dalam satuan nanosecon (sepermiliar detik)
| Tipe RAM | Bus (MHz) | Bus (Hertz) | Konstanta (nanosecon)* | Waktu transfer (nanosecon) |
| SDRAM PC133 | 133 MHz | 133000000 | 1000000000 | 7.52 |
| DDR PC266 | 266 MHz | 266000000 | 1000000000 | 3.76 |
| DDR PC333 | 333 MHz | 333000000 | 1000000000 | 3.00 |
| DDR PC400 | 400 MHz | 400000000 | 1000000000 | 2.50 |
| DDR2 PC533 | 533 MHz | 533000000 | 1000000000 | 1.88 |
| DDR2 PC667 | 667 MHz | 667000000 | 1000000000 | 1.50 |
| DDR2 PC800 | 800 MHz | 800000000 | 1000000000 | 1.25 |
Cara Menghitung Transfer Rate (Bandwidth) RAM dan konfigurasi Dual Channel
Kita dapat menghitung transfer rate (bandwidth) riil dari sebuah RAM. Transfer rate merupakan kapasitas data yang dapat dikirimkan sebuah RAM ke processor dalam satuan Megabytes/secon (MB/s).
Rumus yang digunakan adalah :
- Contoh sebuah DDR2 PC533, berarti memiliki bus sebesar 533 MHz.
- Lebar data (width) sebuah RAM adalah 64-bit, atau dikonversikan kedalam satuan byte sama dengan 8 byte. [* 1 byte = 8 bit]
- Transfer Rate = Bus (MHz) x Lebar Data (Byte)
- Transfer Rate = 533 MHz x 8 Byte = 4.264 MB/s. Itu artinya transfer rate RAM DDR2 PC533 adalah sebesar 4.264 MB/s.
- Itulah alasannya kenapa RAM DDR2 PC533 kadang ditulis sebagai DDR2 PC4200 (kebulatan dari transfer rate 4.264 MB/s).
- Pada sistem komputer sekarang, sebuah RAM harus di-intalasi dalam konfigurasi Dual Channel, artinya dipasang langsung dua keping (sepasang) dengan tujuan transfer rate dapat digandakan dan memenuhi kebutuhan bandwidth processor.
- Dengan konfigurasi Dual Channel maka transfer rate 4.264 MB/s dikalikan dua, dan menghasilkan 8.528 MB/s. Transfer rate sebesar ini dapat memenuhi kebutuhan Processor Intel Core 2 Duo, Core 2 Quad dan Core 2 Extreme yang memiliki FSB 1.066.
- Perhitungan Bandwidth processor sama dengan rumus diatas, yaitu = FSB (MHz) x Lebar Data (8 byte). Itu artinya, Core 2 Duo FSB 1.066MHz x 8 Byte = 8.258 MB/s. Dan RAM yang dapat memenuhi kebutuhan data ini adalah DDR2 PC533 dalam konfigurasi Dual Channel.
Tabel perbandingan antara Bus (MHz) dan Transfer Rate (MB/s)
| Tipe RAM | Bus (MHz) | Transfer Rate (Bandwidth) | Penamaan RAM | Dual Channel |
| SDRAM PC133 | 133 MHz | 1.064 MB | SDRAM PC133 | N/A |
| DDR PC266 | 266 MHz | 2.128 MB | DDR PC2100* | 4.256 MB |
| DDR PC333 | 333 MHz | 2.664 MB | DDR PC2700* | 5.328 MB |
| DDR PC400 | 400 MHz | 3.200 MB | DDR/DDR2 PC3200 | 6.400 MB |
| DDR2 PC533 | 533 MHz | 4.264 MB | DDR2 PC4200* | 8.528 MB |
| DDR2 PC667 | 667 MHz | 5.336 MB | DDR2 PC5300* | 10.672 MB |
| DDR2 PC800 | 800 MHz | 6.400 MB | DDR2 PC6400 | 12.800 MB |
Tabel Kebutuhan Processor dan RAM yang cocok
| Processor Intel | FSB | Transfer Rate (Bandwidth) | Tipe RAM yang cocok |
| Pentium 4 | 400 MHz | 3.200 MB | RDRAM PC800 Dual Channel |
| Celeron D 3xx | 533 MHz | 4.264 MB | DDR PC2100 Dual Channel |
| Pentium 4 | |||
| Celeron 4xx | 800 MHz | 6.400 MB | DDR/DDR2 PC3200 Dual Channel |
| Pentium 4 6xx | |||
| Pentium D 9xx | |||
| Pentium Dual Core E21xx | |||
| Core 2 Duo E4xxx | |||
| Core 2 Duo E6xxx | 1.066 MHz | 8.528 MB | DDR PC4200 Dual Channel |
| Core 2 Quad Q6xxx | |||
| Core 2 Extreme X6xxx | |||
| Core 2 Duo E6xxx | 1.333 MHz | 10.664 MB | DDR PC5300 Dual Channel |
| Core 2 Extreme Quad-Core QX6xxx |
Bagaimana Cara Membaca Konfigurasi IC RAM ?
Kadang vendor IC menuliskan kode konfigurasi seperti ini: 4Mx16, 8Mx8, 16Mx4, 16Mx8, 32Mx8 dan 64x8. Perkalian adalah kode per-IC yang digunakan pada RAM, yang menunjukkan kapasitas dalam satuan Megabit (bukan Megabyte), Width (lebar data) dan Kapasitas Total IC tersebut.
Lihat contoh dibawah :
16Mx8 ->
- 16M = kapasitas per-lokasi bit, yaitu 16 Megabit.
- 8 = lebar data, yaitu 8 bit.
- 16Mx8 = kapasitas IC secara keseluruhan, yaitu 128 Megabit (Mb).
- 128 Megabit dikonversikan menjadi Megabye dengan membagi 128 Megabit / 8 = 16 Megabyte (MB).
Satuan kapasitas RAM harus dalam Byte, maka satuan bit harus dikonversikan dahulu dengan rumus 1 byte = 8 bit. [MB = Megabyte, Mb = Megabit).
Jadi kesimpulannya IC dengan kode 16Mx8 memiliki kapasitas per-IC sebesar 16 MB. Untuk menghitung kapasitas Modul RAM per-keping, maka tinggal menghitung jumlah IC yang akan digunakan, misalnya 4, 8 atau 16 pcs IC tersebut. Perlu diingat bahwa jumlah minimal IC pada modul adalah 4 pcs, dan paling tinggi 16 pcs IC. Pada RAM tipe ECC dan ECC Registered, jumlah IC bisa ganjil seperti 9 pcs dan 18 pcs.
| Konfigurasi awal | Jumlah IC yang digunakan | Kapasitas RAM sesungguhnya |
| (16Mx8) x 4 | 16MB x 4 | 64 MB |
| (16Mx8) x 8 | 16MB x 8 | 128 MB |
| (16Mx8) x 16 | 16MB x 16 | 256 MB |

