Kamis, 04 Juli 2013

SISTEM PAGING & SEGMENTASI

“SISTEM PAGING & SEGMENTASI” DISUSUN OLEH : 1. YURISTINA WIRDA LUSI (11.1.00029) 2. EVRIDA SETYANING MAHARANI (11.1.00009) 3. ASTRI MANDASARI (11.1.00002) 4. DENDY ALIT PRATAMA(11.1.00008) Manajemen Informatika STIMK Sinar Nusantara Surakarta 2012/2013 SISTEM PAGING A. MEMORI MAYA Program yang dijalankan harus dimuat dimemori utama. Masalah muncul ketika program lebih besar dibanding memori yang tersedia. Terdapat dua solusi dalam masalah ini : 1. Overly : Program dipecah menjadi bagian-bagian yang dapat dimuat memori 2. Memori maya : Kemempuan yang mengalamati ruang memori melebihi memori utama yang tersedia B. DESKRIPSI SISTEM PAGING 1. Alamat maya : yang dihasilkan diperhitungkan menggunakan index, register, base register, segment register 1. Alamat nyata : alamat yang tersedia dimemori utama fisik 2. Page : unit terkecil virtual address space 3. Page frame : unit terkecil memori fisik 4. Page fault : exception untuk permintaan lokasi page ke memori 5. MMU : chip / kumpulan chip yang memetakan alamat maya ke alamat fisik MMU memiliki fungsi : - Pemetaan memori maya ke memori fisik - Bila alamat maya yang diminta tidak tersedia di memori fisik, MMU menerbitkan exception page fault yang melewatkan ke sistem operasi untuk menanganinya. Komponen terpenting MMU adalah : - Register alamat maya : Menyimpan alamat maya yg diacu - Tabel page : Tiap elemen tabel sedikitnya berisi informasi tentang absent bit dan nomor page frame - Register alamat fisik : Menyimpan alamat fisik yang disinyalkan ke bus Memori Asosiatif Program cenderung melakukan banyak pengacuan kesejumlah kecil page, memori asosiatif berisi sejumlah elemen tabel : 1. Nomor page maya 2. Bit W, untuk mencatat apakah page telah dimodifikasi 3. Bit-bit proteksi 4. Nomor page frame dari page maya C. MASALAH UTAMA SISTEM PAGING 1. Working set model 2. Kebijaksanaan penggatian lokal dengan global 3. Frekuensi page fault 4. Ukuran page WORKING SET MODEL 1. Prinsip Lokalitas Konsekuensi prinsip lokalitas : program dapat berjalan efisien sat satu subset page tinggi saling mengacu di memori. Proses mengacu pada penyimpanan secara tak seragam, mempunyai pola setempat. Jenis lokalitas : - Lokalitas berdasarkan waktu Proses mengacu pada satu interval waktu eksekusi dekat. Observasi berikut mendukung prinsip : • Looping • Subrutin • Stack • Variabel yang digunakan untuk interasi dan penjumlahan total - Lokalitas berdasarkan ruang Proses mengacu pda satu kelompok data yang berdekatan. Observasi berikut mendukung prinsip : • Traversal pada array • Eksekusi kode yang sekuen • Kecenderungan pemrogram menempatkan variabel yang terkait saling berdekatan 2. Working Set Model of Program Behavior Prinsip : melacak dan menjamin himpunan kerja di memori sebelum proses dijalankan. Prinsip himpunan kerjanya (MIL-92) : - Program seharusnya dijalankan jika himpunan kerja berada di memori - Page tidak boleh dipindah dari memori jika page anggota himpunan kerja dari program yang running KEBIJAKSANAAN PENGGANTIAN LOKAL VS GLOBAL Ada dua pendekatan untuk mengganti page : 1. Penggantian lokal : page yang dipilih untuk diganti hanya pada partisi dimana proses diletakan 2. Penggantian global : page yang dipilih untuk diganti yaitu pada tempat kosong dengan tidak memperhatikan partisi proses FREKUENSI PAGE FAULT Frekuensi terjadinya page fault dapat dikendalikan dengan algoritma PFF (page fault frequency algorithm) yang harus didefinisikan ambang tas dan bawah frekuensi page fault. Parameter PFF adalah P yaitu jumlah frekuensi page fault per T : P=1/T T : waktu P : diukur dalam jumlah page fault per milidetik Algoritma PFF diimplementasikan (MIL-92) : 1. Sistem operasi mendefinisikan frekuensi page fault kritis sistem 2. Sistem operasi mengukur waktu proses mya dan menyimpan waktu page fault mutakhir di PCB proses 3. Ketika page fault terjadi sistem operasi akan : - Jika page fault terakhir kurang dari T=1/P ms detik lalu, proses beroperasi di atas ambang maka page frame baru ditambahkan - Berarti proses beroperasi di bawah ambang PFF maka page frame page bit R=0 dan W=0 dibebaskan unttuk alokasi page baru proses lain UKURAN PAGE Ditentukan perancang sistem operasi agar sistem berupaya optimal. Pertimbangan penentuan page : 1. Ukuran page lebih kecil berarti jumlah page dan page frame lebih banyak sehingga memerlukan tabel page lebih besar 2. Ukuran page besar berati sebagian informasi yang tidak diacu dimasukan ke memori utama sehingga terjadi fregmentasi internal tinggi 3. Transfer input output membutuhkan waktu sehingga perlu meminimalkan jumlah transfer input output 4. Program mengikuti prinsip lokalitas yang berukuran kecil C. MASALAH IMPLEMENTASI SISTEM PAGING 1. Backup intruksi yang terakhir dijalankan sebelum terjadi page fault 2. Buffer perangkat input output (penguncian page di memori) 3. Page yang ipakai bersama 4. Backing store 5. Paging daemon 6. Penanganan page fault BACKUP INTRUKSI Bila terjadi page fault berarti ebagian intruki sudah dijalankan. Pengkopian program counnter an informasi register pemroses harus dilakukan. Setelah penggantian page maka intruksi yang menyebabkan page fault dapat dijalankan lagi dengan konteksnya. BUFFER INPUT OUTPUT Penggantian page akn mengacukan proses yang melakukan operasi input output jika : 1. Buffer perangkat input output hilang 2. Adanya buffer satu perangkat input output menjadi rengkap Penyelesaian masalah : 1. Penguncian buffer perangkat input output sehingga tidak menjadi ssaran penggantian 2. Buffer perangkat input output ditempatkan di kernel dan mengcopy semua data ke page prose pemakai PEMAKAIAN PAGE BERSAMAAN Masalah : 1. Tidak semua page dapat dipakai bersama Kode biner program adalah shareable (dapat dipakai bersama) 2. Akhir suatu proses Salah satu proses akan membuang page dari memori karena proses berakhir Solusi saat proses berakhir sistem operasi memeriksa apakah page masih digunakan proses lain: 1. Bila masih dipakai, sistem operasi tidak membebaskan page dari memori 2. Jika tidak dipakai, page dapat dialokasikan BACKING STORE Dimana diletakan page yang keluar dari memori utama. Penyelesaian masalah : 1. Menggunakan ruang penggantian khusus 2. Dialokasikan berdasarkan kebutuhan PAGING DAEMONS Proses background pada sistem paging yang menjamin suplai page frame banyak. PENANGANAN PAGE FAULT 1. Perangkat keras melakukan trap ke kernel, menyimpan program couter di stack 2. Satu rutin assembly dimulai untuk menyimpan register umum dan informasi lain yang hilang. Rutin memanggil sistem operasi 3. Sistem operasi mengetahui terjadi page fault dan menemukan virtual page yang dibantu perangkat keras dengan menyediakan register berisi informasi yang dibutuhkan 4. Setelah alamat maya yang menyebabkan fault diketahui, sistem operasi memeriksa apakah alamatnya valid dan konsisten tidak terhadap proteksi 5. Jika page frame telah dimodifikasi, page dijadwalkan untuk transfer ke disk dan terjadi context switch, menunda proses fault dan membiarkan proses lain berjalan sampai transfer disk selesai 6. Setelah page frame bersih, sistem operasi melihat alamat disk dimana page diperlukan dan dijadwalkn operasi disk untuk membawanya sebagai frame yang disediakan 7. Saat interupsi disk mengindikasikan page datang, tabel page diperbarui untuk merefleksikan posisi dan frame ditandai sebagai keadaan normal 8. Intruki fault di back up ke keadaan ketika dimulai dan program counter direset untuk menunjuk ke intruksi itu 9. Proses fault dijadwalkan, sistem operasi mengembalikan ke rutin bahasa assembly yang memanggil 10. Rutin menyimpan kembali register dan informasi yang dapat hilang, dan mengembalikan ke ruang pemakai untuk melanjutkan eksekusi (bila tak terjadi fault) Segmentasi Segmentasi merupakan skema manajemen memori yang mendukung cara pandang seorang programmer terhadap memori. Ruang alamat lojik merupakan sekumpulan dari segmen-segmen. Masing-masing segmen mempunyai panjang dan nama. Alamat diartikan sebagai nama segmen dan offset dalam suatu segmen. Jadi jika seorang pengguna ingin menunjuk sebuah alamat dapat dilakukan dengan menunjuk nama segmen dan offsetnya. Untuk lebih menyederhanakan implementasi, segmen-segmen diberi nomor yang digunakan sebagai pengganti nama segmen. Sehingga, alamat lojik terdiri dari dua tuple: [segmen-number, offset]. Meskipun seorang pengguna dapat memandang suatu objek dalam suatu program sebagai alamat berdimensi dua, memori fisik yang sebenarnya tentu saja masih satu dimensi barisan byte. Jadi kita harus bisa mendefinisikan pemetaan dari dua dimensi alamat yang didefinisikan oleh pengguna kesatu dimensi alamat fisik. Pemetaan ini disebut sebagai sebuah segmen table. Masing-masing masukan mempunyai segmen base dan segmen limit. Segmen base merupakan alamat fisik dan segmen limit merupakan panjang dari segmen. Sebagai contoh, kita mempunyai nomor segmen dari 0 sampai dengan 4. Segmen-segmen ini disimpan dalam suatu memori fisik. Tabel segmen berisi data untuk masing-masing segmen, yang memberikan informasi tentang awal alamat dari segmen di fisik memori (atau base) dan panjang dari segmen (atau limit). Misalkan segmen 2 mempunyai panjang 400 dan dimulai pada lokasi 4300. Jadi, referensi di byte 53 dari segmen 2 dipetakan ke lokasi 4300 + 53 = 4353. Suatu referensi ke segmen 3, byte 852, dipetakan ke 3200 + 852 = 4052. referensi ke byte 1222 dari segmen 0 akan menghasilkan suatu trap ke sistem operasi, karena segmen ini hanya mempunyai panjang 1000 byte. Lihat gambar 2. Segmentasi. Arsitektur Segmentasi Ukuran tiap segmen tidak harus sama. Saat sebuah program atau proses dimasukkan ke CPU, segmen yang berbeda dapat ditempatkan dimana saja di dalam memori utama (dapat menggunakan cara first-fit atau best-fit ). Alamat logis dari sebuah segmen adalah alamat dua dimensi, sedangkan alamat fisik memori adalah alamat satu dimensi. Oleh karena itu, agar implementasinya menjadi mudah ( dari alamat logis ke alamat fisik ) diperlukan Tabel Segmen yang yang terdiri dari base dan limit . Base menunjukkan alamat awal segmen (dari alamat fisik) dan limit menunjukkan panjang segmen. alamat logisnya : s dan d , s adalah nomor segmen / index di dalam tabel segmen d adalah offset . Jika offset kurang dari nol dan tidak lebih besar dari besarnya limit maka base akan dijumlahkan dengan d ( offset ) , yang dijumlahkan itu adalah alamat fisik dari segmen tersebut. Saling Berbagi dan Proteksi Segmen dapat terbagi jika terdapat elemen di tabel segmen yang berasal dari dua proses yang berbeda yang menunjuk pada alamat fisik yang sama. Saling berbagi ini muncul di level segmen dan pada saat ini terjadi semua informasidapat turut terbagi. Proteksi dapat terjadi karena ada bit-proteksi yang berhubungan dengan setiap elemen dari segmen tabel. Bit-proteksi ini berguna untuk mencegah akses ilegal ke memori. Caranya: menempatkan sebuah array di dalam segmen itu sehingga perangkat keras manajemen memori secara otomatis akan mengecek indeks array -nya legal atau tidak. Alokasi yang Dinamis Masalah dalam Segmentasi • Segmen dapat Membesar • Muncul Fragmentasi Luar • Bila Ada Proses yang Besar