Pemrograman PERL Lanjutan Bagian 20: Manajemen Proses

camel perl programming

Setelah kemarin membahas mengenai pemrograman socket dengan PERL. Tulisan hari ini akan membahas mengenai manajemen proses sistem operasi berbasis UNIX/Linux dengan PERL.

Fungsi fork()

Perl menyediakan fungsi fork() yang sama dengan UNIX/Linux system call. Kebanyakan platform Unix-like dapat menggunakan fungsi fork() sedangkan selain platform tersebut fungsi tersebut tidak tersedia seperti sistem operasi windows. Fungsi ini juga bisa diemulasikan dengan level interpreter yang lebih tinggi.

Fungsi fork() digunakan untuk clone proses. Fungsi ini akan membuat proses baru yang berjalan pada program yang sama dan point yang sama. Hal tersebut akan mengembalikan child pid ke parent proses, 0 untuk proses child atau lakukan undef jika fork tidak sukses.

Anda dapat menggunakan fungsi exec() dengan proses untuk melancarkan requested yang executable, yang akan dieksekusi dalam area proses yang terpisah dan exec() akan menunggu sampai selesai sebelum keluar dengan status yang sama pada proses yang diclone.

 

kode_fork

 

Ketika proses dijalankan maka akan nampak seperti dibawah ini.

 

perl_fork

 

Fungsi wait() dan waitpid() dapat dilalui sebuah pseudo-proses ID yang dikembalikan oleh fungsi fork(). Fungsi ini akan menunggu sampai ada terminasi pseudo-proses dan mengembalikan status. Jika anda melakukan fork tanpa menunggu menggunakan fungsi waitpid(), anda akan mendapat akumulasi zombie. Pada system UNIX/Linux ada dapat menghindarinya dengan pengaturan $SIG{CHILD} untuk “IGNORE”.

 

kode_fork2

 

Jika dieksekusi hasilnya akan seperti dibawah ini.

 

fork2

 

Fungsi kill()

Fungsi ini dapat digunakan untuk terminasi sebuah pseudo-proses berdasarkan ID yang dikembalikan fork(). Catatan jika anda menggunakan fungsi ini, memori akan mendapat banyak hole karena thread akan mengimplementasikan bahwa pseudo-proses tidak punya kesempatan untuk membersihkan resource sebelumnya. Anda juga dapat menggunakan fungsi kill() untuk mengirim sinyal pada proses yang ditargetkan, sebagai contoh dengan mengirimkan SIGINT untuk proses ID 103 dan 102.

 

kode_kill

 

Demikian tulisan hari ini semoga bermanfaat :D.

 

[1] Unknown. (????). Perl Process Management
Tersedia: tutorialspoint.com/perl/perl_process_management.htm. [21 Februari 2015].

Advertisements

One thought on “Pemrograman PERL Lanjutan Bagian 20: Manajemen Proses

  1. Pingback: Yana Permana

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s