Bagikan melalui


Pengantar Manajemen Memori RPC

Dalam konteks RPC, manajemen memori melibatkan:

  • Mengalokasikan dan membatalkan alokasi memori yang diperlukan untuk mensimulasikan satu ruang alamat konseptual antara klien dan server di ruang alamat yang berbeda dari utas klien dan server.
  • Menentukan komponen perangkat lunak mana yang bertanggung jawab untuk mengelola memori — aplikasi atau stub yang dihasilkan MIDL.
  • Memilih atribut MIDL yang memengaruhi manajemen memori: atribut arah, atribut penunjuk, atribut array, dan atribut ACF [ byte_count], [ alokasikan], dan [ enable_allocate].

Ketika program memanggil fungsi atau prosedur di ruang alamatnya, manajemen memori lebih mudah daripada dalam aplikasi terdistribusi. Untuk mengilustrasikan, diagram berikut menggambarkan pohon biner. Untuk meneruskan struktur data ini ke prosedur di ruang alamatnya, program hanya meneruskan penunjuk ke akar pohon.

pohon biner, dengan pointer untuk menyusun data yang ditempatkan di akar pohon

Aplikasi RPC klien/server berbagi data di dua ruang memori yang berbeda. Ruang memori ini mungkin atau mungkin tidak berada di komputer yang sama. Bagaimanapun, klien dan server tidak memiliki akses langsung ke ruang memori satu sama lain. RPC tergantung pada kemampuan untuk mensimulasikan ruang alamat program klien di ruang alamat program server. Ini juga harus mengembalikan data, termasuk data baru dan yang diubah, dari server ke memori klien.

Dalam kasus seperti pohon biner yang digambarkan dalam diagram sebelumnya, tidak cukup untuk meneruskan penunjuk ke simpul akar ke prosedur jarak jauh. Baik program atau rintangan harus meneruskan seluruh pohon ke ruang alamat server agar prosedur jarak jauh dapat beroperasi di atasnya.