PEMBUATAN PROSES

Okay gan , kali ini saya mau ngebahas tentang Cara Pembuatan Proses di Linux dan Windows. Nah sebelum lebih dalam ngebahas tentang pembuatan proses, alangkah lebih baik kita mengenal terlebih dahulu apakah proses itu? Saya mencari-cari beberapa definisi antara lain:
1. Program yang sedang dalam keadaan dieksekusi.
2. Unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem
Operasi.
Bingung ya gan?? Saya juga bingung :p. Mari kita simpulkan, jadi proses tu sekumpulan program yang ada di PC kita (kaya MS word, MS excel, dll) yang sedang di jalankan oleh Sistem Operasi Kita. Mulai ada pencerahan sekarang?? (moga tidak, hhe.)

Lanjut gan,
Oh ya ada lagi yang perlu kita ketahui tentang proses yaitu bagaimanakah statusnya(kayak married, lajang, duda??? Hha ).. bukan itu yang saya maksud tetapi seperti ini :
1. Status New yaitu status dimana proses sedang dibuat.
2. Status Ready yaitu status dimana proses siap dieksekusi tetapi CPU belum tersedia karena sedang mengerjakan proses lain.
3. Status Waiting yaitu status dimana proses sedang menunggu suatu kejadian tertentu. Misalnya sedang menunggu operasi I/O selesai, menunggu signal dari proses lain, tersedianya memori, dsb.
4. Status Running yaitu status dimana proses dieksekusi. Pada status ini CPU sedang mengeksekusi instruksi – instruksi pada proses.
5. Status Terminated yaitu status dimana proses diakhiri.
Liat aja dech diagram nya biar jelas 

 

 

 

• Sebuah proses menjadi Waiting karena proses tersebut menunggu suatu kejadian tertentu seperti selesainya operasi I/O, misalnya perekaman data ke disk karena pada saat perekaman dilakukan proses sedang tidak menggunakan CPU maka scheduler segera mengalokasikan CPU ke proses lain yang telah Ready. Apabila kejadian yang ditunggu telah selesai maka proses dipindahkan kembali ke antrian Ready dan siap dijadwalkan.

• Sebuah proses dari keadaan Running dapat menjadi Ready kembali karena diinterupsi oleh proses lain. Interupsi dapat disebabkan karena jatah waktu yang diberikan CPU ke proses tersebut telah habis sementara proses masih memerlukan sejumlah waktu untuk selesai. Jatah waktu yang diberikan sering disebut sebagai quantum time (time slice) yang dapat berkisar antara 1 hingga 100 milidetik. Interupsi suatu proses terkait erat dengan strategi penjadwalan proses yang digunakan sistem operasi yaitu strategi preemptive dimana suatu proses dapat saja disela oleh proses lain pada saat Running.

• Sebuah proses menjadi Terminated disebabkan oleh beberapa hal diantaranya:

 Proses memang sudah sele sai mengerjakan tugasnya, sehingga diakhiri secara normal
 Melewati batas waktu yang telah diberikan.
 New Ready Running Terminated
 Waiting
 Terjadi kesalahan perhitungan misalnya mengerjakan instruksi pembagian dengan nol (division by zero) , atau menyimpan angka yang lebih besar daripada yang dapat diakomodasi oleh perangkat keras.
 Terjadi kegagalan I/O seperti kegagalan pembacaan dan penulisan file.
 Proses induknya berakhir, pada kasus ini suatu proses dibuat oleh proses lain, proses pembuat disebut sebagai parent, sedangkan proses yang dibuat disebut sebagai child . Sistem dirancang untuk mengakhiri secara otomatis proses – proses childnya bila proses parent berakhir.
 Proses child diakhiri atas permintaan proses parentnya. Pada kasus ini parent mengirim signal tertentu untuk mengakhiri childnya misalnya mengirim signal SIGQUIT, SIGKILL atau SIGTERM.

Nah setelah berkisah tentang proses beserta statusnya. Mari kita berbicara tentang pembuatan proses itu sendiri. Ada dua sistm operasi yang akan saya bahas disini yaitu pembuatan proses di LINUX dan Windows.

LINUX
Konsep Pembuatan Proses
Konsep pembuatan proses pada sistem operasi linux :
Setiap proses diberi nomor khusus sebagai identifikasi yang disebut process identification atau PID berupa angka integer unik.
Jika proses selesai (Terminated) maka semua sumber daya yang digunakan termasuk PID dibebaskan kembali.
Proses dibuat menggunakan system call fork() yang sering disebut forking proses
System call fork() mengkopi proses pemanggil sehingga akan terdapat 2 proses yaitu :
1. Proses pemanggil disebut PARENT
2. Proses hasil kopian disebut CHILD
Proses CHILD identik dengan proses PARENT-nya tetapi memiliki PID yang berbeda.
Setelah proses baru (child) berhasil dibuat eksekusi dilanjutkan secara normal di masing – masing proses pada baris setelah pemanggilan system call fork().
Proses pemanggil (PARENT) dapat melakukan forking proses lebih dari satu kali sehingga memungkinkan terdapat banyak proses CHILD yang dieksekusi.
Proses CHILD dapat melakukan forking proses seperti halnya PARENT sehingga dapat terbentuk struktur pohon proses.

Membuat Proses
Untuk pembuatan proses baru di sistem, GNU C menyediakan system call fork() yang disertakan pada pustaka unistd.h dengan bentuk prototype sebagai berikut :
pid_t fork (void);

fork() mengembalikan suatu besaran bertipe pid_t yang dapat bernilai :

-1 menandakan pembuatan proses baru (child) gagal
0 menandakan proses child

selain itu merupakan proses parent dan jika variabel PID dia kses akan berisi PID child.
Apabila operasi sukses akan terdapat 2 proses yang dieksekusi yaitu proses parent dan child, eksekusi akan dilanjutkan pada kedua proses setelah fork() sampai selesai. Seperti yang telah dijelaskan bahwa proses parent dan child dapat membuat proses – proses baru yang lain sehingga terdapat banyak proses yang berjalan pada waktu bersamaan (Multitasking).

4 thoughts on “PEMBUATAN PROSES

  1. Ping-balik: lintas-oto.info

  2. Ping-balik: lintas-oto.info

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s