Langsung ke konten

Arsip

Memori

20 artikel
Linux 23 Sep 2026 3 min read

MADV_WIPEONFORK Mengganti Memori Private yang Diwariskan dengan Nol

MADV_WIPEONFORK Mengganti Memori Private yang Diwariskan dengan Nol fork() normal memberikan child mapping yang berasal dari address space parent, dengan page private yang writable umumnya ditangani melalui copy-on-write. MADV_WIPEONFORK mengubah aturan pewarisan itu untuk range anonymous private tertentu: mapping tetap ada pada child, tetapi isinya menjadi zero-filled. Parent tetap menyimpan byte yang sudah ada. Operasi ini mengubah memori yang terlihat oleh child pada batas pembuatan proses, bukan menghapus range milik parent.

Teknologi 22 Sep 2026 4 min read

Registered Buffer io_uring Menahan Halaman Memori untuk I/O Berulang

Linux io_uring dapat mengirim I/O asynchronous dengan buffer user biasa, tetapi operasi berulang masih dapat membuat kernel harus mencari dan menahan halaman user yang relevan pada setiap request. Registered buffer memindahkan sebagian pekerjaan itu ke fase setup yang eksplisit. Aplikasi mendaftarkan satu atau beberapa region memori ke ring. Kernel mencatat region tersebut dan mempertahankan halaman backing dalam keadaan pinned selama registrasi masih aktif. Request berikutnya dapat merujuk region terdaftar melalui indeks, bukan menyerahkan buffer arbitrer yang harus disiapkan dari awal.

Teknologi 22 Sep 2026 6 min read

Penempatan First-Touch NUMA Mengaitkan Halaman Fisik dengan CPU Pemicu Fault

Pada mesin NUMA, reservasi ruang alamat virtual tidak selalu langsung menentukan node NUMA fisik yang akan menyediakan setiap halaman. Untuk memori anonim, alokasi fisik umumnya terjadi kemudian saat CPU pertama kali memicu page fault pada sebuah halaman. Di bawah kebijakan alokasi lokal default, fault tersebut dapat membuat urutan inisialisasi menjadi bagian dari keputusan penempatan memori. Perilaku ini sering disebut penempatan first-touch. Thread yang pertama kali menulis atau memicu fault pada sebuah halaman dapat membuat Linux mengalokasikan memori backing di dekat node NUMA tempat thread itu berjalan, dengan tetap tunduk pada memory policy aktif, batasan cpuset, ketersediaan memori, dan mekanisme fallback kernel.

Linux 21 Sep 2026 5 min read

File Seal memfd Membekukan State Shared Memory

File dari memfd_create() pada awalnya merupakan file anonim yang mutable. Ukurannya dapat diubah, isinya dapat ditulis, dan file dapat dipetakan seperti file biasa, sementara storage-nya bersifat volatile dan dilepas setelah referensi terakhir hilang. File sealing menambahkan fase lain pada lifecycle tersebut: setelah data selesai diisi, kernel dapat menolak secara permanen kelas perubahan tertentu. Transisi ini berguna saat satu process menyiapkan byte lalu menyerahkan file description yang sama ke process lain. Penerima dapat memeriksa seal yang melekat pada inode, bukan hanya mengandalkan kesepakatan bahwa pengirim tidak akan mengubah objek lagi.

Teknologi 19 Sep 2026 6 min read

Translasi IOMMU Memisahkan Alamat DMA Perangkat dari Memori Fisik

Perangkat yang mendukung DMA dapat mengirim transaksi memori tanpa CPU menyalin setiap payload. Pada sistem dengan IOMMU, alamat yang dibawa transaksi perangkat tidak harus berupa alamat fisik host. IOMMU dapat menerjemahkan I/O virtual address yang terlihat oleh perangkat menjadi halaman fisik dan menolak akses di luar mapping yang telah dikonfigurasi. Batas translasi tersebut memengaruhi isolasi sekaligus perpindahan data. Driver dan sistem operasi dapat memberikan ruang alamat terbatas kepada perangkat, sementara hardware perlu mempertahankan state translasi cukup dekat dengan jalur I/O agar setiap permintaan DMA tidak selalu memicu page-table walk.

