Langsung ke konten

Arsip

Konkurensi

2 artikel
Rekayasa Perangkat Lunak 17 Sep 2026 7 min read

Shared Ring io_uring Menjadikan Memory Ordering Bagian dari ABI

Queue io_uring adalah shared memory yang diubah oleh dua domain eksekusi independen. User space menyiapkan submission entry dan memajukan metadata queue; kernel mengonsumsi submission tersebut lalu memublikasikan completion entry. Layout ring menghilangkan satu batas copy, tetapi pada saat yang sama membuat visibilitas memori menjadi bagian dari kontrak interface. Assignment biasa pada level source ke tail queue tidak cukup sebagai model publikasi yang portabel. Data entry harus terlihat lebih dulu sebelum nilai tail yang membuat entry tersebut boleh dikonsumsi. Di sisi completion, user space harus mengamati publikasi completion dari kernel sebelum membaca field di completion tersebut. Relasi ordering ini adalah bagian dari correctness, bukan sekadar detail optimasi.

Teknologi 17 Sep 2026 6 min read

Memory Fence Membatasi Urutan Memori Antar-Core

Memory Fence Membatasi Urutan Memori Antar-Core Prosesor dapat menjalankan operasi memori dengan kebebasan yang lebih besar daripada yang tampak dari urutan kode sumber. Load dapat dimulai lebih awal, store dapat menunggu di buffer, lalu lintas koherensi cache dapat selesai pada waktu berbeda, dan operasi yang saling independen dapat berlangsung tumpang tindih. Teknik-teknik ini meningkatkan throughput, tetapi perangkat lunak konkuren membutuhkan aturan yang presisi untuk memublikasikan dan mengamati state bersama. Memory fence menempatkan batas pengurutan di sekitar operasi memori tertentu. Instruksi ini biasanya tidak mengosongkan seluruh cache, tidak menserialkan seluruh prosesor, dan tidak membuat semua core menjalankan satu alur instruksi. Perannya lebih sempit: membatasi hasil pengurutan memori apa saja yang boleh terjadi melintasi sebuah batas yang ditentukan.