"Kumpulan Materi Kuliah [2009080 Deden Wahiddin]"

Selasa, 08 November 2011

HYPER-THREADING & DISPATCHING ALGORITHM

1. TEKNOLOGI HYPER THREADING

Teknologi Hyper-Threading adalah teknik yang memungkinkan sebuah CPU tunggal dapat bertindak seperti beberapa CPU. Sebuah CPU (single thread) terdiri dari banyak komponen kecil. Pada saat menjalankan proses, beberapa komponen mungkin sibuk memproses instruksi, sedangkan komponen lainnya sedang menuggu untuk dimanfaatkan. Sehingga hal ini mengakibatkan CPU bekerja tidak maksimal.

Hyper-threading memungkinkan bagian-bagian yang berbeda dari CPU untuk bekerja pada tugas yang berbeda secara bersamaan. Dengan cara ini, sebuah komputer dengan CPU Hyper-Threading tampaknya lebih dari satu CPU.

Sebuah CPU dengan Hyper-Threading memiliki dua set sirkuit yang melacak keadaan CPU. Sirkuit ini mencakup sebagian besar register dan petunjuk instruksi. Sirkuit ini berfungsi sebagai fasilitas penyimpanan sementara untuk melacak dimana CPU saat ini bekerja. Bagian dari CPU yang tidak direpleksi adalah L1 dan L2 cache. Hyper-Threading meduplikat sekitar 5% sirkuit dari CPU. Tergantung pada aplikasi perangkat lunak yang digunakan, Hyper-Threading dapat meningkatkan performa hingga enam kali lipat.

Perangkat Lunak Yang Mendukung
Manfaat kinerja Hyper-Threading  hanya dapat dijalankan dengan menggunakan sistem operasi yang mendukung beberapa CPU. Pada sistem operasi, Hyper-Threading akan terlihat seperti dua CPU. Sistem operasi yang mendukung Hyper-Threading diantaranya Microsoft Windows NT 4.0, Microsoft Windows 2000, Microsoft XP Profesional, dan sebagian besar varian Unix.

Cara Kerja Teknologi Hyper-Threading
Pada saat CPU (tanpa Hyper-Threading) memproses instruksi, hanya sekitar 35% unit CPU saja yang terpakai. Sisanya menganggur dan menunggu instruksi sebelumnya selesai. Hal ini disebabakan karena 1 CPU, instruksi-instruksi dikirimkan dalam bentuk single thread. Sehingga instruksi-instruksi tersebut mengantri secara berurutan.
Sedangkan pada CPU Hyper-threading, urutan instruksi dikirim secara multithread (dalam 2 thread secara paralel/bersamaan), sehingga sebuah instruksi tidak harus mengantri dulu instuksi didepannya, tapi dapat langsung diproses oleh Execution Unit yang semula menganggur.

Perbandingan Dengan CPU biasa
Seberapapun besar GHz sebuah CPU, apabila Execution Unitnya sedang memproses instruksi yang belum selesai, maka CPU tersebut akan tetap terhambat untuk menerima instruksi berikutnya, ini karena instruksi harus mengantri berurutan pada jalur single-thread.
Oleh karena itu Tomshardware pernah menyatakan bahwa performa P4 3.06 GHz dengan HT sanggup mengalahkan P4 4GHz tanpa HT. Situasi seperti itu bisa saja terjadi terutama bila dalam pengujiannya Tomshardware menjalankan aplikasi secara bersamaan.
Untuk pemakaian sehari-hari kita seringkali menjalankan banyak aplikasi bersamaan, disaat itulah kita makin sadar bahwa 2 akan lebih baik dari 1. Petinju profesional sekalipun, tapi bila hanya memiliki 1 tangan, maka akan dengan mudah dikalahkan oleh tukang becak yang mempunyai 2 tangan.


OK, diatas sudah dijelaskan secara umum tentang Hyper-Threading itu apa??? Sekarang kita ulas lebih dalam lagi si Hyper-Threading ini...