Linux 19 Sep 2026 4 min read

Seal memfd Membatasi Mutasi Shared Memory Setelah Handoff

Descriptor dari memfd_create() merujuk ke file anonim dengan penyimpanan pada infrastruktur filesystem berbasis memori. Handoff descriptor saja tidak membekukan objek tersebut: proses yang masih memiliki akses yang sesuai dapat menulis byte, melakukan truncate, atau memperbesar file. File seal Linux menambahkan pembatasan yang ditegakkan kernel sehingga mutasi tertentu gagal setelah producer menyatakan objek selesai dibuat. Mekanisme ini mengubah handoff shared memory dari sekadar konvensi menjadi transisi state yang ditegakkan pada objek file.

Rekayasa Perangkat Lunak 19 Sep 2026 5 min read

process_vm_readv dan process_vm_writev Mentransfer Memori Melintasi Batas Proses

process_vm_readv() dan process_vm_writev() memungkinkan satu proses Linux menyalin byte secara langsung antara address space miliknya dan address space proses lain. Kedua call bekerja pada vektor rentang memori lokal dan remote, tetapi keberhasilan pencarian proses tidak membuat remote memory menjadi stabil. Perubahan mapping, aksesibilitas page, permission, dan mutasi concurrent tetap menjadi bagian kontrak yang terpisah. Interface ini merupakan system call khusus Linux. Keduanya tidak menetapkan lifetime object C, sinkronisasi, atau model interprocess memory yang portabel.

Kecerdasan Buatan 19 Sep 2026 6 min read

Memori Ollama Gemma 3 270M Lebih Besar dari Ukuran File Model

Ollama mencantumkan gemma3:270m dengan ukuran sekitar 292 MB. Angka ini berguna untuk menghitung kebutuhan storage, tetapi bukan kebutuhan RAM. Nilai tersebut menggambarkan data model yang dikemas untuk varian default Ollama, yang memakai quantization Q8_0. Ketika inferensi berjalan, runtime juga membutuhkan memori untuk metadata model, execution buffer, state token, dan key-value cache yang dipakai attention. Perbedaan ini penting pada mesin dengan RAM kecil. Perangkat dengan RAM 512 MB sekilas terlihat cukup jika hanya dibandingkan dengan file model 292 MB, padahal sisa memori juga harus menampung Ollama dan sistem operasi. Konfigurasi context dapat mengubah total kebutuhan secara signifikan.

Linux 19 Sep 2026 4 min read

MADV_FREE Menandai Page Anonim untuk Reclaim Tertunda

MADV_FREE tidak langsung mengganti private anonymous page dengan nol. Operasi ini menandai page yang memenuhi syarat sebagai data yang boleh dibuang, lalu Linux dapat me-reclaim-nya kemudian. Sebelum reclaim benar-benar terjadi, byte lama masih dapat terlihat. Penulisan sebelum reclaim membatalkan status tersebut pada page yang ditulis. Karakteristik waktu ini membedakan MADV_FREE dari advice yang langsung mengubah keadaan range yang terlihat oleh proses. Kontraknya adalah reclamation tertunda: aplikasi menyatakan bahwa isi lama tidak lagi diperlukan, sedangkan kernel menentukan kapan memori fisik diambil kembali.

Teknologi 19 Sep 2026 4 min read

False Sharing pada Cache Line Memindahkan Ownership Koherensi Antar-CPU

False Sharing pada Cache Line Memindahkan Ownership Koherensi Antar-CPU Dua thread dapat memperbarui variabel berbeda tanpa berbagi lock atau menyentuh byte yang sama, tetapi tetap saling mengganggu pada level hardware. Jika kedua variabel berada dalam cache line yang sama, sistem multiprosesor koheren memperlakukan penyimpanannya sebagai satu unit koherensi. Write berulang dari CPU berbeda karena itu dapat memindahkan ownership line tersebut antar-cache meskipun program menganggap variabelnya independen. Efek ini disebut false sharing. Dampaknya muncul dari kombinasi layout memori, pola akses, dan granularitas koherensi; kedekatan field dalam sebuah struktur saja belum membuktikan adanya masalah performa.

