Anda di halaman 1dari 9

:: Manajemen Memori

Memori berfungsi sebagai tempat penyimpanan informasi yang harus di atur dan di jaga
sebaik-baiknya. Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk
memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung
sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak dibatasi kapasitas
memori fisik di sistem komputer. Fungsi manajemen memori mempunyai peranan sangat penting
dalam sistem komputer. Fungsi menejemen memori tersebut adalah :
a. Meningkatkan kinerja atau Utilitas CPU.
b. meningkatkan kecepatan akses CPU terhadap data dan instruksi Data dan instruksi dapat
diakses dengan cepat oleh CPU.
c. meningkatkan efisensi pemakaian memori yang terbatas.
d. Meningkatkan efisiensi transfer atau perpindahan data dari atau ke memori utama dan dari
atau ke CPU.
e. Mengelola informasi yang dipakai dan tidak dipakai.
f. Mengalokasikan memori ke proses yang memerlukan.
g. Mendealokasikan memori dari proses telah selesai.
h. Mengelola swapping atau paging antara memori utama dan disk.
Memori adalah array besar dari word atau byte, yang disebut alamat. CPU mengambil
instruksi dari memory berdasarkan nilai dari program 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.

:: Konsep Dasar Manajemen Memori

Manajemen Memori merupakan salah satu bagian terpenting pada sistem operasi. Sejak awal
komputer digunakan untuk keperluan komputasi, kebutuhan akan memori yang lebih besar
dibandingkan dengan keadaan fisik memori di dalam sistem terus meningkat. Berbagai
perhitungan dan strategi terus dilakukan untuk mengatasi keterbatasan ukuran memori fisik.
Sistem operasi memberikan tanggapan terhadap manajemen memori utama untuk aktivitas-
aktivitas sebagai berikut:
a. Menjaga dan memelihara bagian-bagian memori yang sedang digunakan dan dari yang
menggunakan.
b. Memutuskan proses-proses mana saja yang harus dipanggil kememori jika masih ada ruang
di memori.
c. Mengalokasikan dan mendelokasikan ruang memori jika diperlukan

:: Memory Management Unit

Memori merupakan pusat kegiatan pada komputer, sebab setiap proses yang akan dijalankan,
harus melalui memori terlebih dahulu. Sistem Operasi bertugas mengatur proses yang diletakan
pada memori. Memori harus digunakan dengan baik, sehingga dapat menjalankan proses dengan
optimal.
Sebelum masuk ke dalam memori, suatu proses harus menunggu. Hal ini disebut Input
Queue/antrian.
Proses paging alamat terjadi pada saat :
a. Compile Time : proses yang sedang di compile.
b. Load Tima : proses dipanggil.
c. Execution Time : proses di jalankan.
Pada memori terdapat ruang alamat. Ruang alamat ini terbagi 2 yaitu Ruang alamat logika &
fisik :
a. Alamat logika merupakan alamat yang dibentuk di CPU, atau alamat virtual.
b. Alamat fisik merupakan alamat yang terlihat oleh memori.
c. Supaya dapat mengubah dari alamat logika ke fisik di butuhkan MMU (Memori Manajemen
Unit).
d. MMU adalah pusat dari manajemen memori.
Pada komputer tanpa memori logika, alamat langsung diletakan ke bus dan menyebakan
memori fisik alamat itu dapat dibaca / tulis. Pada komputer dengan memori logika, alamat tidak
diletakan langsung ke bus, tetapi harus melewati MMU yang kemudian MMU memetakan
alamat logika ke alamat memori fisik.

:: Strategi Manajemen Memori

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 beberapa keuntungan seperti :

a. 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.
b. Proteksi
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
c. Memory Mapping
Memory mapping digunakan untuk melakukan pemetaan image dan file-file data ke dalam
alamat proses. Pada pemetaan memori, isi dari file akan di link secara langsung ke dalam virtual
address space dari proses.
d. Fair Physical Memory Alocation
Digunakan oleh Manajemen Memori untuk membagi penggunaan memori fisik secara “adil” ke
setiap proses yang berjalan pada sistem.
e. Shared Virtual Memory
Meskipun tiap proses menggunakan address space yang berbeda dari memori maya, ada kalanya
sebuah proses dihadapkan untuk saling berbagi penggunaan memori.
Teknik Manajemen Memori

