Fakultas Ilmu Komputer Udinus Management Memory Pengenalan Memori

  • Slides: 53
Download presentation
Fakultas Ilmu Komputer – Udinus Management Memory

Fakultas Ilmu Komputer – Udinus Management Memory

Pengenalan � Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan

Pengenalan � Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu. � Sistem Operasi bertugas untuk mengatur peletakan banyak proses pada suatu memori � Manajemen memory berkaitan dengan aktifitas pengelolaan penggunaan memori pada saat komputer aktif dan menjalankan proses-proses

Tugas Management Memori �Agar dapat memanfaatkan pemroses dan fasilitas I/O secara efisien, maka diinginkan

Tugas Management Memori �Agar dapat memanfaatkan pemroses dan fasilitas I/O secara efisien, maka diinginkan memori menampung proses sebanyak mungkin �Mengupayakan agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer

Fungsi Management Memori �Mengelola informasi mengenai memori yang dipakai dan tidak dipakai oleh sistem

Fungsi Management Memori �Mengelola informasi mengenai memori yang dipakai dan tidak dipakai oleh sistem �Mengalokasikan memori ke proses yang memerlukan �Mendealokasikan memori dari proses yang telah selesai menggunakan �Mengelola swapping antara memori utama dan harddisk

KONSEP DASAR Cache Memory Main Memory Secondary Memory Hierarki organisasi memori pada sistem komputer

KONSEP DASAR Cache Memory Main Memory Secondary Memory Hierarki organisasi memori pada sistem komputer Cache memory merupakan penyimpanan berkecepatan tinggi yang lebih cepat dari memori utama Bagian program yang akan digunakan/ dieksekusi dicopy dahulu ke cache memory sebelum dieksekusi. Di cache memory, instruksi dapat dieksekusi dengan lebih cepat dibandingkan bila berada di memori utama

Swapping Skema Swapping

Swapping Skema Swapping

Swapping � Suatu proses dapat di-swap secara temporary keluar dari memori dan dimasukkan ke

Swapping � 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 diswap out, sehingga proses dengan prioritas tinggi dapat di-load dan dieksekusi.

Cakupan Bahasan �Management Memori pada: 1. Sistem Monoprogramming 2. Sistem Multiprogramming 3. Sistem Paging

Cakupan Bahasan �Management Memori pada: 1. Sistem Monoprogramming 2. Sistem Multiprogramming 3. Sistem Paging & Segmented

Management Memori dibedakan �Berdasarkan Keberadaan Swapping Dengan Swapping Tanpa Swapping �Berdasarkan Alokasi Memori Berurutan

Management Memori dibedakan �Berdasarkan Keberadaan Swapping Dengan Swapping Tanpa Swapping �Berdasarkan Alokasi Memori Berurutan (Kontinyu) Alokasi Memori Tidak Berurutan (Non Kontinyu)

Pengalokasian Memori �Alokasi memori berurutan (Contiguous Memory Allocation): alamat memori diberikan kepada proses secara

Pengalokasian Memori �Alokasi memori berurutan (Contiguous Memory Allocation): alamat memori diberikan kepada proses secara berurutan dari kecil ke besar �Alokasi memori tidak berurutan (Non- contiguous Memory Allocation): program dibagi menjadi beberapa blok atau segmen

Pengalokasian Memori (Lanj) �Ada 2 tipe Contiguous Memory Allocation: Partisi tunggal adalah alamat pertama

Pengalokasian Memori (Lanj) �Ada 2 tipe Contiguous Memory Allocation: Partisi tunggal adalah alamat pertama yang dialokasikan untuk proses adalah yang berikutnya dari alamat yang dialokasikan untuk proses sebelumnya Partisi banyak adalah dimana Sistem Operasi menyimpan informasi tentang semua bagian memori yang tersedia untuk digunakan (disebut hole)

Pengalokasian Memori (Lanj) �Ada 2 cara pengaturan partisi pada sistem partisi banyak: Partisi tetap

Pengalokasian Memori (Lanj) �Ada 2 cara pengaturan partisi pada sistem partisi banyak: Partisi tetap adalah apabila memori dipartisi menjadi blok-blok yang ukurannya ditentukan dari awal. Terbagi lagi atas partisi tetap berukuran sama, dan partisi tetap berukuran berbeda. Partisi dinamis adalah memori dipartisi menjadi bagian-bagian dengan jumlah dan besar yang tidak tentu.

Algoritma Pengalokasian Memori dengan Partisi Dinamis �First fit: Mengalokasikan hole pertama yang besarnya mencukupi.

