Manajemen memori melakukan tugas penting dan kompleks berkaitan dengan hal–hal
berikut :
Memori utama sebagai sumber daya yang harus diaolakasikan dan dipakai bersama
diantara sejumlah proses yang aktif . Agar dapat memanfaatkan pemproses dan
fasilitas masukan / keluaran secara efisien maka diinginkan memori dapat
menanpung proses lebih banyak
Mengupakayakan agar pemprogram atau proses tidak dibatasi kapasitas memori
fisik disistem komputer.
Mengelola informasi mengenai memori yang dipakai dan tidak dipakai sistem
Mengalokasikan memori ke proses yang memerlukan
Mendealokasikan memori dari proses yang memerlukan
Mengelola swapping antara memori utama dan hardisk
Dengan keberadaan banyak ruang alamat milik prose-proses dimemori utama secara
bersama maka sistem operasi harus mampu mendukung dua kebutuhan yang saling
bertentangan, yaitu :
Klasifikasi manajemen memori diberikan Deitel [ DEI-90]. Gambar 8-1 menunjukan skema
klasifikasi manajemen memori.
Nyata Nyata Maya
1
Sistem Sistem
Khusus multiprogramming Sistem multiprogramming
Untuk dengan memory dengan memori maya
pemakai nyala
tunggal
Multiprogramming (4) (5) (6) (7)
dengan pemartisian Multiprograming sistem paging sistem paging Sistem
tetap Dengan murni murni segmentasi
pemartisian murni
Dinamis
(2) (3)
Di tempatkan Dapat di relokasi
secara absolut
Teknik-teknik manajemen memori (1) , (2) , (3) , (4) merupakan pengelolaan untuk kapasitas
memori sebatas memori fisik yang tersedia . Teknik- teknik ini tidak dapat digunakan untuk
membuat program-program yang berukuran lebih besar dibanding kapasitas fisik memori
yang tersedia.
Teknik-teknik manajemen memori (5) , (7) dapat digunakan untuk mengakali kapasitas
memori yang terbatas sehingga dapat dijalankan program yang ukuran nya lebih besar dari
kapasitas memori fisik yang tersedia.
Alokasi memori secara berturutan ( contigous storage allocation ) adalah masing – masing
proses menempati satu blok tunggal lokasi memori yang bertururan.
Keunggulan
Sederhana
Tidak akan terbentuk lubang-lubang memori besebaran
Karena beruturan , proses dapat dieksekusi dengan cepat
Kelemahan
Program dibagi menjadi beberapi blok atau segmen. Blok- Blok program ditempatkan
dimemori dalam potongan-potongan tanpa perlu saling berdekatan . teknik ini biasa
digunakan pada sistem memori maya sebagai alokasi page – page dilakukan secara global.
Keunggulan
Kelemahan
Gambar 8-2 Hubungan chace memori , memori utama dan memori sekunder
Pemakaian memori dua tingkat misalnya chace memori dapat meningkatkan kinerja dan
utilisasi memori secara dramatis. Chace memory merupakan penyimpan berkecepatan
tinggi yang lebih cepat dibanding memory utama. Chace memori lebih mahal dibanding
memori utama sehingga kapasitas chace memory ralatif kecil.
Pengunaan chace memori atau memori antara yang lebih cepat mempunyai alasan yang di
kemukakan oleh Denning yaitu eksekusi program pada suatu interval waktu tertentu
biasanya mengumpul disatu lokasi kecil. Prinsip ini disebut prinsip lokalitas. Lokalitas dapat
berupa lokalitas waktu dan lokalitas ruang. Prinsip lokalitas berkembang menjadi konsep
working set model.
8.3.1 Monoprogramming
1. Gambar 8-3 (A) menunjukan seluruh kebutuhan (sistem operasi , device driver dan
proses pemakai di RAM )
2. Gambar 8-3 ( B ) menunjukan sistem operasi ditempatkan di ROM , sedang program
pemakai di RAM
3. Gambar 8-3 ( C ) menunjukan device driver di ROM. Device driver berada di ROM. ROM
yang membuat device driver semacam ini biasa nya disebut ROM - BIOS ( ready only
memori – basic input output system )
Teknik Monoprogramming masih dapat dipakai untuk sistem kecil yaitu sistem
tempelean ( embededded system ) yang menempel atau terdapat di sistem lain. Sistem
tempelan telah banyak digunakan , misalnya sistem tempelan di mobil antara lain untuk
fungsi – funsi sebagai berikut :
Pengendalian pengapian
Pengendalian pengeluaran bahan bakar
Pengendalian pengereman
Pengendalian suspensi
Pengendalian kemudi
Dan sebagainya
Pada mobil mewah modern terdapat lebih dari 50 mikroprosesor , masing masing
mikroprosesor mengendalikan satu fungsi spesifik.
Masalah proteksi di monoprogramming adalah cara memproteksi rutin- rutin sistem operasi
dari penghancuran program pemakai. Program pemakai dapat saja tersesat sehingga
memanipulasi atau menempati ruang memori yang seharusnya hanya ditempati rutin-rutin
sistem operasi. Sistem operasi harus diproteksi dari modifikasi oleh program pemakai.
Proteksi ini diimplementasikan menggunakan satu register batas ( Boundary Register ).
Register batas berisi alamat memori tertinggi yang dipakai sistem operasi. Jika program
pemakai mencoba memasuki sistem operasi, intruksi di intersep dan proses diakhiri dan
diberi pesan kesalahan. Untuk menggunakan perangkat masukan / keluaran , proses tidak
bisa langsung menggunakannya di programnya . Pemakaian perangkat masukan / keluaran
merupakan wewenang sistem operasi , dilakukan pada mode kernel .
Gambar 8-4 menunjukan skema proteksi menggunakan register batas. Register batas
menunjukan alamat terakhir yang digunakan sistem operasi. Bila program pemakai mengacu
ke alamat yang merupakan daerah sistem operasi , maka pemproses melakukan fault untuk
menyatakan terjadi nya pelanggaran pengaksesan oleh proses pemakai.
Mempermudah pemprogram
Agar dapat memberi layanan interaktif ke beberapa orang secara simultam
Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil
Efisiensi penggunaan sumber daya
Dapat mengerjakan sejumlah proses secara simultan
Mempermudah Pemprogram
Untuk itu diperlukan kemampuan mempunyai lebih dari satu proses di memori agar
memperoleh kenerja yang baik.
Apabila pada multiprogramming maka proses tersebut menjadi Blocked ( hanya DMA yang
berkerja ) dan proses lain mendapat jatah waktu pemproses maka DMA dapat
meningkatkan efisiensi sistem.
Pemartisian statis berdasarkan ukuran partisi partisinya terbagi dua, yaitu :
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
Beberapa proses yang ukurannya kurang atau sama dengan ukuran partisi dimasukan ke
sembarang partisi yang tersedia.
Kelemahan
Bila program ukurannya lebih besar dibanding partisi yang tersedia maka tidak dapat
dimuatkan , tidak dapat dijalankan. Pemprogram harus mempersiapkan overlay
sehingga hanya bagian program yang benar-benar dieksekusi yang dimasukan ke
memori utama dan saling bergantian. Untuk overlay diperlukan sistem operasi yang
mendukung swapping.
Untuk program yang sangat kecil dibanding ukuran partisi yang ditetapkan maka
banyak ruang yang tidak dipakai yang diboroskan, disebut fragmentasi internal.
1. Satu antrian untuk tiap partisi ( banyak antrian untuk seluruh partisi )
2. Satu antrian untuk seluruh partisi
Satu antrian untuk tiap partisi ( banyak antrian untuk seluruh partisi )
Keuntungan
Kelemahan
Dapat terjadi antrian panjang disuatu partisi sementara antrian partisi-partisi lain
kosong.
Proses segera ditempatkan dipartisi paling kecil sedang bebas yang dapat memuat.
Keunggulan
Lebih fleksibel serta implementasi dan operasi lebih optimal karena hanya mengelola satu
antrian.
Kelemahan
Proses dapat ditempatkan di partisi yang banyak diboroskan , yairu proses kecil ditempatkan
di partisi sangat besar.
Kelemahan ini dapat diatasi dengan prosedur pemindahan . pemindahan dilakukan bila
proses besar akan masuk tetapi hanya tersedia partisi kecil sementara proses kecil
menempati partisi besar. Proses kecil di Swap ke partisi kecil yang bebas kemudian proses
besar diantrian menempati partisi besar yang ditinggalkan proses kecil.
Pemartisian Memori menjadi partisi partisi secara statis mempunyai dua masalah yang
harus , yaitu :
1. Relokasi
2. Proteksi
8.3.2.2 Relokasi
Relokasi adalah masalah penempatan proses sesuai alamat fisik sehubungan alamat pratisi
memori saat diproses . proses dapat ditempatkan pada partisi-partisi berbeda menurut
keadaan sistem saat itu. Pengalamatan fisik secaa absolut untuk proses tidak dilakukan.
Solusi Pertama
Sistem operasi menabay alamat awal partisi , dalam hal ini proses ditempatkan ke setiap
alamat yang diacu proses. Pada saat proses kompilasi , linker harus memasukan satu daftar
atau bit – map biner pada program memberitahu word-word program yang alamat
alamatnya direlokasi. Linker harus mencatat opcode , konstanta , dan item-item yang tidak
perlu direlokasi.
Solusi ini menimbulkan masalsah proteksi terhadap memori. Solusi ini mempunyai masalah
yaitu program tidak terkendali selalu mampu memangun instruksi baru dan meloncati. Tidak
ada cara untuk menghentikan jika program membaca atau menulis word dimemori partisi
lainn ( yang bukan hak nya ). Masalah relokasi dan proteksi tidak dapat dipisahkan ,
diperlukan satu solusi tunggal mengatasi kedua masalah.
Masalah proteksi pada banyak partisi adalah bekerja dengan banyak proses disatu sistem
secara bersamaan dikawatirkan proses menggunakan atau memodifikasi daerah yang
dikuasai proses lain ( yang bukan menjadi haknya ) bila kejadian ini terjadi, maka proses lain
dapat terganggu dan hasilnya yang diperolehnya dapat menjadi kacau.
Pada komputer IBM 360 membagi memori menjadi blok-blok, tiap blok ditambahi 4 bit kode
proteksi. Blok berukuran 2 kilobyte . proses juga mempunyai PSW ( Program Status Word )
yang diantara lain berisi status proteksi. Status proteksi ini terdii 4 bit ( sama dengan bit
kode proteksi untuk blok memori ) , merupakan kunci dalam pengaksesan memori.
Solusi Menggunakan Base Register dan limit Register
Solusi lain adalah menggunakan daua register yaitu base register dan limit register. Base
register diisi alamat awal partisi dan limit register diisi panjang partisi. Setiap alamat yang
dihasilkan secara otomatis ditambah nilai base register . intruksi yang mengacu pada alamat
yang melebihi limit register akan menimbulkan trap yang memberitahu sistem operasi telah
terjadi pelanggaran pengaksesan memori.
Teknik ini lebih unggul dibanding teknik pada IBM 360 karena lebih efisien.teknik ini tidak
perlu menempatkan 4 bit proteksi di tiap blok memori.teknik inijuga lebih fleksibel.
Keuntungan
Program dapat dipindah walau sedang di eksekusi. Pemindahan dilakukan hanya dengan
mengganti nila base register.
Gambar 8-8 Skema relokasi dan proteksi menggunakan register basis dan register batas
Gambar 8-8 menunjukan skema proeteksi dan relokasi menggunakan base register dan limit
register. Base regiser menunjukan alamat awal proses sedang. Limit register menunjukan
alamat akhir yang dimiliki proses. Bila proses mengacu alamatdiluar yang ditunjuk limit
register maka pemproses mengirim sinyal fault memberitahu terjadinya pelanggaran
pengaksesan memori.
8.3.2.4 Fragmentasi Pada Pemartisian Tetap
Fragmentasi yaitu penyiaan / pemborosan memori akan terjadi pada setiap organisasi
penyimpanan.
1. Fragmentasi internal
2. Fragmentasi eksternal
Fragmentasi Internal
Proses tidak mengisi penuh partisi yang telah ditetapkan untuk proses.
Fragmentasi Eksternal
Partisi tidak digunakan karena ukuran partisi lebih kecil dibanding ukuran proses
yang menunggu diantrian sehingga tidak digunakan.
Untuk sistem sistem tanpa swapping ( pemindahan lokasi proses ) maka fragmentasi –
fragmentasi tidak dapat dikurangi. Pada sistem-sistem dengan swapping , sistem lebih
intelijen karena dapat melakukan beberapa alternatif mengatasi fragmentasi eksternal.
Bab 9
Pada sistem batch, organisasi memori dengan pemartisian tetap telah efektif . pada sistem
timesharing, situasi berbeda, umumnya terdapat lebih banyak proses dibanding memori
yang tersedia untuk memuat seluruh proses. Pemindahan proses dari memori utama ke
disk dan sebaliknya disebut swapping. Dengan swapping , multiprogramming sistem
timesharing dapat ditingkatkan kinerjanya yaitu dengan memindah proses-proses Blocked
ke disk dan hanya memasukan proses-proses Ready ke memori utama.
Pemartisian statis tidak menarik karena memori terlalu banyak diboroskan proses-proses
lebih kecil dibandingkan dengan partisi yang ditempatinya. Dengan pemartisian dinamis
maka jumlah , lokasi dan ukuran proses dimemori dan beragam sepanjang waktu secara
dinamis.
Dapat terjadi lubang lubang kecil dimemori diantara partisi partisi yang dipakai.
Merumitkan alokasi dan dealokasi memori
Contoh
Terjadinya
Gambar 9-1 (a) adalah konfigurasi awal , terdapat 7 proses diruang ganti memori.
Setelah proses 1 berakhir , konfigurasi memori menjadi gambar 9-1 (b)
Begitu proses 3 berakhr , konfigurasi memori memori menjadi gambar 9-1 ( c )
Proses 5 berakhir , menghasilkan konfigurasi gambar 9-1 ( d ). Memori dipenuhi
lubang lubang memori yang tak terpakai.
Lubang-lubang ( yaitu kelompok blok memori yang tidak digunakan ) kecil di antara blok –
blok memori yang digunakan dapat diatasi dengan pemadatan memori ( memori
compaction ) pemadatan memori adalah operasi menggabungkan semua lubang kecil
menjadi satu lubang besar dengan memindahka semua proses agar saling berdekatan.
Gambar 9-2 menunjukan skema pemadatan memori. Proses 2,4 dan 6 dipindahkan agar
menempati ruang ruang berurutan dengan proses 0 sehingga diperoleh lubang memori
besar. Lubang memori besar ini dapat ditempati proses yang akan masuk.
Masalah lain pada pemartisian dinamis adalah proses dapat tumbuh berkembang. Segmen
data proses dapat tumbuh , misalnya :
Solusi masalah ini adalah bila proses bersebelahan dengan lubang memori tidak dipakai ,
proses tumbuh memakai lubang itu. Masalah menjadi lebih parah bila proses bersebelahan
dengan proses – proses lain.
Peringkat alternatif penyelesaian adalah
Bila masih terdapat lubang besar yang memuat proses , maka proses dipindah ke
lubang memori yang cukup dapat memuat
Satu proses atau lebih di swap ke disk agar memberi lubang cukup besar untuk
proses yang berkembang
Jika proses tidak dapat tumbuh dimemori dan daerah swap di disk telah penuh ,
proses harus menunggu atau disingkirkan.
Memori yang tersedia harus dikelola , dilakukan dengan pencatatan pemakaian memori.
Terdapat tiga cara utama pencatatan pemakaian memori , yaitu :
Memori dibagi menjadi unit – unit alokasi , berkorespodensi dengan tiap unit alokasi
adalah satu bit pada peta bit ( Bit map )