Langsung ke konten

Arsip

Manajemen Memori

16 artikel
Kecerdasan Buatan 24 Sep 2026 5 min read

PagedAttention Memisahkan Urutan KV Logis dari Blok Cache Fisik

Serving autoregresif menyimpan state key-value yang terus bertambah untuk setiap sequence aktif. Jika seluruh state itu harus berada pada satu area fisik kontigu yang disiapkan untuk sebuah request, alokasi ikut terikat pada panjang sequence yang belum pasti. Reservasi terlalu besar membuang kapasitas, sedangkan memperbesar atau memindahkan area yang terus tumbuh menambah persoalan manajemen memori. PagedAttention mengubah batas alokasi tersebut. Sequence direpresentasikan sebagai blok KV logis, sementara blok fisiknya dapat berada di lokasi cache pool yang tidak bersebelahan.

Keamanan Siber 19 Sep 2026 6 min read

Write Protection userfaultfd Menempatkan Penulisan Memori di Balik Batas Fault User Space

Sebuah thread dapat memiliki virtual memory mapping yang writable tetapi tetap terhenti saat mencoba memodifikasi page tertentu. Mode write-protect userfaultfd Linux memungkinkan user space mendaftarkan range memori, menerapkan write protection pada page di range tersebut, lalu menerima event page fault ketika page yang diproteksi ditulis. VMA dapat tetap writable secara logis sementara state page table membentuk batas intersepsi yang lebih sempit. Mekanisme ini bukan sistem otorisasi umum. userfaultfd adalah interface pengendalian memory fault. Relevansi keamanannya berasal dari posisi titik keputusan: write dapat ditangguhkan sebelum protected page berubah, sehingga handler terpisah dapat mencatat state, mengoordinasikan migrasi, mempertahankan batas snapshot, atau menahan progres dengan membiarkan fault belum terselesaikan.

Linux 19 Sep 2026 5 min read

userfaultfd Memindahkan Resolusi Page Fault Terpilih ke User Space

Akses memori biasanya masuk ke jalur page fault kernel dan selesai tanpa aplikasi memilih isi page tepat pada saat itu. Linux userfaultfd mengubah batas tersebut untuk rentang alamat virtual yang didaftarkan: fault terpilih menjadi event pada file descriptor, lalu manager di user space dapat menyediakan atau mengaktifkan page sebelum thread yang mengalami fault melanjutkan eksekusi. Mekanisme ini tidak mengganti page table proses dengan struktur data di user space. Kernel tetap memiliki page-table state dan melakukan operasi mapping akhir. User space memperoleh kendali atas kelas fault tertentu beserta waktu resolusinya.

Teknologi 19 Sep 2026 6 min read

TLB Shootdown Mengoordinasikan Perubahan Page Table Antar-CPU

Sebuah page-table entry dapat berubah di memori ketika CPU lain masih menyimpan translasi alamat lama di translation lookaside buffer (TLB). Karena itu, memperbarui page table saja tidak selalu membuat mapping baru langsung berlaku pada setiap prosesor yang pernah menjalankan address space tersebut. Sistem operasi menutup celah itu dengan invalidasi TLB. Ketika perubahan mapping dapat membuat translasi yang tersimpan menjadi tidak aman, prosesor yang mungkin masih menyimpan translasi tersebut harus menginvalidasinya sebelum kernel menganggap perubahan selesai secara global. Pada sistem multiprosesor, koordinasi invalidasi jarak jauh ini umum disebut TLB shootdown.

Teknologi 19 Sep 2026 6 min read

TLB Shootdown Memperluas Perubahan Page Table ke Banyak CPU

TLB Shootdown Memperluas Perubahan Page Table ke Banyak CPU Mengubah entry page table di memori tidak otomatis menghentikan setiap translasi yang berasal dari entry tersebut. CPU yang sebelumnya memakai mapping dapat menyimpannya di translation lookaside buffer, atau TLB. Pada sistem multiprosesor, CPU lain dapat memiliki salinan cache masing-masing, sehingga perubahan mapping dapat memerlukan koordinasi di luar CPU yang mengubah page table. Linux memperlihatkan pemisahan ini melalui interface TLB flush. Setelah state page table berubah, kode arsitektur harus membuat translasi yang terdampak tidak dapat digunakan pada setiap CPU yang relevan sebelum software bergantung pada mapping baru atau melepaskan memori yang masih dapat dijangkau mapping lama.

Teknologi 19 Sep 2026 5 min read

PCIe ATS Memindahkan Cache Translasi Alamat ke Dalam Perangkat

