Pert.8 memori virtual

15
SISTEM OPERASI NURHALIMA CHAPTER.9 nurhalima 1

Transcript of Pert.8 memori virtual

Page 1: Pert.8 memori virtual

SISTEM OPERASI

NURHALIMA

CHAPTER.9

nurhalima 1

Page 2: Pert.8 memori virtual

Memori virtual merupakan suatu teknik yang memisahkan antara memori logis dan memorifisiknya.

Teknik ini mengizinkan program untuk dieksekusitanpa seluruh bagian program perlu ikut masuk ke

dalam memori.

Berbeda dengan keterbatasan yang dimiliki olehmemori fisik, memori virtual dapat menampung

program dalam skala besar, melebihi dayatampung dari memori utama yang tersedia.

nurhalima 2

Page 3: Pert.8 memori virtual

• Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadirendah). Misal, untuk program butuhmembaca dari disk dan memasukkan dalam memory setiapkali diakses.• Berkurangnya memori yang dibutuhkan (space menjadilebih leluasa). Contoh, untuk program 10 MBtidak seluruh bagian dimasukkan dalam memori. Pesan-pesan error hanya dimasukkan jika terjadierror.• Meningkatnya respon, sebagai konsekuensi darimenurunnya beban I/O dan memori.• Bertambahnya jumlah user yang dapat dilayani. Ruangmemori yang masih tersedia luasmemungkinkan komputer untuk menerima lebih banyakpermintaan dari user.

nurhalima 3

Page 4: Pert.8 memori virtual

Memori virtual dapat dilakukan melalui duacara:

1. Permintaan pemberian halaman (demand paging).

2. Permintaan segmentasi (demand segmentation). Contoh: IBM OS/2. Algoritmadari permintaan

segmentasi lebih kompleks, karenanya jarangdiimplementasikan.

nurhalima 4

Page 5: Pert.8 memori virtual

Pada dasarnya, kesalahan halaman (page fault) sudah tidak lagimenjadi masalah yang terlalu dianggapserius. Hal ini disebabkan karena masing-masing halaman pastiakan mengalami paling tidak satu kalikesalahan dalam pemberian halaman, yakni ketika halaman iniditunjuk untuk pertama kalinya.Representasi seperti ini sebenarnya tidaklah terlalu akurat. Berdasarkan pertimbangan tersebut,sebenarnya proses-proses yang memiliki 10 halaman hanya akanmenggunakan setengah dari jumlahseluruh halaman yang dimilikinya. Kemudian demand paging akanmenyimpan I/O yang dibutuhkanuntuk mengisi 5 halaman yang belum pernah digunakan. Kita jugadapat meningkatkan derajatmultiprogramming dengan menjalankan banyak proses sebanyak 2 kali.

nurhalima 5

Page 6: Pert.8 memori virtual

Pemindahan halaman mengambil pendekatan sepertiberikut. Jika tidak ada frame yang kosong, kita

mencari frame yang tidak sedang digunakan danmengosongkannya. Kita dapat mengosongkan sebuah

frame dengan menuliskan isinya ke ruang pertukaran(swap space), dan merubah tabel halaman (juga

tabel-tabel lainnya) untuk mengindikasikan bahwahalaman tesebut tidak akan lama berada di memori.

Sekarang kita dapat menggunakan frame yang kosongsebagai penyimpan halaman dari proses yang

salah.

nurhalima 6

Page 7: Pert.8 memori virtual

Banyak algoritma-algoritma lain yang dapatdigunakan untuk pemindahan halaman. Sebagaicontoh, kita dapat menyimpan counter dari nomoracuan yang sudah dibuat untuk masing-masinghalaman, danmengembangkan 2 skema dibawah ini: ALGORITMA PEMINDAHAN HALAMAN LFU Algoritma LFU

(Least Frequently Used)

ALGORITMA PEMINDAHAN HALAMAN MFU Algoritma MFU (Most Frequently Used)

nurhalima 7

Page 8: Pert.8 memori virtual

