Jumat, 13 Januari 2012

"Hyperthreading & Dispaching Algorthm"

Definisi Teknologi Hyperthreading
                                                                                                                                                                  Adalah bentuk revolusi teknologi yang lebih maju yang memiliki teknologi simultaneous multithreading (SMT) yang telah di terapkan kepada beberapa varian seperti pentium 4, dual core, core to 2, dan prosesor yang diatasnya lagi.
Teknologi dispatching algorithm memiliki kegunaan dengan Teknologi ini mendukung beberapa prosesor di antaranya sebagai Windows NT, Windows 2000, Windows XP Professional, Windows Vista, dan GNU/Linux dua buah prosesor, namun dalam kenyataannya hanya satu prosesor. sehingga dengan cara ini proses sistem operasinya lebih cepat dan efisien, karena meskipun sistem operasi tersebut bersifat multitasking, sistem operasi tersebut melakukan eksekusi terhadap proses secara berurutan.
Beberapa sistem operasi yang menggunakan teknologi hyperthreading :

  • Windows NT/XP/2000, linux, solaris 9 dan later termasuk juga kedalam kelompok multhreading dengan model one-to-one.
  • IRIX, HP-UX, tru64, UNIX, solaris 8 and earlier termasuk kekelompok model multhreading dengan model many-to-one.
  • Windows NT/2000, IRIX, digital UNIX dan Solarispun termasuk kedalam model multhreading model many-to-many.
Sebuah prosesor yang mendukung teknologi Hyper-Threading membutuhkan beberapa komponen berikut ini:
  • Chipset motherboard yang mendukung teknologi Intel Hyper-Threading. Chipset yang dimaksud adalah Intel 845PE, Intel 865, Intel 875P, Intel 915, Intel 920, Intel 945, Intel 950, Intel 965, Intel 975.
  • BIOS yang mendukung teknologi Hyper-Threading.
  • Sistem operasi yang mendukung banyak prosesor seperti Windows 2000, Windows XP, serta GNU/Linux versi 2.4.18 ke atas. Pada sistem yang mendukung, sebagai contoh, Device Manager Windows XP akan menampilkan 2 buah prosesor dengan spesifikasi yang sama.

"Dishpaching Algoritm"

Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling.
Fungsi-fungsi yang terkandung di dalam-nya meliputi:
1. Switching context;
2. Switching ke user-mode;
3. Melompat ke lokasi tertentu pada user program untuk memulai program. Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai untuk menjalankan proses yang lainnya disebut dispatch latency.
Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti. Sehingga untuk memilih algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut. Ada beberapa kriteria yang digunakan untuk melakukan pembandingan algoritma penjadwalan CPU, antara lain:
1. CPU utilization. Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan         dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%.
2. Throughput. Adalah banyaknya proses yang selesai dikerjakan dalam satu satuan waktu.
3. Turnaround time. Banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai   menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU, dan mengerjakan I/O.
4. Waiting time. Waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O.
5. Response time. Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tersebut.
6. Fairness. Meyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu penggunaan CPU secara terbuka (fair).
Penjadwalan CPU menyangkut penentuan proses-proses yang ada dalam ready queue yang akan dialokasikan pada CPU. Terdapat beberapa algoritma penjadwalan CPU:

First-Come First-Served Scheduling (FCFS)
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan
dilayani terlebih dahulu. Pada skema ini, proses yang meminta CPU pertama kali akan
dialokasikan ke CPU pertama kali.
Misalnya terdapat tiga proses yang dapat dengan urutan P1, P2, dan P3 dengan
waktu CPU-burst dalam milidetik yang diberikan sebagai berikut :
Process    Burst Time
   P1              24
   P2              3
   P3              3
Gant Chart dengan penjadwalan FCFS adalah sebagai berikut :

Waktu tunggu untuk P1 adalah 0, P2 adalah 24 dan P3 adalah 27 sehingga rata-rata
waktu tunggu adalah (0 + 24 + 27)/3 = 17 milidetik. Sedangkan apabila proses datang
dengan urutan P2, P3, dan P1, hasil penjadwalan CPU dapat dilihat pada gant chart
berikut :

Waktu tunggu sekarang untuk P1 adalah 6, P2 adalah 0 dan P3 adalah 3 sehingga ratarata
waktu tunggu adalah (6 + 0 + 3)/3 = 3 milidetik. Rata-rata waktu tunggu kasus ini
jauh lebih baik dibandingkan dengan kasus sebelumnya. Pada penjadwalan CPU
dimungkinkan terjadi Convoy effect apabila proses yang pendek berada pada proses
yang panjang.
Algoritma FCFS termasuk non-preemptive. karena, sekali CPU dialokasikan
pada suatu proses, maka proses tersebut tetap akan memakai CPU sampai proses
tersebut melepaskannya, yaitu jika proses tersebut berhenti atau meminta I/O.