Teknik manajemen memori (1), (2), (3) dan (4) merupakan pengelolaan dengan kapasitas
memori sebatas memori fisik yang tersedia.. Teknik ini tidak dapat digunakan untuk memuat
program program yang ukurannya lebih besar dari kapasitas fisik memori yang tersedia.
Teknik manajemen memori (5),(6) dan (7) dapat digunakan untuk mengatasi kapasitas
memori yang terbatas , sehingga program yang lebih besar dibandingkan kapasitas memori fisik
tersedia dapat dijalankan.

:: Ruang Alamat Logika dan Fisik ( Logical and Physical Address)

Alamat yang dihasilkan oleh CPU berupa alamat logika, sedangkan yang masuk ke dalam
memori adalah alamat fisik. Pada compile time dan load time, alamat fisik dan logika identik.
Sebaliknya, perbedaan alamat fisik dan logika terjadi pada execution time.
Kumpulan semua alamat logika yang dihasilkan oleh program adalah ruang alamat
logika/ruang alamat virtual. Kumpulan semua alamat fisik yang berkorespondensi dengan alamat
logika disebut ruang alamat fisik. Pada saat program berada di CPU, program tersebut memiliki
alamat logika, kemudian oleh MMU dipetakan menjadi alamat fisik yang akan disimpan di
dalam memori.

Ilustrasinya sebagai berikut, nilai pada register ini akan ditambah dengan setiap alamat yang
dibuat oleh user process yang kemudian dikirim ke memori. Contohnya register relokasi berada
di 14000, alamat logika di 346, maka langsung dipetakan menjadi alamat fisik di 14346.

:: Manajemen Memori Pada Sistem Multiprogamming

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.
Melakukan dua aktivitas :
a. Proteksi memori dengan isolasi ruang-ruang alamat secara disjoint (terpisah).
b. Pemakaian bersama memori.
Memungkinkan proses-proses bekerja sama mengakses daerah memori bersama. Ketika
konsep multiprogramming digunakan, pemakaian CPU dapat ditingkatkan.
MULTIPROGRAMMING pemartisian statis
Terdapat beberapa alasan :
a. Mempermudah pemogram.
Pemrogram dapat memecah program menjadi dua proses atau lebih.
b. Agar dapat memberi layanan interaktif ke beberapa orang secara simultan.
Untuk itu diperlukan kemampuan mempunyai lebih dari satu proses dimemori agar memperoleh
kinerja yang baik.
c. Efisiensi penggunaan sumber daya.
Bila pada multiprogramming maka proses tersebut diblocked (hanya DMA yang bekerja) dan
proses lain mendapat jatah waktu pemroses, maka DMA dapat meningkatkan efisiensi sistem.
d. Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil.
e. Dapat mengerjakan sejumlah job secara simultan.

:: Manajemen Memori Berdasarkan Alokasi Memori

A. Alokasi Berurut (Contiguous)


Memori harus mengakomodasi kebutuhan SO dan proses user. Memori utama biasanya terbagi
dalam dua bagian:
1. Resident operating system, biasanya tersimpan di alamat memori rendah.
2. User proces menggunakan memori beralamat tinggi/besar.
Alokasi berurut terbagi menjadi tiga yakni :
a. Partisi statis
Ciri-ciri dari partisi statis sebagai berikut:
 Memori dibagi menjadi partisi-partisi dengan ukuran yang tetap.
 Satu proses hanya memakai satu partisi. Jika proses sudah selesai, partisi tersebut dapat
digunakan proses yang lain.
3. Dibagi menjadi 2 bagian:
a. Berukuran sama
Banyak kelemahan, antara lain:
 Proses yang ukurannya lebih besar dari ukuran partisi tidak dapat dialokasikan.
 Sebaliknya bila ukuran proses lebih kecil daripada ukuran partisi, maka akan terjadi
