Manajemen Memory


Managemen Memory



Memori adalah pusat dari operasi pada sistem computer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga dengan sebaik-baiknya. Memori adalah array besar dari word atau byte, yang disebut alamat. CPU mengambil instruksi dari memory berdasarkan nilai counter.
Sedangkan, Manajemen memori adalah suatu kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses. Kebutuhan utama manajemen memori adalah untuk menyediakan cara untuk secara dinamis mengalokasikan bagian-bagian dari memori untuk program atas permintaan mereka, dan membebaskan untuk digunakan kembali ketika tidak lagi diperlukan.
Ini sangat penting untuk setiap sistem komputer canggih di mana lebih dari satu proses mungkin berlangsung setiap saat.

·         Suatu kegiatan untuk mengelola memori komputer.
·         Proses ini menyediakan cara mengalokasikan memori untuk proses.
·         Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses.

Manajemen memori sangat mempengaruhi kinerja komputer. Manajemen memori melakukan tugas penting dan kompleks berkaitan dengan:
Ø  Memori utama sebagai sumber daya yang harus dialokasikan dan dipakai bersama diantara sejumlah proses yang aktif. Agar dapat memanfaatkan pemroses dan fasilitas masukan/keluaran secara efisien, maka diinginkan memori yang dapat menampung sebanyak mungkin proses.
Ø  Upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di system komputer.

Entitas Memori sendiri ada 4 macam :
1.     Used-RAM : RAM yang terpakai.
2.  Cached-RAM : RAM yang dipakai sebagai tempat simpan sementara untuk aplikasi jika dieksekusi kembali.
3.     Free-RAM : RAM yang tidak terpakai.
4.     Swap : memori tambahan menggunakan harddisk.


Pemetaan file diperlukan karena file dipetakan secara teratur sehingga bisa mendapatkan akses ke sumber daya dan metadata dari dalam memori.



Terdapat 2 (dua) manajemen memori, yaitu :
·        Manajeman memori statis
Dengan pemartisian statis, jumlah, lokasi dan ukuran proses dimemori tidak beragam sepanjang waktu secara tetap.
·        Manajemen memori dinamis
Dengan pemartisian dinamis , jumlah, lokasi dan ukuran proses dimemori dapat beragam sepanjang waktu secara dinamis.

ü  Manajemen Memory dengan Swaping
adalah manajemen memori dengan kemampuan memindahkan citra proses antara memori utama dan harddisk selama eksekusi.
Contoh Swapping
·         Ketika waktu kuantum habis, pengatur memori akan menukar proses yang telah selesai dan memasukkan proses yang lain ke dalam memori yang sudah bebas.
·         Swapping dapat juga terdapat dalam penjadwalan berbasis prioritas (priority scheduling).

ü  Manajemen Memory tanpa Swaping
adalah manajemen memori tanpa kemampuan memindahkan citra proses antara memori utama dan harddisk selama eksekusi.
1.      Manajemen memori untuk monoprogramming
o   Hanya ada satu proses pada satu saat
o   Hanya satu proses menggunakan semua memori
o   Pemakai memuatkan program ke seluruh memori dari disk
o   Program mengambil kendali seluruh mesin
2.      Manajemen memori untuk multiprogramming dengan pemartisan statis
o   Mempermudah pemrogram
o   Dapat memberi layanan interaktif ke beberapa user secara simultan
o   Efisiensi penggunaan sumber daya
o   Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses

o   Dapat mengerjakan sejumlah proses secara simultan


Manajemen Memori Berdasarkan Alokasi memori :
Terdapat 2 (dua) cara menempatkan informasi ke dalam memori kerja, yaitu:
a)      Alokasi Memori Berurutan (Contiguous Allocation)
Pada alokasi memori berurutan, setiap proses menempati satu blok tunggal lokasi memori yang berurutan.
Kelebihan :
o   Sederhana dan tidak ada rongga memory bersebaran
o   Proses berurutan dapat dieksekusi secara cepat.
Kekurangan :
o   Memori boros dan tidak dapat disisip apabila tidak ada satu blok memori yang mencukupi

b)      Alokasi Memori Tak Berurutan (Non Contiguous Allocation)
Program/proses ditempatkan pada beberapa segmen berserakan, tidak perlu saling berdekatan atau berurutan. Biasanya digunakan untuk lokasi memori maya sebagai lokasi page-page.
Kelebihan :
o   sistem dapat memanfaatkan memori utama secara lebih efesien
o   sistem opersi masih dapat menyisip proses bila jumlah lubang-lubang memori cukup untuk memuat proses yang akan dieksekusi.
Kekurangan :
o   memerlukan pengendalian yang lebih rumit dan memori jadi banyak yang berserakan tidak terpakai.


