Sistem operasi Manajemen Memori Manajemen Memori Pembahasan : • Konsep dasar manajemen memori • Ruang alamat logika dan fisik • Swapping • Alokasi berurutan • Paging • Segmentasi • Segmentasi dengan paging Manajemen Memori • Tugas utama system operasi adalah untuk mengatur memori, yang meliputi tugas memasukkan (swap in) dan mengeluarkan (swap out) blok-blok data dari memori sekunder. • Didalam system Uniprogramming, memori utama dibagi menjadi dua bagian yaitu satu bagian untuk system operasi (resident monitor, kernel) dan satu bagian lainnya untuk program yang saat itu dieksekusi. • Sedangkan didalam system Multiprogramming bagian memori “pengguna” harus dibagi lagi untuk mengakomodasi proses yang jumlahnya banyak. Pembagian tersebut dilakukan secara dinamis oleh system operasi. Proses yang demikian dikenal dengan manajemen memori. Konsep dasar manajemen memori Operasi manejemen memori yag terpenting adalah membawa program-program ke dalam memori utama untuk dieksekusi oleh prosesor. Dibawah ini ada beberapa teknik untuk manajemen memori yang dibuat menjadi tabel : • Partisi tetap Memori utama dibagi menjadi beberapa statis pada saat pembuatan system. Sebuah proses dapat dimuatkan kedalam partisi yang ukurannya sama atau lebih besar. • Partisi dinamis Partisi-partisi dibuat secara dinamis, sehingga semua proses dimuatkan kedalam partisi yang ukurannya sama dengan ukuran proses. Konsep dasar manajemen memori • Paging sederhana Memori utama dibagi menjadi frame-frame yang berukuran sama. Setiap proses dibagi menjadi paga-page yang berukuran sama yang panjangnya sama dengan frame. • Segmentasi sederhana Setiap proses dibagi menjadi beberapa segmen Konsep dasar manajemen memori • Virtual memori paging Seperti pada paging sederhana, kecuali saja disini tidak perlu memuatkan seluruh page suatu proses. Page-page nonresident yang diperlukan akan dibawa kemudian secara otomatis. • Segmentasi memori virtual Seperti pada segmentasi sederhana kecuali saja disini tidak perlu memuatkan seluruh segmen suatu proses. Segmen-segmen nonresident yang diperlukan akan dibawa kemudian secara otomatis. Ruang alamat logika dan ruang alamat fisik • Alamat yang dibangkitkan oleh CPU disebut alamat logika (logical address) dimana alamat terlihat sebagai uni memory yang disebut alamat fisik (physical address). Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke ruang alamat fisik. • Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori. Ruang alamat logika dan ruang alamat fisik Swapping Sebuah proses harus berada di memori untuk di eksekusi. Proses juga dapat di tukar (swap) sementara keluar memory ke backing store dan kemudian di bawa kembali ke memori untuk melanjutkan eksekusi. Alokasi berurutan Memori utama biasanya di bagi menjadi kedalam dua partisi yaitu untuk : • Sistem operasi biasanya diletakkan pada alamat memori rendah dengan vektor interpsi. • Proses user di letakakn pada alamat memori tinggi. Single Partition Allocation Single Partition Allocation Pada single partition allocation di asumsikan sistem opersi di tempatkan di memori rendah dan proses user di eksekusi di memori tinggi. MAR = Memory Address Register Relocation register Logical address Physical address Multiple Partition Allocation • partisi tetap (fixed partition) di mana memori dibagi dalam sejumlah partisi terbatas pada tinggkat multiprograming. Skema ini digunakan oleh IBM OS/360 yang di sebut multiprogramming with fixed number of task (MFT). • Partisi dinamis (variable partition) merupakan MFT yang di generalisasi yang di sebut multiprogramming with variable number of task (MVT). Skema ini di gunakan terutama pada lingkungan batch. Proses alokasi memori Contoh alokasi memory • Diasumsikan tersedia memori 2560K dan untuk OS 400K. Sisa 2160K digunakan untuk user proses. • Diasumsikan terdapat 5 job (P1 s/d P5) terdapat pada input queue. • Diasumsikan penjadwalan FCFS digunakan untuk meletakkan job ke memori. Penjadwalan CPU secara round-robin (quantum time = 1) untuk penjadwalan job yang sudah terdapat di memori. Contoh alokasi memori Contoh alokasi memori Multiple Partition Allocation • Menggunakan MVT, terdapat beberapa lubang dengan ukuran berbeda. Bila proses datang dan memerlukan memori, dicari dari lubang yang cukup untuk proses. • Dynamic storage-allocation dapat dilibatkan untuk memenuhi permintaan ukuran n dari lubang yang bebas. Strategi yang digunakan meliputi : • First-fit : alokasi lubang pertama yang cukup untuk proses. Pencarian dari awal. • Next-fit : alokasi lubang pertama yang besarnya cukup, pencarian dari akhir sebelumnya. Multiple Partition Allocation • Best-fit : alokasi lubang terkecil yang cukup untuk proses. Strategi ini memerlukan pencarian keseluruhan lubang, kecuali bila ukuran sudah terurut. • Worst-fit : alokasi lubang terbesar yang cukup untuk proses. Strategi ini memerlukan pencarian keseluruhan lubang, kecuali disimpan berdasarkan urutan ukuran. • Diantara algoritma diatas, first-fit dan best-fit lebih baik dibanidngkan worst-fit dalam hal menurunkan waktu dan utilitas penyimpan. Meski first-fit dan best-fit lebih baik dalam hal utilitas penyimpanan tetapi first-fit lebih cepat. Fragmentasi • Fragmentasi eksternal terjadi pada situasi dimana terdapat cukup ruang memori total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak berurutan • Fragmentasi internal terjadi pada situasi dimana memori yang dialokasikan lebih besar daripada memori yang diminta, tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak digunakan. Fragmentasi Fragmentasi • Solusi untuk masalah fragmentasi eksternal adalah dengan teknik pemadatan (compaction) yaitu memadatkan sejumlah lubang kosong menjadi satu lubang besar sehingga dapat digunakan untuk proses. Pemadatan tidak selalu dapat dipakai. Agar proses dapat dieksekusi pada lokasi baru, semua alamat internal harus direlokasi. • Pemadatan hanya dilakukan pada relokasi dinamis dan dikerjakan pada waktu eksekusi. Karena relokasi membutuhkan pemindahan program dan data dan kemudian mengubah register basis (atau relokasi) yang mencerminkan alamat basis baru. Fragmentasi Paging User seolah mempunyai ruang memory sangat besar tanpa mengelola overlay. Beberapa istilah dalam sistem paging : Alamat maya (virtual address) Alamat nyata (real address) Page Page frame Page fault Konsep dasar Paging Paging merupakan solusi untuk permasalahan fragmentasi eksternal dimana ruang-ruang logika tidak berurutan Mengizinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia Arsitektur sistem paging Model Paging Segmentasi • Konsep dasar segmentasi user atau programmer tidak memikirkan sejumlah rutin program yang dipetakan ke main memori sebagai array linear dalam byte, tetapi memori dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu berurutan diantara segmen tersebut. Segmentasi adalah skema manajemen memori yang memungkinkan user untuk melihat memori tersebut. • Arsitektur segmentasi pemetaan alamat logika ke alamat fisik menggunakan tabel segmen terdiri atas : Segmen basis (base) berisi alamat fisik awal Segmen limit merupakan panjang segmen Tabel page dapat berupa register atau memori berkecepatan tinggi Contoh segmentasi Segment table Proteksi dan sharing Proteksi bit dapat diletakkan pada tabel segmen. Segmen instruksi dapat diproteksi sebagai segmen read-only atau execute only. Segmen data dapat diproteksi sebagai segmen read-write. Segmentasi dengan paging • Multics Solusi yang diadopsi adalah dengan melakukan paging pada segmen. Paging menghilangkan fragmentasi eksternal di mana frame kosong dapat digunakan untuk page yang tepat. • Intel 30386 Menggunakan segmentasi dengan paging untuk manajemen memori , maksimum jumlah segmen per proses adalah 16K. Setiap segmen maksimal berukuran 4 gigabytes. Ukuran page adalah 4Kbyte, dibagi dalam partisi : Partisi 1 terdiri atas 8K segmen yang pribadi untuk proses tersebut Partisi 2 terdiri atas 8K segmen yang digunakan bersama untuk semua proses Teknik paging Vs segmentasi Hal yang dipertimbangkan Paging Segmentasi Perlukah pemrograman menyadari bahwa teknik ini dipakai? Tidak Ya Berapa banyak ruang alamat linear yang terdapat Cuma 1 Banyak Dapatkah total ruang alamat melampaui ukuran memori fisik? Ya Ya Dapatkah prosedur dan data dibedakan dan diproteksi secara terpisah ? Tidak Ya Dapatkah tabel-tabel yang mempunyai fluktuasi ukuran diakomodasikan dengan mudah? Tidak Ya Apakah pemakaian bersama prosedur-prosedur antara user difasilitasi? Tidak Ya Kenapa teknik ini ditemukan? Untuk mendapatkan alamat linear besar tanpa harus membeli banyak memori fisik Untuk memungkinkan program-program dan data dipecah, serta membantu pemakaian bersama dan proteksi ORANG-ORANG YANG OPTIMIS BUKAN BERARTI MENJALANI HIDUP TANPA KESULITAN MEREKA TETAP MENGHADAPI MASALAH, TANTANGAN, DAN HAMBATAN NAMUN ITU TIDAK MENGHALANGI LANGKAHNYA JUSTRU ITU SEBAGAI KESEMPATAN TERIMAKASIH ^_^