pemborosan ruang memori (Fragmentasi internal).
b. Berukuran tidak sama
Untuk mengatasi kelemahan dari Pengalokasian berurut dengan partisi statis dengan ukuran
sama, yaitu proses ukuran kecil diletakkan ke partisi yang kecil dan sebaliknya.
Ada 2 jenis strategi:
1. Satu antrian untuk setiap partisi
Tiap proses diletakkan pada partisi dengan ukuran terkecil yang dapat dimuatnya.
Kelemahan: ada partisi yang memiliki antrian panjang dan ada yang kosong.
2. Satu antrian untuk seluruh partisi
Semua proses dimasukkan pada satu antrian yang sama, Algoritma penjadwalan melakukan
pemilihan partisi
Kelemahan: jika proses yang berukuran kecil terpaksa masuk ke partisi sisa yang besar, sehingga
terjadi pemborosan ruang.
B. Partisi Dinamis

Ciri-ciri:
1. Pada kondisi awal, memori tidak dibagi menjadi partisi-partisi
2. Pemartisian dilakukan pada saat image proses akan disalin ke memori utama.
3. Ukuran partisi yang dialokasikan akan disesuaikan dengan ukuran image proses.
4. Partisi akan dibebaskan jika program sudah selesai.
5. Keuntungan : tidak terjadi fragmentasi internal alokasi memori disesuaikan dengan besarnya
image proses.

Cara kerja:
a. Pengalokasian dilakukan dengan mencari hole à suatu ruang memori utama yang kosong,
yang cukup besar untuk menampung image proses.
b. Hole sisa kadang kala terlalu kecil untuk dapat dialokasikan ke proses lainnya sehingga
tidak bisa digunakan lagi à fragmentasi eksternal.
c. Salah satu cara untuk mengatasi masalah ini adalah melakukan memory compaction.
Yaitu: menggeser image proses-proses yang ada di memori sehingga hole terkumpul di satu
tempat saja
Kelemahan:
a. Proses alokasi dan dealokasi menjadi lebih rumit
b. Perlu pengelolaan informasi area memori yang masih kosong.
Ada 2 metode pengelolaan memori kosong:
1. Peta bit (bitmap)
 Menggunakan area memori khusus untuk mencatat seluruh area kosong pada memori utama.
 Memakai nilai 0 dan 1
 Nilai 0 à alamat memori tersebut masih kosong
 Nilai 1 à alamat memori tersebut sudah terisi
2. Linked list
 Informasi mengenai hole kosong berikutnya dicatat pada hole kosong sebelumnya.
  Tidak diperlukan area memori khusus. Karena seluruh informasi tercatat di area memori
kosong itu sendiri sehingga menghemat kapasitas memori utama.
Diperlukan algoritma untuk menentukan hole mana yang akan dialokasikan ke suatu
proses.
A. Algoritma Best-fit
 Mencari memori blok yang paling kecil yang dapat menampung image proses
 Memerlukan waktu lama karena harus searching seluruh blok memori utama
 Fragmentasi eksternal dapat ditekan sekecil mungkin
B. Algoritma First-fit
 Mencari memori kosong dari alamat awal sampai menemukan blok yang dapat menampung
image proses
 Sederhana dan cepat.
C. Algoritma Next-fit
 Hampir sama dengan First-fit.
 Bedanya: proses searching dimulai dari alamat alokasi terakhir
D. Algoritma Worst-fit
 Mencari hole yang paling besar di seluruh area memori utama.
 Tujuannya: hole sisa yang tercipta setelah alokasi masih cukup besar untuk dialokasikan ke
proses lainnya.
3. Sistem Buddy
 Berupa pemartisian secara dinamis
 Ciri khusus adalah partisi yang terbentuk senantiasa berukuran besar sebesar
bilangan 2n 2,4,8,16…..256,512,1024(1Mb)
Alokasi memori pada sistem buddy:
a. Menentukan ukuran partisi
 Ditentukan ukuran partisi untuk menampung image proses yaitu ukuran bilangan pangkat 2
terkecil
 Misal : ukuran image proses = 12kb, maka ukuran partisi yang bisa digunakan adalah 16kb.
b. Pengalokasian
 Selanjutnya adalah mencari hole yang ukurannya sebesar perhitungan.
 Jika tidak ada maka dicarikan hole yang berukuran sedikit lebih besar. Kemudian dipecah
secara bertahap sesuai dengan aturan bilangan pangkat 2.
 Misal : ukuran image proses = 12kb dan hole yang paling kecil adalah 64kb.
