Manajemen Memori Pertemuan 14 15 Sistem Operasi CSG

























































![Referensi: [STA 09] Stallings, William. 2009. Operating System: Internal and Design Principles. 6 th Referensi: [STA 09] Stallings, William. 2009. Operating System: Internal and Design Principles. 6 th](https://slidetodoc.com/presentation_image_h/9498c6e04b73c5cce758e9ceb12b114f/image-58.jpg)
- Slides: 58
Manajemen Memori Pertemuan 14 & 15 Sistem Operasi (CSG 3 E 3)
Manajemen Memori Permintaan Pengelolaan Memori relocation logical organization protection physical organization sharing Partisi Memori Partisi tetap Sistem Buddy Partisi tidak tetap Relocation Paging Segmentasi 1
Manajemen Memori • Manajemen memori dilakukan dengan cara membagi-bagi memori untuk mengakomodasi banyak proses • Manajemen memori dilakukan untuk menjamin agar setiap proses yang ready dapat segera memanfaatkan processor time 2
Requirement Manajemen Memori • Terdapat 5 requirement manajemen memori: • • • Relocation Protection Sharing Logical organization Physical organization 3
Relocation • Programmer tidak tahu di bagian memori yang mana program akan ditaruh pada saat dieksekusi • Pada saat program dieksekusi, dimungkinkan program tersebut akan di-swap ke disk dan kemudian diambil lagi dari disk untuk ditaruh di memori dengan lokasi yang berbeda dengan lokasi sebelumnya (terjadi relocation) • Diperlukan adanya translasi antara alamat program dengan alamat fisik memori 4
Teknik Relocation (1) • Mengapa relocation penting dalam manajemen memori ? • Jika suatu program di-load ke memori, maka alamat lokasi memori (alamat absolut atau alamat fisik) yang akan ditempati harus ditentukan • Alamat absolut suatu program dapat berubah-ubah sebagai akibat: • Swapping • Compaction 5
Teknik Relocation (2) • Jenis-jenis alamat data: • Alamat Logical • Alamat suatu word relatif terhadap titik referensi • Harus dilakukan translasi terhadap alamat fisik • Alamat Relatif • Alamat yang menunjukkan lokasi relatif terhadap program tertentu alamat awal suatu • Dapat terdiri dari: • Alamat instruksi dalam pencabangan • Alamat instruksi call • Alamat data • Alamat Fisik • Alamat mutlak/absolut • Merupakan alamat sebenarnya dari suatu memori 6
Teknik Relocation (3) • Alamat relatif dan alamat absolut: 7
Teknik Relocation (4) • Gambar mekanisme penempat-an program ke memori: 8
Teknik Relocation (5) • Jenis-jenis register yang digunakan: • Base register • Alamat awal suatu proses (tiap proses berbeda-beda) • Ditentukan oleh sistem operasi • Bound register • Alamat akhir suatu proses • Bound register = base register + panjang proses • Kedua alamat di-set pada saat proses di-load atau kembali dari swap • Setiap proses mempunyai nilai base register dan bound register sendiri-sendiri 9
Teknik Relocation (6) • Mekanisme relocation: • Alamat base register ditambahkan dengan alamat relatif sehingga diperoleh alamat absolut 10
Protection • Suatu proses tidak boleh mengakses lokasi memori proses yang lain tanpa ijin • Lokasi program di memori tidak tentu alamat mutlak pada saat compile tidak dapat diketahui • Penanganan proteksi memori diserahkan kepada prosesor (secara hardware), bukan bagian sistem operasi (software) • Sistem operasi tidak dapat memperkirakan penggunaan semua referensi memori dari setiap program 11
Teknik Protection • Gambar mekanisme pemeriksa-an alamat relatif apakah valid atau tidak: 12
Teknik Protection dengan Relocation (6) • Mekanisme relocation: • Alamat base register ditambahkan dengan alamat relatif sehingga diperoleh alamat absolut • Alamat yang diperoleh dibandingkan dengan nilai-nilai pada bound register • Jika nilainya berada di dalam bound instruksi dilanjutkan • Jika nilainya di luar bound dihasilkan interrupt: • Sistem operasi harus mengambil tindakan lebih lanjut • Merupakan mekanisme proteksi terhadap pengaksesan data proses yang lain 13
Sharing • Harus dimungkinkan suatu lokasi memori dapat diakses oleh lebih dari satu proses (secara legal) • Beberapa proses yang memerlukan data yang sama, maka tidak perlu setiap proses meng-copy data dari disk ke memori, cukup sebuah copy saja 14
Logical Organization • Main memory dikelompokkan secara linier atau berdimensi satu yang berupa ruang alamat yang terdiri dari deretan byte atau word • Sebagian besar program dibuat dalam bentuk modul penempatan di memori tidak linier diperlukan pengaturan secara lojik • Kelebihan program dalam bentuk modul: • Modul dapat ditulis dan di-compile secara terpisah • Setiap modul dapat diberi tingkatan proteksi berbeda-beda (read-only, execute only) • Module dapat di-share oleh beberapa proses 15
Physical Organization • Memory dikelompokkan menjadi memori utama dan memori sekunder • Diperlukan metode yang mengatur aliran data dari memori utama ke memori sekunder dan sebaliknya • Pengaturan tersebut dilakukan oleh sistem operasi, bukan programmer, karena: • Programmer tidak tahu berapa ruang memori yang tersedia pada saat program dijalankan • Bila ruang memori yang tersedia tidak cukup untuk menampung program dan data sistem dapat melakukan overlay • Overlay adalah menempatkan beberapa bagian modul/program pada area memori yang sama secara bergantian 16
Teknik Manajemen Memori • Beberapa teknik manajemen memori yang ada: • Partisi tetap (fixed) • Partisi berukuran sama • Ukuran partisi berbeda-beda • Partisi dinamis • Paging sederhana • Segmentasi sederhana • Virtual-memory (akan dibahas secara khusus) • Virtual-memory paging • Virtual-memory segmentation 17
Partisi Memori Tetap (fixed) (1) • Sebelum digunakan memori terlebih dahulu dipartisi (ukuran partisi tidak berubah) • Model ukuran partisi: • Partisi berukuran sama: • Setiap proses yang ukurannya lebih kecil atau sama dengan ukuran partisi dapat menempati partisi tersebut • Jika semua partisi telah terisi, maka sistem operasi akan melakukan swap terhadap proses yang sudah tidak aktif • Dimungkinkan adanya program yang ukurannya lebih besar daripada ukuran partisi yang tersedia programmer harus merancang program dengan overlay • Penggunaan memori sangat tidak efisien • Misal bila ukuran partisi adalah 8 MB, maka program berukuran 2 MB akan menyisakan ruang memori sebesar 6 MB • Partisi berukuran tidak sama: • Lebih baik daripada partisi berukuran sama: • Penggunaan memori lebih efisien • Tidak perlu overlay 18
Partisi Memori Tetap (fixed) (2) Jenis partisi tetap: - Equal-size - Unequal-size 19
Partisi Memori Tetap (fixed) (3) • Algoritma penempatan (placement) • Partisi berukuran sama • Algoritmanya sederhana, partisi yang mana saja asalkan kosong boleh ditempati, karena ukurannya sama • Partisi berukuran berbeda • Setiap proses ditempatkan pada partisi yang menyisakan ruang bebas terkecil • Terdapat 2 model antrian: • Satu antrian – satu partisi • Satu antrian – banyak partisi 20
Partisi Memori Tetap (fixed) (4) • Model antrian: 21
Partisi Memori Tetap (fixed) (5) • Satu partisi - satu antrian • Setiap proses antri pada partisi yang berukuran sedikit lebih besar atau sama dengan ukuran proses • Kelebihan: + Dapat meminimalisir ruang memori yang terbuang • Kekurangan: – Diperlukan penjadualan antrian – Ada kemungkinan efisiensi secara keseluruhan tidak optimal • Misal pada model partisi di slide hal 10 tidak ada proses yang berukuran di antara 12 – 16 MB partisi 16 MB tidak akan pernah digunakan • Banyak partisi - satu antrian • Setiap proses dapat menempati di sembarang partisi yang sedang tidak digunakan • Dipilih partisi yang menyisakan ruang memori terkecil • Bila seluruh partisi telah diisi dilakukan swapping 22
Partisi Memori Tetap (fixed) (6) • Kelebihan: + Mudah diimplementasikan + Overhead sistem operasi hanya sedikit • Kekurangan: – Tidak efisien dalam penggunaan memori akibat terjadi fragmentasi internal • Fragmentasi internal: sisa ruang memori yang terjadi jika ukuran proses lebih kecil daripada partisi yang digunakan • Jumlah maksimum proses yang aktif adalah tetap dan terbatas (bergantung jumlah partisi) 23
Partisi Memori Dinamis (1) • Jumlah dan ukuran partisi tidak tetap (variabel) • Ukuran partisi sama dengan ukuran proses yang akan menempatinya untuk pertama kali atau sesudah pemadatan (compaction) tidak terjadi fragmentasi internal • Dapat terjadi fragmentasi eksternal • Fragmentasi eksternal: sisa ruang memori yang terjadi jika ukuran proses lebih kecil daripada ruang memori yang disediakan (dibebaskan) • Solusi: dilakukan compaction sehingga sisa-sisa ruang memori terkumpul menjadi satu sisa ruang memori menjadi besar 24
Partisi Memori Dinamis (2) • Contoh partisi dinamis 25
Partisi Memori Dinamis (3) Keterangan: a. Tersedia 64 MB memori, 8 MB untuk sistem operasi b. Proses 1 aktif dan membutuhkan 20 MB c. Proses 2 aktif dan memerlukan 14 MB d. Proses 3 aktif dan memerlukan 18 MB, sisa memori tinggal 4 MB e. Proses 2 selesai f. Proses 4 aktif dan memerlukan 8 MB ditempatkan di ruang memori bekas proses 2 terjadi fragmentasi eksternal sebesar 6 MB g. Proses 1 telah selesai tersedia ruang bebas sebesar 20 MB h. Proses 2 aktif lagi dan titempatkan pada lokasi bekas proses 1 terjadi fragmentasi eksternal sebesar 6 MB 26
Partisi Memori Dinamis (4) • Algoritma penempatan (placement) • Permasalahan: • Kapan saat untuk melakukan loading dan swapping ? • Bila terdapat lebih dari satu blok memori yang dapat dibebaskan, blok memori yang mana yang akan di-swap ? • Algoritma yang dapat digunakan: • Best-fit • First-fit • Next-fit 27
Partisi Memori Dinamis (5) • Algoritma Best-fit: • Memilih blok memori yang paling sedikit menyisakan ruang memori • Biasanya performansi secara keseluruhan adalah yang paling jelek: • Proses pencarian lebih lama dan membebani prosesor • Sisa memori berukuran kecil-kecil lebih cepat terbentuk Compaction harus lebih sering dilakukan daripada algoritma yang lain 28
Partisi Memori Dinamis (6) • Algoritma First-fit: • Pencarian blok memori kosong dimulai dari awal • Blok memori yang dipilih adalah blok memori yang pertama kali ditemukan dan ukurannya sesuai • Merupakan algoritma yang paling baik: • Paling cepat • Paling sederhana • Pencarian akan melewati sejumlah proses yang terletak pada bagian ujung awal memori sebelum menemukan blok memori yang bebas 29
Partisi Memori Dinamis (7) • Algoritma Next-fit: • Pencarian blok memori kosong dimulai dari lokasi placement terakhir • Lebih jelek dibanding First-fit, karena: • Blok memori yang ditemukan sering berada pada ujung akhir memori yang merupakan blok memori berukuran paling besar: • Blok memori yang besar akan lebih cepat terpartisi menjadi blok memori yang lebih kecil • Compaction untuk memperoleh blok memori berukuran besar pada ujung akhir memori harus lebih sering dilakukan daripada First-fit 30
Partisi Memori Dinamis (8) • Contoh algoritma placement • Ukuran proses baru = 16 MB • Memori sisa: • Best-fit = 2 MB • First-fit = 6 MB • Next-fit = 20 MB 31
Partisi Memori Dinamis (9) • Kelebihan: + Tidak terjadi fragmentasi internal + Penggunaan memori lebih efisien + Jumlah proses aktif lebih fleksibel (tidak tetap) • Kekurangan: – Implementasinya lebih susah – Dapat terjadi fragmentasi eksternal • Terjadi overhead penggunaan prosesor: • Untuk compaction • Untuk menjalankan algoritma 32
Buddy System (1) • Merupakan kombinasi antara teknik manajemen memori partisi tetap dan dinamis • Ruang memori yang tersedia selalu berukuran 2 K, L K U • 2 L = ukuran blok terkecil yang dapat ditempati • 2 U = ukuran blok terbesar yang dapat ditempati, merupakan ukuran seluruh memori yang dapat digunakan 33
Buddy System (2) • Algoritma Buddy system: • Mula-mula ukuran memori yang tersedia akan berukuran 2 U • Jika ada permintaan memori sebesar s, dimana 2 U-1 < s <= 2 U, maka seluruh memori akan ditempati • Jika s <= 2 U-1, maka blok memori tersebut akan dibagi menjadi 2 bagian sama besar • Pembagian akan terjadi terus menerus sehingga blok terkecil yang diperoleh berukuran sama atau lebih besar dari s (dapat untuk menampung program yang akan dieksekusi) • Bila terdapat 2 buah blok memori berukuran sama, terdapat dalam cabang yang sama, dan tidak digunakan, maka kedua blok memori tersebut akan digabung menjadi satu 34
Buddy System (3) • Contoh Buddy system 35
Buddy System (4) • Contoh pohon biner 36
Question ? • Teknik manajemen memori yang manakah yang menyebabkan alamat absolut tidak berubah (selalu sama meskipun terjadi swap) ? • Model partisi tetap berukuran tidak sama dan menggunakan aturan satu partisi satu antrian • ? ? ? 37
Paging sederhana (1) • Paging sederhana dilakukan dengan cara • Membagi-bagi memori menjadi bagian-bagian kecil yang bersifat tetap dan ukurannya sama (mirip partisi tetap) dan selanjutnya disebut dengan frame • Membagi-bagi proses menjadi bagian-bagian kecil yang ukurannya sama dengan bagian-bagian memori yang selanjutnya disebut dengan page • Sistem operasi menggunakan page table untuk mencatat alokasi memori • Setiap proses mempunyai page table sendiri-sendiri • Page table = tabel dengan 2 kolom (kolom Nomor page dan kolom Nomor frame) 38
Paging sederhana (2) • Penempatan page ke dalam frame: 39
Paging sederhana (3) Penempatan page ke dalam frame: (lanjutan) 40
Paging sederhana (4) • Status akhir page table untuk setiap proses berdasarkan gambar No. pada slide sebelumnya: No. page frame • Nomor page selalu diawali dengan nol 41
Paging sederhana (5) • Apa perbedaan antara paging sederhana dengan partisi tetap ? • • Ukuran partisi lebih kecil Program boleh menempati lebih dari satu partisi Letak program di dalam memori boleh tidak berurutan Fragmentasi internal yang terjadi mempunyai ukuran lebih kecil (kurang dari satu page) • Apa persamaannya ? 42
Paging sederhana (6) • Alamat lojik = nomor page + offset • satu offset = satu alamat • Cara mentranslasikan alamat relatif atau alamat lojik ke alamat absolut: • Pisahkan bit-bit nomor page yang terletak pada bit-bit sebelah kiri dari bitbit alamat relatif sebesar n bit, n = jumlah bit untuk nomor page • Gunakan nomor page tersebut sebagai indeks untuk mengetahui nomor frame k pada page table • Alamat awal dari alamat fisik adalah k x 2 m • Alamat fisik dapat diperoleh dengan cara menambahkan alamat awal tersebut dengan offset • Cara mendapatkan alamat fisik yang lebih sederhana (tidak perlu melakukan penjumlahan) adalah dengan menggabungkan bit-bit nomor frame dengan bit-bit offset 43
Paging sederhana (7) • Contoh paging sederhana: • Sebuah memori menggunakan pengalamatan 16 bit dan dipartisi dengan model paging sederhana dimana ukuran setiap page adalah 1 k. B (1024 byte). Berapakah alamat absolut untuk alamat relatif 1502 atau alamat lojik dengan page# = 1 dan offset = 478 dimana page tersebut ditaruh pada frame nomor 6 ? • Jawaban: • Ukuran 1 page = 1024 byte diperlukan 10 bit • Ukuran offset maksimum adalah sebesar ukuran satu page (1024) • Maka: • Jumlah bit untuk page = jumlah bit untuk offset = 10 bit • Jumlah bit untuk nomor page adalah 16 -10 = 6 bit jumlah page maksimum = 26 = 64 page masing-masing berukuran 1 KB • Berapa kapasitas memori maksimum yang tersedia ? ? ? 44
Paging sederhana (10) • Contoh paging sederhana: (cont’d) • Alamat relatif 1502 kalau ditulis dalam biner adalah 000001011110 • Alamat tersebut sama dengan alamat lojik sbb: • Nomor page# = 1 (000001) • Nilai offset = 478 (011110) • Jika nomor frame untuk page# 1 (000001) pada page table adalah 6 (000110), maka: • Alamat fisik dari alamat relatif 1502 adalah 000110 (nomor frame) digabung dengan 011110 (offset) sehingga menjadi 000111011110 atau 6622 45
Paging sederhana (8) Contoh paging sederhana: (cont’d) 46
Paging sederhana (9) 47
Paging sederhana (11) • Kelebihan pengalamatan pada paging sederhana: (+) Model alamat lojik mudah diartikan oleh programmer, assembler, dan linker karena setiap alamat lojik (nomor page, offset) suatu program adalah identik dengan alamat relatifnya (+) Fungsi untuk melakukan translasi dari alamat lojik ke alamat absolut dapat dengan mudah diimplementasikan dengan hardware (hanya penggabungan bit, tidak perlu fungsi aritmatika) 48
Segmentasi sederhana (1) • Program dan data dibagi-bagi dalam sejumlah segment • Ukuran setiap segment boleh berbeda-beda • Panjang segment mempunyai batasan maksimum • Format alamat lojik terdiri dari 2 bagian yaitu nomor segment dan offset • Segment table terdiri dari nomor segment, panjang segment, dan awal alamat fisik • Segmentasi sederhana identik dengan partisi dinamis, karena ukuran segment berbeda-beda 49
Segmentasi sederhana (2) • Apa perbedaan antara segmentasi sederhana dengan partisi dinamis ? • Program boleh menempati lebih dari satu partisi • Letak program di dalam memori boleh tidak berurutan (terpisah) • Eksternal fragmentasi masih dapat terjadi tetapi ukurannya lebih kecil (kurang dari satu segment) • Apa persamaannya ? 50
Segmentasi sederhana (3) • Cara mentranslasikan alamat relatif ke alamat absolut: • Pisahkan bit-bit nomor segment yang terletak pada bit-bit sebelah kiri dari bit-bit alamat relatif sebesar n bit • Gunakan nomor segment tersebut sebagai indeks untuk mengetahui awal dari alamat fisik pada segment table • Bandingkan nilai offset dengan panjang segment • Jika nilai offset lebih besar atau sama dengan panjang segment alamat tersebut tidak valid (proteksi terhadap ilegal akses) • Alamat fisik diperoleh dengan cara menjumlahkan awal alamat fisik suatu segment dengan offset 51
Segmentasi sederhana (4) • Contoh segmentasi sederhana: • Sebuah memori menggunakan pengalamatan 16 bit dan dipartisi dengan model segmentasi sederhana dimana jumlah bit untuk nomor segment sebesar 4 bit. Berapakah alamat absolut untuk alamat lojik dengan segment# = 1 dan offset = 752 ? • Jawaban: • Nomor segment terdiri dari 4 bit, maka: • Jumlah segment maksimum = 24 = 16 segment • Jumlah bit offset = 16 -4 = 12 bit ukuran segment maksimum adalah 212 = 4096 52
Segmentasi sederhana (5) 53
Segmentasi sederhana (6) 54
Segmentasi sederhana (7) • Contoh segmentasi sederhana: (cont’d) • Alamat lojik dengan segment# = 1 dan offset = 752 dalam biner adalah, maka: • Segment# = 1 0001 • Offset = 752 001011110000 • Alamat dalam biner adalah 0001001011110000 • Jika awal alamat fisik pada segment table untuk alamat lojik tersebut adalah 00100000, maka: • Alamat fisik dari alamat lojik tersebut adalah penjumlahan awal alamat fisik dengan offset = 00100000 + 001011110000 sehingga menjadi 00100010000 atau 8976 55
Segmentasi sederhana (8) • Kelebihan pengalamatan pada segmentasi sederhana: • Untuk tujuan modularitas, programmer dapat membagi-bagi programnya dan ditempatkan pada segment-segment berbeda di dalam memori lebih fleksibel • Kelemahannya: • Programmer harus mengetahui ukuran maksimum dari segment • Implementasi translasi ke dalam hardware lebih kompleks 56
Referensi: [STA 09] Stallings, William. 2009. Operating System: Internal and Design Principles. 6 th edition. Prentice Hall 57