Penjadwalan Proses
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.
1. Penjadualan Antrian
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 Reprensentasi
umum untuk suatu diskusi mengenai penjadualan proses adalah diagram antrian,
seperti antrian yang siap dan suatu perangkat device queues. Lingkaran
menunjukkan sumber-sumber yang melayani sistem. Sebuah proses baru pertama-tama
ditaruh dalam ready queue. Lalu menunggu dalam ready queue sampai proses
tersebut dipilih untuk dikerjakan/lakukan atau di dispatched. Begitu proses tersebut
mengalokasikan CPU dan menjalankan/ mengeksekusi, satu dari beberapa kejadian
dapat terjadi.
• Proses tersebut dapat mengeluarkan sebuah permintaan
I/O, lalu di tempatkan dalam sebuah antrian I/O.
• Proses tersebut dapat membuat subproses yang baru
dan menunggu terminasinya sendiri.
• Proses tersebut dapat digantikan secara paksa dari
CPU, sebagai hasil dari suatu interupsi, dan diletakkan kembali dalam ready
queue.
Dalam dua kasus pertama, proses akhirnya berganti dari
waiting state menjadi ready state, lalu diletakkan kembali dalam ready queue. Sebuah
proses meneruskan siklus ini sampai berakhir, disaat dimana proses tersebut
diganti dari seluruh queue dan memiliki PCB nya dan sumber-sumber/ resources dialokasikan
kembali.
2.
Penjadual
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.Sebuah proses dapat mengeksekusi untuk hanya beberapa milidetik sebelum
menunggu permintaan I/O. Seringkali, penjadualan shorterm mengeksekusi paling
sedikit sekali setiap 100 milidetik. Karena durasi waktu yang pendek antara
eksekusi, penjadualan shorterm haruslah cepat. Jika memerlukan 10 mili detik untuk
menentukan suatu proses eksekusi selama 100 mili detik, maka 10/(100 + 10) = 9
persen CPU sedang digunakan (terbuang) hanya untuk pekerjaan penjadualan. Penjadualan longterm pada sisi lain, mengeksekusi jauh
lebih sedikit. Mungkin ada beberapa menit antara pembuatan proses baru dalam
sistem. Penjadualan longterm mengkontrol derajat multiprogramming (jumlah
proses dalam memori).
Jika derajat multiprogramming stabil, lalu tingkat rata-rata
dari penciptaan proses harus sama dengan tingkat kepergian rata rata dari
proses yang meninggalkan sistem. Maka penjadualan
longterm mungkin diperlukan untuk dipanggil hanya ketika suatu proses
meninggalkan sistem. Karena interval yang lebih panjang antara eksekusi,
penjadualan longterm dapat memakai waktu yang lebih lama untuk menentukan
proses mana yang harus dipilih untuk dieksekusi. Adalah penting bagi
penjadualan longterm membuat seleksi yang hati-hati. Secara umum, kebanyakan proses dapat dijelaskan sebagai I/O bound
atau CPU bound. Sebuah proses I/O bound adalah salah satu yang membuang
waktunya untuk mengerjakan I/O dari pada melakukan perhitungan. Suatu proses CPU-bound,
pada sisi lain, adalah salah satu yang jarang menghasilkan permintaan I/O,
menggunakan lebih banyak waktunya melakukan banyak komputasi daripada yang digunakan
oleh proses I/O bound. Penting untuk penjadualan longterm memilih campuran
proses yang baik antara proses I/O bound dan CPU bound. Jika seluruh proses
adalah I/O bound, ready queue akan hampir selalu kosong, dan penjadualan short
term akan memiliki sedikit tugas. Jika seluruh proses adalah CPU bound, I/O
waiting queue akan hampir selalu kosong, peralatan akan tidak terpakai, dan sistem
akan menjadi tidak imbang. Sistem dengan kinerja yang terbaik akan memiliki
kombinasi proses CPU bound dan I/O bound. Pada sebagian sistem, penjadual long
term dapat tidak turut serta atau minimal. Sebagai contoh, system time-sharing
seperti UNIX sering kali tidak memiliki penjadual long term.
Stabilitas
sistem-sistem ini bergantung pada keterbatasan fisik (seperti jumlah terminal
yang ada) atau pada penyesuaian sendiri secara alamiah oleh manusia sebagai
pengguna. Jika kinerja menurun pada tingkat yang tidak dapat diterima, sebagian
pengguna akan berhenti. Sebagian sistem operasi, seperti sistem
time sharing, dapat memperkenalkan sebuah tambahan, penjadualan tingkat
menengah. Penjadual medium-term ini digambarkan pada Gambar 2-5. Ide utama/kunci
dibelakang sebuah penjadual medium term adalah kadang kala akan menguntungkan
untuk memindahkan proses dari memori (dan dari pengisian aktif dari CPU), dan
maka untuk mengurangi derajat dari multiprogramming. Dikemudian waktu, proses
dapat diperkenalkan kedalam memori dan eksekusinya dapat dilanjutkan dimana
proses itu di tinggalkan/ diangkat. Skema ini disebut swapping. Proses di
swapped out, dan lalu di swapped in, oleh penjadual jangka menengah. Swapping
mungkin perlu untuk meningkatkan pencampuran proses, atau karena suatu perubahan
dalam persyaratan memori untuk dibebaskan.
3. Alih Konteks
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. 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 ab 2.
Waktu
alih konteks sangat begantung pada dukungan perangkat keras. Sebagai contoh,
prosesor seperti menyediakan dua rangkap register. Sebuah alih konteks hanya
memasukkan perubahan pointer ke perangkat register yang ada. Tentu saja, jika
ada lebih proses-proses aktif yang ada dari pada yang ada di perangkat
register, sistem menggunakan bantuan untuk meng-copy data register pada dan dari
memori, sebagaimana sebelumnya. Semakin sistem operasi komplek, teknik managemen
memori tingkat lanjut dapat mensyaratkan data tambahan untuk diganti dengan
tiap konteks. Sebagai contoh, ruang alamat dari proses yang ada harus dijaga
sebagai ruang pada pekerjaan berikutnya untuk digunakan. Bagaimana ruang alamat
di jaga, berapa banyak pekerjaan dibutuhkan untuk menjaganya, tergantung pada
metoda managemen memori dari sistem operasi
0 komentar :
Posting Komentar