Fungsi Manajemen Memori :
1.     Utilitas CPU meningkat.
2.     Data dan instruksi dapat diakses dengan cepat oleh CPU.
3.     Tercapai efisiensi dalam pemakaian memori yang terbatas.
4.     Transfer data dari/ke memori utama ke/dari CPU dapat lebih efisien.
5.     Mengelola informasi yang dipakai dan tidak dipakai.
6.     Mengalokasikan memori ke proses yang memerlukan.
7.     Mendealokasikan memori dari proses telah selesai.
8.     Mengelola swapping atau paging antara memori utama dan disk.

Partisi Memori
Partisi memori adalah pembagian harddisk menjadi beberapa bagian yang digunakan untuk mempermudah manajemen file.

Terdapat 2 jenis partisi memori, yaitu :
1.     FixedPartitioning
Ciri-ciri :
·        Pembagian memori ditentukan di awal dan tidak dapat dirubah
·        Ukuran partisi bisa sama (equal-size) atau berbeda (unequal-size)
Kesulitan yang dihadapi :
·        Ukuran program > ukuran partisi
·        Penggunaan memori yang tidak efisien
·        Internal Fragmentation
Contoh OS yang menggunakan : IBM OS/MFT (Multiprogramming with a Fixed Number of Tasks)
2.     Dynamic Partitioning
Dalam dynamic memory partitioning, memori dipartisi menjadi bagian-bagian dengan jumlah dan besar yang tidak tentu.
Ciri-ciri :
·        Alokasi memori ditentukan saat runtime
·        Setiap proses diberikan alokasi sesuai yang dibutuhkan
Kesulitan yang dihadapi :
·        External Fragmentation
·        Ruang kosong di memori banyak, tetapi terbagi-bag

Syarat Pengelolaan Memori :
Ø  Relokasi
Prosesor dan sistem operasi harus dapat mentransfer memory referensi ( dalam bentuk kode program ) ke alamat fisik yang mengalokasikan program dalam memory utama.
Ø  Proteksi
User tidak boleh mengakses beberapa bagian dari wilayah sistem operasi.
Ø  Sharing
Memory skunder pada manajemen memory dapat mengontrol sharing area pada memory utama.
Ø  Organisasi Logika
Sistem oerasi dan hardware berusaha untuk dapat berhubungan dengan user program dalamsatu modul.
Ø  Organisasi Fisik
Harus ada pengaturan yang jelas antara memory utama dngan memory skunder pada Longterm scheduling.


Manajemen Memory pada Windows


Sistem Operasi memiliki memori fisik dan virtual yang dibutuhkan oleh proses sebuah program atau lebih (multitasking).
Proses adalah sebuah program yang sedang dieksekusi, sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya.
Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkatperangkat I/O
Memory yang dapat dibuat oleh user (pengguna komputer), yang digunakan oleh aplikasi untuk menggunakan sebagian dari memori sekunder seolah-olah menggunakannya sebagai RAM fisik.Semua sistem operasi membutuhkan Virtual Memory, yang merupakan kombinasi dari RAM dan sebagian hard drive.
Bagian ini biasanya disebut Swap File, Paging File, atau Pagefile.

Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan.
Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya.
Ketika RAM tidak cukup untuk kebutuhan komputer, Windows menggunakan Swap File secara sementara untuk menyimpan file-file, kemudian memindahkannya kembali pada RAM saat dibutuhkan.
Memori virtual ini juga dapat dianggap sebagai ekstensi dari memori fisik dari sebuah komputer.

Virtual Memory merupakan sebuah memory cadangan dari sebuah memory fisik yang berfungsi untuk menyimpan data sementara dari sebuah proses kerja suatu sistem, mekanisme ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan swap file, page file atau swap partition.

Keuntungan Memory Virtual
Keuntungan dari menggunakan Virtual Memory ini antara lain :
1.      Lalu lintas proses input dan output akan menjadi lebih rendah, sehingga proses lebih cepat
2.      Penggunaan memory fisik akan lebih sedikit
3.      Tidak akan terjadi deadlock (error system)
4.      Dapat menambah jumlah user yang akan ditangani
5.      Memory Virtual dapat diset melebihi kapasitas memory fisik
Virtual Memory selalu dimiliki oleh sebuah sistem operasi untuk mencegah terjadinya deadlock antar aplikasi maupun sistem itu sendiri.