PCIe ATS Memindahkan Cache Translasi Alamat ke Dalam Perangkat IOMMU dapat menerjemahkan alamat DMA atas nama perangkat, tetapi susunan ini menempatkan mekanisme translasi di jalur trafik memori perangkat. PCIe Address Translation Services (ATS) menyediakan pilihan lain: perangkat yang mendukungnya dapat meminta translasi lalu menyimpan hasilnya dalam cache translasi miliknya. Transaksi berikutnya dapat membawa alamat hasil translasi tanpa memerlukan pekerjaan translasi yang sama di IOMMU pada setiap akses. Perubahan ini bukan sekadar memindahkan lokasi lookup. State translasi kini juga berada di dalam endpoint, sehingga software yang mengubah mapping address space harus memperhitungkan translasi yang tersimpan di perangkat sebagai bagian dari protokol invalidasi.

Linux 19 Sep 2026 6 min read

PAGEMAP_SCAN Mengelompokkan State Page Table Menjadi Rentang Alamat

Rentang alamat virtual yang besar dapat memiliki hanya sedikit transisi state page. Membaca satu entri pagemap untuk setiap virtual page memang memperlihatkan state pada granularitas page, tetapi user space harus memeriksa rangkaian entri yang panjang. Linux PAGEMAP_SCAN memindahkan filtering ke kernel dan melaporkan span yang cocok sebagai record struct page_region. Interface ini berupa ioctl() pada /proc/PID/pagemap. Request berisi interval alamat, predicate kategori, return mask, dan output vector. Kernel berjalan melalui page table lalu menghasilkan region berurutan yang properti page terpilihnya memenuhi request. Bentuk inspeksi page table berubah dari stream nilai per-page menjadi query rentang yang sudah difilter.

Teknologi 19 Sep 2026 6 min read

Invalidasi IOTLB IOMMU Menentukan Saat Remapping DMA Berlaku

Invalidasi IOTLB IOMMU Menentukan Saat Remapping DMA Berlaku Mengubah entry pada page table IOMMU tidak selalu mengubah translasi yang dipakai oleh request DMA berikutnya. IOMMU dapat menyimpan translasi alamat di I/O translation lookaside buffer, yang umum disebut IOTLB. Software harus menginvalidasi state cache yang terdampak ketika sebuah mapping dihapus atau diganti, lalu mengikuti semantik completion yang diwajibkan IOMMU sebelum menganggap translasi lama benar-benar berhenti digunakan. Batas ini menyerupai pemeliharaan page table CPU, tetapi berada pada address space DMA. Page table merupakan state memori yang menjadi sumber translasi; IOTLB merupakan state hardware yang berasal darinya. Mengubah salah satunya tidak otomatis membuktikan bahwa yang lain telah berhenti melayani translasi sebelumnya.

Linux 18 Sep 2026 5 min read

userfaultfd Mengubah Page Fault Menjadi Event Userspace

Sebuah thread dapat mengalami fault pada virtual address lalu tetap terblokir sementara thread atau proses userspace lain menentukan state page yang membuat akses tersebut dapat dilanjutkan. userfaultfd menyediakan batas ini dengan mengubah page fault terpilih menjadi message pada file descriptor dan memasangkan message tersebut dengan ioctl untuk menyelesaikan fault. Mekanisme ini tidak menggantikan page-fault machinery milik kernel. Kontrol userspace disisipkan pada range dan kelas fault yang didaftarkan, sementara kernel tetap memiliki page table, pemblokiran fault, dan transisi yang membuat page dapat diakses kembali.

Rekayasa Perangkat Lunak 18 Sep 2026 4 min read

Seal pada Linux memfd Mengubah File Memori Mutable menjadi Transisi State yang Dipaksakan Kernel

File yang dibuat dengan memfd_create() dapat bermula sebagai penyimpanan mutable lalu memperoleh pembatasan yang dipaksakan kernel dan berlaku pada file dasarnya, bukan hanya pada satu descriptor. Dengan MFD_ALLOW_SEALING, proses dapat menambahkan seal melalui fcntl(F_ADD_SEALS) sehingga mutasi tertentu tidak lagi tersedia bagi semua pemegang file tersebut. Mekanisme ini membentuk transisi state yang tidak dapat dinyatakan oleh permission descriptor biasa. Produsen dapat mengisi byte, menetapkan ukuran file, lalu memublikasikan descriptor dengan pembatasan yang tetap melekat meskipun descriptor melintasi batas proses.

Rekayasa Perangkat Lunak 18 Sep 2026 6 min read

Seal pada Linux memfd Mengubah File Anonim Mutable Menjadi Capability Terbatas

