2. Perbedaan antara proses dengan thread tunggal dengan proses thread yang banyak?
3. Sebutkan macam - macam thread!
4.Jelaskan tindakan yang di ambil oleh sebuah kernel saat alih konteks antara kernel level thread!
5. Sebutkan keuntungan dan kerugian multithreading!
6. Apa yang di maksud penjadwalan CPU?
7. Sebutkan kriteria penjadwalan yang optimal!
8. Apa yang di maksud SJF dan berikan contoh algoritmanya?
9. Sebutkan jenis penjadwalan!
10. Definisikan perbedaan antara penjadwalan secara preemptive dan non preemptive!
Jawaban :
1. Thread adalah prinsip yang
memperbolehkan sebagian dari program untuk berjalan secara independen dengan
sebagian program lainnya.
2. Model one to one: memetakan setiap user
thread ke dalam satu kernel thread. Berakhir.
- Setiap user-level thread dipetakan ke
kernel thread.
- Contoh : Windows 95/98/NT/2000
Model many to many: mengizinkan pengembang untuk
membuat user thread sebanyak mungkin,
konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan
oleh kernel dalam satu waktu.
- Membolehkan setiap user-level thread
dipetakan ke banyak kernel thread
- Membolehkan sistem operasi membuat
sejumlah kernel thread
- Contoh : Windows NT/2000 dengan paket
ThreadFiber 10, Solaris 2
3. Terdapat dua jenis thread, yaitu: Single
thread dan multi thread.
a). Single thread merupakan process hanya
mengeksekusi satu thread saja pada satu waktu
b).Multi thread merupakan process dapat
mengeksekusi sejumlah thread dalam satu waktu
4. Kernel Level Thread dapat dikatakan
lebih baik dari User Level Thread adalah thread diatur oleh kernel, karena itu
jika sebuah thread menjalankan blocking system call maka kernel dapat
menjadualkan thread lain di aplikasi untuk melakukan eksekusi. Kemudian pada
lingkungan multiprocessor, kernel dapat menjadual thread-thread pada processor
yang berbeda.
5.Keuntungan dari sistem yang menerapkan
multithreading dapat kita kategorikan menjadi 4
bagian:
a. Responsif. Aplikasi interaktif menjadi
tetap responsif meskipun sebagian dari program sedang
diblok atau melakukan operasi lain yang
panjang.
b. Berbagi sumber daya. Beberapa thread
yang melakukan proses yang sama akan berbagi
sumber daya.
c. Ekonomis. Pembuatan sebuah proses
memerlukan pengalokasian memori dan sumber daya.
d. Utilisasi arsitektur multiprosesor.
Keuntungan dari multithreading dapat sangat meningkat
pada arsitektur multiprosesor, dimana
setiap thread dapat berjalan secara paralel di atas
procesor yang berbeda.
Adapun kerugian dari multithreading adalah
:
1. Jika digunakan secara berlebihan, multithreading
akan berdampak pada pemborosan
2. Sistem yang memiliki kecepatan prosesor
dan memory yang cenderung sama, sehingga tidak
ada efisiensi yang hilang (mengacu kepada
latency), tidak akan memperoleh peningkatan
bandwidth yang signifikan jika menggunakan
multithreading.
3. Multithreading menghasilkan program yang
lebih kompleks. Menggunakan multiple thread
sendiri tidak akan menciptakan kerumitan,
tapi interaksi antar thread-lah yang mengakibatkan
kompleksitas tersebut.
4. Thread yang banyak bisa saling
berinterferensi ketika saling berbagi sumber daya hardware
seperti cache.
6. Penjadwalan CPU adalah pemilihan proses
dari antrian ready untuk dapat dieksekusi. Penjadwalan CPU merupakan konsep
dari multiprogramming, dimana CPU digunakan secara bergantian untuk proses yang
berbeda. Suatu proses terdiri dari dua siklus yaitu Burst I/O dan Burst CPU
yang dilakukan bergantian hingga proses selesai.
7. Kriteria yang digunakan untuk
membandingkan algoritma-algoritma penjadwalan adalah sebagai berikut:
a) CPU utilization, Sebaiknya CPU bekerja
sesibuk mungkin.
b) Throughput adalah banyaknya proses yang
selesai dieksekusi per satuan waktu. Semakin banyak throughput, semakin baik.
c) Turnaround time adalah waktu yang
dibutuhkan untuk mengeksekusi suatu proses. Semakin kecil turnaround time,
semakin baik.
d) Waiting time adalah waktu yang
dibutuhkan suatu proses selama menunggu di ready queue. Semakin kecil waiting
time, semakin baik.
e) Response time adalah waktu yang
dibutuhkan sejak suatu proses datang me-request sampai proses itu menerima
response pertama. Semakin kecil response time, semakin baik.
8. SJF (Shortest - Job - First) adalah
Penggabungan setiap proses merupakan panjang dari brust CPU berikutnya. Panjang
tersebut digunakan untuk penjadwalan proses pada waktu terpendek.
9. 3 Tipe Penjadwalan CPU
1) Penjadwalan Jangka Pendek (Short Term
Scheduller)
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.
2) Penjadwalan Jangka Menengah (Medium Term
Scheduller)
Proses dipindah dari memori utama ke memori
sekunder agar tersedia ruang untuk proses-proses lain. Kapasitas memori utama
terbatas untuk sejumlah proses aktif. Aktivitas pemindahan proses yang tertunda
dari memori utama ke memori sekunder disebut swapping
3) Penjadwalan Jangka Panjang (Long Term
Scheduller)
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, masukan/keluaran),
program-program ini berprioritas rendah, digunakan sebagai pengisi (agar
pemroses sibuk) selama periode aktivitas job-job interaktif rendah.
10. 1) Penjadwalan Preemptive mempunyai arti
kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang
berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi.
Penjadwalan ini bisa saja termasuk penjadwalan proses atau I/O. Penjadwalan
Preemptive memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses
mendapat sebuah slice waktu operasi. Dan juga membuat sistem lebih cepat
merespon terhadap event dari luar (contohnya seperti ada data yang masuk) yang
membutuhkan reaksi cepat dari satu atau beberapa proses.
2) Penjadwalan Non Preemptive ialah salah
satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context
switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain,
proses yang sedang berjalan tidak bisa di- interupt.