storage management

48
STORAGE MANAGEMENT

Upload: sakinah

Post on 12-Dec-2015

236 views

Category:

Documents


5 download

DESCRIPTION

STORAGE MANAGEMENT

TRANSCRIPT

Page 1: Storage Management

STORAGE MANAGEMENT

Page 2: Storage Management

Virtual Memory

• Sebuah Memori Tambahan yang menjadi fitur setiap masing masing Sistem Operasi , misalnya Linux terdapat Swap

• Digunakan Sistem Operasi ketika Komputer sedang menjalankan sebuah Program aplikasi yang kapasitasnya melebih Memori yang tersedia.

Page 3: Storage Management

Pada beberapa kasus, Keseluruhan program tidak diperlukan

• Program yang mempunyai kode untuk menghandle kondisi error.

• Array, list, dan tabel

• Pilihan dan gambaran program jarang digunakan

Nb : ketika keseluruhan program dibutuhkan, kenyataannya tidak semua diperlukan.

Page 4: Storage Management

Keuntungan kemampuan mengeksekusi beberapa bagian program pada memori

• Program tidak terbatas jumlah memori fisik

• Dapat menjalankan lebih banyak program

• I/O yang lebih sedikit diperlukan untuk swap program ke memori, setiap program berjalan lebih cepat

Page 5: Storage Management

Demand Paging

• Sistem paging dengan swapping.

• Keuntungan :

- Kebutuhan I/O lebih rendah

- kebutuhan memori lebih rendah

- respon lebih cepat

- lebih banyak user yang menggunakan

Page 6: Storage Management
Page 7: Storage Management

disimpan

• sebuah page tidak pernah ditukar ke memori kecuali page diperlukan dilakukan acuan ke page (valid/invalid)

• Page di memori = valid

• Page di disk = invalid

ProsesMemori

sekunder (disk)

Memori utama

Swap

Lazy swapper

Page 8: Storage Management

Page FaultAcuan invalid Page fault Trap ke sistem

operasi

Simpan status

Proses dimulai lagi , kecuali

page yang cocok sedang

dimemori dan diakses

Page 9: Storage Management

• Jika tidak menemukan frame bebas page replacement

• Perangkat keras yang dibutuhkan untuk demand paging :

- Tabel Page

- Memori Sekunder

Page 10: Storage Management

Performansi Demand Paging

• ma = memory access (akses time ke memori)

• p = probabilitas (0 ≤ p ≤ 1)

• EAT = effective access time

EAT = (1 – p ) x ma + p x PageFaultTime

Page 11: Storage Management

Copy-on-write

• Copy-on-write adalah teknik yang digunakan untuk mengoptimasi pembuatan dan penggunaan halaman , atau yang biasa disingkat dengan COW. Pembuatan proses baru dengan menggunakan sistem call fork() menciptakan proses anak sebagai duplikat dari proses induknya.

Page 12: Storage Management

• Fungsi menggunakan teknik copy-on-write adalah sebuah proses anak dan induk dapat bersama-sama menggunakan (mengakses) halaman yang sama. Suatu halaman yang diakses secara bersama-sama (shared) oleh beberapa proses ditandai dengan COW (copy-on-write) jika suatu proses ingin memodifikasi (menulis) suatu halaman. Dan apabila hal tersebut terjadi, maka akan dibuat salinan dari halaman yang di-shared tersebut.

Page 13: Storage Management

• Pada banyak sistem operasi, disediakan sebuah pool yang terdiri dari halaman-halaman yang kosong untuk meletakkan halaman hasil duplikasi dengan teknik copy-on-write. Selain untuk meletakkan halaman hasil duplikasi tersebut, pool ini juga digunakan pada saat sebuah proses mengalami penambahan stack atau heap. Teknik yang digunakan sistem operasi untuk menyediakan halaman kosong tersebut dikenal dengan zero-fill-on-demand. Teknik ini dilakukan dengan mengosongkan halaman-halaman sebelum digunakan oleh proses yang baru.

Page 14: Storage Management

• Gambar 9.11. Sebelum modifikasi pada page C

Page 15: Storage Management

• Gambar 9.12. Setelah modifikasi pada page C

Page 16: Storage Management

Page replacement.

• Page replacement merupakan situasi dimana proses dieksekusi perlu frame bebas tetapi tidak tersedia frame bebas, dan mencari beberapa page di memori yang tidak digunakan kemudian dilakukan swap out ke backing store.

• page-fault sendiri diasumsikan bahwa setiap halaman minimal mengalami satu kali page fault, yaitu pada saat diakses pertama kali.

Page 17: Storage Management

• Prinsip kerja penggantian halaman adalah sebagai berikut. “Jika tidak ada bingkai yang kosong, maka dicari (dengan suatu algoritma ganti halaman) salah satu bingkai yang sedang tidak digunakan dan kemudian dikosongkan.

