Dalam ilmu komputer, deraan terjadi dalam sistem dengan memori virtual ketika sumber daya penyimpanan komputer yang sebenarnya digunakan secara berlebihan, menyebabkan keadaan seranta dan kesalahan halaman terus-menerus, sehingga memperlambat sebagian besar pemrosesan tingkat aplikasi.[1] Hal ini menyebabkan kinerja komputer menurun atau kolaps. Situasi ini dapat berlanjut tanpa batas waktu hingga pengguna menutup beberapa aplikasi yang sedang berjalan atau proses aktif mengosongkan sumber daya memori virtual tambahan.

Setelah inisialisasi, sebagian besar program beroperasi pada sejumlah kecil kode dan halaman data dibandingkan dengan total memori yang dibutuhkan program. Halaman yang paling sering diakses kapan saja disebut kumpulan kerja, yang dapat berubah seiring waktu.

Ketika kumpulan kerja tidak jauh lebih besar daripada jumlah total bingkai halaman penyimpanan nyata sistem, sistem memori virtual bekerja paling efisien dan sejumlah kecil komputasi dihabiskan untuk mengatasi kesalahan halaman. Seiring bertambahnya total rangkaian kerja, penyelesaian kesalahan halaman tetap dapat dikelola hingga pertumbuhan mencapai titik kritis di mana jumlah kesalahan meningkat secara dramatis dan waktu yang dihabiskan untuk menyelesaikannya melebihi waktu yang dihabiskan untuk komputasi yang harus dilakukan oleh program tersebut. Kondisi ini disebut dengan istilah meronta-ronta. Deraan dapat terjadi pada program yang secara acak mengakses struktur data yang sangat besar, karena rangkaian kerjanya yang besar menyebabkan kesalahan halaman terus-menerus yang memperlambat sistem secara drastis. Kesalahan halaman yang memuaskan mungkin memerlukan halaman kosong yang harus segera dibaca ulang dari disk.

Istilah ini juga digunakan untuk berbagai fenomena serupa, khususnya perpindahan antara tingkat lain dalam hierarki memori, di mana suatu proses berjalan lambat karena banyak waktu yang dihabiskan untuk memperoleh sumber daya.

"Deraan" juga digunakan dalam konteks selain sistem memori virtual—misalnya, untuk menjelaskan masalah tembolok dalam komputasi atau sindrom jendela konyol dalam jaringan.

Ringkasan

sunting

Memori virtual bekerja dengan memperlakukan sebagian penyimpanan sekunder seperti cakram keras komputer sebagai lapisan tambahan hierarki tembolok. Memori virtual memungkinkan proses menggunakan lebih banyak memori daripada yang ada secara fisik di memori utama. Sistem operasi yang mendukung penetapan memori virtual memproses ruang alamat virtual dan setiap proses merujuk ke alamat dalam konteks eksekusinya dengan apa yang disebut alamat virtual. Untuk mengakses data seperti kode atau variabel pada alamat tersebut, proses harus menerjemahkan alamat tersebut ke alamat fisik dalam proses yang dikenal sebagai terjemahan alamat virtual. Akibatnya, memori utama fisik menjadi tembolok untuk memori virtual, yang pada umumnya disimpan pada cakram di halaman memori.

Program dialokasikan sejumlah halaman tertentu sesuai kebutuhan sistem operasi. Halaman memori aktif ada di RAM dan di disk. Halaman yang tidak aktif dihapus dari tembolok dan ditulis ke disk ketika memori utama penuh.

Jika proses menggunakan seluruh memori utama dan memerlukan halaman memori tambahan, serangkaian kesalahan tembolok yang parah yang dikenal sebagai kesalahan halaman akan terjadi, sering kali menyebabkan kelambatan yang nyata dalam respons sistem operasi. Proses ini bersamaan dengan pertukaran halaman yang sia-sia dan berulang-ulang yang terjadi dikenal sebagai "deraan". Hal ini sering kali menyebabkan penggunaan CPU yang tinggi dan tidak terkendali sehingga dapat menghentikan sistem. Di komputer modern, deeraan dapat terjadi pada sistem seranta (jika memori fisik tidak mencukupi atau waktu akses disk terlalu lama), atau pada subsistem komunikasi Masukan/Keluaran (terutama pada konflik akses bus internal), dll.

