Thread Dalam Sistem Operasi

Thread
Single & Multithreaded Processes
Proses dengan thread tunggal – proses menjalankan satu kiprah pada satu waktu 
Sistem operasi modern – multithread – proses menjalankan banyak tugas/thread pada satu waktu. Contoh : secara bersamaan mengetik dan menjalankan investigasi ejaan di dalam proses yang sama

  • Multithread pada satu prosesor – dijalankan bergantian dengan waktu yang sangat cepat sehingga tampak bersamaan.
  • Multithread pada multi prosesor – benar-benar dijalankan secara bersamaan.
  • Hyper threading (HT) – teknologi simultan multithreading oleh Intel menjalankan banyak thread secara bantu-membantu pada tiap inti prosesor, sistem operasi mengalamatkan 2 virtual prosesor OS harus mendukung pemrosesan multiprosesor.

Suatu Thread (atau lightweight process disingkat LWP) berisi :
-Thread ID
-Program counter
-Register set
-Stack space

Suatu Thread bersama thread-thread lainnya sanggup membuatkan :
-Code section
-Data section
-Operating system resources

Perbedaan Thread Dengan Proses

Thread yaitu bab dari suatu proses, tiap proses mempunyai warta status dan sumber daya sendiri, thread membuatkan warta status dan sumber daya  dengan thread yang lain dalam satu proses, tiap proses mempunyai alamat yang berbeda, sedangkan thread membuatkan alamat yang sama. Pergantian antar threads lebih cepat daripada antar proses 

Contoh Multithreading

-Web Browser : mempunyai satu thread untuk display image, dan thread yang lain untuk mengambil data dari network.

-Web Server : mendapatkan request dari client untuk halaman web, image, sound, dll. Web server melayani client secara bersamaan (concurrent).

Keuntungan Multithreading

1. Responsif 
Multithreading memungkinkan suatu kegiatan running walaupun sebagian kegiatan di-block atau menjalankan operasi yang lain. 

2. Resource Sharing
Thread dalam suatu proses yang sama sanggup men-share memori dan resource dengan thread yang lain. Mengijinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama

3. Ekonomis
Alokasi memori dan resource untuk pembuatan proses mempunyai cost yang mahal. Dalam hal context-switch, lebih hemat jika dilakukan dengan thread context-switch.

4. Utilisasi CPU
Meningkatkan kinerja pada arsitektur multiprocessor, dimana thread running secara paralel pada prosesor yang berbeda.

User Threads

Implementasi thread di level pengguna (dengan memakai pustaka/library thread).
Pustaka menyediakan akomodasi untuk pembuatan thread, penjadwalan thread, dan administrasi thread tanpa pinjaman dari kernel.

-Keuntungan : Dapat lebih cepat dibentuk dan dikendalikan alasannya tanpa campur tangan kernel

-Kelemahan : salah 1 thread pengguna menjalankan blocking system call maka menyebabkan seluruh proses diblok

Kernel Threads

Didukung pribadi oleh sistem operasi. Pembuatan, penjadwalan, dan administrasi thread dilakukan oleh kernel pada kernel space
-Keuntungan : 
Jika thread menjalankan blocking system call kernel dpt menjalankan thread lain di aplikasi untuk melaksanakan eksekusi. Pada lingkungan multiprosesor, kernel sanggup menjadwal thread-thread pada prosesor yang berbeda
-Kelemahan : 
Lebih lambat daripada user kernel

Model-model Multithreading

a. Many-to-One
b. One-to-One
c. Many-to-Many

a. Many-to-One (User level Threading)
Many to One Model
Memetakan beberapa user thread ke satu kernel thread. Hanya 1 thread pengguna yang sanggup mengakses thread kernel pada satu dikala = Multi thread tidak sanggup berjalan secara paralel pada multiprosesor

b. One-to-One
One to One Model
Masing-masing user-level thread dipetakan ke kernel thread
Keuntungan : laba thread kernel
Kelemahan : setiap pembuatan user thread memerlukan jg pembuatan kernel thread sehingga sanggup menurunkan kinerja aplikasi = jumlah thread dibatasi oleh sistem

c. Many-to-Many
Many to Many Model
Memungkinkan banyak user-level thread dipetakan ke banyak kernel thread. Memungkinkan sistem operasi menciptakan jumlah kernel thread yang mencukupi.
Keuntungan : sanggup berjalan pada multiprosesor

Cancellation

Pemberhentian thread sebelum tugasnya selesai. Target thread : thread yang akan diberhentikan sanggup terjadi melalui dua cara :
-Asynchronous Cancellation :  suatu thread seketika itu juga memberhentikan sasaran thread.
-Deferred Cancellation : sasaran thread menyelidiki apakah beliau harus berhenti, cara ini memperbolehkan sasaran thread untuk memberhentikan dirinya sendiri secara terurut.

Penanganan Sinyal

Sinyal dimunculkan oleh suatu kejadian, sinyal tersebut dikirim ke proses, kemudian ditangani. Sinyal diterima secara synchronous / asynchronous tergantung dari sumber dan alasan kenapa bencana itu memberi sinyal 
Contoh synchronous : Pembagian dengan nol, sinyal dikirim ke proses yg melaksanakan operasi tsb
Contoh asynchronous : Sinyal untuk mematikan proses dengan keyboard (Alt+F4)
Dimunculkan oleh bencana di luar proses yang sedang berjalan

Thread Pools

Masalah multithreading : pembuatan thread terlalu banyak menurunkan performa sistem. Solusi : menciptakan sejumlah thread pada dikala startup dan menempatkannya ke dalam pool. Ketika server mendapatkan request, thread dipanggil. Jika selesai, thread kembali ke pool. Keuntungan : lebih cepat dan membatasi jumlah thread yang ada pada suatu waktu 

Thread specific data

Thread yang dimiliki oleh suatu proses memang membuatkan data tetapi setiap thread mungkin membutuhkan duplikat dari data tertentu untuk dirinya sendiri dalam keadaan tertentu. Data ini disebut thread-specific data.

Belum ada Komentar untuk "Thread Dalam Sistem Operasi"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel