Manajemen Memory

  1. Konsep Dasar Memory
  2. Konsep Binding

Sebelum eksekusi, program berada di dalam disk, dan saat dieksekusi program tersebut perlu berada pada suatu lokasi dalam memorifisik. Address Binding adalah cara instruksi dan data (yang berada di disk sebagai file executable) dipetakan ke alamat memori. Alamat (address) pada source program umumnya merupakan alamat simbolik. Sebuah compiler biasanya membutuhkan “mengikat” (bind) alamat simbolik ke alamat relokasi

  1. Dynamic Loading

Untuk memperoleh utilitas ruang memori, dapat menggunakan dynamic loading.Dengan dynamic loading, sebuah rutin tidak disimpan di memori sampai dipanggil.Semua rutin disimpan pada disk dalam formatrelocatable load. untuk mekanisame dasar dapat di uraikan sebagai berikut:

ü  Program utama diload dahulu dan dieksekusi

ü  Bila suatu routine perlu memanggil routine yang lain, routine yang dipanggil lebih dahulu diperiksa apakah routine yang dipanggil sudah diload. Jika tidak, relocatable linking loader dipanggil untuk meload routine yang diminta ke memori dan mengupdate tabel alamat dari program yang mencerminkan perubahan ini.

  1. Dynamic Linking

Konsep dynamic linking sama dengandynamic loading. Pada saat loading, linking ditunda sampai waktu eksekusi. Terdapatkode kecil yang disebut stub digunakan untuk meletakkan rutin library di memoridengan tepat. Stub diisi dengan alamat rutin dan mengeksekusi rutin. Sistem operasiperlu memeriksa apakah rutin berada di alamat memori. contoh file dynamic linking: *.dll, *.sys, *.drv

  1. Overlay

 biasanya digunakan untuk memungkinkan sebuah proses mempunyai jumlah yang lebih besar dari memori fisik daripada alokasi memori yang diperuntukkan. Ide dari overlay adalah menyimpan di memori hanya instruksi dan data yang diperlukan pada satu waktu. Jika intruksi lain diperlukan, maka instruksi tersebut diletakkan di ruangmemori menggantikan instruksi yang tidak digunakan lagi.

 

  1. Strategi Manajemen Memory

Strategi yang dikenal untuk mengatasi hal tersebut adalah memori maya. Memori maya menyebabkan sistem seolah-olah memiliki banyak memori dibandingkan dengan keadaan memori fisik yang sebenarnya. Memori maya tidak saja memberikan peningkatan komputasi, akan tetapi memori maya juga memiliki bberapa keuntungan seperti :

Large Address Space

Membuat sistem operasi seakan-akan memiliki jumlah memori melebihi kapasitas memori fisik yang ada. Dalam hal ini memori maya memiliki ukuran yang lebih besar daripada ukuran memori fisik.

Setiap proses di dalam sistem memiliki virtual address space. Virtual address space tiap proses berbeda dengan proses yang lainnya lagi, sehingga apapun yang terjadi pada sebuah proses tidak akan berpengaruh secara langsung pada proses lainnya

  1. Manajemen Memory Untuk Monoprogramming

Bila program komputer yang dijalankan hanya satu jenis selama proses berlangsung maka dikatakan mode kerja komputer itu adalah monoprogramming. Selama komputer itu bekerja maka memory RAM seluruhnya di kuasai oleh program tersebut. Jadi  RAM tidak dapat di masuki oleh program lain. Mode serupa ini di temui pada komputer berbasis DOS.

Penempatan program di memory  diatur sedemikain rupa sehingga (Eko, 2009) :

a)      BIOS selalu di ROM (BIOS)

b)      Sistem Operasi  di RAM bawah (alamat rendah)

c)      Program Aplikasi di RAM tengah (alamat sesudah OS terakhir)

d)     Data Sementara di RAM atas (alamat sesudah Aplikasi terakhi).

Bila sistem operasi telah selasai dimuat maka tampillah prompt di layar monitor, dan itu adalah tanda bahwa komputer siap menerima program aplikasi. Letakkan disk yang berisi program aplikasi pada diskdrive yang aktif lalu eksekusi , sehingga program itu termuat  seluruhnya ke RAM. Dengan demikian program aplikasi siap digunakan menurut semestinya.Kita lihat ketika komputer mula-mula dinyalakan maka proses yang dibaca pertama kali adalah apa yang tertulis di dalam ROM. Setelah semua perintah di adalam ROM BIOS selesai dibaca maka komputer meminta kita memasukkan DOS ke dalam RAM-nya.Ketika DOS dibaca maka diletakkan sebagian dari program DOS yang terpenting saja ke dalam RAM, seperti : COMMAND.COM  dan INTERNAL COMMAND. Sedangkan program DOS yang lain masih tetap di dalam disk dan apabila kita perlukan dapat di eksekusi. Hal itu berguna untuk mrnjaga agar RAM tidak penuh oleh Sistem Operasi saja.

 

Ketika kita bekerja dengan program aplikasi tasdi maka kita akan menghasilkan data. Data itu akan di simpan sementara di RAM yang masih tersisa. Data yang disimpan di RAM bersifat voletile, artinya data hanya bisa bertahan selama catudaya komputer masih ON. Untuk berjaga-jaga biasakan menyimpan data ke disk dalam jangka waktu yang tidak terlalu lama, misalnya setiap 5 menit sekali. Selain menjaga data agar tidak amblas menyimpan ke disk bertujuan juga untuk mengosongkan RAM agar tidak cepat penuh.

Didalam sistem  juga dapat kita lihat bahwa sistem operasi terletak berdekatan dengan program lain di RAM  sehingga kemungkinan sistem operasi ter ganggu atau terubah oleh proses yang sedang berjalan sangat besar .Hal itu tidak boleh terjadi.Untuk mencegah terganggu sitem operasi tersebut maka alamat tertinggi dari sistem operasi dletakkan pada register batas dalam CPU. Jika ada proses yang mengacu ke alamat itu atau yang lebih rendah dari itu maka proses di hentikan dan program akan menampilkan pesan kesalahan.

 

  1. Manajemen Memory  Untuk Multiprogramming

Untuk sistem komputer yang berukuran besar (bukan small computers), membutuhkan pengaturan memori, karena dalam multiprogramming akan melibatkan banyak pemakai secara simultan sehingga di memori akan terdapat lebih dari satu proses bersamaan.  Oleh karena itu dibutuhkan sistem operasi yang mampu mendukung dua kebutuhan tersebut, meskipun hal tersebut saling bertentangan, yaitu (Ama, 2003) :

a)      Pemisahan ruang-ruang alamat.

b)      Pemakaian bersama memori.

       Manajer memori harus memaksakan isolasi ruang-ruang alamat tiap proses agar mencegah proses aktif atau proses yang ingin berlaku jahat mengakses dan merusak ruang alamat proses lain. Manajer memori di lingkungan multiprogramming sekalipun melakukan dua hal, yaitu :

a)      Proteksi memori dengan isolasi ruang-ruang alamat secara dis-joint.

b)      Pemakaian bersama memori.

Memungkinkan proses-proses bekerja sama mengakses daerah memori bersama. Ketika konsep multiprogramming digunakan, pemakaian CPU dapat ditingkatkan.  Sebuah model untuk mengamati pemakaian CPU secara probabilistic :

CPU utilization = 1 – p n

Dengan :

a)   N menunjukkan banyaknya proses pada suatu saat, sehingga kemungkinan bahwa semua  proses akan menunggu menggunakan I/O (masalah CPU menganggur) adalah sebesar pn. Fungsi dari n disebut sebagai degree of multiprogramming.

b)   P menunjukkan  besarnya waktu yang digunakan sebuah proses

 

  1. Ruang Alamat Logika dan Fisik

Alamat Logika adalah alamat yg dibentuk di CPU, disebut juga alamat virtual. Alamat fisik adalah alamat yang terlihat oleh memori. Untuk mengubah dari alamat logika ke alamat fisik diperlukan suatu perangkat keras yang bernama MMU (Memory Management Unit). Pengubahan dari alamat logika ke alamat fisik adalah pusat dari manajemen memori. Alamat yang dibangkitkan oleh CPU disebut alamat logika (logical address) dimana alamat terlihat sebagai uni memory yang disebut alamat fisik (physical address). Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke ruang alamat fisik (Ama, 2003).

Hasil skema waktu kompilasi dan waktu pengikatan alamat pada alamat logika dan alamat memori adalah sama.  Tetapi hasil skema waktu pengikatan alamat waktu eksekusi berbeda.  dalam hal ini, alamat logika disebut dengan alamat maya (virtual address).  Himpunan dari semua alamat logika yang dibangkitkan oleh program disebut dengan ruang alamat logika (logical address space); himpunan dari semua alamat fisik yang berhubungan dengan alamat logika  disebut dengan ruang alamat fisik (physical address space).

