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.
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