Anda di halaman 1dari 9

Rangkuman

THREAD

Disusun untuk memenuhi tugas

Mata Kuliah : SISTEM INFORMASI

Dosen Pengampu : WAHYUDIN HASYIM, M.Kom

Oleh:

1.SERDA A. LOLO

2.ADHAR RAHMAN

3.BAMBANG LENGKONG

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS SAIN DAN TEKNOLOGI
UNIVERSITAS MUHAMMADIYAH GORONTALO
2023/2024
RANGKUMAN MATERI TENTANG
SISTEM OPERASI THREAD

1. Pengertian Thread

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).
Ulir sebenarnya mirip dengan proses, tapi cara berbagi sumber daya antara proses
dengan ulir sangat berbeda. Multiplethread dapat dilaksanakan secara sejajar pada
sistem komputer. Secara umum multithreading melakukan time-slicing (sama dengan
time-division multipleks), di mana sebuah CPU bekerja pada ulir yang berbeda, di
mana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal
pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu.
Thread saling berbagi bagian program, bagian data dan sumber daya sistem
operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas
ID thread, program counter, himpunan register, dan stack. Dengan banyak kontrol
thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.

2. Model Multithread
Beberapa terminologi yang akan di bahas , yaitu
 User (pengguna) thread
User thread didukung di atas kernel dan diimplementasi oleh thread library pada
user level. Library menyediakan fasilitas untuk pembuatan thread, penjadualan
thread, dan managemen thread tanpa dukungan dari kernel.
Adapun kelemahannya yang dialami yaitu apabila kernelnya merupakan thread
tunggal maka apabila salah satu user-level thread menjalankan blocking system
call maka akan mengakibatkan seluruh proses diblok walau pun ada thread lain
yang dapat jalan dalam aplikasi tersebut
 Kernel tread
Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadualan,
dan managemen thread dilakukan oleh kernel pada kernel space. Pembuatan dan
pengaturan kernel thread lebih lambat dibandingkan user thread.
Keuntungannya adalah jika sebuah thread menjalankan blocking system call maka
kernel dapat menjadualkan thread lain di aplikasi untuk melakukan eksekusi. Pada
lingkungan multiprocessor, kernel dapat menjadual thread-thread pada processor
yang berbeda.
Contoh sistem operasi yang mendukung kernel thread adalah Windows NT,
Solaris, Digital UNIX.
a. Berdasarkan Pemetaan Thread
Model multithreading berdasarkan dengan pemetaan dibedakan menjadi tiga
bagian, yaitu:
1) Many to One
Model ini memetakan beberapa thread tingkatan user ke sebuah thread
tingkatan kernel. Pengaturan thread dilakukan dalam ruang user
sehingga efisien. Hanya satu thread user yang dapat mengakses thread
kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel
pada multiprosesor. Contoh dari many to one adalah Solaris Green Threads
dan GNU Portable Threads. Model Many to One ditunjukkan pada gambar
2.3.

Gambar 2.3. Many to One

2) One to One
Model ini memetakan setiap thread tingkatan user ke setiap thread. One to
One menyediakan lebih banyak concurrency dibandingkan model Many to
One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan
model ini ialah setiap pembuatan thread user memerlukan tambahan thread
kernel. Karena itu, jika mengimplementasikan sistem ini maka akan
menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread
dibatasi dalam sistem. Adapun contoh dari one to one, yaitu Windows
NT/XP/2000, Linux, Solaris 9. Gambar 2.4. menunjukkan model One to One.

Gambar 2.4. One to One


3) Many to Many
Model ini memultipleks banyak thread tingkatan user ke thread kernel yang
jumlahnya sedikit atau sama dengan tingkatan user. Model ini mengizinkan
developer membuat thread sebanyak yang developer inginkan tetapi
concurrency tidak dapat diperoleh karena hanya satu thread yang dapat
dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah
kernel thread yang bersangkutan dapat berjalan secara paralel pada
multiprosessor. Model Many to Many ditunjukkan pada gambar dibawah ini.

