SISTEM OPERASI

   NURHALIMA


    CHAPTER.9




                nurhalima   1
Memori virtual merupakan suatu teknik yang
memisahkan antara memori logis dan memori
fisiknya.
Teknik ini mengizinkan program untuk dieksekusi
tanpa seluruh bagian program perlu ikut masuk ke
dalam memori.
Berbeda dengan keterbatasan yang dimiliki oleh
memori fisik, memori virtual dapat menampung
program dalam skala besar, melebihi daya
tampung dari memori utama yang tersedia.


                                nurhalima          2
• Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi
rendah). Misal, untuk program butuh
membaca dari disk dan memasukkan dalam memory setiap
kali diakses.
• Berkurangnya memori yang dibutuhkan (space menjadi
lebih leluasa). Contoh, untuk program 10 MB
tidak seluruh bagian dimasukkan dalam memori. Pesan-
pesan error hanya dimasukkan jika terjadi
error.
• Meningkatnya respon, sebagai konsekuensi dari
menurunnya beban I/O dan memori.
• Bertambahnya jumlah user yang dapat dilayani. Ruang
memori yang masih tersedia luas
memungkinkan komputer untuk menerima lebih banyak
permintaan dari user.


                                        nurhalima             3
Memori virtual dapat dilakukan melalui dua
cara:
1. Permintaan pemberian halaman (demand
paging).
2. Permintaan segmentasi (demand
segmentation). Contoh: IBM OS/2. Algoritma
dari permintaan
segmentasi lebih kompleks, karenanya jarang
diimplementasikan.



                              nurhalima       4
Pada dasarnya, kesalahan halaman (page fault) sudah tidak lagi
menjadi masalah yang terlalu dianggap
serius. Hal ini disebabkan karena masing-masing halaman pasti
akan mengalami paling tidak satu kali
kesalahan dalam pemberian halaman, yakni ketika halaman ini
ditunjuk untuk pertama kalinya.
Representasi seperti ini sebenarnya tidaklah terlalu akurat.
Berdasarkan pertimbangan tersebut,
sebenarnya proses-proses yang memiliki 10 halaman hanya akan
menggunakan setengah dari jumlah
seluruh halaman yang dimilikinya. Kemudian demand paging akan
menyimpan I/O yang dibutuhkan
untuk mengisi 5 halaman yang belum pernah digunakan. Kita juga
dapat meningkatkan derajat
multiprogramming dengan menjalankan banyak proses sebanyak 2
kali.



                                          nurhalima              5
Pemindahan halaman mengambil pendekatan seperti
berikut. Jika tidak ada frame yang kosong, kita
mencari frame yang tidak sedang digunakan dan
mengosongkannya. Kita dapat mengosongkan sebuah
frame dengan menuliskan isinya ke ruang pertukaran
(swap space), dan merubah tabel halaman (juga
tabel-tabel lainnya) untuk mengindikasikan bahwa
halaman tesebut tidak akan lama berada di memori.
Sekarang kita dapat menggunakan frame yang kosong
sebagai penyimpan halaman dari proses yang
salah.




                                  nurhalima          6
Banyak algoritma-algoritma lain yang dapat
digunakan untuk pemindahan halaman. Sebagai
contoh, kita dapat menyimpan counter dari nomor
acuan yang sudah dibuat untuk masing-masing
halaman, 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
Teknik seperti ini digunakan dalam sistem
VAX/ VMS, dengan algoritma FIFO. Ketika
algoritma FIFO melakukan kesalahan dengan
memindahkan halaman yang masih digunakan
secara aktif, halaman tersebut akan dengan
cepat diambil kembali dari penyangga frame-
kosong, untuk melakukan hal tersebut tidak
ada I/O yang dibutuhkan. Metode ini
diperlukan oleh VAX karena versi terbaru dari
VAX tidak mengimplementasikan bit acuan
secara tepat.


                               nurhalima        8
Terdapat macam-macam variasi untuk strategi
sederhana ini, kita bisa meminta sistem operasi
untuk mengalokasikan seluruh buffer dan ruang
tabel-nya dari daftar frame bebas. Saat ruang ini
tidak digunakan oleh sistem operasi, ruang ini bisa
digunakan untuk mendukung paging dari user.
Kita juga dapat menyimpan tiga frame bebas yang
dari daftar frame bebas, sehingga ketika terjadi
page fault, ada frame bebas yang dapat digunakan
untuk paging. Saat pertukaran halaman
terjadi, penggantinya dapat dipilih, kemudian
ditulis ke disk, sementara proses user tetap
berjalan.

                                  nurhalima           9
