Senin, 11 April 2016

Paging dan Swapping pada Sistem Operasi LINUX


Paging

Sistem paging adalah suatu sistem manajemen pada sistem operasi yang mengatur program yang sedang berjalan. Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok-blok yang berukuran tertentu yang disebut dengan frame dan memecah memori logika menjadi bok-blok yang berukuran sama dengan frame yang disebut page. Untuk mengatasi apabila suatu program lebih besar dibandingkan dengan memori utama adalah dengan konsep overlay dan konsep memori maya(virtual memori):

# Konsep Overlay,
yaitu dimana program yang di jalankan dipecah menjadi beberapa bagian yang dapat dimuat oleh memory (overlay), sedangkan yang belum dieksekusi akan disimpan di dalam disk, yang nantinya akan dimuat ke memori begitu diperlukan dalam ekekusi.

# Konsep Memori Maya
yaitu kemampuan untuk mengalamati ruang memori melebihi memori utama yang tersedia.

Impelementasi Paging

System paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index register, base register dan segment register dan lain-lain. Pemakai seolah mempunyai ruang memori yang sangat besar tanpa mengelola overlay.
Beberapa istilah pada system paging adalah
  • ·         Alamat Maya (Virtual Address)
  • ·         Alamat Nyata (Real Address)
  • ·         Page
  • ·         Page Frame
  • ·         Page Fault
  • ·         MMU
Alamat Maya
Alamat maya adalah alamat yang dihasilkan perhitungan menggunakan index register, base register dan segment register dan lain-lain. Ruang alamat yang dibentuk alamat maya disebut ruang alamat maya (virtual address), V. jumlah alamat pada V disimbolkan dengan |V|.
Alamat maya ini yang diacu proses yang running.

Alamat Nyata

Alamat nyata adalah alamat di memori utama fisik. Ruang alamat yang dibentuk alamat nyata disebut ruang alamat nyata (real address space), R. jumlah alamat R disimbolkan dengan |R|
Pada implementasi system memori maya, normalnya |V| >> |R|.
Meski pengacuan proses dilakukan berdasar alamat maya, namun proses sesungguhnya berjalan di memori nyata. Alamat nyata harus dipetakan menjadi alamat nyata saat proses dieksekusi. Pemetaan harus dilakukan dengan sangat cepat atau kinerja system computer akan menurun drastic.
System computer akan menerjemahkan alamat maya menjadi alamat fisik. Bagian yang bertugas untuk memetakan adalah MMU.

Page

Page adalah unit terkecil virtual address space. Ruang alamat maya proses merupakan kelipatan page yang berukuran sama.

Page Frame

Page frame adalah unit terkecil memori fisik. Memori fisik secara konseptual dibagi menjadi sejumah unit berukuran tetap disebut page frame. Page fram sering juga disebut  frame.



Pemetaan page menjadi page frame



Page Fault

Page fault adalah exception untuk permintaan alokasi page ke memori. Dalam konteks memori maya, page fault sering juga disebut fault.

Memory Management Unit (mmu)

Mmu adalah chip atau kumpulan chip yang memetakan alamat maya ke alamat fisik.
Pada computer tanpa memori maya, alamat langsung diletakkan ke bus dan menyebabkan word memori fisik alamat itu dibaca atau ditulis.
Pada computer dengan memori maya, alamat tidak diletakkan ke bus secara langsung tapi lewat MMU yang kemudian memetakan alamat maya ke alamat memori fisik.
Memori fisik berisi sejumlah page frame yang memuat sebagian page-page proses, terdapat mekanisme translasi (penerjemahan) alamat (dilakukan MMU) untuk memetakan page ke alamat fisik.


MMU (Memory Management Unit)

MMU mempunyai fungsi sebagai berikut:
·       Pemetaan memori maya ke memori fisik
·    Bila alamat memori yang diminta tidak tersedia di memori fisik, MMU menerbitkan exception adanya page fault yang melewatkan ke system operasi untuk menanganinya.

Skema Pemetaan

Pada computer dengan memori maya, alamat tidak diletakkan ke bus secara langsung tapi dilewatkan ke MMU yang memetakan alamat maya ke alamat memori fisik. Pemetaan dapat dirumuskan secara formal sebagai berikut:
Misalkan
Ruang alamat maya adalah V = {0,1,…..,v-1}
Ruang alamat fisik adalah M = { 0,1,……,m-1}
Umumnya ruang alamat maya lebih besar disbanding alamat fisik (v>m)

MMU melakukan mekanisme translasi alamat, mengasosiasikan alamat maya ke alamat fisik. MMU merealisasikan fungsi f:V     M, yaitu:
f(x) |r, jika item x terdapat di memori fisik dengan lokasi di r
       |page fault jika item x tidak terdapat pada memori fisik

Komponen terpenting MMU adalah
1.      Register alamat maya
2.      Table page
3.      Register alamat fisik

Register Alamat Maya

Menyimpan alamat maya yang diacu.
Nilai di register alamat maya dibagi menjadi dua bagian yaitu:
  • Sejumlah bit berorder tinggi menyatakan nomor page maya.
  • Bit sisa adalah Offset alamat maya.

Tabel Page

Tiap elemen table sedikitnya berisi info berikut:
  • Present/absent bit
  • Bernilai 1 bila page di memori fisik, bernilai 0 bila page tidak di memori fisik.
  • Nomor page frame
  • Berisi nomor page frame dimana page berada.
Register alamat fisik
   Menyimpan alamat fisik yang disinyalkan ke bus.