Teknologi Hyper-Threading (HT) adalah sebuah teknologi yang dikembangkan oleh Intel agar dapat meningkatkan kinerja prosesor, dengan cara memberikan instruksi melalui software untuk membelah diri (spliting) menjadi beberapa aliran (thread). Teknologi Hyper-Threading menyediakan thread-level secara paralel pada setiap processor, sehingga penggunaan sumber daya processor menjadi lebih efisien, memungkinkan beberapa thread untuk berjalan pada setiap inti (core). Teknologi Hyper-Threading dapat dapat diaktifakn melalui kombinasi antara :
  • Processor Intel® dan chipset yang mendukung Teknologi Hyper-threading
  • Sistem Operasi (OS) untuk optimalisasi Teknologi Hyper-Threading
  • BIOS (Basic Input Output System) yang support Teknologi Hyper-Threading

Dengan aktifnya Teknologi Hyper-Threading pada processor maka sebuah komputer akan mampu :
  • Menjalankan aplikasi berat secara bersamaan dengan tetap mempertahankan respon sistem
  • Menjaga sistem lebih aman, efisien dan meminimalkan dampak terhadap produktivitas
  • Mengaktifkan grafis menjadi lebih baik, sehingga penggemar multi media dapat  membuat, mengedit, menjalakan encoding file grafis, pada saat yang sama komputer juga menjalankan aplikasi dibelakang layar seperti program anti virus tanpa mengorbankan kinerja sistem

Teknologi Hyper-Threading jika digabungkan dengan Teknologi Intel® Turbo Boost ataupun Intel® Turbo Boost 2.0 memungkinkan processor untuk mengolah data secara simultan pada beberapa thread, menyesuaikan beban kerja dan secara otomatis akan mematikan core yang tidak aktif, serta processor akan meningkatkan frekuensi pada core yang sibuk untuk menambah kinerja lebih besar.

Perlu diketahui bahwa fungsi Hyper-Treading ini bisa bekerja optimal bila didukung oleh sistem operasi yang sesuai, misalnya wnidows XP, selain bergantung pada dukungan sistem operasi, juga bergantung pada :
  • Dukungan Chipset yang digunakan pada motherboard
  • Dukungan BIOS untuk mengatur aktif tidaknya fungsi HT dari BIOS
  • Dukungan Aplikasi software yang digunakan

Teknologi Hyper-Threading adalah teknologi Eksklusif milik Intel, tidak dimiliki oleh processor-processor yang bukan produksi Intel.


2. DISPATCHING ALGORITHM
Dispatching adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short term scheduling. Fungsi-fungsi yang terkandung didalamnya meliputi :
  • Switching Context
  • Switching ke User Mode
  • 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.

Beberapa algoritma penjadwalan CPU dispatching :
  • First-Come First-Served Scheduling (FCFS)
  • Shortest Job First Scheduler (SJF)
  • Priority Scheduling
  • Round-Robin Scheduling



3. SISTEM OPERASI YANG MENDUKUNG TEKNOLOGI HYPERTHREADING

Pengelompokan ke dalam Multi Threading :
  • one-to-one Model           : Windows NT/XP/2000, solaris 9
  • many-to-many Model  : Windows NT/2000, IRIX, Digital UNIX dan Solaris
  • two-level Model              : IRIX, HP-UX, Tru64, UNIX, Solaris 8

Selasa, 01 November 2011

12 Pertanyaan 12 jawaban Seputar Sistem Operasi

1.Sebutkan 5 aktivitas sistem operasi yang merupakan contoh dari suatu manajemen proses!

a.       Membuat dan menghapus proses pengguna dan sistem operasi
Sistem Operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.

b.      Menunda atau melanjutkan proses
Sistem Operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan prioritas dari proses-proses yang ada. Apabila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.

c.       Menyediakan mekanisme untuk proses sinkronisasi
Sistem Operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar.