Jika suatu proses tidak memiliki frame yang cukup,
walau pun kita memiliki kemungkinan untuk
mengurangi banyaknya frame yang dialokasikan
menjadi minimum, tetap ada halaman dalam jumlah
besar yang memiliki kondisi aktif menggunakannya.
Maka hal ini akan mengakibatkan kesalahan
halaman. Pada kasus ini, kita harus mengganti
beberapa halaman menjadi halaman yang dibutuhkan
walau pun halaman yang diganti pada waktu dekat
akan dibutuhkan lagi. Hal ini mengakibatkan
kesalahan terus menerus.




                                   nurhalima         10
Penyebab dari thrashing adalah utilisasi CPU
yang rendah. Jika utilisasi CPU terlalu
rendah, kita menambahkan derajat dari
multiprogramming dengan menambahkan
proses baru ke sistem.




                               nurhalima       11
Windows NT mengimplementasikan memori
virtual dengan menggunakan demand paging
melalui clustering. Clustering menanganani
page fault dengan menambahkan tidak hanya
page yang terkena fault, tetapi juga beberapa
page 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
Dalam sistem operasi Solaris 2, jika sebuah proses
menyebabkan terjadi page fault, kernel akan
memberikan page kepada proses Tersebut dari
daftar page bebas yang disimpan. Akibat dari hal
ini adalah, kernel harus menyimpan sejumlah
memori bebas. Terhadap daftar ini ada dua
parameter yg disimpan yaitu minfree dan lotsfree,
yaitu batasan minimum dan maksimum dari
memori bebas yang tersedia. Empat kali dalam tiap
detiknya, kernel memeriksa jumlah memori yang
bebas.


                                 nurhalima           13
(kswapd) akan dijalankan secara periodik (atau
dipanggil ketika penggunaan memori sudah
berlebihan).
Jika jumlah page yang bebas lebih sedikit dari
batas atas page bebas, maka thread tersebut akan
berusaha untuk membebaskan tiga page. Jika lebih
sedikit dari batas bawah page bebas, thread
tersebut akan berusaha untuk membebaskan 6
page dan ’tidur’ untuk beberapa saat sebelum
berjalan lagi. Saat dia berjalan, akan memeriksa
mem_map, daftar dari semua page yang terdapat
di memori.


                                nurhalima          14
   Pemilihan yang hati-hati dari struktur data
    dan struktur permograman dapat
    meningkatkan locality dan karenanya
    menurunkan laju page fault dan jumlah
    halaman di himpunan kerja. Sebuah stack
    memiliki locality yang baik, sejak akses selalu
    dibuat di atas. Sebuah hash table, di sisi lain,
    didesain untuk menyebar referensi-referensi,
    menghasilkan locality yang buruk.



                                    nurhalima          15

