Manajemen Memori Defiana Arnaldy M Si 0818 0296

  • Slides: 46
Download presentation
Manajemen Memori Defiana Arnaldy, M. Si 0818 0296 4763 deff_arnaldy@yahoo. com

Manajemen Memori Defiana Arnaldy, M. Si 0818 0296 4763 deff_arnaldy@yahoo. com

Memori l l l Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses

Memori l l l Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan harus melalui memori terlebih dahulu Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori Algoritma untuk manajemen memori ini bervariasi dari yang menggunakan pendekatan primitif pada mesin sampai pemberian halaman dan strategi segmentasi

Address Binding l l Binding adalah pemetaan dari satu ruang alamat ke alamat yang

Address Binding l l Binding adalah pemetaan dari satu ruang alamat ke alamat yang lain Binding instruksi dan data ke memori dapat terjadi dalam tiga cara yang berbeda: l l l Compilation Time Jika kita tahu dimana proses akan ditempatkan di memori pada saat mengkompilasi, maka kode yang absolut dapat dibuat Load Time jika pada saat mengkompilasi kita tidak tahu proses akan ditempatkan dimana dalam memori Execution Time jika pada saat dieksekusi proses dapat dipindah dari satu segmen ke segmen yang lain di dalam memori

Manajemen Memori l l Manajemen memori pada sistem Monoprogramming Manajemen memori pada sistem Multiprogramming

Manajemen Memori l l Manajemen memori pada sistem Monoprogramming Manajemen memori pada sistem Multiprogramming

Manajemen memori pada sistem Monoprogramming Ciri-ciri: l Hanya ada satu proses pada suatu saat

Manajemen memori pada sistem Monoprogramming Ciri-ciri: l Hanya ada satu proses pada suatu saat dan menggunakan seluruh area memori. l Program diletakkan seluruhnya ke memori dari disk. l Program mengambil kendali seluruh sumber daya komputer.

Manajemen memori pada sistem Multiprogramming Ciri-ciri: l Terdapat sejumlah proses yang menempati memori l

Manajemen memori pada sistem Multiprogramming Ciri-ciri: l Terdapat sejumlah proses yang menempati memori l Alokasi memori ke proses dapat berurutan atau tidak l Dimungkinkan suatu lokasi memori utama diakses bersama oleh sejumlah proses (memory sharing)

Manajemen memori pada sistem Multiprogramming l Berdasarkan pengalokasian memori Alokasi pada sistem multiprogramming Alokasi

Manajemen memori pada sistem Multiprogramming l Berdasarkan pengalokasian memori Alokasi pada sistem multiprogramming Alokasi berurut (contiguous) Alokasi tidak berurut (noncontiguous) Partisi statis Paging Partisi Sistem dinamis buddy Segme kombin ntasi

Contiguous Allocation l l Memori harus mengakomodasi kebutuhan SO dan proses user Memori utama

Contiguous Allocation l l Memori harus mengakomodasi kebutuhan SO dan proses user Memori utama biasanya terbagi dalam dua bagian: l l l Resident operating system, biasanya tersimpan di alamat memori rendah. User proces menggunakan memori beralamat tinggi/besar. Terbagi menjadi: l l l Partisi statis Partisi dinamis Sistem buddy

Pengalokasian berurut dengan partisi statis Ciri-ciri l Memori dibagi menjadi partisi-partisi dengan ukuran yang

Pengalokasian berurut dengan partisi statis Ciri-ciri l Memori dibagi menjadi partisi-partisi dengan ukuran yang tetap. l Satu proses hanya memakai satu partisi. Jika proses sudah selesai, partisi tersebut dapat digunakan proses yang lain. l Dibagi menjadi 2 bagian: l l Berukuran sama Berukuran tidak sama

Pengalokasian berurut dengan partisi statis dengan ukuran sama l Banyak kelemahan, antara lain: l

Pengalokasian berurut dengan partisi statis dengan ukuran sama l Banyak kelemahan, antara lain: l l 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).

Pengalokasian berurut dengan partisi statis dengan ukuran tidak sama l l Untuk mengatasi kelemahan

Pengalokasian berurut dengan partisi statis dengan ukuran tidak sama l l 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: l l Satu antrian untuk setiap partisi Satu antrian untuk seluruh partisi

Pengalokasian berurut dengan partisi statis dengan ukuran tidak sama l Satu antrian untuk setiap