File descriptor yang dikembalikan memfd_create() dapat bermula sebagai file anonim yang writable dan dapat diubah ukurannya, lalu beralih menjadi objek dengan operasi mutasi yang telah dikurangi secara permanen. Linux menerapkan transisi tersebut melalui file seal. Mekanisme ini melekat pada file yang mendasarinya, bukan pada satu descriptor, sehingga pengiriman descriptor duplikat melintasi batas proses tidak membentuk state sealing yang terpisah. Properti ini membuat sealing lebih dari sekadar fasilitas untuk penyimpanan sementara. Sealing mengubah otoritas yang dibawa setiap descriptor yang merujuk ke objek memfd yang sama. Transisinya monoton: seal dapat ditambahkan, tetapi tidak dapat dihapus.

Linux 18 Sep 2026 4 min read

process_madvise Menerapkan Saran Reklamasi Memori Lintas Proses

process_madvise() memungkinkan satu proses Linux meminta tindakan manajemen memori untuk rentang virtual address milik proses lain. Target diidentifikasi melalui pidfd, sedangkan array iovec menentukan rentang pada target. Mekanisme ini memisahkan keputusan kebijakan memori dari proses yang mapping-nya menerima saran. Interface ini relevan bagi controller yang sudah memiliki informasi eksternal mengenai status workload. Runtime manager dapat menandai memori yang tidak aktif sebagai cold atau meminta reklamasi page tanpa menyisipkan kode ke proses yang dikelola. Kemampuan tersebut dibatasi oleh pemeriksaan permission, jenis advice yang didukung, dan semantik progres parsial.

Linux 18 Sep 2026 5 min read

mseal Mengunci Tata Letak dan Permission Mapping Memori

Sebuah proses dapat membentuk mapping memori dengan alamat, ukuran, dan protection bit tertentu, lalu mengubah mapping itu melalui operasi seperti munmap(), mprotect(), atau mremap(). Linux mseal() menambahkan transisi state satu arah: virtual memory area terpilih dapat disegel sehingga sejumlah perubahan mapping berikutnya ditolak oleh kernel. Mekanisme ini melindungi struktur mapping, bukan byte yang tersimpan di dalamnya. Mapping writable yang disegel tetap dapat ditulis melalui store biasa. Sealing membatasi operasi yang dapat menghapus mapping, memindahkannya, menggantinya, atau mengubah atribut yang tercakup oleh aturan sealing.

Keamanan Siber 17 Sep 2026 5 min read

Userfaultfd Memindahkan Resolusi Page Fault ke Userspace

Userfaultfd Memindahkan Resolusi Page Fault ke Userspace Sebuah thread menyentuh page virtual memory yang terdaftar lalu berhenti sebelum akses selesai. Alih-alih menyelesaikan fault sepenuhnya di kernel, Linux dapat melaporkan event melalui userfaultfd dan membiarkan komponen userspace lain menentukan kapan serta dengan konten apa eksekusi dapat dilanjutkan. Rancangan ini mendukung live migration, transfer memori post-copy, checkpointing, dan sistem manajemen memori terkait, tetapi juga menempatkan titik keputusan yang sensitif terhadap concurrency di luar thread yang mengalami fault.

Rekayasa Perangkat Lunak 17 Sep 2026 5 min read

Seal Linux memfd Mengubah Status File Mutable Menjadi Kontrak Terbatas

Seal Linux memfd Mengubah Status File Mutable Menjadi Kontrak Terbatas File yang dikembalikan memfd_create() bermula sebagai status file mutable pada penyimpanan berorientasi memori, tetapi Linux dapat menghapus operasi mutasi dari file tersebut secara bertahap. Saat pembuatan memakai MFD_ALLOW_SEALING, fcntl() dengan F_ADD_SEALS dapat melarang penyusutan, pertumbuhan, penulisan, penulisan pada masa berikutnya, atau perubahan lanjutan terhadap kumpulan seal. Pembatasan itu melekat pada inode, bukan pada satu descriptor, sehingga pemindahan descriptor lain untuk objek yang sama tidak memulihkan operasi yang telah dihapus oleh seal.

Rekayasa Perangkat Lunak 17 Sep 2026 6 min read

Linux memfd Seals Mengubah Byte Mutable Menjadi Kontrak yang Ditegakkan Kernel

Sebuah memfd dapat dimulai sebagai anonymous file yang writable lalu menolak kelas mutasi tertentu melalui seal yang ditegakkan kernel. Transisi ini melekat pada inode, bukan pada satu descriptor, sehingga proses tidak dapat mempertahankan duplicate descriptor tanpa pembatasan untuk melewati seal yang dipasang melalui referensi lain. Sifat tersebut berbeda dari memberikan descriptor dengan mode akses yang lebih sempit kepada komponen lain. Mode akses descriptor membatasi satu open file description. Seal mengubah operasi yang diizinkan kernel terhadap file itu sendiri, termasuk operasi melalui descriptor lain yang merujuk inode yang sama.