Rekayasa Perangkat Lunak 18 Sep 2026 4 min read

Seal pada memfd Mengubah State File Bersama Menjadi Pembatasan Monotonik

File hasil memfd_create() dapat bermula sebagai state bersama yang writable lalu berubah menjadi semakin terbatas. File seal membuat transisi itu monotonik: seal yang berhasil dipasang menjadi properti inode, berlaku pada setiap descriptor yang merujuk inode tersebut, dan tidak dapat dihapus. Sifat ini berguna ketika satu proses menyiapkan byte lalu mengirim descriptor ke proses lain. Penerima dapat memeriksa pembatasan yang ditegakkan kernel, bukan hanya bergantung pada janji protokol bahwa produsen sudah berhenti mengubah objek.

Teknologi 17 Sep 2026 5 min read

Write Combining Menggabungkan Store Berdekatan Sebelum Trafik Memori

Beberapa area memori jauh lebih sering ditulis daripada dibaca. Frame buffer, aperture perangkat, dan area output streaming adalah contoh umum. Mengirim setiap store CPU kecil sebagai transaksi memori terpisah dapat membuang bandwidth bus dan menambah overhead transaksi. Write combining memberi prosesor tempat sementara untuk mengumpulkan store yang kompatibel. Beberapa penulisan ke alamat yang berdekatan dapat digabung menjadi transaksi yang lebih besar sebelum meninggalkan CPU. Teknik ini menguntungkan throughput tulis berkelanjutan, tetapi juga mengubah asumsi waktu dan ordering yang aman bagi software.

Rekayasa Perangkat Lunak 17 Sep 2026 4 min read

Seal memfd Mengubah File Bersama Menjadi Objek Monotonik

Sebuah memfd Linux dapat bermula sebagai file anonim yang writable, lalu memperoleh pembatasan yang tidak dapat dihapus. Pembatasan tersebut melekat pada inode, sehingga transfer atau duplikasi descriptor tidak menghasilkan tampilan yang lebih longgar. Setelah sebuah seal berhasil ditambahkan, setiap descriptor yang merujuk inode itu tunduk pada seal tersebut. Sifat ini berbeda dari access mode pada descriptor. Descriptor dapat membawa flag lokal, sedangkan seal mengubah batas mutasi pada objek file bersama itu sendiri.

Teknologi 17 Sep 2026 6 min read

NUMA Membuat Lokasi Memori Menjadi Bagian dari Biaya Akses

NUMA Membuat Lokasi Memori Menjadi Bagian dari Biaya Akses Server multiprosesor berukuran besar dapat menyediakan satu ruang alamat fisik, tetapi setiap prosesor belum tentu memiliki jalur yang sama menuju memori tersebut. Akses ke halaman memori yang terhubung dekat dengan prosesor tempat sebuah thread berjalan dapat menempuh jalur yang lebih pendek dibanding akses ke memori yang terhubung ke paket prosesor atau node NUMA lain. Susunan ini disebut non-uniform memory access atau NUMA. Pendekatan tersebut memungkinkan kapasitas dan bandwidth memori bertambah melalui beberapa soket prosesor atau kelompok chiplet tanpa memaksa seluruh permintaan memori melewati satu pengendali terpusat.

Teknologi 17 Sep 2026 7 min read

IOMMU Memetakan Ulang Alamat DMA Perangkat untuk Isolasi Memori

Direct memory access memungkinkan perangkat memindahkan data antara dirinya dan memori sistem tanpa membuat CPU menyalin setiap byte. Network adapter, storage controller, GPU, dan perangkat ber-throughput tinggi lainnya mengandalkan DMA agar data dapat bergerak secara efisien. Kemampuan itu juga menciptakan persoalan proteksi. Perangkat yang dapat mengeluarkan transaksi memori tanpa pembatasan dapat membaca atau menimpa page fisik milik kernel, proses lain, atau virtual machine lain. Input-output memory management unit, yang umum disebut IOMMU, menempatkan translasi alamat dan access control di antara perangkat yang mampu melakukan DMA dan memori fisik.

