it-swarm.dev

Tidak bisa mengerti anomali Belady

Jadi Belady's Anomaly menyatakan bahwa ketika menggunakan kebijakan penggantian halaman FIFO, ketika menambahkan lebih banyak ruang halaman kita akan memiliki lebih banyak kesalahan halaman.

Intuisi saya mengatakan bahwa kita harus mengurangi atau paling banyak, jumlah kesalahan halaman yang sama ketika kita menambahkan lebih banyak ruang halaman.

Jika kita menganggap antrian FIFO sebagai pipa, menambahkan lebih banyak ruang halaman seperti membuat pipa lebih besar:

 ____
O____O  size 4

 ________
O________O  size 8

Jadi, mengapa Anda mendapatkan lebih banyak kesalahan halaman? Intuisi saya mengatakan bahwa dengan pipa yang lebih panjang, Anda akan membutuhkan waktu sedikit lebih lama untuk mulai memiliki kesalahan halaman (jadi, dengan pipa tak terbatas Anda tidak akan memiliki kesalahan halaman) dan kemudian Anda akan memiliki banyak kesalahan halaman dan juga sering dengan pipa yang lebih kecil.

Apa yang salah dengan alasan saya?

30
devoured elysium

Alasan bahwa ketika menggunakan FIFO, meningkatkan jumlah halaman dapat meningkatkan tingkat kesalahan dalam beberapa pola akses, adalah karena ketika Anda memiliki lebih banyak halaman, halaman yang baru-baru ini diminta dapat tetap berada di bagian bawah antrian FIFO _ lebih lama.

Pertimbangkan ketiga kalinya "3" diminta dalam contoh wikipedia di sini: http://en.wikipedia.org/wiki/Belady%27s_anomaly

Kesalahan halaman ditandai dengan "f".

1:

Page Requests   3    2    1    0    3    2    4    3    2    1    0    4
Newest Page     3f   2f   1f   0f   3f   2f   4f   4    4    1f   0f   0
                     3    2    1    0    3    2    2    2    4    1    1
Oldest Page               3    2    1    0    3    3    3    2    4    4

2:

Page Requests   3    2    1    0    3    2    4    3    2    1    0    4
Newest Page     3f   2f   1f   0f   0    0    4f   3f   2f   1f   0f   4f
                     3    2    1    1    1    0    4    3    2    1    0
                          3    2    2    2    1    0    4    3    2    1
Oldest Page                    3    3    3    2    1    0    4    3    2

Pada contoh pertama (dengan lebih sedikit halaman), ada 9 halaman yang salah.

Dalam contoh kedua (dengan lebih banyak halaman), ada 10 kesalahan halaman.

Saat menggunakan FIFO, meningkatkan ukuran cache mengubah urutan item yang dihapus. Yang di beberapa kasus, dapat meningkatkan tingkat kesalahan.

Anomali Belady tidak menyatakan apa pun tentang tren umum tingkat kesalahan sehubungan dengan ukuran cache. Jadi alasan Anda (tentang melihat cache sebagai pipa), dalam kasus umum tidak salah.

Singkatnya: Anomali Belady menunjukkan bahwa dimungkinkan untuk mengeksploitasi fakta bahwa ukuran cache yang lebih besar dapat menyebabkan item dalam cache dinaikkan dalam antrian FIFO lebih lambat daripada ukuran cache yang lebih kecil, di untuk menyebabkan ukuran cache yang lebih besar memiliki tingkat kesalahan yang lebih tinggi di bawah pola akses tertentu (dan mungkin jarang).

32
Olhovsky

Pernyataan ini salah karena terlalu umum :

Anomali Belady menyatakan bahwa saat menggunakan kebijakan penggantian halaman FIFO, ketika menambahkan lebih banyak ruang halaman kita akan memiliki lebih banyak kesalahan halaman

Ini adalah versi yang diperbaiki:

"Anomali Belady menyatakan bahwa saat menggunakan kebijakan penggantian halaman FIFO, ketika menambahkan lebih banyak ruang halaman, beberapa pola akses memori benar-benar akan menghasilkan lebih banyak kesalahan halaman."

Dengan kata lain ... apakah anomali diamati tergantung pada pola akses memori yang sebenarnya.

7
Tim Lovell-Smith

Anomali Belady terjadi pada algoritma penggantian halaman tidak mengikuti algoritma stack. Itu adalah halaman-halaman ketika frame kurang harus menjadi subset halaman ketika frame lebih. dapat terjadi dalam FIFO kadang-kadang, bahkan penggantian halaman acak tetapi tidak LRU atau optimal.

1
Surajit