EnglishFrenchGermanSpainItalian DutchRussianPortugueseJapaneseKorean

Google Search

Custom Search

Wednesday, November 18, 2009

Konsep Proses

10.1. Pendahuluan

Proses didefinisikan sebagai program yang sedang dieksekusi. Menurut Silberschatz proses tidak
hanya sekedar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang
bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi
data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang
menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah
program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya.
Keterkaitan hubungan antara proses dengan Sistem Operasi terlihat dari cara Sistem Operasi
menjalankan/mengeksekusi proses. Sistem Operasi mengeksekusi proses dengan dua cara yaitu
Batch System yang mengeksekusi jobs dan Time-shared System yang mengatur pengeksekusian
program pengguna (user) atau tasks. Bahkan pada sistem pengguna tunggal (single user) pun seperti
Microsoft Windows dan Mac OS, seorang pengguna mampu menjalankan beberapa program pada
saat yang sama, seperti Spread Sheet, Web Browser, dan Web Email. Bahkan jika pengguna hanya
menggunakan satu program saja pada satu waktu, sistem operasi perlu mendukung program
internalnya sendiri, seperti manajemen memori. Dengan kata lain, semua aktivitas tersebut adalah
identik sehingga kita menyebutnya ''Proses''.
Program itu sendiri bukanlah sebuah proses. Program merupakan sebuah entitas pasif; serupa isi dari
sebuah berkas didalam disket. Sedangkan sebuah proses dalam suatu entitas aktif, dengan sebuah
program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat
sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi.
Tanenbaum memberikan sebuah analogi untuk membantu membedakan antara program dan proses.
Misalkan seorang tukang kue ingin membuat kue ulang tahun untuk anaknya. Tentunya tukang kue
tersebut memiliki resep untuk membuat kue tersebut beserta daftar bahan-bahan yang diperlukan
untuk membuat kue ulang tahun seperti tepung, gula, bubuk vanilla, dan bahan-bahan lainnya.
Dalam analogi ini, resep kue ulang tahun tadi adalah sebuah program, tukang kue ini adalah CPU
(prosesor), dan bahan-bahan yang diperlukan untuk membuat kue adalah data input. Sedangkan
proses adalah kegiatan yang dilakukan oleh si tukang kue mulai dari membaca resep, mengolah
bahan, dan memanggang kue hingga akhirnya selesai.
Dua atau lebih buah proses dapat dihubungkan oleh sebuah program yang sama, tetapi tetap saja
proses tersebut akan dianggap dua atau lebih proses yang sekuensi/urutan eksekusinya dilakukan
secara terpisah. Sebagai contoh, beberapa pengguna dapat menjalankan salinan yang berbeda pada
mail program atau pengguna yang sama dapat meminta salinan yang sama dari editor program. Tiap
proses ini adalah proses yang terpisah, dan walaupun bagian text section adalah sama, data
section-nya bervariasi. Sudah umum jika terdapat suatu proses yang menghasilkan beberapa proses
lainnnya ketika proses bekerja. Hal ini akan dijelaskan pada bagian berikutnya.

10.2. Pembentukan Proses

Saat komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah proses
dibuat melalui system call create-process membentuk proses turunan (child process) yang
dilakukan oleh proses induk parent process. Proses turunan tersebut juga mampu membuat proses
baru sehingga kesemua proses-proses ini pada akhirnya membentuk pohon proses.
Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti ''waktu
CPU'', ''memori'', ''berkas'' atau perangkat ''M/K''. Sumber daya ini dapat diperoleh langsung dari
Sistem Operasi, dari Proses Induk yang membagi-bagikan sumber daya kepada setiap proses
turunannnya, atau proses turunan dan proses induk berbagi sumber-daya yang diberikan Sistem
Operasi.
Ada dua kemungkinan bagaimana jalannya (running) proses induk dan turunan berjalan (running).
Proses-proses tersebut berjalan secara konkuren atau proses induk menunggu sampai
beberapa/seluruh proses turunannya selesai berjalan. Juga terdapat dua kemungkinan dalam pemberian ruang alamat (address space) proses yang baru. Proses turunan dapat merupakan duplikasi.

Sistem operasi UNIX mempunyai system call fork yang berfungsi untuk membuat proses baru.
Proses yang memanggil system call fork ini akan dibagi jadi dua, proses induk dan proses turunan
yang identik. Analoginya seperti pembelahan sel, dimana satu sel membelah jadi dua sel yang
identik. Proses induk dan turunan independen satu sama lain dan berjalan bersamaan. Return code
dari system call ini adalah suatu integer. Untuk proses anak return code-nya adalah 0 sementara
untuk proses induk return code-nya adalah nomor identifikasi proses (PID) dari turunannya. Ada
juga system call exec yang berguna untuk membuat proses turunan yang terbentuk memiliki
instruksi yang berbeda dengan proses induknya. Dengan kata lain, proses induk dan proses turunan
tidak lagi identik tapi masing-masing punya instruksi berbeda.
Bila UNIX menggunakan kemungkinan pertama (proses baru merupakan duplikasi induknya) maka
sistem operasi DEC VMS menggunakan kemungkinan kedua dalam pembuatan proses baru yaitu
setiap proses baru memiliki program yang diload ke ruang alamatnya dan melaksanakan program
tersebut. Sedangkan sistem operasi Microsoft Windows NT mendukung dua kemungkinan tersebut.
Ruang alamat proses induk dapat diduplikasi atau proses induk meminta sistem operasi untuk
me-load program yang akan dijalankan proses baru ke ruang alamatnya.

10.3. Terminasi Proses

Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah terakhir serta
meminta sistem operasi untuk menghapus perintah tersebut dengan menggunakan system call exit.
Pada saat itu, proses dapat mengembalikan data keluaran kepada proses induk-nya melalui system
call wait. Semua sumber-daya yang digunakan oleh proses akan dialokasikan kembali oleh sistem
operasi agar dapat dimanfaatkan oleh proses lain.
Suatu proses juga dapat diterminasi dengan sengaja oleh proses lain melalui system call abort.
Biasanya proses induk melakukan hal ini pada turunannya. Alasan terminasi tersebut seperti:
• Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan ini, proses
induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.
• Task yang ditugaskan kepada turunan tidak lagi diperlukan.
• Proses induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap berjalan.
Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading termination.

10.4. Status Proses

Sebuah proses dapat memiliki tiga status utama yaitu:
• Running: status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi.
• Waiting: status yang dimiliki pada saat proses menunggu suatu sebuah event seperti proses M/K.
• Ready: status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
Terdapat dua status tambahan, yaitu saat pembentukan dan terminasi:
• New: status yang dimiliki pada saat proses baru saja dibuat.
• Terminated: status yang dimiliki pada saat proses telah selesai dieksekusi

Terima Kasih

Masukkan Code ini K1-EY8895-E
untuk berbelanja di KutuKutuBuku.com