o maka dipecah menjadi 2 partisi 32kb, selanjutnya dipecah lagi menjadi 2 partisi 16kb.
o dan partisi 16kb pertama yang bisa dipakai untuk image proses 12kb.

:: Kebutuhan Manajemen Memori

Management memory adalah cara untuk memanage/mengatur memori komputer. Dalam


pengertiannya adalah mengalokasikan memori sesuai dengan porsi yg kita inginkan dan
menghapusnya/membuangnya jika tidak lagi kita butuhkan. Dalam computer system memanage
memori utama adalah hal yg paling penting.
Sistem memori virtual akan memisahkan alamat memori yg digunakan oleh sebuah proses
dari alamat fisik yg aslinya, sehingga proses ini meningkatkan jumlah RAM secara efektif.
Kualitas mengatur/memanage memori virtual berdampak besar secara keseluruhan kepada
kinerja sistem computer tersebut.

Kebutuhan-kebutuhan manajemen memori :


1) Relokasi : dalam sebuah sistem dg memori virtual biasanya program2 yg ada dalam memori
harus dapat berada dibagian memori yg berbeda pd waktu yg berbeda pula. Hal ini terjadi karena
ketika program bertukar kembali kedalam memori setelah bertukar keluar untuk sementara
waktu tdk dpt berada dilokasi yg sama. Untuk itulah memori manajemen itu harus dapat
merelokasi program di memori dan memori harus dapat menangani referensi dalam kode
program sehingga program dpt menunjuk dg tepat lokasi dlm memori.
2) Proteksi/Perlindungan adalah tidak bisa dijalankannya suatu proses karena tidak adanya izin
utk menjalankan proses. Hal ini terjadi utk mencegah kesalahan pemakain kode yg berbahaya
atau untuk menghindari campur tangan dari pihak lain yg tidak berwenang dlm hal tsb.
3) Bagi pakai : dalam hal ini meskipun tiap memori memiliki perlindungan yg berbeda tapi
dalam proses yang berbeda harus dapat berbagi informasi karena merupakan satu kesatuan
memori.
4) Organisasi secara logik adalah program yg sering digunakan/diselenggarakan dalam modul.
Beberapa diantaranya bisa digunakan secara bersama-sama meskipun dg program yg berbeda,
beberapa yg lain ada yg hanya membaca dan hanya berisi data yg dapat diubah. Manajemen
memori lah yg bertanggung jawab utk menangani hal ini dari ruang alamat fisik linear dg cara
segmentasi sebagai salah satu caranya.

5) Organisasi secara fisik. Dalam hal ini biasanya memori dibagi menjadi dua yaitu :
 Memori utama
 Memori sekunder.

:: Partitioning

Partitioning adalah teknik membagi memori menjadi beberapa bagian sesuai dengan kebutuhan.
Sistem operasi akan menempati bagian memori yang tetap.
Ada dua cara dalam pempartisian, yaitu :
A. Pemartisian Statis
Pemartisian Statis adalah pemartisian memori menjadi partisi tetap yang mana proses-proses
akan ditempatkan pada memori yang telah dipartisi tersebut.
B. Pemartisian Dinamis
Dengan menggunkan partisi statis menyebabkan memori terlalu banyak diboroskan dengan
proses-proses yang lebih kecil dibanding partisi yang ditempatinya. Namun apabila
menggunakanpartisi dinamis maka jumlah, lokasi, dan ukuran proses di memori dapat beragam
sepanjang waktu secara dinamis. proses yang akan masuk ke memori segera dibuatkan partisi
untuknya sesuai kebutuhannya. Teknik ini meningkatkan utilitas memori.

:: Swapping

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.

Pada teknik swapping,terbagi atas :


1. Swap-In
Memasukan program dari logical ke physical memori (dari breaking storage ke memori).
2. Swap-Out
Mengeluarkan program dari memori ke breaking storage karena sudah penuh.
Manajemen Memori tanpa Swepping

Manajemen Memori tanpa swapping adalah manajemen memori tanpa pemindahan proses antara
memori utama dan disk selama eksekusi terdiri dari :
- Monoprogramming
- Multiprogramming dengan pemartisian statis