d.      Menyediakan mekanisme untuk proses komunikasi
Sistem Operasi menyediakan  mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagai sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lain.

e.      Menyediakan mekanisme untuk penanganan deadlock
Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock(kebuntuan). Sistem Operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deaadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.


2.Definisikan perbedaan antara penjadwalan short term, medium term, dan long term
a.       Penjadwalan Short term
  • Penjadwalan short term digunakan untuk memilih diantara proses-proses yang siap dieksekusi dan salah satunya dialokasikan ke CPU
  • Penjadwalan Short term sering digunakan untuk memilih proses baru untuk CPU. Proses dieksekusi hanya beberapa milidetik sebelum menunggu I/O
  • Karena durasi yang pendek antara eksekusi,penjadwalan short term harus sangat cepat
  • Pada system time sharing , setiap proses baru ditempatkan di memory. Penjadwalan short term digunakan untuk memilih dari proses-proses tersebut di memori untuk dieksekusi
b.      Penjadwalan Medium term
  • Beberapa OS seperti system sharing, membutuhkan penjadwalan level tambahan (intermediate), yang disebut “medium term scheduler”
  • Memperkenalkan konsep swapping proses : proses di “swap out” dan di “swap in” pada medium term scheduler
  • Swapping diperlukan untuk meningkatkan “process mix” atau karena perubahan pada kebutuhan memori melebihi mempr yang tersedia, memory perlu dibebaskan
  • Kadang kala akan menguntungkan untuk memindahkan proses dari memori (dan dari pengisian aktif dari CPU), makan untuk mengurangi derajat dari multiprograming. Kemudian proses dapat diperkenalkan kedalam memory dan eksekusinya dapat dilanjutkan dimana proses itu ditinggalkan / diangkat
c.       Penjadwalan Long term
  • Proses-proses pada system batch di spool ke mass storage device (disk), disimpan sebagai eksekusi selanjutnya
  • Penjadwalan Long term  digunakan untuk memilih proses dari pool dan menyimpannya ke memori
  • Penjadwalan long term tidak sering mengeksekusi, digunakan hanya jika proses meniggalkan system
  • Karena antar eksekusi terjadi interval yang panjang, penjadwalan long term mempunyai waktu lebih banyak untuk memutuskan proses mana yang dipilih untuk dieksekusi
  • Penjadwalan long term memilih dengan baik “process mix” antara I/O bound dan CPU bound
  • Pada beberapa system, penjadwalan long term tidak digunakan ( misalnya pada time sharing system)


3.Jelaskan tindakan yang diambil oleh kernel ketika alih konteks antar proses
Ketika alih konteks terjadi, kernel menyimpan konteks dari proses lama ke dalam PCBnya dan mengisi konteks yang telah disimpan dari process baru yang telah terjadwal untuk berjalan. Pergantian waktu konteks adalah murni overhead, karena sistem melakukan pekerjaan yang tidak perlu. Kecepatannya bervariasi dari mesin ke mesin, bergantung pada kecepatan memori, jumlah register yang harus dicopy, dan keberadaan instruksi khusus.


4.Informasi apa saja yang disimpan pada tabel saat alih konteks dari satu proses ke proses yang lain
  • proses di Blok untuk melayani input karena sumber daya yang diminta belum tersedia/meminta layanan I/O sehingga menunggu kejadian muncul
  • penjadwalan mengambil proses lain
  • penjadwalan mengambil proses baru
  • input telah tersedia

5.Di sistem UNIX terdapat banyak status proses yang dapat timbul (transisi) akibat event (eksternal) OS dan proses tersebut itu sendiri. Transisi state apa sajakah yang dapat ditimbulkan oleh proses itu sendiri, sebutkan!
  •  New : Proses sedang dikerjakan / dibuat
  • Running : Instruksi sedang dikerjakan
  • Waiting : Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/signal
  • Ready : Proses sedang menunggu untuk ditugaskan pada sebuah prosesor
  • Terminated : Proses telah selesai melaksanakan tugasnya/mengekseskusi

