Rabu, 31 Oktober 2012

Virtual Memory


Pengertian Virtual Memory


Beberapa sistem operasi memerlukan yang namanya virtual memory. Layaknya Linux yang membutuhkan swap, microsoft windows vista ataupun XP pun membutuhkan yang namanya virtual memory. Pengertian dari Virtual memory itu sendiri yakni memori sementara yang digunakan komputer untuk menjalankan berbagai program aplikasi ataupun menyimpan data yang membutuhkan memory yang lebih besar dari memory yang telah tersedia ( Memory fisik seperti RAM, baca disini untuk lebih lengkap ). Program ataupun data yang tidak muat dimasukan pada memory asli ( RAM ), akan disimpan ke dalam sebuah Pagging File. Pengertian Pagging file ialah data yang hanya disimpan sementara atau bisa disebut swap. Pada sistem operasi linux kita diharuskan untuk membuat dua partisi utama yaitu untuk system dan untuk swap. Virtual Memory ini Berbeda halnya dengan Memory fisik seperti RAM, karena ram merupakan komponen yang termasuk kedalam golongan hardware. Walapun dalam kenyatannya Virtual Memory ini disimpan di harddisk, tetapi kerjannya itu tidak tampak, artinya berjalan secara software namun disimpan dihardware. Data yang disimpan ini tidak dapat bertahan lama, dalam artian hanya saat di gunakan saja. Dan bila komputer dimatikan, data data yang tadinya ada di virtual memory akan hilang. Jadi Fungsi Virtual Memoryialah untuk mengoptimalkan kinerja dari komputer, dengan tambahan memory, maka kemungkinan terjadi crash sangat kecil sekali. Ukuran dari paging file biasanya berbeda - beda, kalau ukuran paging file linux ialah 2 kali lipat dari memory aslinya. Misalkan kita memakai memory berkapasitas 512 MB, maka ukuran paging filenya yaitu 1 GB. Walaupun tidak harus 2 GB, tapi untuk memaksimalkan kinerja maka sebaiknya 2 kali lipatnya. Dan untuk Ukuran Paging file Di windows XP dan Vista Yaitu 1,5 kali dari kapasitas aslinya. Misalkan kita menggunakan memory sebesar 1 GB, maka paging filenya sebesar 1,5 GB. Dalam Xp maupun Vista paging file ini dinamai dengan pagefile.sys bila anda ingin mencarinya, pasti tidak akan ketemu, karena file ini disembunyikan atau hidden files.

Keuntungan

Sebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori. Hal ini berakibat pada:
·         Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misal, untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.
·         Berkurangnya memori yang dibutuhkan (space menjadi lebih leluasa). Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori. Pesan-pesan error hanya dimasukkan jika terjadi error.
·         Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan memori.
·         Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user.

Implementasi