a. Monoprogramming
Merupakan manajemen memori paling sederhana. Sstem komputer hanya mengijinkan 1
program/pemakai berjalan pada 1 waktu. Semua sumber daya sepenuhnya dikuasai proses yang\
sedang berjalan.
Ciri-ciri manajemen memori monoprogramming :
1) hanya 1 proses pada 1 saat
2) hanya 1 proses menggunakan semua memori
3) pemakai memuatkan program ke seluruh memori dari disk / tape
4) program mengambil kendali seluruh mesin
Karena hanya terdapat 1 proses dan menguasai seluruh sistem maka alokasi memori dilakukan
secara berurutan.

b. Multiprogramming dengan pemartisian statis


Multiprogramming adalah banyak proses pada memori utama pada saat bersamaan.
Alasan menggunakan multiprogramming :
1) mempermudah pemrogram karena pemrogram dapat memecah program menjadi 2
proses/lebih
2) agar dapat memberi layanan interaktif ke beberapa orang secara simultan
3) efisiensi penggunaan sumber daya
4) eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil
5) dapat mengerjakan sejumlah job secara simultan

Manajemen Memori dengan Swepping

Merupakan manajemen memori dengan pemindahan proses antara memori utama dan disk
selama eksekusi. Diterapkan pada multiprogramming dengan pemartisian dinamis. Partisi
dinamis partisi statis menyebabkan memori terlalu banyak diboroskan dengan proses-proses
yang lebih kecil dibanding partisi yang ditempatinya. Dengan partisi dinamis maka jumlah,
lokasi, dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis. proses
yang akan masuk ke memori segera dibuatkan partisi untuknya sesuai kebutuhannya. Teknik ini
meningkatkan utilitas memori.
Masalah lain pada partisi dinamis adalah proses dapat tumbuh berkembang. Solusinya adalah
bila proses bersebelahan dengan lubang memori tak dipakai, proses tumbuh memakai lubang itu.
Masalah menjadi lebih parah bila proses bersebelahan dengan proses-proses lain. Alternatif
penyelesaian :
- bila masih terdapat lubang besar yang dapat memuat proses, maka proses dipindah ke
lubang memori yang dapat memuat
- 1 proses atau lebih diswap ke disk agar memberi lubang cukup besar untuk proses yang
berkembang
- jika proses tidak dapat tumbuh di memori dan daerah swap di disk telah penuh,proses harus
menunggu/disingkirkan.

Paging

Salah satu cara mengatasi external fragmentation(munculnya lubang-lubang yang tidak cukup
besar untuk menampung permintaan dari proses). adalah membentuk teknik pengalokasian non-
contigous(tidak berurutan). Paging adalah teknik yang berorientasi hardware untuk mengelola
memori fisik. Paging digunakan agar program yang besar dapat berjalan pada komputer yang
mempunyai memori fisik yang kecil. Dalam sistem paging, hardware memori virtual membagi
alamat logis menjadi dua bagian, yaitu virtual page number atau disebut juga page number dan
word offset dalam page. Hardware melakukan pembagian ini dengan menyekat atau memisahkan
bit alamat, yaitu bit high order menjadi page number dan bit low order menjadi offset. Unit
memori yang menyimpan page disebut page frame ( kerangka frame ), atau kadang disebut
block, untuk membedakan mereka dengan page virtual. Untuk sistem yang baru, page mframe
mempunyai jangkauan 512 sampai 4096 byte.

Sebagai bagian dari peta page, sistem pengoperasian memelihara atau mengelola page tabel
yang menyimpan berbagai bagian informasi mengenai page program. Page tabel terdiri atas
sejumlah page tabel entries, dan setiap page tabel entries menyimpan informasi mengenai page
tertentu. Virtual page number berfungsi sebagai offset terhadap page table.

Strategi Penempatan Program ke Partisi

Strategi penempatan pada pemartisian menjadi partisi-partisi berukuran sama.


Penempatan proses ke memori dilakukan secara mudah karena dapat dipilih sembarang partisi
yang kosong.
Strategi penempatan pada pemartisian menjadi partisi-partisi berukuran beda.
Terdapat dua strategi penempatan program ke partisi, yaitu :
1. Satu antrian untuk tiap partisi
2. Satu antrian untuk seluruh partisi