6.Apa keuntungan dan kekurangan dari
o   Automatic dan Explisit buffering
o   Komunikasi Simetrik dan Asimetrik
o   Send by copy dan send by reference
o   Fixed size dan variable sized message

  • Automatic membuat pemrograman lebih mudah, tapi sebuah sistem sulit untuk membangun
  • Komunikasi simetrik adalah  proses komunikasi karena kedua belah pihak memerlukan nama proses lain. Hal ini membuat sulit untuk membangun sebuah server
  • Send By Copy lebih baik bagi generalisasi dan masalah sinkronisasi, sedangkan Send By reference yang lebih efisien untuk besar struktur data, tetapi sulit kode karena memori bersama implikasi
  • Varibel ukuran  membuat pemrograman lebih mudah, tapi sistem lebih sulit untuk membangun

7.Jelaskan perbedaan short term, medium term, dan long term
a.   Short term : yaitu jangka scheduler yang pendek atau CPU scheduler yang memilih antara proses-proses yang sudah siap untuk mengalokasikan dengan CPU untuk salah satu diantaranya. Dalam suatu perpindahan antar proses dapat melibatkan penyimpanan konteks dari proses yang sebelumnya dan proses berikutnya.
b.    Medium term : dalam scheduler ini, dengan mengontrol suatu derajat multi program, dan dalam time-sharing harus membutuhkan penjadwalan dengan level tambahan.
c.   Long term : Dalam scheduler jangka panjang, memilih suatu proses dan beban kedalam suatu memory untuk mengeksekusi.


8.Jelaskan apa yang akan dilakukan oleh kernel kepada alih konteks ketika proses sedang berlangsung
Pada saat alih konteks ketika proses sedang berlangsung, kernel menyimpan konteks dari proses lama ke dalam PCBnya dan mengisi konteks yang telah disimpan dari process baru yang telah terjadwal untuk berjalan.


9.Beberapa single-user mikrokomputer sistem operasi seperti MS-DOS menyediakan sedikit atau tidak sama sekali arti dari pemrosesan yang konkuren. Diskusikan dampak yang paling mungkin ketika pemrosesan yang konkuren dimasukan kedalam suatu sistem operasi.
Dampak yang paling mungkin terjadi adalah Data file ada yang corrupt , dan akan terjadi hank atau error


10.Perlihatkan semua kemungkinan keadaan dimana suatu proses dapat bejalan, dan gambarkan diagram transisi keadaan yang menjelaskan bagaimana proses bergerak diantara state

3 state dalam proses yaitu  :
Running               : pemroses sedang mengeksekusi instruksi proses itu
Ready                  : proses siap (ready) dieksekusi tapi pemroses mengeksekusi proses ini
Blocked               : proses menuggu kejadian tertentu selesai
Suspended Ready
Suspended Blocked

Diagram Transisi :

11.Apakah suatu proses memberikan ‘issue’ ke suatu disk I/o ketika proses tersebut dalam ‘ready’ state, jelaskan !
Ya, karena issue menyampaikan informasi ke dalam state


12. Kernel menjaga suatu rekaman untuk setiap proses , disebut Proses Control Blocks (PCB). Ketika suatu proses sedang tidak berjalan, PCB berisi informasi tentang perlunya melakukan restart suatu proses dalam CPU. Jelaskan dua informasi yang harus dipunyai PCB
PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk dibawah ini  :

a.      Keadaan proses : keadaan mungkin, new, ready, running, waiting, halted
b.   Program Counter : Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk proses ini
c.     CPU Register : Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.
d.    Informasi managemen memori : Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register
e.      Informasi Pencatatan : Informasi ini termasuk jumlah job atau proses
f.      Informasi status I/O : Informasi termasuk daftar dari perangkat I/O yang digunakan pada proses ini.