Shortest Job First Scheduler (SJF)
Pada penjadwalan SJF, proses yang memiliki CPU burst paling kecil dilayani
terlebih dahulu. Terdapat dua skema :
1. Non preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda
sampai CPU burst selesai.
2. Preemptive, jika proses baru datang dengan panjang CPU burst lebih pendek
dari sisa waktu proses yang saat itu sedang dieksekusi, proses ini ditunda dan
diganti dengan proses baru. Skema ini disebut dengan Shortest-Remaining-
Time-First (SRTF).
SJF adalah algoritma penjadwalan yang optimal dengan rata-rata waktu tunggu
yang minimal. Misalnya terdapat empat proses dengan panjang CPU burst dalam
milidetik

Penjadwalan proses dengan algoritma SJF (non-preemptive) dapat dilihat pada gant
chart berikut :

Waktu tunggu untuk P1 adalah 0, P2 adalah 26, P3 adalah 3 dan P4 adalah 7 sehingga
rata-rata waktu tunggu adalah (0 + 6 + 3 + 7)/4 = 4 milidetik. Sedangkan Penjadwalan
proses dengan algoritma SRTF (preemptive) dapat dilihat pada gant chart berikut :



Waktu tunggu untuk P1 adalah 9, P2 adalah 1, P3 adalah 0 dan P4 adalah 4 sehingga
rata-rata waktu tunggu adalah (9 + 1 + 0 + 4)/4 = 3 milidetik.

Priority Scheduling
Algoritma SJF adalah suatu kasus khusus dari penjadwalan berprioritas. Tiaptiap
proses dilengkapi dengan nomor prioritas (integer). CPU dialokasikan untuk proses
yang memiliki prioritas paling tinggi (nilai integer terkecil biasanya merupakan prioritas
terbesar). Jika beberapa proses memiliki prioritas yang sama, maka akan digunakan
algoritma FCFS. Penjadwalan berprioritas terdiri dari dua skema yaitu non preemptive
dan preemptive. Jika ada proses P1 yang datang pada saat P0 sedang berjalan, maka
akan dilihat prioritas P1. Seandainya prioritas P1 lebih besar dibanding dengan prioritas
P0, maka pada non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis
CPU burst-nya, dan meletakkan P1 pada posisi head queue. Sedangkan pada
preemptive, P0 akan dihentikan dulu, dan CPU ganti dialokasikan untuk P1.

Round-Robin Scheduling
Konsep dasar dari algoritma ini adalah dengan menggunakan time-sharing. Pada
dasarnya algoritma ini sama dengan FCFS, hanya saja bersifat preemptive. Setiap
proses mendapatkan waktu CPU yang disebut dengan waktu quantum (quantum time)
untuk membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses
ditunda dan ditambahkan pada ready queue.
Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan waktu
quantum, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja,
sehingga CPU dapat segera digunakan oleh proses selanjutnya. Sebaliknya, jika suatu
proses memiliki CPU burst yang lebih besar dibandingkan dengan waktu quantum,
maka proses tersebut akan dihentikan sementara jika sudah mencapai waktu quantum,
dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian
menjalankan proses berikutnya.
Jika terdapat n proses pada ready queue dan waktu quantum q, maka setiap
proses mendapatkan 1/n dari waktu CPU paling banyak q unit waktu pada sekali
penjadwalan CPU. Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu.
Performansi algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka
yang digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi context
switch.
Misalkan ada 3 proses: P1, P2, dan P3 yang meminta pelayanan CPU dengan quantum-time sebesar 4 milidetik.

Algoritma Round-Robin ini di satu sisi memiliki keuntungan, yaitu adanya keseragaman waktu, di sisi lain, algoritma ini akan terlalu sering melakukan switching. Semakin besar quantum-timenya maka switching yang terjadi akan semakin sedikit.

rata-rata waktu turnaround tidak meningkat bila waktu quantum dinaikkan.
Secara umum, rata-rata waktu turnaround dapat ditingkatkan jika banyak proses menyelesaikan CPU burst berikutnya sebagai satu waktu quantum. Sebagai contoh, terdapat tiga proses masing-masing 10 unit waktu dan waktu quantum 1 unit waktu, rata-rata waktu turnaround adalah 29. Jika waktu quantum 10, sebaliknya, rata-rata waktu turnaround turun menjadi 20.



Tidak ada komentar:

Posting Komentar