Teknik seperti ini digunakan dalam sistemVAX/ VMS, dengan algoritma FIFO. Ketikaalgoritma FIFO melakukan kesalahan denganmemindahkan halaman yang masih digunakansecara aktif, halaman tersebut akan dengancepat diambil kembali dari penyangga frame-kosong, untuk melakukan hal tersebut tidakada I/O yang dibutuhkan. Metode inidiperlukan oleh VAX karena versi terbaru dariVAX tidak mengimplementasikan bit acuansecara tepat.

nurhalima 8

Page 9: Pert.8 memori virtual

Terdapat macam-macam variasi untuk strategisederhana ini, kita bisa meminta sistem operasiuntuk mengalokasikan seluruh buffer dan ruangtabel-nya dari daftar frame bebas. Saat ruang initidak digunakan oleh sistem operasi, ruang ini bisadigunakan untuk mendukung paging dari user. Kita juga dapat menyimpan tiga frame bebas yang dari daftar frame bebas, sehingga ketika terjadipage fault, ada frame bebas yang dapat digunakanuntuk paging. Saat pertukaran halamanterjadi, penggantinya dapat dipilih, kemudianditulis ke disk, sementara proses user tetapberjalan.

nurhalima 9

Page 10: Pert.8 memori virtual

Jika suatu proses tidak memiliki frame yang cukup, walau pun kita memiliki kemungkinan untuk

mengurangi banyaknya frame yang dialokasikanmenjadi minimum, tetap ada halaman dalam jumlah

besar yang memiliki kondisi aktif menggunakannya. Maka hal ini akan mengakibatkan kesalahan

halaman. Pada kasus ini, kita harus menggantibeberapa halaman menjadi halaman yang dibutuhkan

walau pun halaman yang diganti pada waktu dekatakan dibutuhkan lagi. Hal ini mengakibatkan

kesalahan terus menerus.

nurhalima 10

Page 11: Pert.8 memori virtual

Penyebab dari thrashing adalah utilisasi CPU yang rendah. Jika utilisasi CPU terlalurendah, kita menambahkan derajat darimultiprogramming dengan menambahkanproses baru ke sistem.

nurhalima 11

Page 12: Pert.8 memori virtual

Windows NT mengimplementasikan memorivirtual dengan menggunakan demand paging melalui clustering. Clustering menangananipage fault dengan menambahkan tidak hanyapage yang terkena fault, tetapi juga beberapapage yang ada dekat pagetersebut. Saat proses pertama dibuat, dia diberikan Working Set minimum yaitu jumlah minimum page yang dijamin akan dimiliki oleh proses tersebut

dalam memori.

nurhalima 12

Page 13: Pert.8 memori virtual

Dalam sistem operasi Solaris 2, jika sebuah proses menyebabkan terjadi page fault, kernel akan

memberikan page kepada proses Tersebut daridaftar page bebas yang disimpan. Akibat dari halini adalah, kernel harus menyimpan sejumlahmemori bebas. Terhadap daftar ini ada duaparameter yg disimpan yaitu minfree danlotsfree, yaitu batasan minimum dan maksimumdari memori bebas yang tersedia. Empat kali dalamtiap detiknya, kernel memeriksa jumlah memoriyang bebas.

nurhalima 13

Page 14: Pert.8 memori virtual

(kswapd) akan dijalankan secara periodik (ataudipanggil ketika penggunaan memori sudahberlebihan).

Jika jumlah page yang bebas lebih sedikit daribatas atas page bebas, maka thread tersebut akanberusaha untuk membebaskan tiga page. Jika lebihsedikit dari batas bawah page bebas, thread tersebut akan berusaha untuk membebaskan 6 page dan ’tidur’ untuk beberapa saat sebelumberjalan lagi. Saat dia berjalan, akan memeriksamem_map, daftar dari semua page yang terdapatdi memori.

nurhalima 14

Page 15: Pert.8 memori virtual

Pemilihan yang hati-hati dari struktur data dan struktur permograman dapatmeningkatkan locality dan karenanyamenurunkan laju page fault dan jumlahhalaman di himpunan kerja. Sebuah stack memiliki locality yang baik, sejak akses selaludibuat di atas. Sebuah hash table, di sisilain, didesain untuk menyebar referensi-referensi, menghasilkan locality yang buruk.

nurhalima 15