Langsung ke konten

Arsip

Manajemen Proses

4 artikel
Linux 20 Sep 2026 5 min read

pidfd_getfd Menduplikasi File Descriptor Aktif Antarproses

Sebuah proses dapat memperoleh duplikat file descriptor yang sudah terbuka di proses lain tanpa meminta proses tersebut mengirimkannya melalui UNIX domain socket. Linux pidfd_getfd() melakukan transfer itu melalui PID file descriptor, dengan izin yang dibatasi oleh pemeriksaan akses ptrace. Descriptor yang diterima merupakan entry baru di caller, tetapi objek kernel di baliknya bukan objek independen. Descriptor tersebut merujuk ke open file description yang sama dengan descriptor target. Perbedaan ini menentukan sharing offset, file status flags, dan operasi terhadap objek dasarnya.

Linux 19 Sep 2026 5 min read

process_madvise Menerapkan Memory Advice Lintas Batas Proses

Sebuah proses dapat memakai memory untuk pekerjaan yang koordinasinya berada di komponen lain. Linux process_madvise() memungkinkan koordinator eksternal menerapkan virtual-memory advice terpilih ke rentang dalam proses target tanpa menyuntikkan kode ke proses tersebut. Target diidentifikasi melalui pidfd, sedangkan rentang alamat diberikan sebagai array struct iovec. Susunan ini memisahkan keputusan memory policy dari kode yang memiliki mapping. Runtime manager, service supervisor, atau memory controller dapat meminta perlakuan berorientasi reclaim atau prefetch untuk proses lain, dengan tetap tunduk pada dukungan kernel dan pemeriksaan permission. System call ini tidak memindahkan ownership mapping, tidak membekukan target, dan tidak membuat address space target menjadi statis.

Rekayasa Perangkat Lunak 18 Sep 2026 7 min read

Linux close_range Menjadikan Pembersihan Tabel Descriptor sebagai Operasi Rentang

Proses yang bersiap mengeksekusi program lain sering memerlukan invariant descriptor yang sederhana: standard input, output, dan error tetap tersedia, sedangkan descriptor yang tidak terkait tidak melewati batas eksekusi. Menutup descriptor satu per satu dapat mengubah invariant tersebut menjadi persoalan enumerasi. Linux close_range() menerapkan operasi pada interval numerik inklusif di tabel file descriptor milik task pemanggil. Antarmukanya kecil, tetapi semantiknya menjangkau sharing tabel descriptor, pewarisan melalui execve(), alokasi descriptor secara concurrent, dan transisi privilege. Flag yang dipilih menentukan lebih dari strategi implementasi: flag tersebut menetapkan apakah descriptor langsung hilang, menjadi close-on-exec, atau terlebih dahulu dipisahkan dari tabel yang dibagi dengan task lain.

Linux 18 Sep 2026 5 min read

close_range Mengontrol Pewarisan Descriptor pada Batas exec

Sebuah proses yang bersiap memanggil execve() dapat memiliki ratusan atau ribuan file descriptor terbuka, sementara program baru hanya seharusnya mewarisi beberapa descriptor tertentu. Menutup descriptor satu per satu menimbulkan biaya pencatatan sekaligus masalah concurrency: thread lain dapat mengalokasikan descriptor ketika loop pembersihan masih berjalan. Linux close_range() memindahkan operasi tersebut ke batas tabel descriptor. Caller menentukan rentang angka inklusif dan meminta kernel menutup descriptor dalam rentang itu atau menandainya close-on-exec. Dengan CLOSE_RANGE_UNSHARE, caller dapat lebih dahulu memisahkan tabel descriptornya dari thread atau proses yang berbagi tabel tersebut.