Algoritma Pengalokasian Memori dengan Partisi Dinamis �First fit: Mengalokasikan hole pertama yang besarnya mencukupi. Pencarian dimulai dari awal �Best fit: Mengalokasikan hole terkecil yang besarnya mencukupi �Next fit: Mengalokasikan hole pertama yang besarnya mencukupi. Pencarian dimulai dari akhir pencarian sebelumnya �Worst fit: Mengalokasikan hole terbesar yang tersedia

Algoritma Pengalokasian Memori dengan Partisi Dinamis

Algoritma Pengalokasian Memori dengan Partisi Dinamis

Sistem Monoprogramming �Sistem komputer hanya mengijinkan satu proses berjalan pada satu waktu �Semua sumber

Sistem Monoprogramming �Sistem komputer hanya mengijinkan satu proses berjalan pada satu waktu �Semua sumber daya sistem komputer sepenuhnya dikuasai oleh proses yang sedang berjalan �Alokasi memori dilakukan secara berurutan (Contiguous Memory Allocation) �Teknik yang digunakan sampai sekitar 1960

Alokasi Memori Monoprogramming �Keuntungan Contiguous daripada Non- contiguous: Sederhana, cepat, mendukung proteksi memori. �Kerugian

Alokasi Memori Monoprogramming �Keuntungan Contiguous daripada Non- contiguous: Sederhana, cepat, mendukung proteksi memori. �Kerugian Contiguous daripada Non- contiguous: Jika tidak semua proses dialokasikan di waktu yang sama, akan menjadi sangat tidak efektif dan mempercepat habisnya memori

Pembagian Memori terbagi menjadi 3 bagian: 1. Bagian yang berisi rutin SO 2. Bagian

Pembagian Memori terbagi menjadi 3 bagian: 1. Bagian yang berisi rutin SO 2. Bagian yang berisi program pemakai 3. Bagian yang tidak digunakan Sistem Operasi di RAM Program Pemakai di RAM Memori tak dipakai

Proteksi Memori Sistem Operasi di RAM Program Pemakai di RAM Memori tak dipakai Pemroses

Proteksi Memori Sistem Operasi di RAM Program Pemakai di RAM Memori tak dipakai Pemroses Register Batas Sistem Operasi harus diproteksi dari modifikasi oleh program pemakai. Proteksi diimplementasikan menggunakan satu register batas di pemroses Setiap kali program pemakai mengacu alamat memori dibandingkan register batas untuk memastikan proses pemakai tidak merusak sistem operasi (tidak melewati nilai di register batas)

Sistem Multiprogramming (Statis) �Keunggulan Multiprogramming Mempermudah pemrogram ▪ Pemrogram dapat memecah program menjadi dua

Sistem Multiprogramming (Statis) �Keunggulan Multiprogramming Mempermudah pemrogram ▪ Pemrogram dapat memecah program menjadi dua proses atau lebih Dapat memberikan layanan interaktif ke beberapa orang secara simultan ▪ Maka diperlukan kemampuan mempunyai lebih dari satu proses di memori