Page 18: Storage Management

• Terdapat beberapa algoritma di dalam page replacement.

1. Algoritma Page Replacement FIFO (First In - First Out).

Page yang menempati memori paling lama

dipilih untuk diganti

Page 19: Storage Management

2. Algoritma Page Replacement Optimal

Ganti page yang tidak akan digunakan pada periode

berikutnya dengan waktu gilir yang terlama.

Page 20: Storage Management

3. Algoritma Least Recently Used (LRU)

LRU → cari page yang mempunyai waktu terlama yang belum pernah digunakan diantara page lain

Page 21: Storage Management

Pengaturan penggunaan frame berdasarkan waktu

terlama

- Clock Counter

- Stack

Clock Counter

- Setiap entri page punya field time-of-use

- Jika ada referensi ke suatu page, nilai register

clock ditempatkan ke field time-of-use

- Ganti page yang mempunyai waktu paling awal

Page 22: Storage Management
Page 23: Storage Management

• Stack

- Setiap ada referensi page, pindahkan page

ke posisi paling atas

- Page yang paling sering digunakan (most

recently used) berada diposisi atas.

- Page yang paling jarang digunakan (least

recently used) berada diposisi bawah.

- Umumnya berbentuk double linked-list

Page 24: Storage Management

• Penggunaan Stack

Page 25: Storage Management

LRU dengan STACK

Page 26: Storage Management

• Kinerja Algoritma Pergantian Page

Page 27: Storage Management

Allocation of Frames

• Hal yang mendasari strategi alokasi frame yang menyangkut memori virtual adalah bagaimana membagi memori yang bebas untuk beberapa proses yang sedang dikerjakan. Setiap proses perlu mendapat alokasi memori agar proses tersebut dapat dieksekusi dengan baik

• Saat proses akan dieksekusi, terjadi page fault sehingga sistem akan menggantinya dengan halaman di memori. Untuk melakukan penggantian ini diperlukan frame yang terdapat di sistem. Proses tersebut dapat menggunakan setiap frame yang sedang bebas di sistem

Page 28: Storage Management

• Jumlah Frame Minimum

• Ada suatu batasan dalam mengalokasikan frame, kita tidak dapat mengalokasikan frame lebih dari jumlah frame yang ada. Hal yang utama adalah berapa minimum frame yang harus dialokasikan agar jika sebuah instruksi dijalankan, semua informasinya ada dalam memori. Jika terjadi kesalahan halaman sebelum eksekusi selesai, instruksi tersebut harus diulang. Sehingga kita harus mempunyai jumlah frame yang cukup untuk menampung semua halaman yang dibutuhkan oleh sebuah instruksi.

Page 29: Storage Management

• Algoritma Alokasi

• 1. Algoritma pertama yaitu equal allocation. Algoritma ini memberikan bagian yang sama, sebanyak m frame dan n proses. Sebagai contoh ada 100 frame tersisa dan 5 proses, maka tiap proses akan mendapatkan 20 frame.

Page 30: Storage Management

• 2. Sebuah alternatif yaitu pengertian bahwa berbagai proses akan membutuhkan jumlah memori yang berbeda. Jika ada sebuah proses sebesar 10K dan sebuah proses basis data 52K dan hanya kedua proses ini yang berjalan pada sistem, maka ketika ada 62 frame bebas, tidak masuk akal jika kita memberikan masing-masing proses 31 frame. Proses pertama hanya butuh 10 frame, 21 frame lain akan terbuang percuma padahal proses kedua membutuhkan 52 frame. Untuk menyelesaikan masalah ini, kita menggunakan algoritma kedua yaitu proportional allocation. Kita mengalokasikan memori yang tersedia kepada setiap proses tergantung pada ukurannya.

Page 31: Storage Management

• Lalu, jika jumlah total dari frame yang tersedia adalah m, kita mengalokasikan proses ai ke proses pi, dimana ai mendekati:

• Jika ukuran virtual memori untuk proses pi adalah si dan total jumlah frame yang tersedia m, maka frame ke ai dapat dialokasikan ke proses pi sama dengan :

m = 64

S1 = 10

S2 = 127

• a1 = (10/137) x 64 = 5 bingkai

• a2 = (127/137) x 64 = 59 bingkai

ai = si / S x m--------------------

si = besarnya proses PiS = jumlah total sim = jumlah total

bingkaiai = alokasi bingkai

untuk proses Pi

Page 32: Storage Management

• Alokasi Global Dan Alokasi Lokal