Gambar 2.5. Many to Many

Jenis-Jenis Proses Thread


Pada proses thread terdapat dua jenis thread, yaitu:
1. Single Thread Process
Sebuah proses tradisional atau heavyweight process mempunyai single thread
yang berfungsi sebagai pengendali. Dapat diartikan sebagai proses yang bekerja
secara berurutan sesuai dengan urutan masing-masing thread (terstruktur) dan
hanya mengerjakan satu tugas dalam satu waktu. Di bawah ini merupakan gambar
single thread.
Di bawah ini merupakan gambar single thread.

Gambar 2.1. Single Thread

2. Multithread Process
Merupakan satu atau beberapa thread yang dijalankan secara bersamaan
(multiproses), dimana masing-masing thread tersebut dijalankan pada jalur
masing-masing. Setiap thread pada multithread menjalankan kode atau script
program secara berurutan. Multithread dapat diartikan juga sebagai suatu proses
dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan
waktu.
Multithread sering pula disebut dengan multiproses atau multitasking pada
sistem operasi. Gambar multithread ditunjukkan pada gambar 2.2.

Gambar 2.2. Multitread


Banyak perangkat lunak yang berjalan pada PC modern dirancang secara
multithreading. Sebuah aplikasi biasanya diimplementasi sebagai proses yang
terpisah dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya
sebuah web browser mempunyai thread untuk menampilkan gambar atau
tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk
menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server
dapat mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau
web server berjalan sebagai proses yang hanya mempunyai single thread maka ia
hanya dapat melayani satu klien pada pada satu satuan waktu.
Bila ada klien lain yang ingin mengajukan permintaan maka ia harus
menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah
dengan membuat web server menjadi multithreading. Dengan ini maka sebuah
web server akan membuat thread yang akan mendengar permintaan klien, ketika
permintaan lain diajukan maka web server akan menciptakan thread lain yang
akan melayani permintaan tersebut.
Keuntungan Thread
Terdapat empat keuntungan utama dari program yang multithreading, yaitu sebagai
berikut:
1. Responsiveness
Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah
program terus berjalan meski pun sebagian dari program tersebut diblok atau
melakukan operasi yang panjang, karena itu dapat meningkatkan respons
kepada user. Sebagai contohnya dalam web browser yang multithreading, sebuah
thread dapat melayani permintaan user sementara thread lain berusaha
menampilkan image.
2. Resource sharing
Thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh
proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah
aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori
yang sama.
3. Economy
Dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori
dan sumber daya. Alternatifnya adalah dengan useran thread, karena thread
berbagi memori dan sumber daya proses yang memilikinya maka akan lebih
ekonomis untuk membuat dan context switch thread. Akan sulit untuk
mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan
dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih
lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali
dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama
dibandingkan context switch thread.
4. Utilization of multiprocessor architectures
Keuntungan dari multithreading dapat sangat meningkat pada arsitektur
multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas
processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan
setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga
menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang
dijalankan CPU pada satu-satuan waktu (satu-satuan waktu pada CPU biasa
disebut time slice atau quantum).
Kesimpulan Materi Thread

Thread adalah sebuah alur kontrol dari sebuah proses. Thread terbagi menjadi dua jenis
yaitu Single Thread dan Multithread. Dilihat dari kegunaannya multithread adalah thread
yang paling banyak dipakai akhir-akhir ini. Suatu proses yang multithreaded
mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber
daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur
multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak
diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread
di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi.
Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada
kernel thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan
kernel thread.

 Model many to one: memetakan beberapa user level thread hanya ke satu buah
kernel thread.
 Model one to one: memetakan setiap user thread ke dalam satu kernel thread.
berakhir.
 Model many to many: mengizinkan pengembang untuk membuat user thread
sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang
dapat dijadualkan oleh kernel dalam satu waktu.

Anda mungkin juga menyukai