Bergantung pada konfigurasi dan algoritme yang terlibat, aliran lewat dan pendaman sistem dapat menurun hingga beberapa kali lipat. Deraan adalah ketika CPU melakukan pekerjaan 'produktif' lebih sedikit dan 'menukar' pekerjaan lebih banyak. Waktu akses memori secara keseluruhan dapat meningkat karena memori tingkat yang lebih tinggi hanya secepat tingkat memori yang lebih rendah berikutnya dalam hierarki.[2] CPU sangat sibuk bertukar halaman sehingga tidak dapat merespons program pengguna dan mengganggu sebanyak yang diperlukan. Deraan terjadi ketika ada terlalu banyak halaman di memori, dan setiap halaman merujuk ke halaman lain. Memori nyata mengurangi kapasitasnya untuk menampung semua halaman, sehingga menggunakan 'memori virtual'. Ketika setiap halaman dalam eksekusi memerlukan halaman yang saat ini tidak berada dalam memori nyata (RAM), ia menempatkan beberapa halaman pada memori virtual dan menyesuaikan halaman yang diperlukan pada RAM. Jika CPU terlalu sibuk melakukan tugas ini, terjadi deraan.

Penyebab

sunting

Dalam sistem memori virtual, deraan mungkin disebabkan oleh program atau beban kerja yang lokalitas referensinya tidak mencukupi: jika rangkaian kerja suatu program atau beban kerja tidak dapat disimpan secara efektif dalam memori fisik, maka pertukaran data yang konstan, yaitu deraan, dapat terjadi. Istilah ini pertama kali digunakan pada masa sistem operasi pita untuk menggambarkan suara yang dihasilkan kaset ketika data ditulis dan dibaca dengan cepat. Skenario terburuk seperti ini pada komputer mainframe seri IBM System/370 dapat berupa instruksi eksekusi yang melintasi batas halaman yang menunjuk ke instruksi pemindahan itu sendiri juga melintasi batas halaman, yang menunjuk ke sumber dan target yang masing-masing dilintasi. batas halaman. Jumlah total halaman yang terlibat dalam instruksi khusus ini adalah delapan, dan kedelapan halaman tersebut harus ada secara bersamaan di memori. Jika salah satu dari delapan halaman tidak dapat ditukar (misalnya untuk memberikan ruang bagi halaman lainnya), instruksi akan gagal, dan setiap upaya untuk memulai ulang akan gagal hingga kedelapan halaman dapat ditukar.

Kegagalan sistem sering kali disebabkan oleh lonjakan permintaan halaman secara tiba-tiba dari sejumlah kecil program yang sedang berjalan. Alih-token adalah mekanisme perlindungan deraan yang ringan dan dinamis. Ide dasarnya adalah untuk menetapkan token dalam sistem, yang diberikan secara acak ke proses yang memiliki kesalahan halaman ketika terjadi deraan. Proses yang memiliki token diberikan hak istimewa untuk mengalokasikan lebih banyak halaman memori fisik untuk membangun set kerjanya, yang diharapkan dapat segera menyelesaikan eksekusinya dan melepaskan halaman memori tersebut ke proses lain. Stempel waktu digunakan untuk menyerahkan token satu per satu. Versi pertama dari alih-token diimplementasikan di Linux . Versi kedua disebut perubahsiaran alih-token . Dalam implementasi alih-token yang diperbarui ini, penghitung prioritas ditetapkan untuk setiap proses guna melacak jumlah halaman alih-keluaran. Token selalu diberikan pada proses dengan prioritas tinggi, yang memiliki jumlah halaman alih-keluaran yang tinggi. Panjang stempel waktu tidak bersifat konstan namun ditentukan oleh prioritas: semakin tinggi jumlah halaman alih-keluara suatu proses, semakin panjang stempel waktu untuk proses tersebut.

Referensi

sunting
  1. ^ Denning, Peter J. (1968). "Thrashing: Its causes and prevention" (PDF). Proceedings AFIPS, Fall Joint Computer Conference. 33: 915–922. Diakses tanggal 2012-02-15. 
  2. ^ L., Hennessy, John (2012). Computer architecture: a quantitative approach. Patterson, David A., Asanović, Krste. (edisi ke-5th). Waltham, MA: Morgan Kaufmann. ISBN 9780123838728. OCLC 755102367.