• Hal penting lainnya dalam pengalokasian frame adalah page replacement(pergantian halaman). Proses-proses bersaing mendapatkan frame, maka dari itu kita dapat mengklasifikasikan algoritma penggantian halaman kedalam dua kategori; Penggantian Global dan Penggantian Lokal. Pergantian global memperbolehkan sebuah proses mencari frame pengganti dari semua frame-frame yang ada, walaupun frame tersebut sedang dialokasikan untuk proses yang lain. Hal ini memang efisien. tetapi ada kemungkinan proses lain tidak mendapatkan frame karena framenya terambil oleh proses lain. Penggantian lokal memberi aturan bahwa setiap proses hanya boleh memilih frame pengganti dari frame-frame yang memang dialokasikan untuk proses itu sendiri.

Page 33: Storage Management

Trashing

• Pada saat suatu proses tidak memiliki cukup frame untuk mendukung page yang akan digunakan dalam proses tersebut maka akan sering terjadi page fault sehingga harus dilakukan page replacement. Jadi Thrashing adalah keadaan dimana proses menghabiskan waktu lebih lama untuk mengganti halaman yang dibutuhkan dari pada eksekusi, hal itu dikarenakan banyak terjadi page fault seperti ilustrasi di bawah ini.

Page 34: Storage Management

• Pada gambar terlihat CPU utilization meningkat seiring meningkatnya derajat multiprogramming, sampai pada suatu titik CPU utilization menurun drastis, di titik ini thrashing dapat dihentikan dengan menurunkan derajat multiprograming

Page 35: Storage Management

• Penyebab terjadinya trashing :

• Pada saat CPU utilization terlalu rendah, maka sistem operasi akan meningkatkan derajat multiprogramming dengan cara menghasilkan proses-proses baru, dalam keadaan ini algoritma penggantian global akan digunakan. Ketika proses membutuhkan frame yang lebih, maka akan terjadi page fault yang menyebabkan CPU utilization semakin menurun. Ketika sistem operasi mendeteksi hal ini, derajat multiprogramming makin ditingkatkan, yang menyebabkan CPU utilization kembali menurun drastis, hal ini yang menyebabkan thrashing.

Page 36: Storage Management

• Cara membatasi trashing :

• Efek dari thrashing dapat dibatasi dengan algoritma pergantian lokal atau prioritas. Dengan pergantian lokal, jika satu proses mulai thrashing, proses tersebut dapat mengambil frame dari proses yang lain dan menyebabkan proses itu tidak langsung thrashing. Jika proses mulai thrashing, proses itu akan berada pada antrian untuk melakukan penghalamanan (paging) yang mana hal ini memakan banyak waktu. Rata-rata waktu layanan untuk kesalahan halaman akan bertambah seiring dengan makin panjangnya rata-rata antrian untuk melakukan penghalamanan. Maka, waktu akses efektif akan bertambah walau pun untuk suatu proses yang tidak thrashing.

• Salah satu cara untuk menghindari thrashing, kita harus menyediakan sebanyak mungkin frame sesuai dengan kebutuhan suatu proses agar tidak terjadi page fault. Cara untuk mengetahui berapa frame yang dibutuhkan salah satunya adalah dengan strategi Working Set.

Page 37: Storage Management

• Working set model :

• Salah satu cara menghindari thrashing adalah dengan menyediakan sebanyak mungkin frame sesuai dengan kebutuhan proses. Untuk mengetahui berapa frame yang dibutuhkan adalah dengan strategi working set. Strategi ini dimulai dengan melihat berapa banyak frame yang digunakan oleh suatu proses. Working set model mengatakan bahwa sistem hanya akan berjalan secara efisien jika proses diberikan frame yang cukup, jika frame tidak cukup untuk menampung semua proses maka suatu proses akan ditunda, dan memberikan halamannya untuk proses yang lain.

Page 38: Storage Management

• Page fault frequency :

• Cara lain untuk mencegah thrashing maka kita harus mengatur tingkat page fault yang terjadi. Jika page fault sering terjadi maka dibutuhkan frame yang lebih banyak, jika page fault jarang terjadi maka frame yang ada terlalu banyak, maka diperlukan batasan untuk menentukan batas atas dan batas bawah dari frekuensi page fault. Jika melewati batas atas maka proses mendapat alokasi frame baru, jika melewati batas bawah maka bingkai akan didealokasi dari proses.

Page 39: Storage Management

Alokasi Kernel Memori

Ketika sebuah proses yang berjalan dalam user-mode meminta tambahan memori, halaman akan dialokasikan dari daftar frame halaman bebas yang diatur dari kernel. Daftar tersebut diperoleh dengan menggunakan algoritma penggantian halaman yang telah dibahas pada bab-bab sebelumnya. Memori kernel sering dialokasikan dari sebuah daftar kumpulan memori bebas yang berbeda dari daftar yang digunakan untuk memenuhi permintaaan dalam user-mode proses.

Page 40: Storage Management

• Alokasi memory untuk proses kernel berbeda dengan proses user karena :