Pengalokasian berurut dengan partisi statis dengan ukuran tidak sama l Satu antrian untuk setiap partisi l l l Tiap proses diletakkan pada partisi dengan ukuran terkecil yang dapat dimuatnya. Kelemahan: ada partisi yang memiliki antrian panjang dan ada yang kosong. Satu antrian untuk seluruh partisi l l l 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.

Pengalokasian berurut dengan partisi dinamis Ciri-ciri: l Pada kondisi awal, memori tidak dibagi menjadi

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

Pengalokasian berurut dengan partisi dinamis Cara kerja: l Pengalokasian dilakukan dengan mencari hole suatu

Pengalokasian berurut dengan partisi dinamis Cara kerja: l Pengalokasian dilakukan dengan mencari hole suatu ruang memori utama yang kosong, yang cukup besar untuk menampung image proses. l Hole sisa kadang kala terlalu kecil untuk dapat dialokasikan ke proses lainnya sehingga tidak bisa digunakan lagi fragmentasi eksternal.

Pengalokasian berurut dengan partisi dinamis l l Salah satu cara untuk mengatasi masalah ini

Pengalokasian berurut dengan partisi dinamis l l 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.

1000

1000

Pengalokasian berurut dengan partisi dinamis l Kelemahan: l l l proses alokasi dan dealokasi

Pengalokasian berurut dengan partisi dinamis l Kelemahan: l l l proses alokasi dan dealokasi menjadi lebih rumit Perlu pengelolaan informasi area memori yang masih kosong. Ada 2 metode pengelolaan memori kosong: l l Peta bit (bitmap) Linked list

Pengalokasian berurut dengan partisi dinamis l Peta bit (bitmap) l l Menggunakan area memori

Pengalokasian berurut dengan partisi dinamis l Peta bit (bitmap) l l 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

Pengalokasian berurut dengan partisi dinamis l Linked list l l Informasi mengenai hole kosong

Pengalokasian berurut dengan partisi dinamis l Linked list l l 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.

Pengalokasian berurut dengan partisi dinamis l Diperlukan algoritma untuk menentukan hole mana yang akan

Pengalokasian berurut dengan partisi dinamis l Diperlukan algoritma untuk menentukan hole mana yang akan dialokasikan ke suatu proses. l l Algoritma Best-fit Algoritma First-fit Algoritma Next-fit Algoritma Worst-fit

Pengalokasian berurut dengan partisi dinamis l Algoritma Best-fit l l l Mencari memori blok

Pengalokasian berurut dengan partisi dinamis l Algoritma Best-fit l l l 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

Pengalokasian berurut dengan partisi dinamis l Algoritma First-fit l l l Mencari memori kosong

Pengalokasian berurut dengan partisi dinamis l Algoritma First-fit l l l Mencari memori kosong dari alamat awal sampai menemukan blok yang dapat menampung image proses Sederhana dan cepat. Algoritma Next-fit l l Hampir sama dengan First-fit. Bedanya: proses searching dimulai dari alamat alokasi terakhir

Pengalokasian berurut dengan partisi dinamis l Algoritma worst-fit l l Mencari hole yang paling

Pengalokasian berurut dengan partisi dinamis l Algoritma worst-fit l l 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.

Pengalokasian berurut dengan sistem buddy l l Berupa pemartisian secara dinamis Ciri khusus adalah

Pengalokasian berurut dengan sistem buddy l l Berupa pemartisian secara dinamis Ciri khusus adalah partisi yang terbentuk senantiasa berukuran besar sebesar bilangan 2 n 2, 4, 8, 16…. . 256, 512, 1024(1 Mb)

Pengalokasian berurut dengan sistem buddy Alokasi memori pada sistem buddy: 1. Menentukan ukuran partisi

Pengalokasian berurut dengan sistem buddy Alokasi memori pada sistem buddy: 1. Menentukan ukuran partisi l Ditentukan ukuran partisi untuk menampung image proses yaitu ukuran bilangan pangkat 2 terkecil l Misal : ukuran image proses = 12 kb maka ukuran partisi yang bisa digunakan adalah 16 kb.

Pengalokasian berurut dengan sistem buddy Pengalokasian Selanjutnya adalah mencari hole yang ukurannya sebesar perhitungan.