Nilai register di alamat fisik dibagi 2, yaitu :
  • Sejumlah bit berorder tinggi menyatakan nomor page frame.
  • Bit sisa adalah offset alamat frame.
Alamat maya dipecah menjadi 2 yaitu:
  • Nomor page maya (nit berorder tinggi)
  • Offset
Pemetaan
  • Nomor page maya digunakan sebagai indeks ke tabel page untuk menemukan isian page maya.
  • Dari isian tabel page dapat diketahui apakah page dipetakan ke memori fisik (dengan memeriksa present/absent bit)
    • Apabila alamat terdapat di memori fisik maka isian di tabel page memuat nomor page frame. Nomor page frame di tabel page dikopi sebagai bit berorder tinggi di register alamat fisik dan ditambah offset di alamat maya.
    • Bila alamat tidak ada di memori fisik maka MMu menerbitkan page fault.
  • MMU mengkopi nomor page frame di isian tabel page dengan indeks nomor page ke register alamat fisik dan menambah dengan offset alamat maya.

Cara kerja ini dapat dilihat sebagai berikut:


Apabila ternyata nomor page tidak ada di memori fisik, yaitu nilai present/absent bit di isian tabel page bernilai 0, MMU menerbitkan page default. Rangkaian aksi yang dilakukan adalah sbb:
  1. MMU memperingatkan page tidak dipetakan ke memory fisik dan pemroses melakukan trap ke system operasi (disebut page fault).
  2. Membebaskan bagian page frame memori fisik yang jarang digunakan dengan menyimpan page frame tersebut ke disk.
  3. Memasukkan page yang diacu ke bagian page frame yang dibebaskan.
  4. Mengkonsolidasi pemetaan antara memori maya <-->memory fisik.
Ketika terjadi page fault, system operasi memilih frame di memori fisik untuk diganti dengan page berguna yang akan masuk.
·           Jika page yang diganti telah dimodifikasi, page harus ditulis ke disk. Page yang telah dimodifikasi disebut dirty page.
·           Jika page belum diubah, kopian di disk masih up to date sehingga page tidak perlu ditulis ke disk.
Tabel tabel paging
Pemakaian tabel page pada system paging menimbulkan 2 masalah utama yaitu:
1.      Tabel page dapat berukuran sangat besar.
2.      Pemetaan harus dilakukan secara tepat.

Tabel page dapat berukuran sangat besar
   Misal:
  • Register alamat maya 32 bit.
  • Ukuran page 4 kilobyte = 212 byte
       Berarti terdapat 220 page ,yaitu alamat maya 32 bit berarti memory dapat memuat 232 byte karena masing-masing page adalah 212 byte. Berarti jumlah page adalah 232  dibagi 212 = 220 page.
  • Register alamat maya 64  bit
  • Ukuran page 4 kilobyte,
Berarti akan terdapat 242 page.

Bila memori maya sangat besar maka tidak mungkin menggunakan satu tabel tunggal karena akan diperlukan ukuran tabel sangat besar.

Solusi
Mengunakan tabel-tabel bertingkat . beberapa rancangan tabel paging untuk beragam sesuai system computer, yaitu:
·      DEC PDP-11 menggunakan one – level paging.
·      DEC VAX menggunakan two – level paging.
·      SUN SPARC menggunakan three – level paging.
·      Motorola A 68030 menggunakan four – level paging.

Pemetaan harus dilakukan secara cepat
Pemetaan alamat maya ke fisik dilakukan setiap terjadi pengacuan memori.
Instruksi computer biasanya berbentuk:
     Operator operand_1,operand_2,…,operand_N
Operand merupakan pengacuan ke memory, karena disimpan ke memori maka intik 1 instruksi sedikitnya terjadi 1 – 2 operand. Jika 1 intruksi memerlukan 10 ns, maka pemetaan dilakukan beberapa ns saja agar tidak terjadi bottleneck.

Cara Membuat Memori Swap melalui Terminal

Overview

SWAP adalah memori pada hard disk yang berbentuk virtual, jadi seperti ini cara kerjanya, saat RAM kita bekerja terlalu keras dan membuat komputer kita jadi heng, maka di swap ini akan maju untuk membantu si ram bekerja.

  • Buka Terminal anda,ketikkan sintax dibawah

sudo dd if=/dev/zero of=/mnt/2000Mb.swap bs=1M count=2000
angka yang dituliskan bewarna merah bisa diubah sesuai dengan memori swap yang ingin dibuat. lalu setelah itu tuliskan lagi

  • Kemudian ketikan sintax dibawah lagi

sudo chmod 600 /mnt/2000Mb.swap
sudo mkswap /mnt/2000Mb.swap
sudo  swapon /mnt/2000Mb.swap  
Untuk membuatnya menjadi permanen, silahkan ketikkan perintah di bawah ini melalui terminal:


gksudo gedit /etc/fstab
maka akan muncul kolom gedit dan silahkan masukkan kode di bawah ini pada bagian paling bawah seperti gambar di bawah ini: 
gedit linux

  •  Pada Jendela gedit tuliskan kode berikut :
/mnt/2000Mb.swap none swap sw 0 0
    • Klik menu ‘Save’ pada bagian atas jendela atau tekan Ctrl + S untuk menyimpan hasil pengeditan Anda tersebut, lalu tutuplah kotak jendela file fstab di atas.
    • Silakan ‘restart’ atau ‘reboot’ Ubuntu Anda untuk melihat hasilnya. Memori Swap akan otomatis aktif begitu Ubuntu Anda dihidupkan.

    Tidak ada komentar:

    Posting Komentar