Jelaskan secara singkat tiga jenis teknik Memory Management yang bisa dilakukan oleh OS

Jelaskan secara singkat tiga jenis teknik Memory Management yang bisa dilakukan oleh OS

Pengertian Memori dan Manajemen Memori
Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya. 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.

Jelaskan secara singkat tiga jenis teknik Memory Management yang bisa dilakukan oleh OS

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 :

1. Meningkatkan kinerja atau Utilitas CPU. 2. meningkatkan kecepatan akses CPU terhadap data dan instruksi Data dan instruksi dapat diakses dengan cepat oleh CPU. 3. meningkatkan efisensi pemakaian memori yang terbatas. 4. Meningkatkan efisiensi transfer atau perpindahan data dari atau ke memori utama dan dari atau ke CPU. 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.

PEMBAHASAN MATERI

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 disini 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:

o 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. o Load Time. Kita 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. o Execution Time. Binding 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 : › 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. · 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 · 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 Allocation Digunakan oleh Manajemen Memori untuk membagi penggunaan memori fisik secara “adil” ke setiap proses yang berjalan pada sistem.

· Shared Virtual Memory. Meskipun 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

5.1. 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 memoribanyak disiakan pada unit terakhir jika ukuran proses bukan kelipatan unit alokasi. · 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.

5.2. 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. BRIAN 6. MONOPROGRAMMING DAN MULTIPROGRAMMING 1. 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. 2. 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) Ø 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

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 8.1. 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

8.2. 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

Anggota Kelompok : – Anwar Sani – Bayu Budiman – Titto Rudy Setiawan

– Zulfikar Ardianto