Posted by : KODE ILMU Rabu, 05 November 2014



Process Programming





    Sebagaimana di pos sebelumnya bahwa setiap Proses pada linux memiliki PID (Proses ID) yang bernilai unik sebagai pembeda antara satu proses dengan proses yang lainnya. PID itu sendiri terdiri dari 16 bit integer yang keluar secara berurutan. Setiap Proses pun memiliki Parent Proses dan bisa juga memilki Child Proses kecuali prose init yang tidak memilki Parent Proses. Contoh kode untuk mendapatkan Proses ID salah satu caranya adalah sbb 
    
      int main (){
printf("the process ID is %d\n", (int) getpid());
printf("the parent process ID is %d\n", (int) getppid());
return 0;
}

    ada 3 cara untuk membuat proses baru melalui kode program berikut :

  1. fungsi system() adalah fungsi yang menjalankan shell command, namun fungsi ini kurang dianjurkan karena fungsi ini menghabiskan banyak memory karena harus memutus program yang sedang berjalan dan kemudian mengalihkannya ke proses baru yang diinginkan. fungsi ini juga kurang portable dibanding kedua fungsi lainnya.
  2. system call fork() adalah proses yang menduplikasi proses yang ada, proses baru itulah yang disebut proses Child. return value dari fork () menunjukkan kita sedang berada pada proses yang mana. jika nilai lebih dari 0 maka sedang berada dalam parent proses, jika = 0 maka sedang berada dalam proses Child, sedangkan jika kurang dari 0 maka error.
  3. fungsi exec *family adalah fungsi yang mengganti program yang sedang berjalan pada suatu proses. ada beberapa keluarga exec yaitu Execv Execvp Execve Execlp Execle

SIGNALS
     Signal adalah sebuah event yang dikirimkan ke suatu proses oleh proses itu sendiri atau proses lain, signal ini digunakan untuk mengirimkan notifikasi kepada suatu proses bahwa ada suatu event. Beberapa yang termasuk kedalam signal Populer :
  1. SIGKILL untuk mengakhiri eksekusi program sekarang juga
  2. SIGTERM mengakhiri eksekusi program
  3. SIGSEGV diterima ketika program melakukan segmentation violation mengeksekusi tanpa hak
  4. SIGSTOP untuk menghentikan sementara suatu proses sekarang juga
  5. SIGCONT untuk melanjutkan kembali program yang di stop
  6. SIGINT untuk interrupt ke suatu proses
     Untuk mengirimkan sinyak ke Proses ada dua cara yang bisa digunakan yaitu dengan menggunakan perintah kill atau menggunakan system call kill().

-wait ()
    system call wait() digunakan untuk membuat proses induk menunggu proses anak selesai. fungsi ini memblok eksekusi program sampai salah satu proses anaknya selesai. 

{ 1 komentar... read them below or add one }

- Copyright © KODE ILMU - Skyblue - Powered by Blogger - Designed by Johanes Djogan -