MANAJEMEN
PROSES
(SISTEM
OPERASI)
Pengertian
Proses Operasi
Proses adalah sebuah
program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi
yang ditulis ke dalam bahasa yang dimengerti sistem operasi.
Proses berisi instruksi dan data. program
counter dan semua register pemroses, dan stack berisi data sementara seperti
parameter rutin, alamat pengiriman dan variabel-variabel lokal.
Sistem operasi mengelola semua proses di
sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan
untuk memenuhi sasaran sistem.
Konsep
Proses Operasi
Program bukanlah sebuah
proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas
yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas
aktif, dengan sebuah program counter yang mengkhususkan pada instruksi
selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang
berkenaan dengannya.
Walau dua proses dapat
dihubungkan dengan program yang sama, program tersebut dianggap dua urutan
eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy
yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak
copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan
walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah
umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.
Status
Proses Operasi
Ketika 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:
1. New : Proses sedang dikerjakan/dibuat.
2. Running : Instruksi sedang dikerjakan.
3. Waiting : Proses sedang menunggu sejumlah
kejadian untuk terjadi (seperti
sebuah penyelesaian I/O atau penerimaan sebuah tanda/ signal).
4. Ready : Proses sedang menunggu untuk ditugaskan
pada sebuah prosesor.
5. Terminated : Proses
telah selsesai melaksanakan tugasnya Process
Control Block
Tiap proses digambarkan
dalam sistem operasi oleh sebuah process control block (PCB) - juga disebut
sebuah control block.
PCB berisikan banyak
bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik,
yaitu :
·
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.
·
Informasi managemen memori: Informasi
ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register,
pada sistem memori yang digunakan oleh sistem operasi.
Process
Control Block
·
Informasi managemen memori: Informasi
ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register,
tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yang
digunakan oleh sistem operasi.
·
Informasi pencatatan: Informasi ini
termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah
akun, jumlah job atau proses, dan banyak lagi.
·
Informasi status I/O: Informasi termasuk
daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar open berkas
dan banyak lagi.
·
PCB hanya berfungsi sebagai tempat
menyimpan/ gudang untuk informasi apa pun yang dapat bervariasi dari proses ke
proses.
Penjadualan
Proses Sistem Operasi
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.
Antrian Proses Sistem
Operasi
Ketika proses memasuki
sistem, mereka diletakkan dalam antrian job. 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.
Jenis antrian lainnya
seperti ketika sebuah proses mengalokasikan CPU, proses tersebut
berjalan/bekerja sebentar lalu berhenti, di interupsi, atau menunggu suatu
kejadian tertentu, seperti penyelesaian suatu permintaan I/O.
Pada kasus ini sebuah
permintaan I/O, permintaan seperti itu mungkin untuk sebuah drive yang telah
diperuntukkan, atau alat yang berbagi, seperti hard drive. Maka proses tersebut
mungkin harus menunggu rive tersebut dan disebut sebuah device queue. Tiap
peralatan memiliki device queuenya sendiri
Operasi-operasi
pada suatu proses SO
·
Penciptaan proses (create a process).
·
Penghancuran/terminasi proses (destroy a
process).
·
Penundaan proses (suspend a process).
·
Pelanjutan kembali proses (resume a
process).
·
Mem-block proses.
·
Membangunkan proses.
·
Menjadwalkan proses.
·
Memungkinkan proses berkomunikasi dengan
proses lain (Komunikasi Antar Proses)
·
Penciptaan suatu proses
Penciptaan proses melibatkan banyak
aktivitas, yaitu:
·
Menamai (memberi identitas) proses.
·
Menyisipkan proses pada senarai proses
atau tabel proses.
·
Menentukan prioritas awal proses.
·
Menciptakan PCB.
·
Mengalokasikan sumber daya awal bagi
proses.
·
Penciptaan suatu proses
Ketika
suatu proses membuat proses baru, dua kemungkinan ada dalam term eksekusi:
·
Induk terus menerus untuk mengeksekusi
secara bersama-sama dengan anaknya.
·
Induk menunggu sampai sebagian dari
anaknya telah diakhiri/terminasi.
·
Juga ada dua kemungkinan dalam term dari
address space pada proses baru:
·
Anak proses adalah duplikat dari induk
proses.
·
Anak proses memiliki program yang
terisikan didalamnya.
·
Penghentian suatu proses
Sebuah proses berakhir
ketika proses tersebut selesai mengeksekusi pernyataan akhirnya dan meminta
sistem operasi untuk menghapusnya dengan menggunakan sistem pemanggilan exit.
Pada titik itu, proses tersebut dapat mengembalikan data (keluaran) pada induk
prosesnya (melalui sistem pemanggilan wait) Seluruh sumber-sumber dari
proses-termasuk memori fisik dan virtual, membuka berkas, dan penyimpanan I/O
di tempatkan kembali oleh sistem operasi.
Ada situasi tambahan tertentu ketika terminasi terjadi.
Sebuah proses dapat menyebabkan terminasi dari proses lain melalui sistem
pemanggilan yang tepat (contoh abort). Biasanya, sistem seperti itu dapat
dipanggil hanya oleh induk proses tersebut yang akan diterminasi. Bila tidak,
pengguna dapat secara sewenang-wenang membunuh job antara satu sama lain. Catat
bahwa induk perlu tahu identitas dari anaknya. Maka, ketika satu proses membuat
proses baru, identitas dari proses yang baru diberikan kepada induknya.
Penghentian
suatu proses
Induk dapat
menterminasi/ mengakhiri satu dari anaknya untuk beberapa alasan, seperti:
ü Anak
telah melampaui kegunaannya atas sebagaian sumber yang telah diperuntukkan
untuknya.
ü Pekerjaan
yang ditugaskan kepada anak telah keluar, dan sistem operasi tidak
memeperbolehkan sebuah anak untuk meneruskan jika induknya berakhir.
ü Untuk
menentukan kasus pertama, induk harus memiliki mekanisme untuk memeriksa status
anaknya. Banyak sistem, termasuk VMS, tidak memperbolehkan sebuah anak untuk
ada jika induknya telah berakhir. Dalam sistem seperti ini, jika suatu proses
berakhir (walau secara normal atau tidak normal), maka seluruh anaknya juga
harus diterminasi. Fenomena ini, mengacu pada terminasi secara cascading, yang
normalnya dimulai oleh sistem operasi.
Hubungan
antara suatu proses
1. Proses Kooperatif
Proses yang bersifat
simultan (concurrent) dijalankan pada sistem operasi dapat dibedakan menjadi
yaitu proses independent dan proses kooperatif.
Suatu proses dikatakan
independen apabila proses tersebut tidak dapat terpengaruh atau dipengaruhi
oleh proses lain yang sedang dijalankan pada sistem. Berarti, semua proses yang
tidak membagi data apa pun (baik sementara/ tetap) dengan proses lain adalah
independent.
Sedangkan proses
kooperatif adalah proses yang dapat dipengaruhi atau pun terpengaruhi oleh
proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses
dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain.
Hubungan
antara suatu proses
Syarat lingkungan yang
memperbolehkan terjadinya proses kooperatif:
Pembagian informasi:
apabila beberapa pengguna dapat tertarik pada bagian informasi yang sama
(sebagai contoh, sebuah berkas bersama), kita harus menyediakan sebuah
lingkungan yang mengizinkan akses secara terus menerus ke tipe dari
sumber-sumber tersebut.
Kecepatan penghitungan/
komputasi: jika kita menginginkan sebuah tugas khusus untuk menjalankan lebih
cepat, kita harus membagi hal tersebut ke dalam subtask, setiap bagian dari
subtask akan dijalankan secara parallel dengan yang lainnya. Peningkatan
kecepatan dapat dilakukan hanya jika komputer tersebut memiliki elemen-elemen
pemrosesan ganda (seperti CPU atau jalur I/O).
Hubungan
antara suatu proses
Syarat lingkungan yang
memperbolehkan terjadinya proses kooperatif (lanjutan):
Modularitas: kita
mungkin ingin untuk membangun sebuah sistem pada sebuah model modular-modular,
membagi fungsi sistem menjadi beberapa proses atau threads.
Kenyamanan: bahkan
seorang pengguna individu mungkin memiliki banyak tugas untuk dikerjakan secara
bersamaan pada satu waktu. Sebagai contoh, seorang pengguna dapat mengedit,
memcetak, dan meng-compile secara paralel.
Hubungan antara suatu
proses
2. Sinkronisasi
Komunikasi antara
proses membutuhkan place by calls untuk mengirim dan menerima data primitive.
Terdapat rancangan yang berbeda-beda dalam implementasi setiap primitive.
Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking
(nonblocking) - juga dikenal dengan nama sinkron atau asinkron.
Pengiriman yang diblok:
Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving
process) atau oleh mailbox.
Pengiriman yang tidak
diblok: Proses pengiriman pesan dan mengkalkulasi operasi.
Penerimaan yang diblok:
Penerima mem blok samapai pesan tersedia.
Penerimaan yang tidak
diblok: Penerima mengembalikan pesan valid atau null.
Hubungan antara suatu
proses
3. Buffering
Baik komunikasi itu
langsung atau tak langsung, penukaran pesan oleh proses memerlukan antrian
sementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut
diimplementasikan:
ü Kapasitas
nol: antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai
penungguan pesan (message waiting).
ü Kapasitas
terbatas: antrian mempunyai panjang yang telah ditentukan, paling banyak n
pesan dapat dimasukkan.
ü Kapasitas
tak terbatas: antrian mempunyai panjang yang tak terhingga, maka, semua pesan
dapat menunggu disini. Pengirim tidak akan pernah di blok.
thanks
BalasHapus