Gagasan dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama (main memory) dan sisanya ditaruh di disk. Begitu bagian di disk diperlukan, maka bagian di memori yang tidak diperlukan akan disingkirkan (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu.
Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 KByte dan bagian-bagian proses di-swap masuk dan keluar memori begitu diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien.
Memori virtual dapat dilakukan melalui dua cara:
1.      Permintaan pemberian halaman (demand paging).
2.      Permintaan segmentasi (demand segmentation). Contoh: IBM OS/2. Algoritma dari permintaan segmentasi lebih kompleks, karenanya jarang diimplementasikan.

Cache Memory


Cache Memory pada Komputer



Cache memory merupakan media penyimpanan data sekunder berkecepatan tinggi, dimana tempat menyimpan data atau informasi sementara yang sering digunakan atau diakses oleh komputer.
Fungsi Cache Memory
--> Mempercepat Akses data pada komputer
--> Meringankan kerja prosessor
--> Menjembatani perbedaan kecepatan antara cpu dan memory utama.
--> Mempercepat kinerja memory

Letak Cache MemorY
1.       Terdapat di dalam Processor (on chip )
 Cache internal diletakkan dalam prosesor sehingga tidak memerlukan bus eksternal, maka waktu
 aksesnya akan sangat cepat sekali
2.      Terdapat diluar Processor(off chip)
 berada pada MotherBoard, memori jenis ini kecepatan aksesnya sangat cepat,
 meskipuntidak secepat chache memori jenis pertama


Jenis Cache Memory
1.   L1 cache L1 Cache adalah Sejumlah kecil SRAM memori yang digunakan sebagai cache yang terintegrasi menyatu pada prosesor.
-     Berguna untuk menyimpan secara sementara instruksi dan data, dan memastikan bahwa prosesor memiliki supply data yangstabil untuk diproses sementara memori mengambil dan menyimpan data baru.
-     L1 cache (Level 1 cache) disebut pula dengan istilah primary cache, first cache, atau level one cache.
-     transfer data dari L1 cache ke prosesor terjadi paling cepat Kecepatannya mendekati kecepatan register

2.  L2 cache Arti istilah L2 Cache adalah Sejumlah kecil SRAM memori yang berada di motherboard dekat dengan posisi dudukan prosesor.
- Berguna untuk menyimpan sementara instruksi dan data, dan memastikan bahwa prosesor memiliki supply data yangstabil untuk diproses sementara memori mengambil dan menyimpan data baru
     - (Level 2 cache) secondary cache, second level cache, atau level two cache.
- L2 cache memiliki ukuran lbih besar dibandingkan L1 namun kecepatan transfernya sedikit lebih lama dari L1cache.
3. L3 cache jarang sekali ada, hanya ada di komputer tertentu.
         -  Berguna ketika terdapat cache yang hilang ”missing” pada cache L1&L2
         - L3 cache memiliki ukuran lbih besar dibandingkan L1 dan L2 namun kecepatan
           transfernya lebih lama dari L1cache dan L2 Cache



Elemen Cache Memory
-       Fungsi Pemetaan (Mapping)
              pemetaan blok-blok memori utama ke dalam saluran cache.
·         Pemetaan Langsung (Direct Mapping)
·         Pemetaan Asosiatif  (Associative Mapping)
·         Pemetaan Asosiatif Set (Set Associative Mapping)

-       Algoritma Penggantian
untuk memilih blok data mana yang ada di cache yang dapat diganti dengan blok  data baru
·         Least Recently used (LRU)
·         First in first out (FIFO)
·         Least frequently used (LFU)
·         Random
Cara Kerja Cache Memori


Instruction Set


Instruction set


Sebuah set instruksi, atau instruksi arsitektur set (ISA), adalah bagian dari arsitektur komputer yang berhubungan dengan pemrograman, termasuk jenis data asli, instruksi, register, mode pengalamatan, arsitektur memori, interupsi dan exception handling, dan eksternal I / O. ISA mencakup spesifikasi dari himpunan opcodes (bahasa mesin), dan perintah asli diimplementasikan oleh prosesor tertentu. [Rujukan?]

Instruksi arsitektur set dibedakan dari mikroarsitektur, yang merupakan kumpulan teknik desain prosesor yang digunakan untuk mengimplementasikan set instruksi. Komputer dengan microarchitectures yang berbeda dapat berbagi set instruksi yang sama. Misalnya, Intel Pentium dan AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi x86, tetapi memiliki desain internal yang berbeda secara radikal.

Beberapa mesin virtual [mana?] Bahwa bytecode dukungan untuk Smalltalk, Java mesin virtual, dan Common Language Microsoft mesin Runtime virtual sebagai ISA mereka menerapkannya dengan menerjemahkan bytecode untuk jalur kode umum digunakan dalam kode mesin asli, dan melaksanakan kurang-sering-digunakan jalur kode dengan interpretasi, Transmeta menerapkan instruksi x86 ditetapkan atas prosesor VLIW dengan cara yang sama.

CPU


Central Processing Unit


Principal component of a digital computer, composed of a control unit, an instruction-decoding unit, and an arithmetic-logic unit. The CPU is linked to main memory, peripheral equipment (including input/output devices), and storage units. The control unit integrates computer operations. It selects instructions from the main memory in proper sequence and sends them to the instruction-decoding unit, which interprets them so as to activate functions of the system at appropriate moments. Input data are transferred via the main memory to the arithmetic-logic unit for processing (i.e., addition, subtraction, multiplication, division, and certain logic operations). Larger computers may have two or more CPUs, in which case they are simply called “processors” because each is no longer a “central” unit. See also multiprocessing.

Arithmatic Logic Unit


ALU, singkatan dari Arithmetic And Logic Unit (bahasa Indonesia: unit aritmatika dan logika), adalah salah satu bagian dalam dari sebuah mikroprosesor yang berfungsi untuk melakukan operasi hitungan aritmatika dan logika. Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. tugas utama dari ALU (Arithmetic And Logic Unit)adalah melakukan semua perhitungan aritmatika atau matematika yang terjadi sesuai dengan instruksi program. ALU melakukan operasi aritmatika yang lainnya. Seperti pengurangan, pengurangan, dan pembagian dilakukan dengan dasar penjumlahan. Sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi aritmatika ini disebut adder. ALU melakukan operasi arithmatika dengan dasar pertambahan, sedang operasi arithmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian dilakukan dengan dasar penjumlahan. sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi arithmatika ini disebut adder. Tugas lalin dari ALU adalah melakukan keputusan dari operasi logika sesuai dengan instruksi program. Operasi logika (logical operation) meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu:
a. sama dengan (=)
b. tidak sama dengan (<>)
c. kurang dari (<)
d. kurang atau sama dengan dari (<=)
e. lebih besar dari (>)
f. lebih besar atau sama dengan dari (>=) (sumber: Buku Pengenalan Komputer, Hal 154-155, karangan Prof.Dr.Jogiyanto H.M, M.B.A.,Akt.)

Fungsi-fungsi yang didefinisikan pada ALU adalah Add (penjumlahan), Addu (penjumlahan tidak bertanda), Sub (pengurangan), Subu (pengurangan tidak bertanda), and, or, xor, sll (shift left logical), srl (shift right logical), sra (shift right arithmetic), dan lain-lain.