Quiz
1.
Apa yang di maksud dengan thread?
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.
Tread dapat diartikan sebagai sekumpulan perintah (instruktur
yang dapat dilaksanakan (dieksekusi) secara dengan ulir lainnya, dengan
menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu
ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksakan
oleh CPU yang berbeda dalam satu sistem).
2.
Perbedaan antara proses dengan thread tunggal dengan proses
dengan thread yang banyak adalah proses dengan thread yang banyak dapat
mengerjakan lebih dari satu tugas pada satu satuan waktu.
3.
Macam-macam thread :
·
Singel threading
proses hanya mengeksekusi satu thread dalam satu waktu.
·
Multi-threading : proses dapat mengeksekusi sejumlah thread
dalam satu waktu.
4.
Karena pengaturan thread dilakukan oleh sistem operasi maka
pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread. Maka
Kernel Level Thread dapat dikatakan lebih baik dari User Level Thread adalah
thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking
sistem call maka kernel dapat menjadwalkan thread lain di aplikasi untuk
melakukan eksekusi.
5.
Keuntungannya :
·
Responsi
·
Berbagi sumber daya
·
Ekonomi
·
Utilisasi arsitektur multirocessor
Kerugiannya :
·
Jika
digunakan secara berlebihan, multithreading akan berdampak pada pemborosan resource dan CPU yang dialokasikan
untuk switching threads. Misalnya jika heavy disk I/O terlibat, akan lebih cepat
jika hanya memiliki 1 atau 2 thread yang melaksanakan tugas secara berurutan,
daripada menggunakan multithread yang masing-masing mengeksekusi sebuah task
pada waktu yang sama.
·
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.
·
Multithreading
menghasilkan program yang lebih kompleks. Menggunakan multiple thread sendiri
tidak akan menciptakan kerumitan, tapi interaksi antar thread-lah yang
mengakibatkan kompleksitas tersebut.
·
Thread
yang banyak bisa saling berinterferensi ketika saling berbagi sumber daya
hardware seperti cache.
6.
Penjadwalan CPU adalah pemilihan proses dari Ready Queue
untuk dapat dieksekusi. Penjadwalan CPU didasarkan pada sistem operasi yang
menggunakan prinsip Multiprogramming.
7.
Kriteria penjadualan yang optimal
·
Memaksimuman utilitas CPU
·
Memaksimumkan throughput
·
Meminimumkan turnaround time
·
meminimumkan waiting
time
·
Meminimumkan response time
8.
SJF merupakan proses penjadwalan yang ada di ready queue dan akan dieksekusi berdasarkan burst time terkecil. Hal ini mengakibatkan waiting time yang pendek untuk setiap proses. Karena hal tersebut,
maka waiting time rata-ratanya
juga menjadi pendek, sehingga dapat dikatakan bahwa algoritma ini adalah
algoritma yang optimal.
9.
Jenis penjadwalan :
·
Preemptive: OS dapat mengambil (secara
interrupt, preempt) CPU dari satu proses setiap saat.
·
Non-preemptive: setiap proses secara
sukarela (berkala) memberikan CPU ke OS.
·
Modul Dispatcher: mengatur dan
memberikan control CPU kepada proses yang dipilih oleh “short-term scheduler”.
·
Dispatch latency – terdapat waktu yang
terbuang (CPU idle) dimana dispatcher menghentikan satu proses dan menjalankan
proses lain.
10.
Perbedaan penjadwalan preemtive dan Penjadwalan
non preemtive :
·
Penjadwalan preemtive adalah
Pada saat
proses sedang menggunakan CPU, CPU dapat diambil alih oleh proses lain.Dalam
hal ini harus selalu dilakukan perbaikan data. Proses ini adalah kebalikan dari
proses Non-preemptive tadi yakni saat proses ini bekerja, maka proses dapat
disela oleh proses lain sehingga prose ini akan kembali di proses setelah CPU
menyelesaikan proses yang menyela tadi
·
Penjadwalan non preemtive
adalah Jika proses
sedang menggunakan CPU, proses tersebut akan membawa CPU sampai proses tersebut
melepaskannya (berhenti dalam keadaan wait). Dapat dikatakan bahwa
Non-Preemptive ini merupakan proses yang hanya dapat melakukan proses sekali
run saja kemudian diselesaikan sampai akhir proses tersebut tanpa ada proses
yang menyela proses ini.
No comments:
Post a Comment