Minggu, 15 Maret 2020

THREAD DAN PENJADWALAN CPU




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.


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