1. Thread dalam sistem operasi dapat
diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan
(dieksekusi) secara sejajar 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
dilaksanakan oleh CPU yang berbeda dalam satu sistem).
2. Perbedaan proses Thread tunggal (Single Thread) dengan Thread banyak (Multi Thread) yaitu single thread hanya dapat mengeksekusi satu thread pada satu waktu, sedangkan multi thread dapat mengeksekusi sejumlah thread dalam satu waktu.
2. Perbedaan proses Thread tunggal (Single Thread) dengan Thread banyak (Multi Thread) yaitu single thread hanya dapat mengeksekusi satu thread pada satu waktu, sedangkan multi thread dapat mengeksekusi sejumlah thread dalam satu waktu.
3. Thread terdiri dari 2 macam, yaitu :
Single Thread dan Multi Thread.
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 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 Multi-Threading
- Responsive; tanggap:
Multi-Threading mengizinkan program untuk berjalan terus walau-pun pada
bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi
yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan
pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload
oleh thread yang lain.
- Pembagian sumber daya: Secara
default, thread membagi memori dan sumber daya dari proses. Ketika
thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
- Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat
proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya
dari proses, ini lebih ekonomis untuk membuat threads.
- Pemberdayaan arsitektur multiprosesor: Keuntungan dari
multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, dimana
setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada
arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread
dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya
hanya satu thread yang berjalan di setiap waktu.
Kerugian Multi-Threading
- Multiple thread bisa
mengganggu satu sama lain saat berbagi hardware resource, misalnya chace
memory.
- Execution time (waktu
proses) dari sebuah single-thread tidak dapat diimprove (ditambah), tapi malah
bisa diturunkan. Ini terjadi karena penurunan frequensi yang dibutuhkan ketika
terjadi pergantian thread yang berjalan.
- Harus ada dukungan dari
hardware ataupun software untuk melakukan multi-Threading.
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.
7.
. Kriteria penjadualan CPU yang optimal, diantaranya :
- Memaksimumkan utilisasi CPU
- Memaksimumkan throughput
- Meminimumkan turnaround time
- Meminimumkan waiting time
- Meminimumkan response time
8.
SJF (Shortest - Job - First) adalah Penggabungan
setiap proses merupakan panjang dari brust CPU berikutnya. Panjang tersebut
digunakan untuk penjadwalan proses pada waktu terpendek.
Contoh algoritmanya
:
Ada 4 buah proses yang datang berurutan
yaitu P1 dengan arrival time pada 0.0 ms dan burst time 7 ms, P2 dengan arrival
time pada 2.0 ms dan burst time 4 ms, P3 dengan arrival time pada 4.0 ms dan
burst time 1 ms, P4 dengan arrival time pada 5.0 ms dan burst time 4 ms.
Hitunglah waiting time rata-rata dan turnaround time dari keempat proses
tersebut dengan mengunakan algoritma SJF.
Average waiting time rata-rata untuk ketiga proses tersebut adalah
sebesar (0 +6+3+7)/4=4 ms.
Average waiting time rata-rata untuk ketiga prses tersebut adalah sebesar
(9+1+0+2)/4=3 ms.
9.
Jenis-jenis penjadwalan, yaitu :
- Non-preemptive, algoritma didesain agar setelah proses yang sedang
berjalan memasuki negara (adalah proses diperbolehkan), tidak dihapus dari
prosesor sampai selesai dengan waktu layanan (secara eksplisit atau hasil
prosesor).
- Preemptive mempunyai arti kemampuan sistem operasi
untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang
kepada proses yang prioritasnya lebih tinggi.
10. Penjadwalan non
preemptive terjadi jika proses sedang menggunakan CPU proses tersebut akan
membawa CPU sampai proses tersebut melepaskannya (berhenti dalam keadaan wait).
Dapat dikatakan bahwa nonpreemptive ini merupakan proses yang hanya dapat
melakukan prosessekali run saja Kemudian diselesaikan sampai akhir proses
tersebut tanpa ada proses yang menyela proses ini. Sedangkan penjadwalan
preemptive terjadi 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 nonpreemptive tadi, yakni saat proses
ini bekerja maka proses dapat diserap oleh proses lain sehingga proses ini akan
kembali diproses setelah CPU menyelesaikan proses yang menyela tadi.
Tidak ada komentar:
Posting Komentar