Partisi Statis Multiprogramming �Multiprogramming dapat dilakukan dengan pemartisian statis (memori dibagi menjadi sejumlah partisi

Partisi Statis Multiprogramming �Multiprogramming dapat dilakukan dengan pemartisian statis (memori dibagi menjadi sejumlah partisi tetap) �Pada partisi tersebut proses-proses ditempatkan �Pemartisi statis berdasarkan ukuran partisi- partisinya, dibedakan menjadi: 1. Pemartisi berukuran sama 2. Pemartisi berukuran berbeda

Pemartisi Statis berukuran sama �Pemartisi berukuran sama = ukuran semua partisi memori sama �Kelemahan:

Pemartisi Statis berukuran sama �Pemartisi berukuran sama = ukuran semua partisi memori sama �Kelemahan: Bila program ukurannya lebih besar dibandingkan partisi yang tersedia maka tidak dapat dimuatkan/dijalankan Bila program ukurannya kecil dibandingkan ukuran partisi yang ditetapkan maka banyak ruang yang tidak dipakai yang diboroskan

Skema Partisian Statis pada Multiprogramming Partisi 1 -> 50 Kb Partisi 2 -> 75

Skema Partisian Statis pada Multiprogramming Partisi 1 -> 50 Kb Partisi 2 -> 75 Kb Partisi 3 -> 50 Kb Partisi 3 -> 100 Kb Partisi 4 -> 50 Kb Partisi 5 -> 50 Kb Sistem Operasi Pemartisian Statis (Tetap) Berukuran Sama Partisi 4 -> 200 Kb Partisi 5 -> 150 Kb Sistem Operasi Pemartisian Statis (Tetap) Berukuran Berbeda

Sistem Multiprogramming (Dinamis) �Dengan partisian dinamis maka jumlah, lokasi, dan ukuran proses di memori

Sistem Multiprogramming (Dinamis) �Dengan partisian dinamis maka jumlah, lokasi, dan ukuran proses di memori dapat beragam sepanjang waktu �Proses yang akan masuk ke memori segera dibuatkan partisi sesuai kebutuhan �Kelemahan: Dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai (fragmentasi) Merumitkan alokasi dan dealokasi memori

Lubang-lubang kecil di memori Memori untuk sistem operasi Proses 0 Proses 1 Bebas Proses

Lubang-lubang kecil di memori Memori untuk sistem operasi Proses 0 Proses 1 Bebas Proses 2 Proses 3 Bebas Proses 4 Proses 5 Bebas Memori untuk sistem operasi Proses 0 Proses 2 Proses 4 Bebas Proses 1, 3, 5 berakhir dan membebaskan memorinya Lubang-lubang memori diselesaikan dengan menggunakan pemadatan memori

Pemadatan memori (memory compaction) �Pemadatan memori (memory compaction) Operasi menggabungkan semua lubang kecil menjadi

Pemadatan memori (memory compaction) �Pemadatan memori (memory compaction) Operasi menggabungkan semua lubang kecil menjadi satu lubang besar dengan memindahkan semua proses agar saling berdekatan �Kelemahan Pemadatan memori Memerlukan waktu yang sangat banyak Sistem harus menghentikan sementara semua proses selagi melakukan pemadatan

Fragmentasi �Fragmentasi adalah fenomena munculnya lubang-lubang (ruang memori kosong) yang tidak cukup besar untuk

Fragmentasi �Fragmentasi adalah fenomena munculnya lubang-lubang (ruang memori kosong) yang tidak cukup besar untuk menampung permintaan alokasi memori dari proses �Fragmentasi terdiri dari 2 jenis: 1. Fragmentasi internal 2. Fragmentasi eksternal

Fragmentasi internal �Fragmentasi internal terjadi ketika kapasitas memori yang diberikan ke sebuah proses melebihi

Fragmentasi internal �Fragmentasi internal terjadi ketika kapasitas memori yang diberikan ke sebuah proses melebihi besarnya permintaan yang diajukan oleh proses. �Selisih antara besarnya memori yang dialokasikan dengan besarnya permintaan proses disebut fragmentasi internal �Biasa terjadi pada partisi tetap

Fragmentasi eksternal �Eksternal fragmentasi terjadi apabila jumlah keseluruhan memori bebas yang tersedia cukup untuk

Fragmentasi eksternal �Eksternal fragmentasi terjadi apabila jumlah keseluruhan memori bebas yang tersedia cukup untuk menampung permintaan ruang memori dari sebuah proses, namun dari ruang memori kosong tersebut terpisah-pisah sehingga proses tidak dapat menggunakannya �Solusi untuk fragmentasi eksternal adalah Compactation, paging, ataupun segmentasi

Fragmentasi Eksternal (Contoh) � Sebuah proses meminta ruang memori sebesar 9 KB namun memori

Fragmentasi Eksternal (Contoh) � Sebuah proses meminta ruang memori sebesar 9 KB namun memori telah dipartisi menjadi blok-blok dengan ukuran masing-masing 4 KB. � Maka proses tersebut akan mendapatkan bagiannya berupa 2 buah blok dengan kapasitas masing-masing 4 KB dan kapasitas tambahan sebesar 1 KB dari sebuah blok lain. � Oleh karena masing-masing blok memiliki ukuran 4 KB dan ada sebuah blok yang hanya digunakan sebesar 1 KB maka blok ini masih akan memiliki sisa kapasitas sebesar 3 KB.

Pemberian Alamat �Setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu. �Sebelum masuk

Pemberian Alamat �Setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu. �Sebelum masuk ke memori, suatu proses harus menunggu yang disebut Input Queue �Penjilidan alamat dapat terjadi pada 3 saat: Compile Time Load Time Execution Time

Pemberian Alamat (Lanj) �Compile Time pada saat proses di-compile, menggunakan kode absolut �Load Time

Pemberian Alamat (Lanj) �Compile Time pada saat proses di-compile, menggunakan kode absolut �Load Time pada saat proses dipanggil, menggunakan kode yang direlokasi �Execution Time pada saat proses dijalankan, memerlukan perangkat keras tersendiri

Alamat Logika & Fisik �Alamat Logika adalah alamat yg dibentuk di CPU, disebut juga

Alamat Logika & Fisik �Alamat Logika adalah alamat yg dibentuk di CPU, disebut juga alamat virtual (alamat maya) �Alamat fisik adalah alamat yang terlihat oleh memori �Untuk mengubah dari alamat logika ke alamat fisik diperlukan suatu perangkat keras yang bernama MMU (Memory Management Unit).

Memory Management Unit

Memory Management Unit

Ruang alamat maya & nyata �Ruang alamat yang dibentuk alamat maya disebut dengan ruang

Ruang alamat maya & nyata �Ruang alamat yang dibentuk alamat maya disebut dengan ruang alamat maya (virtual address space) �Ruang alamat yang dibentuk alamat nyata disebut ruang alamat nyata (real address space) �Meski pengacuan proses dilakukan berdasarkan alamat maya, namun proses sesungguhnya berjalan di memori nyata

�Solusi program lebih besar dari memori utama. Terdapat dua solusi untuk masalah ini: 1.

�Solusi program lebih besar dari memori utama. Terdapat dua solusi untuk masalah ini: 1. Overlay 2. Memori maya (virtual memory)

Overlay � Overlay membagi program yang besar menjadi bagian-bagian yang lebih kecil dan dapat

Overlay � Overlay membagi program yang besar menjadi bagian-bagian yang lebih kecil dan dapat dimuat dalam memori utama. � Overlay yang belum diperlukan (tidak sedang dieksekusi) disimpan di disk, overlay ini dimuatkan ke memori begitu diperlukan � Pertukaran overlay masuk dan keluar memori dilakukan sistem operasi. Pembagian program menjadi overlay-overlay dilakukan pemrogram

Memori Maya (Virtual Memory) �Memori maya adalah kemampuan mengalamati ruang memori melebihi memori utama

Memori Maya (Virtual Memory) �Memori maya adalah kemampuan mengalamati ruang memori melebihi memori utama yang tersedia �Memori maya dapat dilakukan dengan tiga cara: 1. Paging 2. Segmentasi 3. Kombinasi paging dan segmentasi

Paging �Memori virtual dibagi menjadi blok-blok yang ukurannya tetap yang dinamakan page atau page

Paging �Memori virtual dibagi menjadi blok-blok yang ukurannya tetap yang dinamakan page atau page merupakan unit terkecil ruang alamat maya �Paging merupakan opsi solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan

Paging (Lanj) �Mengijinkan sebuah proses dialokasikan pada memori fisik (Memori fisik dibagi ke dalam

Paging (Lanj) �Mengijinkan sebuah proses dialokasikan pada memori fisik (Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut frame). �Memori logika juga dibagi ke dalam blok-blok dengan ukuran yang sama yang disebut page �Untuk menjalankan program dengan ukuran n page, perlu menemukan n frame bebas dan meletakkan program pada frame tersebut. �Tabel page (page table) digunakan untuk menterjemahkan alamat logika ke alamat fisik

Paging (Lanj) �Setiap alamat yang dihasilkan oleh CPU(memori logis) akan dibagi menjadi 2 bagian

Paging (Lanj) �Setiap alamat yang dihasilkan oleh CPU(memori logis) akan dibagi menjadi 2 bagian yaitu nomor page (p) dan page offset(d): Nomor page digunakan sebagai indeks ke dalam table page (page table). Page table berisi alamat basis dari setiap page pada memori fisik. Page offset akan digabung dengan alamat dasar untuk mendefinisikan alamat fisik yang akan di kirim ke unit memori.

Paging (Lanj) �Tiap elemen tabel sedikitnya memuat: Nomer page frame ▪ Berisi nomor page

Paging (Lanj) �Tiap elemen tabel sedikitnya memuat: Nomer page frame ▪ Berisi nomor page frame dimana page berada Present/absent bit ▪ Bernilai 1, bila page di memori fisik. Bernilai 0 bila page tidak ada di memori fisik

Paging (Lanj) Pada alamat memori fisik akan dibagi menjadi nomor frame (f) yang nantinya

Paging (Lanj) Pada alamat memori fisik akan dibagi menjadi nomor frame (f) yang nantinya akan dicocokan pada page table.

Page Table 101 Tabel Page 0 001 1 1 010 1 2 011 1

Page Table 101 Tabel Page 0 001 1 1 010 1 2 011 1 3 100 1 4 101 1 5 110 1 6 000 0 7 000 0 8 000 0 00000100 Memori Maya Memori Nyata 101 00000100

Pemetaan � Page number maya digunakan sebagai index ke tabel page untuk menentukan isian

Pemetaan � Page number maya digunakan sebagai index ke tabel page untuk menentukan isian page maya � Dari isian table page dapat diketahui apakah page dipetakan ke memori fisik (dengan memeriksa present/absent bit) Apabila alamat terdapat di memori fisik maka isian di table page memuat nomer page frame Nomer page frame di tabel page dikopi sebagai bit-bit di register alamat fisik dan ditambah offset di alamat maya Bila alamat tidak ada di memori fisik maka MMU menerbitkan page fault � MMU mengkopikan nomor page frame di isian tabel page dengan index nomor page ke register alamat fisik dan menambahkan dengan offset alamat maya

Paging �Page Fault adalah exception untuk permintaan alokasi page ke memori. Dalam konteks memori

Paging �Page Fault adalah exception untuk permintaan alokasi page ke memori. Dalam konteks memori maya, page fault sering disingkat fault. �Jika page fault terjadi, maka terdapat cara untuk menggantikan page tsb antara lain: 1. 2. 3. 4. 5. 6. Random page replacement algorithm Algoritma penggantian page optimal Algoritma penggantian page NRU Algoritma penggantian page FIFO Algoritma penggantian modifikasi FIFO Algoritma penggantian page LRU

Penanganan page-fault �Memeriksa tabel internal. �Jika invalid, proses selesai, jika valid tapi proses belum

Penanganan page-fault �Memeriksa tabel internal. �Jika invalid, proses selesai, jika valid tapi proses belum dibawa ke page, maka kita page sekarang. �Cari sebuah frame bebas (free frame). �Jadwalkan operasi sebuah disk untuk membaca page tersebut ke frame yang baru dialokasikan. �Saat pembacaan selesai, ubah validation bit menjadi “ 1” yang berarti page telah ada di memory. �Ulangi lagi instruksinya dari awal.

Kombinasi Paging & Segmentasi �Kombinasi paging dan segmentasi diilustrasikan menggunakan 2 arsitektur berbeda: MULTICS

Kombinasi Paging & Segmentasi �Kombinasi paging dan segmentasi diilustrasikan menggunakan 2 arsitektur berbeda: MULTICS Intel 386 (OS/2) �Pada sistem MULTICS, alamat logika dibentuk dari nomor segmen 18 bit dan offset 16 bit

MULTICS �Solusi yang diadopsi pada MULTICS adalah dengan melakukan paging pada segmen (page the

MULTICS �Solusi yang diadopsi pada MULTICS adalah dengan melakukan paging pada segmen (page the segment). �Paging menghilangkan fragmentasi eksternal dimana frame kosong dapat digunakan untuk page yang tepat

Intel 386 (OS/2) �IBM OS/2 versi 32 bit adalah sistem operasi yang menggunakan arsitektur

Intel 386 (OS/2) �IBM OS/2 versi 32 bit adalah sistem operasi yang menggunakan arsitektur 30386 (dan 30486). Intel 30386 menggunakan segmentasi dengan paging untuk manajemen memori �Maksimum jumlah segment per proses adalah 16 K. �Setiap segmen maksimal berukuran 4 gigabytes. Ukuran page adalah 4 K byte

Intel 386 (OS/2) �Ruang alamat logika dari suatu proses dibagi ke dalam 2 partisi:

Intel 386 (OS/2) �Ruang alamat logika dari suatu proses dibagi ke dalam 2 partisi: Partisi 1 terdiri dari 8 K segmen yang pribadi (private) untuk proses tersebut. Partisi 2 terdiri dari 8 K segmen yang digunakan bersama untuk semua prose

TUGAS 2 1. Apa saja masalah-masalah yang terjadi pada Sistem Paging? 2. Jelaskan mengenai

TUGAS 2 1. Apa saja masalah-masalah yang terjadi pada Sistem Paging? 2. Jelaskan mengenai segmentasi? 3. Beri contoh algoritma alokasi pemartisian dinamis?

TUGAS 2 �Diasumsikan tersedia memori 2560 K dan untuk OS 400 K. Sisa 2160

TUGAS 2 �Diasumsikan tersedia memori 2560 K dan untuk OS 400 K. Sisa 2160 K digunakan untuk user proses. Diasumsikan terdapat 5 job (P 1 s/d P 5) 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.