Pertemuan 4 1 MANAJEMEN PROSES 1. Konsep Proses a. Definisi

advertisement
MANAJEMEN PROSES
1. Konsep Proses
a. Definisi Proses
Aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program
counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya
juga termasuk process stack, yang berisikan data temporer (seperti parameter
metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang
berisikan variabel global.
b. Status Proses
•
New: Proses sedang dikerjakan/ dibuat.
•
Running: Instruksi sedang dikerjakan.
•
Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti
sebuah penyelesaian I/O atau penerimaan sebuah tanda/ signal).
•
Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
•
Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
c. Proses 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 (Gambar 1),
termasuk ini:
•
Pointer
Keadaan proses: Keadaan mungkin,
Nomor proses
new, ready, running, waiting, halted, dan
Program counter
juga banyak lagi.
•
State proses
Program
Register
Counter
Batas memori
mengindikasikan address dari perintah
Daftar berkas
selanjutnya
proses ini.
counter:
untuk
dijalankan
untuk
Yang telah dibuka
…..
Gambar 1. PCB
Pertemuan 4
1
•
CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada
rancangan komputer.
•
Register tersebut termasuk accumulator, index register, stack pointer, generalpuposes register, ditambah code information pada kondisi apa pun. Besertaan
dengan program counter, keadaan/ status informasi harus disimpan ketika
gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja
dengan benar setelahnya (lihat Gambar 2).
•
Informasi managemen memori: Informasi ini dapat termasuk suatu informasi
sebagai nilai dari dasar dan batas register, tabel page/ halaman, atau tabel
segmen tergantung pada system 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
digunakan pada proses ini, suatu daftar open berkas dan banyak lagi.
•
PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi
apapun yang dapat bervariasi dari prose ke proses.
Gambar 2. CPU Register
Pertemuan 4
2
2. Konsep Penjadwalan
Penjadwalan proses merupakan kumpulan kebijaksanaan dan mekanisme di sistem
operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Kriteria
untuk mengukur dan optimasi kinerje penjadwalan :
a. Adil (fairness)
Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu
pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses
sehingga mengalami kekurangan waktu.
b. Efisiensi (eficiency)
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu
sibuk pemroses.
c. Waktu tanggap (response time)
Waktu tanggap berbeda untuk :
•
Sistem interaktif
Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari
perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar.
Waktu tanggap ini disebut terminal response time.
•
Sistem waktu nyata
Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai
instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event
response time.
d. Turn Around Time
Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke system
sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang
dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi
(waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu
eksekusi + waktu menunggu.
e. Throughput
Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk
mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat
dieksekusi dalam satu unit/interval waktu.
Pertemuan 4
3
Tujuan dari pembagian waktu adalah untuk mengganti CPU diantara proses-proses
yang begitu sering sehingga pengguna dapat berinteraksi dengan setiap program
sambil CPU bekerja.
a. 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. Juga ada
antrian lain dalam sistem. 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 tape drive
yang telah diperuntukkan, atau alat yang berbagi, seperti disket.
Karena ada banyak proses dalam sistem, disket bisa jadi sibuk dengan permintaan
I/O untuk proses lainnya. Maka proses tersebut mungkin harus menunggu untuk
disket tersebut. Daftar dari proses yang menunggu untuk peralatan I/O tertentu
disebut sebuah device queue. Tiap peralatan memiliki device queuenya sendiri.
Jenis-jenis antrian penjadwalan adalah sebagai berikut :
•
Job Queue
Job Queue. Semua proses yang masuk pada suatu sistem akan diletakkan ke
dalam job queue.
•
Ready Queue
Proses-proses yang ada di memori utama dan menunggu untuk dieksekusi
diletakkan pada suatu list yang disebut dengan ready queu.
•
Device queue
Deretan proses yang sedang menunggu peralatan I/O tertentu.
Pertemuan 4
4
b. Schedulers
Terdapat dua bentuk penjadwalan :
•
Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang
harus dibawa ke ready queue. Penjadwal ini bekerja terhadap antrian batch
dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah
proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu
pemroses, memori, perangkat masukan/keluaran), program-program ini
berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama
periode aktivitas job-job interaktif rendah.
•
Short-term Scheduler (CPU scheduler), memilih proses-proses yang siap
untuk dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses
tersebut. Bertugas menjadwalkan alokasi pemroses di antara proses-proses
ready di memori utama. Penjadwalan dijalankan setiap terjadi pengalihan
proses untuk memilih proses berikutnya yang harus dijalankan.
c. Context Switch
Ketika CPU berpindah dari proses satu ke proses lainnya, sistem harus
menyimpan status dari proses yang lama dan membuka state proses baru yang
sudah disimpan. Contex switch adalah proses penyimpanan status proses dan
mengambil status proses yang baru pada saat terjadi switching. Pada saat terjadi
perpindahan proses, sistem tidak bekerja. Waktu context switch tergantung pada
perangkat keras yang digunakan.
3. Operasi pada Proses
a. Penciptaan proses
Melibatkan banyak aktivitas, yaitu :
•
Memberi identitas proses
•
Menyisipkan proses pada senarai atau tabel proses
•
Menentukan prioritas awal proses
•
Menciptakan PCB
•
Mengalokasikan sumber daya awal bagi proses
Pertemuan 4
5
Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk
mengelola dan mengalokasikan ruang alamat proses. Penciptaan proses dapat
disebabkan beragam sebab. Penciptaan proses meliputi beberapa tahap :
•
Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel
proses
•
utama yang berisi satu isian perproses.
•
Alokasikan ruang untuk proses.
•
PCB harus diinisialisasi.
•
Kaitan-kaitan antar tabel dan senarai yang cocok dibuat.
•
Bila diperlukan struktur data lain maka segera dibuat struktur data itu.
b. Penghancuran proses
Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
•
Sumber daya-sumber daya yang dipakai dikembalikan.
•
Proses dihancurkan dari senarai atau tabel sistem.
•
PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).
Pertemuan 4
6
Tabel 1. Alasan Penghancuran Proses
Pertemuan 4
7
Tabel 1. Alasan Penghancuran Proses
4. Threads
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang
multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat
yang sama.
Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian
sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari
Pertemuan 4
8
arsitektur multiprosesor. User level thread adalah thread yang tampak oleh
programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola
oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola
oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam
pembuatan dan pengelolaan dari pada kernel thread.
Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.
•
Model many to one: memetakan beberapa user level thread hanya ke satu buah
kernel thread.
•
Model one to one: memetakan setiap user thread ke dalam satu kernel thread.
berakhir.
•
Model many to many: mengizinkan pengembang untuk membuat user thread
sebanyak mungkin
Pertemuan 4
9
5. Komunikasi Antar Proses
Pada sistem dengan banyak proses kongkuren, terdapat tiga kategori interaksi, yaitu :
a. Proses-proses saling tidak peduli (independen)
Proses-proses ini tidak dimaksudkan untuk bekerja bersama untuk mencapai
tujuan tertentu. Pada multiprogramming dengan proses-proses independen, dapat
berupa batch atau sesi interaktif, atau campuan keduanya. Meski proses-proses
tidak bekerja bersama, sistem operasi perlu mengatur persaingan diantara prosesproses itu dalam memperoleh sumber daya yang terbatas.
Contoh : Terdapat dua aplikasi yang berusaha mengakses printer yang sama, bila
kedua aplikasi benar-benar mengakses printer yang sama secara bersamaan, maka
kedua proses akan memperoleh hasil yang tak dikehendaki. Sistem operasi harus
mengatur pengaksesan-pengaksesan sumber daya agar tidak menyebabkan hasil
yang tidak dikehendaki.
b. Proses-proses saling mempedulikan secara tidak langsung
Dimana proses-proses tidak perlu saling mempedulikan identitas proses-proses
lain tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran.
Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek
tertentu.
c. Proses-proses saling mempedulikan secara langsung.
Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk
suatu aktivitas.
6. 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). Dalam kasus ini, pengirim
harus memblok sampai penerima menerima pesan.
•
Kapasitas terbatas: antrian mempunyai panjang yang telah ditentukan, paling
banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan
Pertemuan 4
10
dikirimkan, pesan yang baru akan menimpa, dan
pengirim pengirim dapat
melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas. Jika
link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
•
Kapasitas tak terbatas: antrian mempunyai panjang yang tak terhingga, maka,
semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.
Pertemuan 4
11
Download