Memory Manajement Unit  (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat fisik.  Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.

Register basis disebut register relokasi.  Nilai dari register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori, sebagai contoh, apabila basis 14000, maka user mencoba menempatkan ke alamat lokasi 0 dan secara dinamis direlokasi ke lokasi 14000.  Pengaksesan ke lokasi logika 346, maka akan dipetakan ke lokasi 14346. Sistem operasi MS-DOS yang masih keluarga intel 80X86 menggunakan empat register relokasi ketika proses loading dan running.

User program tidak pernah melihat alamat fisik secara real.  Program dapat membuat sebuah penunjuk ke lokasi 346, mengirimkan ke memory, memanipulasinya, membandingkan dengan alamat lain, semua menggunakan alamat 346.  Hanya ketika digunakan sebagai alamat memory akan direlokasi secara relatif ke register basis.

 

  1. Swapping

Sebuah proses, sebagaimana telah diterangkan di atas, harus berada di memori sebelum dieksekusi. Proses swapping menukarkan sebuah proses keluar dari memori untuk sementara waktu ke sebuah penyimpanan sementara dengan sebuah proses lain yang sedang membutuhkan sejumlah alokasi memori untuk dieksekusi. Tempat penyimpanan sementara ini biasanya berupa sebuah fast disk dengan kapasitas yang dapat menampung semua salinan dari semua gambaran memori serta menyediakan akses langsung ke gambaran tersebut. Jika eksekusi proses yang dikeluarkan tadi akan dilanjutkan beberapa saat kemudian, maka ia akan dibawa kembali ke memori dari tempat penyimpanan sementara tadi. Bagaimana sistem mengetahui proses mana saja yang akan dieksekusi? Hal ini dapat dilakukan dengan ready queue. Ready queue berisikan semua proses yang terletak baik di penyimpanan sementara maupun memori yang siap untuk dieksekusi. Ketika penjadwal CPU akan mengeksekusi sebuah proses, ia lalu memeriksa apakah proses bersangkutan sudah ada di memori ataukah masih berada dalam penyimpanan sementara.   Jika proses tersebut belum berada di memori maka proses swapping akan dilakukan seperti yang telah dijelaskan di atas.

Sebuah contoh untuk menggambarkan teknik swapping ini adalah sebagai berikut: Algoritma Round-Robin yang digunakan pada multiprogramming environment menggunakan waktu kuantum (satuan waktu CPU) dalam pengeksekusian proses-prosesnya. Ketika waktu kuantum berakhir, memory manager akan mengeluarkan (swap out) proses yang telah selesai menjalani waktu kuantumnya pada suatu saat serta memasukkan (swap in) proses lain ke dalam memori yang telah bebas tersebut. Pada saat yang bersamaan penjadwal CPU akan mengalokasikan waktu untuk proses lain dalam memori. Hal yang menjadi perhatian adalah, waktu kuantum harus cukup lama sehingga waktu penggunaan CPU dapat lebih optimal jika dibandingkan dengan proses penukaran yang terjadi antara memori dan disk.

Teknik swapping roll out, roll in menggunakan algoritma berbasis prioritas dimana ketika proses dengan prioritas lebih tinggi tiba maka memory manager akan mengeluarkan proses dengan prioritas yang lebih rendah serta me-load proses dengan prioritas yang lebih tinggi tersebut. Saat proses dengan prioritas yang lebih tinggi telah selesai dieksekusi maka proses yang memiliki prioritas lebih rendah dapat dimasukkan kembali ke dalam memori dan kembali dieksekusi.

Sebagian besar waktu swapping adalah waktu transfer. Sebagai contoh kita lihat ilustrasi berikut ini: sebuah proses pengguna memiliki ukuran 5 MB, sedangkan tempat penyimpanan sementara yang berupa harddisk memiliki kecepatan transfer data sebesar 20 MB per detiknya. Maka waktu yang dibutuhkan untuk mentransfer proses sebesar 5 MB tersebut dari atau ke dalam memori adalah sebesar 5000 KB / 20000 KBps = 250 ms.

Perhitungan di atas belum termasuk waktu latensi, sehingga jika kita asumsikan waktu latensi sebesar 2 ms maka waktu swap adalah sebesar 252 ms. Oleh karena terdapat dua kejadian dimana satu adalah proses pengeluaran sebuah proses dan satu lagi adalah proses pemasukan proses ke dalam memori, maka total waktu swap menjadi 252 + 252 = 504 ms.

  1. Pencatatan Pemakaian Memori

1. Pencatatan memakai peta bit.

Memori dibagi menjadi unit-unit alokasi,berkorespondensi dengan tiap unit lokasi adalah satu bit pada bit map.

* Nilai 0 pada peta bit berarti unit itu masih bebas.

* Nilai 1 berarti unit digunakan.

Masalah pada peta bit adalah penetapan mengenai ukuran unit lokasi memori, yaitu :

* Unit lokasi memori berukuran kecil berarti membesarkan ukuran peta bit.

* Unit alokasi memori n berukuran besar berarti peta bit kecil tapi memori banyak disiakan pada unit terakhir jika ukuran proses bukan kelipatan unit lokasi.

Keunggulan :

* Dealokasi dapat dilakukan secara mudah, hanya tinggal menset bit yang berkorespondensi dengan unit yang telah tidak digunakan dengan 0.

Kelemahan :

* Harus dilakukan penghitungan blok lubang memori saat unit memori bebas.

* Memerlukan ukutan bit map besar untuk memori yang besar.

2.         Pencatatan memakai senarai berkait.

Sistem operasi mengelola senarai berkait (linked list) untuk segmen-segmen memori yang telah dialokasikan dan bebas. Segmen memori menyatakan  memori untuk proses atau memori yang bebas (lubang). Senarai segmen diurutkan sesuai alamat blok.

Keunggulan :

* Tidak harus dilakukan perhitungan blok lubang memori karena sudah tercatat di node.

* Memori yang diperlukan relatif lebih kecil.

Kelemahan :

* Dealokasi sulit dilakukan karena terjadi berbagai operasi penggabungan node-nude di senarai.

            6.       Monoprogramming

Monoprogramming berarti hanya ada satu proses dalam satu waktu di memori dan sistem operasi. Monoprogramming ciri-ciri berikut :

a)      Hanya terdapat satu proses pada satu saat, sehingga proses baru akan menimpa proses lama yang sudah selesai eksekusi.