- Kebutuhan memory kernel bervariasi

- Page proses user dapat ditempatkan secara acak dalam memori namun beberapa perangkat keras kadang harus mengakses memori fisik langsung (tidak menggunakan virtual memori).

• Manajemen memori untuk proses kernel :

- Buddy system

- Slab allocation

Page 41: Storage Management

Buddy System

• Alokasi memori menggunakan segmen dengan ukuran segmen tetap. Segmen berisikan page yang berurutan (contiguous)

• Alokasi memori menggunakan berkelipatan dua• Kebutuhan memory disesuaikan dengan besar segmen

(kelipatan dua) yang memenuhi• Segmen dibagi menjadi dua bagian, jika segmen terlalu besar

untuk memenuhi kebutuhan memory proses kernel. Pembagian terus dilakukan hingga besar potongan segmen memenuhi.

Buddy System• Kelebihan : buddy yang berdekatan dapat digabung• Kekurangan : kurang efisien

Page 42: Storage Management

• Jika besar segmen = 256Kb, kernel membutuhkan 21kb, segmen dibagi menjadi dua buddy, salah satu buddy dibagi kembali hingga buddy memenuhi kebutuhkan kernel

 

Page 43: Storage Management

Slab

Slab bertujuan untuk mengalokasikan struktur data (obyek) kernel yang dibutuhkan di memori fisik untuk menjalankan proses tertentu. Alokasi slab menggunakan algoritma slab.Slab dibentuk dari halaman-halaman memori fisik yang berdekatan serta digunakan terutama untuk kegiatan pengalokasian memori fisik.Sebuah slab dapat berstatus:• Full. Semua obyek di dalam slab tersebut adalah used.• Empty. Semua obyek di dalam slab tersebut adalah free.• Partial. Ada obyek yang used dan ada pula yang free.

Page 44: Storage Management

• Slab terdiri dari satu atau lebih page memory fisik yang berurutan

• Cache terdiri dari satu atau lebih slab• Satu cache untuk setiap struktur data kernel (unik)- Setiap cache berisikan objek. Objek dapat merepresentasikan instance dari semaphore, process descriptor, dan sebagainya- Saat cache dibuat, objek tersebut kosong dan bebas digunakan• Jumlah objek tergantung dari besar slab dalam cache- Misalnya 12Kb slab (terdiri dari 3 page dengan ukuran page masing 4kb) dapat menampung enam objek (satu objek besarnya 2kb)• objek diberi tanda used, jika sedang digunakan

Page 45: Storage Management

Keuntungan algoritma slab:• Tidak terdapatnya fragmentasi pada memori fisik, karena

ukuran obyek-obyek tersebut telah ditetapkan sesuai dengan yang dibutuhkan proses dalam membantu melakukan kerjanya di memori fisik.

• Permintaan oleh memori cepat terpenuhi

Page 46: Storage Management

Memory Mapped Files

• Mengakses file pada disk secara sequential menggunakan system call open(), read(), write(). Cara lain untuk mengakses file pada disk adalah dengan menggunakan memori virtual. Cara ini diberi nama memory mapping yang memperbolehkan sebagian memori virtual dihubungkan kepada file.

• Memory-mapped file dapat dilakukan dengan memetakan blok dari disk ke halaman di memori. Proses membaca dan menulis file dapat dilakukan dengan akses ke memori sehingga lebih mudah dibandingkan dengan menggunakan system call.

Page 47: Storage Management

Cara ini juga digunakan untuk serial port dan pararel port yang menghubungkan modem danprinter. CPU mentransfer data melalui M/K port, ketika mengirim string panjang, CPU akan akan menulis data pada register dan mengeset bit yang menandakan bahwa data telah tersedia. Ketika data tersebut dibaca oleh alat misalkan modem maka bit akan di set kembali yang menandakan modem siap untuk data selanjutnya, lalu CPU mengirim data lagi. Jika CPU menggunakan polling untuk mengecek bit control, program ini disebut programmed I/O (PIO). Jika CPU tidak menggunakan polling tetapi menerima interupsi ketika alat telah siap menerima data maka transfer ini disebut interrupt driven.

Page 48: Storage Management

• Kelebihan Memory-Mapped Files1. Akses pada berkas dilakukan dengan pointer, tidak langsung dengan sistem call read() dan write().2. Akses dapat dilakukan secara acak.3. "On demand loading", permintaan I/O baru akan terjadi kalau berkas/bagian berkas yang bersangkutan di akses.4. Data/bagian berkas yang tak terpakai akan di-swap out.• Kelemahan Memory-Mapped Files1. Bila terjadi penambahan berkas harus dibuat MMF yang baru.2. Proses I/O secara asinkron tidak dapat dilakukan, karena semuanya dilakukan per blok.3. Terkadang terjadi bug ketika OS menulis ke dalam file.