Teknologi 16 Sep 2026 7 min read

TLB Menyimpan Cache Translasi Alamat Virtual Terbaru

Prosesor modern umumnya menjalankan program di ruang alamat virtual. Operasi load atau store dapat dimulai dengan alamat virtual, sementara sistem memori pada akhirnya membutuhkan lokasi fisik dan izin akses. Page table menyimpan informasi pemetaan tersebut, tetapi menelusuri hierarkinya untuk setiap akses memori akan menambah pekerjaan yang besar. Translation lookaside buffer, atau TLB, menyimpan translasi alamat yang baru digunakan di dekat prosesor. TLB hit menyediakan informasi pemetaan yang sudah di-cache tanpa full page-table walk. TLB miss memicu pekerjaan translasi tambahan meskipun data aplikasi yang diminta sudah berada di CPU cache.

Teknologi 16 Sep 2026 5 min read

Refresh DRAM Memulihkan Muatan Sebelum Bit Memudar

Dynamic random-access memory menyimpan data dalam cell yang state listriknya tidak stabil selamanya. Muatan bocor dari cell seiring waktu, bahkan ketika software tidak melakukan read atau write. Karena itu memory system harus me-refresh DRAM secara berkala untuk mempertahankan bit yang tersimpan. Refresh adalah maintenance operation, bukan request dari aplikasi. Memory controller dan device DRAM mengoordinasikannya bersama read dan write biasa. Selama sebagian pekerjaan tersebut berlangsung, beberapa memory resource tidak dapat melayani request normal.

Linux 16 Sep 2026 6 min read

Linux cgroup memory.high Mengubah Kelebihan Memori Menjadi Tekanan Reclaim

Sebuah cgroup dapat tetap hidup setelah penggunaan memorinya melewati memory.high. Batas ini tidak berperilaku seperti batas alokasi keras: task di dalam cgroup akan di-throttle dan didorong ke tekanan reclaim yang berat, sementara penggunaan memori masih dapat bertahan di atas nilai yang dikonfigurasi dalam kondisi ekstrem. Perilaku tersebut membuat memory.high berbeda secara material dari memory.max. Yang pertama mengubah penggunaan berlebih menjadi biaya eksekusi dan pekerjaan reclaim. Yang kedua adalah hard limit yang dapat memicu cgroup OOM ketika reclaim tidak mampu menurunkan penggunaan secara memadai.

Teknologi 16 Sep 2026 5 min read

CPU Store Buffer Memisahkan Retirement dari Cache Write

Prosesor tidak harus menunggu setiap store instruction menyelesaikan cache update sebelum instruction berikutnya dapat maju. Core modern umumnya menempatkan completed store ke store buffer, sehingga instruction dapat retire sementara memory subsystem menangani write sesudahnya. Pemisahan ini meningkatkan throughput karena cache ownership, coherence traffic, dan aktivitas memori lain dapat memakan waktu lebih lama daripada yang mampu ditunggu execution pipeline. Buffer bertindak sebagai queue antara architectural execution dan cache hierarchy. Kecepatan ini datang dengan correctness requirement yang ketat. Pending store tetap harus terlihat sesuai memory-ordering rule arsitektur, dan load yang lebih muda mungkin membutuhkan data yang belum mencapai cache.

Teknologi 16 Sep 2026 6 min read

Asosiativitas Cache CPU Membatasi Tempat Cache Line Dapat Berada

Cache prosesor menjaga memory yang baru digunakan tetap dekat dengan execution core, tetapi kapasitas cache saja tidak menentukan data mana yang dapat tetap resident. Sebagian besar cache CPU general-purpose membagi storage menjadi sejumlah set dan memberi setiap set jumlah slot tetap yang biasa disebut way. Satu blok memory dipetakan ke set tertentu. Blok itu dapat menempati way mana pun di dalam set tersebut, tetapi tidak dapat berpindah ke set lain hanya karena set lain memiliki slot kosong. Aturan penempatan ini membuat lookup hardware praktis dan cepat, sekaligus menciptakan sumber miss tersendiri ketika terlalu banyak blok aktif bersaing pada set yang sama.