Pada Windows, kita bisa memajemen memory dengan memantau proses pada aplikasi bawaan windows sendiri, Task Manager.
Kita dapat memanggil task manager melalui beberapa cara :
1.      Melalui Ctrl + Shift + Esc
2.      Melalui Ctrl + Alt + Del dan pilih Start Task Manager
3.      Melalui Klik kanan pada task bar dan pilih Start Task Manager





Manajemen Memory pada Linux
Linux adalah sebuah system operasi yang bersifat bebas untuk di gunakan pada computer pribadi (PC) dan juga pada perangkat keras lain.
Sebenarnya linux hanya sebuah kernel. Namun dengan pengembangan aplikasi yang dilakukan oleh Free Software Fondation Linux kini menjadi GNU. Kernel adalah komponen inti pada sistem operasi yang berfungsi sebagai pengatur sumber daya system pada komputer. Yang di atur oleh kernel antara lain adalah memori. Kernel memiliki akses penuh ke memori sistem dan harus memberikan ijin kepada proses-proses untuk mengakses memori secara aman.

Manajemen memori dilinux, dibagi dua komponen :
·         Alokasi page dan pengosongan memori fisik
·         Memori Virtual ->pemetaan virtual address

Memori Fisik dan Memori Virtual


Memori Fisik
Memori fisik dibagi dalam tiga wilayah :

·         ZONE_DMA : digunakan legacy device (e.g ISA) untuk mengakses memori secara langsung (e.g: transfer data (DMA))
·         ZONE_NORMAL : digunakan DMA bila ZONE_DMA tidak ada
·         ZONE_HIGHMEM : alokasi sistem (page cache, buffer filesystem, dan lain-lain), jarang digunakan
Untuk mengefisienkan ruang alamat pada memori fisik. Oleh karena itu, digunakanlah dua macam teknik alokasi :
Alokasi Halaman (Page Allocation)


Alokasi Slab (Slab Allocation)

Karena memori fisik lebih sedikit dibanding memori maya, maka sistem hanya memuatkan page-page maya yang saat itu sedang digunakan proses. Linux memuatkan page maya begitu diperlukan. Teknik ini disebut dengan demand paging.
Saat pemroses berusaha mengakses alamat maya yang tidak di memori fisik, pemroses tidak dapat menemukan isian di tabel page maya.

Pemroses menerbitkan page fault pada saat :
·         Jika alamat maya yang dituju tak absah (yaitu proses berusaha mengakses alamat maya yang tidak dibolehkan), maka sistem operasi mengakhiri proses itu untuk memproteksi proses-proses lain.
·         Jika alamat maya yang dituju absah tapi tidak sedang di memori fisik, maka system operasi harus membawa page ke memori dari disk. Pengaksesan disk memerlukanwaktu lama.
·         Jika terdapat proses lain yang dapat dijalankan, maka sistem operasi memilih proses lain untuk dijalankan. Proses dimulai kembali di instruksi dimana page fault terjadi. Pemroses dapat memetakan memori maya ke memori fisik saat dilakukan pengaksesan memori maya, sehingga proses terus berjalan. Jika tidak terdapat memori bebas, sistem operasi harus membuat ruang bagi page yang akan dimasukkan dengan membuang page lain dari memori.

Memori Virtual
Linux memanfaatkan memori virtual untuk mendukung kinerja sistem. Sebagai sistem operasi multiprogramming, memori virtual dapat meningkatkan efisiensi sistem.
·         Mengatur ruang alamat supaya dapat dilihat oleh setiap proses
·         Membentuk halaman-halaman yang dibutuhkan
·         Mengatur lokasi halama-halaman tersebut dari disk ke momori fisik atau sebaliknya, yang disebut dengan sawpping.

Sistem memori virtual Linux juga mengatur dua view yang erkaitan dengan ruang alamat :
1.      Logical View
Yaitu mendeskripsikan instruksi-instruksi yang diterima oleh sistem memori virtual mengenai susnan ruang alamat.
2.      Physical View
Yaitu berupa entri-entri tabel halaman, dimana entri-entrynya akan menetukan apakah halaman itu berada di memori fisik yang sedang dipakai untuk proses atau masih berada di disk yang berarti belum dipakai.

Blok pada Memori Virtual
Blok memori virtual, dalam linux memiliki karakteristik :
·         Backing Strore untuk Blok
·         Reaksi Blok dalam melakukan Write