Os ppt.9

  • 1.
    SISTEM OPERASI NURHALIMA CHAPTER.9 nurhalima 1
  • 2.
    Memori virtual merupakansuatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini mengizinkan program untuk dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori utama yang tersedia. nurhalima 2
  • 3.
    • Berkurangnya I/Oyang dibutuhkan (lalu lintas I/O menjadi rendah). Misal, untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses. • Berkurangnya memori yang dibutuhkan (space menjadi lebih leluasa). Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori. Pesan- pesan error hanya dimasukkan jika terjadi error. • Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan memori. • Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user. nurhalima 3
  • 4.
    Memori virtual dapatdilakukan melalui dua cara: 1. Permintaan pemberian halaman (demand paging). 2. Permintaan segmentasi (demand segmentation). Contoh: IBM OS/2. Algoritma dari permintaan segmentasi lebih kompleks, karenanya jarang diimplementasikan. nurhalima 4
  • 5.
    Pada dasarnya, kesalahanhalaman (page fault) sudah tidak lagi menjadi masalah yang terlalu dianggap serius. Hal ini disebabkan karena masing-masing halaman pasti akan mengalami paling tidak satu kali kesalahan dalam pemberian halaman, yakni ketika halaman ini ditunjuk untuk pertama kalinya. Representasi seperti ini sebenarnya tidaklah terlalu akurat. Berdasarkan pertimbangan tersebut, sebenarnya proses-proses yang memiliki 10 halaman hanya akan menggunakan setengah dari jumlah seluruh halaman yang dimilikinya. Kemudian demand paging akan menyimpan I/O yang dibutuhkan untuk mengisi 5 halaman yang belum pernah digunakan. Kita juga dapat meningkatkan derajat multiprogramming dengan menjalankan banyak proses sebanyak 2 kali. nurhalima 5
  • 6.
    Pemindahan halaman mengambilpendekatan seperti berikut. Jika tidak ada frame yang kosong, kita mencari frame yang tidak sedang digunakan dan mengosongkannya. Kita dapat mengosongkan sebuah frame dengan menuliskan isinya ke ruang pertukaran (swap space), dan merubah tabel halaman (juga tabel-tabel lainnya) untuk mengindikasikan bahwa halaman tesebut tidak akan lama berada di memori. Sekarang kita dapat menggunakan frame yang kosong sebagai penyimpan halaman dari proses yang salah. nurhalima 6
  • 7.
    Banyak algoritma-algoritma lainyang dapat digunakan untuk pemindahan halaman. Sebagai contoh, kita dapat menyimpan counter dari nomor acuan yang sudah dibuat untuk masing-masing halaman, 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
  • 8.
    Teknik seperti inidigunakan dalam sistem VAX/ VMS, dengan algoritma FIFO. Ketika algoritma FIFO melakukan kesalahan dengan memindahkan halaman yang masih digunakan secara aktif, halaman tersebut akan dengan cepat diambil kembali dari penyangga frame- kosong, untuk melakukan hal tersebut tidak ada I/O yang dibutuhkan. Metode ini diperlukan oleh VAX karena versi terbaru dari VAX tidak mengimplementasikan bit acuan secara tepat. nurhalima 8
  • 9.
    Terdapat macam-macam variasiuntuk strategi sederhana ini, kita bisa meminta sistem operasi untuk mengalokasikan seluruh buffer dan ruang tabel-nya dari daftar frame bebas. Saat ruang ini tidak digunakan oleh sistem operasi, ruang ini bisa digunakan untuk mendukung paging dari user. Kita juga dapat menyimpan tiga frame bebas yang dari daftar frame bebas, sehingga ketika terjadi page fault, ada frame bebas yang dapat digunakan untuk paging. Saat pertukaran halaman terjadi, penggantinya dapat dipilih, kemudian ditulis ke disk, sementara proses user tetap berjalan. nurhalima 9
  • 10.
    Jika suatu prosestidak memiliki frame yang cukup, walau pun kita memiliki kemungkinan untuk mengurangi banyaknya frame yang dialokasikan menjadi minimum, tetap ada halaman dalam jumlah besar yang memiliki kondisi aktif menggunakannya. Maka hal ini akan mengakibatkan kesalahan halaman. Pada kasus ini, kita harus mengganti beberapa halaman menjadi halaman yang dibutuhkan walau pun halaman yang diganti pada waktu dekat akan dibutuhkan lagi. Hal ini mengakibatkan kesalahan terus menerus. nurhalima 10
  • 11.
    Penyebab dari thrashingadalah utilisasi CPU yang rendah. Jika utilisasi CPU terlalu rendah, kita menambahkan derajat dari multiprogramming dengan menambahkan proses baru ke sistem. nurhalima 11
  • 12.
    Windows NT mengimplementasikanmemori virtual dengan menggunakan demand paging melalui clustering. Clustering menanganani page fault dengan menambahkan tidak hanya page yang terkena fault, tetapi juga beberapa page 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
  • 13.
    Dalam sistem operasiSolaris 2, jika sebuah proses menyebabkan terjadi page fault, kernel akan memberikan page kepada proses Tersebut dari daftar page bebas yang disimpan. Akibat dari hal ini adalah, kernel harus menyimpan sejumlah memori bebas. Terhadap daftar ini ada dua parameter yg disimpan yaitu minfree dan lotsfree, yaitu batasan minimum dan maksimum dari memori bebas yang tersedia. Empat kali dalam tiap detiknya, kernel memeriksa jumlah memori yang bebas. nurhalima 13
  • 14.
    (kswapd) akan dijalankansecara periodik (atau dipanggil ketika penggunaan memori sudah berlebihan). Jika jumlah page yang bebas lebih sedikit dari batas atas page bebas, maka thread tersebut akan berusaha untuk membebaskan tiga page. Jika lebih sedikit dari batas bawah page bebas, thread tersebut akan berusaha untuk membebaskan 6 page dan ’tidur’ untuk beberapa saat sebelum berjalan lagi. Saat dia berjalan, akan memeriksa mem_map, daftar dari semua page yang terdapat di memori. nurhalima 14
  • 15.
    Pemilihan yang hati-hati dari struktur data dan struktur permograman dapat meningkatkan locality dan karenanya menurunkan laju page fault dan jumlah halaman di himpunan kerja. Sebuah stack memiliki locality yang baik, sejak akses selalu dibuat di atas. Sebuah hash table, di sisi lain, didesain untuk menyebar referensi-referensi, menghasilkan locality yang buruk. nurhalima 15