Pengalokasian berurut dengan sistem buddy 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 = 12 kb dan hole yang paling kecil adalah 64 kb. 2. l l l maka dipecah menjadi 2 partisi 32 kb, selanjutnya dipecah lagi menjadi 2 partisi 16 kb. dan partisi 16 kb pertama yang bisa dipakai untuk image proses 12 kb.

128

128

Pengalokasian tak berurut dengan sistem paging l l l Pada model pengalokasian tak berurut,

Pengalokasian tak berurut dengan sistem paging l l l Pada model pengalokasian tak berurut, bagian dari image proses dapat diletakkan secara terpisah di memori utama. Pada sistem paging memerlukan pengalamatan logika khusus yang membagi menjadi blok-blok dengan ukuran sama yang disebut page Pada sistem paging , perlua adanya translasi alamat ke memori fisik yang dipartisi secara statis yang disebut frame, yang ukurannya sama dengan page pada ruang alamat logika

Pengalokasian tak berurut dengan sistem paging Konsep dasar alokasi memori : l Memori utama

Pengalokasian tak berurut dengan sistem paging Konsep dasar alokasi memori : l Memori utama dibagi menjadi frame-frame kecil berukuran sama dan diberi nomor frame sebagai referensi. l Ruang alamat logika proses dibagi menjadi page-page seukuran frame l Loading time: page-page image proses diletakkan pada frame-frame kosong dan dicatat pada page table

Proteksi Memori pada sistem paging l l Berfungsi menghindari pengaksesan memori secara ilegal. misal:

Proteksi Memori pada sistem paging l l Berfungsi menghindari pengaksesan memori secara ilegal. misal: pengaksesan bagian memori yang sudah ditempati proses lain. Proteksi frame dilakukan dengan cara menambahkan bit proteksi untuk tiap entry page table misal: cek apakah frame tersebut bersifat read atau read-write. cek apakah alamat logika yang dituju suatu proses valid atau invalid.

Memory Sharing pada sistem paging l l l Untuk menghemat penggunaan kapasitas memori. Jika

Memory Sharing pada sistem paging l l l Untuk menghemat penggunaan kapasitas memori. Jika ada 2 atau lebih proses yang memiliki bagian kode instruksi, atau data yang sama maka dapat digunakan bersama dan cukup diletakkan sekali di frame memori. Masing-masing proses mengacu ke frame yang sama pada page table nya.

Pengalokasian tak berurut dengan sistem segmentation l l Memakai sistem partisi dinamis. Pada pengalamatan

Pengalokasian tak berurut dengan sistem segmentation l l Memakai sistem partisi dinamis. Pada pengalamatan logika, image proses dibagi menjadi bagian-bagian yang disebut segmen. Pembagian segmen biasanya mengikuti struktur program oleh kompiler, yang biasanya tiap segmen berupa main program, stack, routine, symbol table Partisi memori utama terjadi pada saat alokasi yang besarnya sesuai dengan besar segmen program yang dialokasikan

Pengalokasian tak berurut dengan sistem segmentation Konsep alokasi memori: l Image proses dibagi menjadi

Pengalokasian tak berurut dengan sistem segmentation Konsep alokasi memori: l Image proses dibagi menjadi beberapa segmen yang ukurannya tidak harus sama. l Segmen-segmen image proses dialokasikan ke tempat-tempat kosong di memori utama, dan informasi alokasi dicatat pada segmen table. l Segmen table berisi nilai limit (panjang segmen) dan nilai base (alamat awal bagian memori yang dialokasikan)

Segmentasi

Segmentasi

Proteksi memori pada sistem segmentation l l Membandingkan nilai segmen yang ada di pengalamatan

Proteksi memori pada sistem segmentation l l Membandingkan nilai segmen yang ada di pengalamatan logika dengan nilai limit yang ada di segmen table. Apabila nilai segmen yang ada di pengalamatan logika lebih besar (>) daripada nilai limit yang ada di segmen table, berarti terjadi usaha pengaksesan lokasi diluar area segmen program itu, sehingga memicu terjadinya trap (addresing error)

Memori sharing pada sistem segmentation l Sharing segmen antara 2 atau lebih proses dapat

Memori sharing pada sistem segmentation l Sharing segmen antara 2 atau lebih proses dapat dilakukan dengan mencatat lokasi alokasi segmen tersebut ke tabel segmen masing-masing proses.