Konsep Dasar Proses
Proses adalah program yang sedang dieksekusi mencakup program counter, register dan variabel di dalamnya. Eksekusi proses dilakukan secara berurutan. Dalan suatu proses terdapat program counter, stack dan daerah data. Proses tidak hanya berupa suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangktan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variable lokal ) dan data section yang menyimpan veriabel-variabel global. Pada sistem operasi UNIX mempunyai system call fork yang berfungsi untuk membuat proses baru, proses yang memanggil system call fork ini akan dibagi menjadi dua, proses induk dan proses turunan yang identik.
System operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi tersebut adalah :
- Penciptaan proses
- Penghancuran/terminasi proses
- Penundaan proses
- Pelanjutan kembali proses
- Pengubahan prioritas proses
- Memblok proses
- Membangunkan proses
- Menjadwalkan proses
- Memungkinkan proses berkomunikasi dengan proses lain
Sebagai acuan dasar, kita tahu bahwa penciptaan proses merupakan salah satu operasi yang dikelola oleh suatu proses. Bagaimana suatu proses diciptakan ? ada beberapa aktivitas berkenaan dengan pembuatan proses, antara lain:
- Member identitas (nama) pada proses yang dibuat;
- Menyisipkan proses pada list proses atau table proses;
- Menentukan prioritas awal proses;
- Membuat PCB;
- Mengalokasikan resource awal bagi proses tersebut.
Kejadian yang menyebabkan terjadinya penciptaan proses :
- Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja.
- Pada lingkungan interaktif, ketika pemakai baru berusaha logon.
- Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, system operasi dapat menciptakan proses yang akan mengelola pencetakan itu.
- Proses penciptaan proses lain (proses anak), untuk mencapai modularitas atau mengeksploitasi kongkurensi, program pemakai memerintah pembuatan sejumlah proses.
Tahap-Tahap Penciptaan Proses
Penciptaan proses meliputi beberapa tahap, yaitu :
- Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke table proses utama yang berisi satu isian perproses.
- Alokasi ruang untuk proses
- PCB harus diinisialisasi
- Kaitan-kaitan antar table dan seranai yang cocok dibuat.
- Bila diperlukan struktur data lian maka segera dibuat struktur data itu.
Alasan-Alasan Penciptaan Proses
- Terdapat batch baru. System operasi dengan kendali batch job , setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya
- Satu pemakai interaktif logon. Seorang pemakai pada satu terminal sedang melakukan logon ke sistem
- System operasi menciptakan proses untuk member layanan. System operasi menciptakan proses untuk memenuhi satu fungsi pada program pemakai , tanpa mengharuskan pemakai menunggu
- Proses menciptakan proses anak. Untuk mencapai modularitas atau mengeksploitasi kongkurensi, program pemakai memerintahkan pembuatan sejumlah proses
Contoh Penciptaan Proses
Contoh program ini menunjukan bagaimana cara menulis sebuah fungsi serupa untuk membangun system. Program tersebut mengeksekusi argument sintac menggunakan equivalent “sh –c command”.
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
/* Execute the command using this shell program. */
#define SHELL "/bin/sh"
int
my_system (const char *command)
{
int status;
pid_t pid;
pid = fork ();
if (pid == 0)
{
/* This is the child process. Execute the shell command. */
execl (SHELL, SHELL, "-c", command, NULL);
_exit (EXIT_FAILURE);
}
else if (pid < 0)
/* The fork failed. Report failure. */
status = -1;
else
/* This is the parent process. Wait for the child to complete. */
if (waitpid (pid, &status, 0) != pid)
status = -1;
return status;
}
sumber : www.gnu.org/
http://kuliah.dinus.ac.id/
http://kuliah.dinus.ac.id/
November 27, 2010 at 5:52 AM
Bagus2, makasi udah post ini. sofi dapet nya dari mana ini ?. klo bisa ditulis sumbernya