Sabtu, 16 Maret 2013

Process Control Block (PCB)


Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block). PCB (Process Control Block) ini sendiri adalah informasi-informasi lain yang diperlukan sebuah sistem operasi untuk mengendalikan dan mengkoordinasikan beragam proses yang aktif. Informasi-informasi tersebut merupakan sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga merubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya).
Process Control Block ini  hanya berfungsi sebagai tempat penyimpanan informasi yang dapat  bervariasi dari proses yang satu dengan yang lain. Setiap proses digambarkan dalam sistem operasi oleh sebuah Process Control Block (PCB). PCB ini berisikan banyak informasi yang berhubungan dengan sebuah proses yang spesifik, yaitu pointer, status proses, program counter, CPU registers, informasi manajemen memori, informasi pencatatan, dan informasi status I/O.
A.        Pointer
Merupakan perubahan dinamis dimana suatu perubahan yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program di eksekusi.
B.        Status Proses
Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan proses new, ready, running, waiting, terminated.
a.          New
Status yang dimiliki pada saat proses baru saja dibuat oleh penjadwalan tingkat tinggi, tetapi belum siap melakukan eksekusi.
b.          Ready
Status yang dimiliki pada saat proses siap dieksekusi oleh prosesor.
c.          Running
Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi. Proses bisa dieksekusi karena CPU tidak sedang mengerjakan tugas yang lain.
d.          Waiting
Status yang dimiliki pada saat proses menunggu suatu event (kejadian), seperti penyelesaian I/O atau menerima signal.
e.          Terminated
Status yang dimiliki pada saat proses telah selesai dieksekusi.


Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun, banyak proses yang dapat berstatus Ready atau Waiting. Ada tiga kemungkinan bila sebuah proses memiliki status Running, yaitu:
·      Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated.
·      Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interupsi dan proses tersebut berstatus Ready.
·      Jika suatu event (kejadian) terjadi pada saat proses dieksekusi maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.
Diagram Status Proses:

C.        Program Counter
Program Counter menunjukkan alamat berikutnya yang akan dieksekusi oleh suatu proses. Program Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan dan ditambah code information pada kondisi apapun.
D.       CPU Registers
Register bervariasi dalam setiap jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk dalam accumulator, register indeks, stack pointer, general-purpose register, ditambah kode informasi pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan pada saat gangguan terjadi, untuk memungkinkan proses tersebut berjalan / bekerja dengan benar setelahnya.
E.        Informasi Manajemen Memori
Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.
F.        Informasi Pencatatan
Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
G.       Informasi Status
Informasi termasuk daftar dari perangkat M/K yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi. PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.
Informasi pada Process Control Block (PCB)
Struktur data PCB menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses. Sistem operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi ini berada di PCB. Sistem berbeda akan mengorganisasikan secara berbeda.
Informasi-informasi pada PCB antara lain:
A.   Informasi Identifikasi Proses
Informasi ini berkaitan dengan identitas proses yang berkaitan dengan tabel lainnya. Informasi tersebut meliputi:
·         Identifier proses
·         Identifier proses yang menciptakan
·         Identifier pemakai
B.     Informasi Status Proses
Informasi ini tentang isi register-register pemroses. Saat proses berstatus running, informasi tersebut berada diregister-register. Ketika proses diinterupsi, semua informasi   register   harus   disimpan   agar   dapat   dikembalikan   saat   proses dieksekusi kembali. Jumlah dan jenis register yang terlibat tergantung arsitektur komputer. Informasi status proses ini terdiri dari :
·         Register-Register yang Terlihat Pemakai
Yaitu register-register yang dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses.
·         Register-Register Kendali dan Status
Yaitu register-register yang digunakan untuk mengendalikan operasi pemroses, seperti program counter dan PSW.
·         Pointer Stack
Setiap proses mempunyai satu atau lebih stack, yang digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjukkan posisi paling atas dari stack.

C.   Informasi Kendali Proses
Informasi kendali proses adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif. Informasi kendali terdiri dari:
·         Informasi Penjadwalan dan Status
 Informasi-informasi ini digunakan untuk menjalankan fungsi penjadwalan, antara lain:
§  Status Proses, Mendefinisikan keadaan/status proses (running, ready, blocked).
§  Prioritas, Menjelaskan prioritas proses.
§  Informasi Berkaitan dengan Penjadwalan, Berkaitan dengan informasi penjadwalan, seperti lama menunggu, lama proses terakhir dieksekusi.
§  Kejadian/Event, Identitas kejadian yang ditunggu proses.
§  Penstrukturan Data, satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.

·         Komuikasi Antar Proses
Beragam  flag,  sinyal  dan  pesan  dapat  diasosiasikan  dengan  komunikasi antara dua proses yang terpisah. Informasi ini disimpan di dalam PCB.
·         Kewenangan Proses
Proses dapat mempunyai kewenangan berkaitan dengan memori dan tipe instruksi yang dapat dijalankan.
·         Manajemen Memori
Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan memori maya (virtual memory) proses.

·         Kepemilikan dan Utilisasi Sumber Daya
Sumber daya yang dikendalikan proses harus diberi tanda, misalnya berkas yang dibuka, pemakaian pemroses dan pemakaian sumber daya lainnya. Informasi yang terdapat pada setiap proses meliputi Status Proses, Program Counter, CPU Registers, Informasi Penjadwalan CPU, Informasi Manajemen Memori, Informasi Accounting dan Informasi Status I/O.

Tidak ada komentar:

Posting Komentar