Langsung ke konten

Arsip

Concurrency

3 artikel
Rekayasa Perangkat Lunak 17 Sep 2026 6 min read

pidfd Linux Mengubah Identitas Proses Menjadi Handle yang Dapat Dipantau

PID Linux adalah angka dari namespace yang dapat digunakan ulang. pidfd berbeda: ia adalah file descriptor yang merujuk ke proses tertentu. Perbedaan itu mengubah pengelolaan proses dari lookup berulang berdasarkan nama numerik menjadi operasi terhadap handle yang dipertahankan kernel dan identitasnya tidak diam-diam berpindah ketika PID didaur ulang. Perbedaannya paling terlihat pada supervisor, launcher, sandbox, dan service manager yang mempertahankan referensi proses melintasi pekerjaan asynchronous. PID numerik dapat tetap valid secara sintaksis setelah proses asli keluar, tetapi kemudian mengidentifikasi proses lain. pidfd menjaga referensi tetap terikat pada objek proses asli dan juga dapat berpartisipasi dalam event loop berbasis descriptor.

Linux 17 Sep 2026 5 min read

O_APPEND Menggabungkan Posisi Akhir dengan Setiap Write

O_APPEND mengubah write dari dua tindakan yang dapat dipisahkan menjadi satu operasi terpadu: Linux menempatkan open file description pada akhir file saat ini lalu melakukan write sebagai satu langkah atomik. Sifat ini penting ketika beberapa writer menulis ke regular file yang sama. Urutan lseek(fd, 0, SEEK_END) lalu write(fd, ...) tidak memiliki semantik append yang sama karena writer lain dapat mengubah file di antara kedua system call tersebut. Status append berada pada open file description O_APPEND adalah file status flag. File status flag disimpan pada open file description, bukan pada integer file descriptor itu sendiri.

Rekayasa Perangkat Lunak 17 Sep 2026 5 min read

Linux eventfd Membuat Status Counter Dapat Dipantau

Linux eventfd dapat menggabungkan banyak notifikasi ke dalam satu counter yang dikelola kernel sambil tetap dapat digunakan dengan poll(), select(), dan epoll. Writer menambahkan nilai unsigned 64-bit ke counter; readiness menyatakan apakah status tersebut dapat dikonsumsi. Interface ini membawa status aritmetika, bukan byte stream atau antrean pesan individual. Perbedaan tersebut penting pada batas proses dan thread. Sebuah wakeup menyatakan bahwa counter bukan nol. Wakeup itu tidak mempertahankan jumlah operasi write, identitas writer, atau urutan di antara sumber notifikasi yang terpisah.