sistem operasi _ manajemen memori
DESCRIPTION
TITRANSCRIPT
SISTEM OPERASI
MANAJEMEN MEMORI
ELISA GALUH SETYORINI
11100066
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNIK
CAHAYA SURYA
KEDIRI
2014
1. KONSEP DASAR MEMORI
Memori sebagai tempat penyimpanan instruksi/ data dari program
sehingga untuk dapat dieksekusi, program harus dibawa ke memori dan
menjadi suatu proses.Pengertian memori adalah pusat operasi pada modem
komputer, karena setiap proses yang akan dijalankan, harus melalui memori
terlebih dahulu.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:
1. Menjaga dan memelihara bagian-bagian memori yang sedang digunakan
dan dari yang menggunakan.
2. Memutuskan proses-proses mana saja yang harus dipanggil kememori
jika masih ada ruang di memori.
3. Mengalokasikan dan mendelokasikan ruang memori jika diperlukan
Media penyimpanan data di dalam komputer disebut sebagai memory
atau storage. Dalam hal ini pengertian memori terbagi menjadi 2 (dua), yaitu
internal memory dan external memory.
Ada dua pengaruh dari manajemen memori dalam pembuatannya, yaitu :
1. Diinginkan bahwa memory management harus sesederhana mungkin.
2. Ada kehendak supaya pemakai bisa fleksibel dalam penggunaannya.
Kebanyakan komputer, selain dilengkapi dengan memori utama (real
memory), dilengkapi juga dengan media penyimpanan yang paling umum
adalah disk, karena biayanya murah dan program dapat disimpan pada alat
penyimpanan sekunder ini, maka ukuran program tidak dibatasi oleh ukuran
memori utama, namun oleh ukuran ruang alamat logis komputer.
1.1. KONSEP BINDING
Binding adalah cara instruksi dan data (yang berada di disk sebagai
file yang dapat dieksekusi) dipetakan ke alamat memori.Binding instruksi
dan data ke memori dapat dapat terjadi dalam tiga cara yang berbeda,yaitu:
Compilation Time Jika kita tahu dimana proses akan ditempatkan di
memori pada saat mengkompilasi, maka kode absolut dapat dibuat. Kita
harus mengkompilasi ulang kode jika lokasi berubah.
Load TimeKita harus membuat kode relokasi jika pada saat
mengkompilasi kita tidak mengetahui proses yang akan ditempatkan
dalam memori. Pada kasus ini, binding harus ditunda sampai load time.
Execution TimeBinding harus ditunda sampai waktu proses berjalan
selesai jika pada saat dieksekusi proses dapat dipindah dari satu segmen
ke segmen yang lain di dalam memori. Kita butuh perangkat keras
khusus untuk melakukan ini.
Sebagian besar sistem memperbolehkan sebuah proses user (user
process) untuk meletakkan di sembarang tempat dari memori fisik.
Sehingga, meskipun alamat dari komputer dimulai pada 00000, alamat
pertama dari proses user tidak perlu harus dimulai 00000
1.2. DYNAMIC LOADING
Dengan dynamic loading, suatu routine tidak diload sampai dipanggil.
Semua routine disimpan pada disk sebagai format relocatable load
Mekanisme dasar Dynamic Loading, yaitu :
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.3. DYNAMIC LINKING
Dynamic Linking adalah proses dengan banyak langkah, ditemukan
juga penghubung-penghubung pustaka yang dinamis, yang menghubungkan
semua rutin yang ada di pustaka. Beberapa sistem operasi hanya mendukung
penghubungan yang statis, dimana seluruh rutin yang ada dihubungkan ke
dalam suatu ruang alamat.
Setiap program memiliki salinan dari seluruh pustaka. Konsep
penghubungan dinamis, serupa dengan konsep pemanggilan dinamis.
Pemanggilan lebih banyak ditunda selama waktu eksekusi, dari pada
lama penundaan oleh penghubungan dinamis. Keistimewaan ini biasanya
digunakan dalam sistem kumpulan pustaka, seperti pustaka bahasa subrutin.
Tanpa fasilitas ini, semua program dalam sebuah sistem, harus mempunyai
salinan dari pustaka bahasa mereka (atau setidaknya referensi rutin oleh
program) termasuk dalam tampilan yang dapat dieksekusi.
1.4. OVERLAY
Overlay merupakan suatu metode untuk memungkinkan suatu proses
yang membutuhkan memori yang cukup besar menjadi lebih sederhana.
Penggunaan overlays ini dapat menghemat memori yang digunakan dalam
pengeksekusian instruksi-instruksi. Hal ini sangat berguna terlebih jika
suatu program yang ingin dieksekusi mempunyai ukuran yang lebih besar
daripada alokasi memori yang tersedia.
Cara kerjanya yaitu pertama-tama membuat beberapa overlays yang
didasarkan pada instruksiinstruksi yang dibutuhkan pada satu waktu
tertentu. Setelah itu, membuat overlays drivernya yang digunakan sebagai
jembatan atau perantara antara overlays yang dibuat. Proses selanjutnya
ialah me-load instruksi yang dibutuhkan pada satu waktu ke dalam absolut
memori dan menunda instruksi lain yang belum di butuhkan pada saat itu.
Setelah selesai dieksekusi maka instruksi yang tertunda akan diload
menggantikan instruksi yang sudah tidak dibutuhkan lagi.
2. 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 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.
ProteksiSetiap 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
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.
Fair Physical Memory AllocationDigunakan oleh Manajemen Memori
untuk membagi penggunaan memori fisik secara "adil" ke setiap proses
yang berjalan pada sistem.
Shared Virtual MemoryMeskipun tiap proses menggunakan address
space yang berbeda dari memori maya, ada kalanya sebuah proses
dihadapkan untuk saling berbagi penggunaan memori.
3. RUANG ALAMAT LOGIKA DAN FISIK
Alamat logika ialah alamat yang diturunkan oleh CPU. Sedangkan
alamat yang terdapat dalam memori disebut dengan alamat fisik. Pada saat
compile time dan load time alamat logika dan alamat fisik menunjukkan nilai
yang sama. Sedangkan pada saat execution time terjadi perbedaan antara
alamat logika dengan alamat fisik. Sedangkan alamat fisik yang berhubungan
dengan alamat logika disebut dengan ruang alamat fisik.
4. SWAPPING
Swapping adalah suatu proses dapat di-swap secara temporary keluar dari
memori dan dimasukkan ke backing store, dan dapat dimasukkan kembali ke
dalam memori pada eksekusi selanjutnya.
Ø Backing store disk cepat yang cukup besar untuk mengakomodasi copy
semua memori image pada semua user; menyediakan akses langsung ke
memori image.
Ø Roll out, roll in varian swapping yang digunakan dalam penjadualan
prioritas; proses dengan prioritas rendah di-swap out, sehingga proses
dengan prioritas tinggi dapat di-load dan dieksekusi.
Bagian terbesar dari swap time adalah transfer time, total transfer time
secara proporsional dihitung dari jumlah memori yang di swap.
5. PENCATATAN PEMAKAIAN MEMORI
Memori yang tersedia harus dikelola, dilakukan dengan pencatatan
pemakaian memori. Terdapat dua cara utama pencatatan pemakaian memori,
yaitu:
PETA BIT
Memori dibagi menjadi unit-unit alokasi,berkorespondensi dengan tiap
unit alokasi 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 alokasi
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 alokasi.
Keunggulan dan Kelemahanya adalah :
· 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.
LINKED LIST
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. Setiap node list terdiri atas :
Informasi yang menyatakan adanya proses (p) dan hole (H).
Lokasi awal dan panjang lokasi.
· Keunggulan :
Ø Tidak harus dilakukan perhitungan blok lubang memori karena sudah tercatat di
node.
Ø Memori yang diperlukan relatif lebih kecil dibandingkan peta bit.
· Kelemahan :
Ø Dealokasi sulit dilaksanakan mengingat akan terjadinya penggabungan antara
beberapa mode.
6. MONOPROGRAMMING DAN MULTIPROGRAMMING
A. 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 :
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 terakhir).
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.
B. 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 :
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 n 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
7. PENGALOKASIAN BERURUTAN
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)
› 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
Ø 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
7.1. MULTIPROGRAMMING DENGAN PARTISI STATIS
Terdapat beberapa alasan kenapa multiprogramming digunakan, yaitu :
a. Mempermudah pemogram.
Pemogram 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.
Multiprogramming dapat dilakukan dengan pemartisian statis, yaitu memori
dibagi menjadi beberapa sejumlah partisi tetap. Pada partisi-partisi tersebut
proses-proses ditempatkan. 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.
7.2. MULTIPROGRAMMING DENGAN PARTISI DINAMIS
Pemartisian statis tidak menarik karena terlalu banyak diboroskan proses-proses
yang lebih kecil dibanding partisi yang ditempatinya. Dengan pemartisian dinamis
maka jumlah, lokasi dan ukuran proses di memori dapat beragam sepanjang waktu
secara dinamis. Proses yang akan masuk ke memori segera dibuatkan paritisi
untuknya sesuai kebutuhannya. Teknik ini meningkatkan utilitasi memori.
· Kelemahan pemartisian dinamis adalah :
a. Dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai.
b. Merumitkan alokasi dan dealokasi memori
7.3. SISTEM BUDDY
Sistem buddy merupakan cara mengelola memori utama dengan memanfaatkan
kelebihan penggunaan bilangan biner. Jika suatu proses berukuran 35 Kbyte,
maka proses tersebut akan di tempatkan pada lubang 64 Kbyte, dan akan
menyisakan 29 Kbyte. Hal ini sering disebut dengan istilah internal
fragmentation, sebab sisi memori yang terbuang tersebut berasal dari segmen
internalnya sendiri. Namun, dengan memakai sistem buddy ini, dealokasi proses
dapat dilakukan dengan cepat.
8. PENGALOKASIAN TAK BERURUT
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.
Konsep Dasar
Memori fisik dibagi menjadi blok-blok dengan ukuran tertentu disebut
frame. Sedangkan memori logika dibagi menjadi blok-blok yang disebut page.
Setiap alamat yang diberikan oleh CPU dibagi menjadi 2 bagian, yaitu nomor
page (p) dan offset (d).
· Page number (p) digunakan sebagai indeks ke dalam table page (page table).
Page table berisi alamat basis dari setiap page pada memori fisik.
· Page offset (d) mengkombinasikan alamat basis dengan page offset untuk
mendefinisikan alamat memori fisik yang dikirim ke unit memori.
Sistem Paging :
Kerugian dan keuntungan paging
1. Jika kita membuat ukuran dari masing-masing pages menjadi besar:
· Keuntungan: akses memori akan relatif lebih cepat.
· Kerugian: kemungkinan terjadinya fragmentasi internal yang sangat besar.
2. Jika kita membuat ukuran dari masing-masing pages menjadi kecil:
· Keuntungan: akses memori akan relatif lebih lambat.
· Kerugian: kemungkinan terjadinya fragmentasi internal akan menjadi lebih
kecil.
Istilah sistem paging
· Alamat Maya :
alamat yang dihasilkan dengan perhitungan index register, base register, dan
segmen register, dll. Ruang alamat yang dibentuk alamat maya disebut ruang
alamat maya.
· Memori management unit (MMU):
Chip atau kumpulan chip yang memetakan alamat maya ke alamat fisik.
· Alamat Nyata :
Alamat Nyata adalah alamat yang tersedia di memori utama fisik.
· Page :
Unit terkecil ruang alamat maya. Ruang alamat maya proses merupakan kelipatan
page yang berukuran sama
SEGMENTASI
Segmentasi adalah skema pengaturan memori yang mendukung user untuk
melihat memori tersebut. Tiap-tiap segmen memiliki nama dan panjang.
Pandangan user mengenai memori:
› Dukungan Hardware :
– Pemetaan ke alamat fisik dilakukan dengan menggunakan tabel segmen, masing-
masing berisi base dan limit