Manajemen
proses merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen
proses adalah masalah utama dalam perancangan sistem operasi. Proses adalah
program yang sedang dieksekusi. Proses dapat juga didefinisikan sebagai unit
kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh
sistem operasi. Proses berisi instruksi, data, program counter, register
pemroses, stack data, alamat pengiriman dan variabel pendukung lainnya.
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 berikut ini:
- New: Proses sedang dikerjakan/ dibuat.
- Running: Instruksi sedang dikerjakan.
- Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O
- Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
- Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
PROCESS
CONTROL BLOCK
Tiap
proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB)
– juga
disebut
sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2. PCB berisikan
banyak bagian dari informasi yang berhubungan dengan sebuah proses yang
spesifik, termasuk ini:
Keadaan
proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak
lagi.
- Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan
untuk
proses ini.
- CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan
komputer.
PENJADWALAN
PROSES
Tujuan
dari multiprogramming adalah untuk memiliki sejumlah proses yang berjalan pada
sepanjang waktu, untuk memaksimalkan penggunaan CPU.
Tujuan
dari pembagian waktu adalah untuk mengganti CPU diantara proses-proses yang
begitu sering sehingga pengguna dapat berinteraksi dengan setiap program sambil
CPU bekerja. Untuk sistem uniprosesor, tidak akan ada lebih dari satu proses
berjalan. Jika ada proses yang lebih dari itu, yang lainnya akan harus menunggu
sampai CPU bebas dan dapat dijadualkan kembali.
Terdapat
3 konsep dasar Penjadwalan proses yaitu :
Penjadualan Antrian (Scheduling
Queue)
Ketika
proses memasuki sistem, mereka diletakkan dalam antrian job. Antrian ini
terdiri dari seluruh proses dalam sistem. Proses yang hidup pada memori utama
dan siap dan menunggu/ wait untuk mengeksekusi disimpan pada sebuah daftar
bernama ready queue. Antrian ini biasanya disimpan sebagai daftar penghubung.
Sebuah header ready queue berisikan penunjuk kepada PCB-PCB awal dan akhir.
Setiap PCB memiliki pointer field yang menunjukkan proses selanjutnya dalam
ready queue.
Penjadual / Scheduler
Sebuah
proses berpindah antara berbagai penjadualan antrian selama umur hidupnya.
Sistem
operasi
harus memilih, untuk keperluan penjadualan, memproses antrian-antrian ini dalam
cara tertentu. Pemilihan proses dilaksanakan oleh penjadual yang tepat/ cocok.
Dalam sistem batch, sering ada lebih banyak proses yang diserahkan daripada
yang dapat dilaksanakan segera. Proses ini dipitakan/ disimpan pada suatu alat
penyimpan masal (biasanya disket), dimana proses tersebut disimpan untuk
eksekusi dilain waktu. Penjadualan long term, atau penjadual job, memilih
proses dari pool ini dan mengisinya kedalam memori eksekusi.
Alih Konteks / Switch Context
Mengganti
CPU ke proses lain memerlukan penyimpanan suatu keadaan proses lama (state of
old
process)
dan kemudian beralih ke proses yang baru. Tugas tersebut diketahui sebagai alih
konteks (context switch). Alih konteks sebuah proses digambarkan dalam PCB
suatu proses; termasuk nilai dari CPU register, status proses (lihat Gambar 7).
dan informasi managemen memori. Ketika alih konteks terjadi, kernel menyimpan
konteks dari proses lama kedalam PCB nya dan mengisi konteks yang telah
disimpan dari process baru yang telah terjadual untuk berjalan. Pergantian
waktu konteks adalah murni overhead, karena sistem melakukan pekerjaan yang
tidak perlu. Kecepatannya bervariasi dari mesin ke mesin, bergantung pada
kecepatan memori, jumlah register yang harus di copy, dan keberadaan instruksi
khusus (seperti instruksi tunggal untuk mengisi atau menyimpan seluruh
register). Tingkat kecepatan umumnya berkisar antara 1 sampai 1000 mikro detik
ntaps
BalasHapus