b)      Hanya satu proses mengunakan semua memori.

c)      Pemakai memusatkan program keseluruh memori dari disk atau tape.

d)     Program mengambil kendali seluruh mesin.

e)      Karena hanya terdapat satu proses dan menguasai seluruh sistem, maka eksekusi memori     dilakukan secara berurutan.

 

            7.       Pengalokasian Berurutan (Cortigous Allocation)

a. Multiprogramming dengan Partisi Statis

Multiprogramming merupakan banyak proses pada memori utama pada saat bersamaan. Alasan mengunakan multiprogramming :

–          Mempermudah pemogram karena pemrogram dapat memecah program menjadi dua proses atau lebih.

–          Dapat memberi layanan interaktif ke beberapa orang secara simultan.

–          Efisiensi penggunaan sumber daya.

–          Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil.

 –     Dapat mengerjakan sejumlah job secara simultan

Terbagi dua :

  1. Pemartisian menjadi partisi-partisi berukuran sama, yaitu ukuran semua partisi memori adalah sama
  2. Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori adalah berbeda.

 

Pada Multiprogramming memori utama harus mengalokasikan tempat untuk sistem operasi dan beberapa user proses. Memori harus mengakomodasi baik OS dan proses user Memori dibagi menjadi 2 partisi :

›      Untuk OS yang resident

›      Untuk Proses User

Ø  Ada 2 tipe Contiguos Allocation :

›      Single Partition (Partisi Tunggal)

›      Multiple Partition (Partisi Banyak)

Ø  Single Partition (Partisi Tunggal)

›      Pada skema ini, diasumsikan OS ditempatkan di memori rendah, dan proses user dieksekusi di memori tinggi

›      Proteksi dapat dilakukan dengan dengan menggunakan register relokasi dan register limit

›      Register relokasi à berisi nilai dari alamat fisik terkecil

›      Register Limit à berisi jangkauan alamat logika

›      Alamat logika harus lebih kecil dari register limit

 

Ø  Multiple Partition (Partisi Banyak)

›      Ruang kosong à blok memori yang tersedia, ruang kosong dengan berbagai ukuran tersebar pada memori

›      Proses akan dialokasikan memori pada ruang kosong yang cukup besar untuk ditempatinya

›      OS akan mengelola informasi mengenai :

›      Partisi yang dialokasikan

›      Partisi bebas (ruang kosong)

›      Contoh multiple allocation

  1. Multi Programming dengan Partisi Dinamis

Jumlah lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis.

Kelemahan:        

  • Dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai.
  • Merumitkan alokasi dan dealokasi memori

 

8.   Pengalokasian Tak Berurutan ( Non Contagious Allocation)

Program dibagi menjadi beberapa blok atau segmen. Blokblok program ditempatkan di memori dalam potonganpotongan tanpa perlu saling berdekatan. Teknik ini biasa digunakan pada system memori maya sebagai alokasi pagepage dilakukan secara global.

J. Paging

Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia.

K. Segmentasi

Segmentasi adalah skema manajemen memori yang memungkinkan user untuk melihat memori tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap segmen mempunyai nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment number. Segmen dibentuk secara otomatis oleh compiler.

 

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s