Bagikan melalui


Set Kerja

Rangkaian proses yang berfungsi adalah kumpulan halaman di ruang alamat virtual proses yang saat ini tinggal dalam memori fisik. Kumpulan kerja hanya berisi alokasi memori yang dapat dipindahkan ke halaman; alokasi memori yang tidak dapat dipindahkan ke halaman seperti Address Windowing Extensions (AWE) atau alokasi halaman besar tidak termasuk dalam kumpulan kerja.

Ketika proses mereferensikan memori yang dapat di-pageable yang saat ini tidak berada dalam set kerjanya, kesalahan halaman terjadi. Penangan kesalahan halaman sistem mencoba mengatasi kesalahan halaman dan, jika berhasil, halaman ditambahkan ke set kerja. (Mengakses AWE atau alokasi halaman besar tidak pernah menyebabkan kesalahan halaman, karena alokasi ini tidak dapat di-pageable.)

Kesalahan halaman keras harus diselesaikan dengan membaca konten halaman dari penyimpanan backinghalaman , yang merupakan file halaman sistem atau file yang dipetakan memori yang dibuat oleh proses. Kesalahan halaman lunak (soft page fault) dapat diselesaikan tanpa mengakses penyimpanan latar belakang. Kesalahan halaman lunak terjadi ketika:

  • Halaman berada dalam set kerja dari beberapa proses lain, sehingga sudah berada dalam memori.
  • Halaman sedang dalam transisi, karena telah dihapus dari set kerja semua proses yang menggunakan halaman dan belum dialokasikan ulang, atau sudah ada akibat operasi prefetch manajer memori.
  • Proses mereferensikan halaman virtual yang dialokasikan untuk pertama kalinya (terkadang disebut kesalahan demand-zero).

Halaman dapat dihapus dari set kerja proses sebagai hasil dari tindakan berikut:

  • Proses ini mengurangi atau mengosongkan set kerja dengan memanggil fungsi SetProcessWorkingSetSize, SetProcessWorkingSetSizeEx atau EmptyWorkingSet.
  • Proses ini memanggil fungsiVirtualUnlock pada rentang memori yang tidak dikunci.
  • Proses ini menghapus pemetaan tampilan file yang dipetakan menggunakan fungsi UnmapViewOfFile.
  • Manajer memori memangkas halaman dari set kerja untuk membuat lebih banyak memori yang tersedia.
  • Manajer memori harus menghapus halaman dari set kerja untuk memberi ruang bagi halaman baru (misalnya, karena set kerja berada pada ukuran maksimumnya).

Jika beberapa proses berbagi halaman, menghapus halaman dari kumpulan kerja dari satu proses tidak memengaruhi proses lain. Setelah halaman dihapus dari kumpulan kerja semua proses yang menggunakannya, halaman menjadi halaman transisi . Halaman transisi tetap di-cache dalam RAM hingga halaman direferensikan lagi oleh beberapa proses atau digunakan kembali (misalnya, diisi dengan nol dan diberikan ke proses lain). Jika halaman transisi telah dimodifikasi sejak terakhir ditulis ke disk (yaitu, jika halaman "kotor"), maka halaman harus ditulis ke penyimpanan cadangannya sebelum dapat digunakan kembali. Sistem mungkin mulai menulis halaman transisi kotor ke penyimpanan cadangan mereka begitu halaman tersebut tersedia.

Setiap proses memiliki ukuran set kerja minimum dan maksimum yang memengaruhi pengelolaan halaman dalam memori virtualnya. Untuk mendapatkan ukuran set kerja proses yang ditentukan saat ini, gunakan fungsiGetProcessMemoryInfo. Untuk mendapatkan atau mengubah ukuran set kerja minimum dan maksimum, gunakan fungsi GetProcessWorkingSetSizeEx dan SetProcessWorkingSetSizeEx.

Antarmuka pemrograman aplikasi status proses (PSAPI) menyediakan sejumlah fungsi yang mengembalikan informasi terperinci tentang serangkaian proses yang berfungsi. Untuk detailnya, lihat Informasi Set Kerja di .