Swapping
Keterbatasan memori fisik mengharuskan Linux mengatur halaman-halaman mana saja yang harus diletakan didalam memori fisik atau swap-out. Paging system dari memori virtual dapat dibagi menjadi dua :
·         The pageout-policy algorithm
·         The paging mechanism

Pemetaan memori
Pada Linux, binary loader tidak perlu meload berkas biner kemomori fisik, melainkan dengan cara memetakan halaman dari binary file ke region dari memory virtual. Sehingga hanya ketika program mengakses halaman tertentu akan menyebabkan page fault yang mengakibatkan halaman yang dibutuhkan di-load kememori fisik.

Link Statis dan Dinamis
Ketika program di-load dan sudah mulai dieksekusi, semua berkas biner yang dibutuhkan telah di-load keruang alamat virtual.
Meskipun demikian, sebagian program juga butuh menjalankan fungsi yang terdapat disistem pustaka seperti algoritma sorting, fungsi-fungsi aritmatika dan lain-lainnya. Untuk mendapatkan fungsi-fungsi yang terdapat di sistem pustaka ada dua cara, yaitu :
1.      Link Statis
Aplikasi dikatakan dikompilasi statis apabila pustaka-pustaka yang dibutuhkan dikompilasi ke dalam binary application. Denga  demikian, aplikasi tidak lagi membutuhkan pustaka tambahan.
2.      Link Dinamis
Pada dasarnya link dinamis merupakan suatu metode penghubung antara program denga suatu sistem pustaka secara dinamis dengan cara menghubungkan routine-routine yang ada ked lam sistem pustaka.

Linux memanfaatkan virtual memori untuk mendukung kinerja sistem. Sebagai sistem operasi multiprogramming, virtual memori dapat meningkatkan efisisensi sistem. Sambil proses menunggu bagiannya diswap masuk ke memori, menunggu selesainya operasi masukan/keluaran dan proses diblocked. Jatah waktu pemroses dapat diberikan ke proses-proses lain.

Manajemen memori Linux menyediakan:
1.      Ruang alamat besar
Ruang alamat dapat lebih besar dibanding memori fisik yang tersedia
2.      Proteksi
Tiap proses di sistem mempunyai ruang alamat maya tersendiri. Ruang-ruang alamat maya itu sepenuhnya terpisah. Proses yang berjalan di satu aplikasi tidak dapat mengganggu proses lainnya.
3.      Pemetaan memori
Dilakukan pemetaan antara memori maya ke memori fisik yang tersedia.
4.      Memori maya bersama (shared virtual memory)
Memori maya bersama ini untuk menghemat ruang memori, seperti pustaka dinamis bagi beberapa proses.

Linux menempatkan proses pada memori yang dibagi menjadi sejumlah partisi. Pemartisian ini bersifat dinamis maka jumlah, lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis. Proses yang akan masuk ke memori segera dibuatkan partisi sesuai kebutuhan.
Linux menciptakan ruang disk tempat swap terlebih dahulu, saat proses diciptakan, ruang swap pada disk dialokasikan.
Ketika proses harus dikeluarkan dari memori utama, proses selalu ditempatkan ke ruang yang telah dialokasikan, bukan ke tempat-tempat berbeda setiap kali terjadi swap-out. Ketika proses berakhir, ruang swap pada disk didealokasikan.


Nah terakhir dari pembahasan kali ini, Jadi Kesimpulannya..
Memori adalah pusat dari operasi pada sistem computer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga dengan sebaik-baiknya.
Sedangkan, Manajemen memori adalah suatu kegiatan umtuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses.
Manajemen memori melakukan tugas penting dan kompleks berkaitan dengan:
·        Memori utama sebagai sumber daya yang harus dialokasikan dan dipakai bersama diantara sejumlah proses yang aktif.
·        Upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di system komputer.

Konsep dasar Manajemen Memori pada System Operasi yaitu :
Ø       meningkatkan utilitas CPU yang sebesar-besarnya
Ø      data dan instruksi dapat di akses dengan cepat oleh CPU
Ø memori utama memiliki kapasitas yang sangat terbatas, sehingga pemakaiannya harus seefisien mungkin dan transfer data dari memori

Komponen-komponen yang terdapat dalam Manajemen Memori pada System Operasi yaitu :
Ruang alamat Virtual dan Fisik, Swapping, pemetaan memori, Link Statis dan Dinamis, Multiprogramming, Monoprograming, pengalokasian berurutan, dan pengalokasian tak berurutan.

Nah manajemen memori yang saya bahas disini terbagi 2, yaitu :
Manajemen memori pada Windows dan Manajemen memori pada Linux

Posting Komentar

0 Komentar