0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan18 halaman

Thread

Diunggah oleh

Andika Pramana / 28
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan18 halaman

Thread

Diunggah oleh

Andika Pramana / 28
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 18

UNIVERSITAS UDAYANA

THREAD

SISTEM OPERASI
Kelompok 4
049 Ida Bagus Adinara Pratama 136 I Gusti Agung Rangga Barbikas Sidemen
Strategi Kami

097 Ida Bagus Gede Widiastana B. 121 Ida Bagus Made Andika Dwipramana
Materi yang akan
di bahas
1 Definisi Thread 4 Pembatalan Thread

2 MultiThreading Models 5 Thread Pools

3 Pustaka Thread 6 Penjadwalan Thread

7 Permasalahan Thread
Definisi Thread
Thread merupakan unit terkecil dari eksekusi dalam sebuah program komputer. Dalam konteks
pemrograman, thread sering disebut sebagai "benang" yang memungkinkan suatu proses untuk
menjalankan tugas-tugas secara konkuren. Thread berbagi ruang memori dan sumber daya sistem
dengan proses utama tempatnya berjalan. Hal ini memungkinkan aplikasi untuk melakukan tugas-
tugas secara bersamaan, meningkatkan responsifitas dan kinerja program secara keseluruhan. Dengan
thread, program dapat melakukan operasi yang terpisah tanpa harus menunggu operasi sebelumnya
selesai, sehingga meningkatkan efisiensi dan kecepatan dalam menjalankan tugas-tugas yang
kompleks.
Thread
Setiap thread dalam suatu proses melakukan satu tugas (pekerjaan)
Dalam proses tradisional, setiap proses hanya memiliki satu thread, sehingga program
hanya dapat melakukan satu tugas dalam satu waktu. Namun, jika suatu proses memiliki
banyak thread, proses tersebut dapat melakukan banyak tugas secara bersamaan.Ini
disebut multithreading

terdapat dua jenis utama dari thread, yang masing-masing memiliki ciri khas dan
mekanisme yang berbeda:

1. Thread Pengguna : Thread ini dikelola melalui pustaka thread yang beroperasi pada tingkat
pengguna. Dalam konteks ini, proses pembuatan, penjadwalan, dan pengelolaan thread dilakukan
sepenuhnya dalam ruang pengguna tanpa perlu campur tangan langsung dari kernel.
2. Thread Kernel: Sebaliknya, thread kernel, seperti namanya, dikelola secara langsung oleh kernel
sistem operasi. Artinya, pembuatan, penjadwalan, dan manajemen thread dilakukan di dalam ruang
kernel oleh sistem operasi itu sendiri.
MultiThreading Models

Model multi-threading adalah pendekatan yang berbeda dalam mengelola


dan mengimplementasikan thread dalam suatu aplikasi atau sistem.
Ada tiga model dari MultiThreading, yaitu :

1. Model Many-to-One.
2. Model One-to-One.
3. Model Many-to-Man
Pustaka Thread
Pustaka thread, atau yang lebih akrab dikenal sebagai ThreadLibrary,
berperan dalam menyediakan antarmuka pemrograman aplikasi (API)
bagi pengembang untuk menciptakan dan mengelola thread. Terdapat
dua pendekatan dalam implementasi pustaka thread:
1. API Level Pengguna : Pustaka thread diimplementasikan pada level pengguna
tanpa dukungan dari kernel, sehingga pemanggilan fungsi tidak melibatkan
system call.

2. API Level Kernel : Pustaka thread diimplementasikan pada level kernel dan
didukung langsung oleh sistem operasi. Oleh karena itu, pemanggilan fungsi
thread melibatkan system callke kernel.
Pembatalan Thread

proses dimana sebuah thread dihentikan sebelum tugasnya


selesai. Misalnya, sebelum mematikan Java Virtual Machine
(JVM) pada program Java, semua thread yang sedang berjalan
harus dibatalkan terlebih dahulu. Ada dua cara utama untuk
melakukan pembatalan thread:

1. Pembatalan Asynchronous : Thread secara langsung


dibatalkan seketika.

2. Pembatalan Deferred : Thread secara periodik memeriksa


apakah harus dibatalkan atau tidak. Pendekatan ini
memungkinkan thread untuk memeriksa kondisi pembatalan
secara teratur dan membatalkan dirinya sendiri jika diperlukan.
Thread Pools

merupakan solusi untuk mengatasi masalah pembuatan dan


manajemen thread yang tidak efisien pada server web yang
menerapkan multithreading. Dengan menggunakan
threadpools, sejumlah thread dibuat dan dikelola saat proses
startup, kemudian ditempatkan dalam "kolam" dimana
mereka menunggu untuk menerima tugas. Ketika server
menerima permintaan, thread dari kolam tersebut dapat
diaktifkan untuk melayani permintaan tersebut. Setelah
menyelesaikan tugasnya, thread kembali ke dalam kolam
untuk menunggu tugas selanjutnya.
Penjadwalan Thread
adalah proses yang menentukan bagaimana thread akan dijalankan. Kebijakan penjadwalan ini
menentukan prioritas setiap proses dan bagaimana proses tersebut bergerak dalam antrian
penjadwalan. Dalam model many-to-many atau many-to-one multithreading, thread dapat
dijadwalkan menggunakan dua skema:

1. Process Contention Scope (PCS) : Thread pengguna dijadwalkan untuk berjalan pada
lightweight process (LWP) yang tersedia.

2. System Contention Scope (SCS) : SCS memilih satu dari banyak thread dan menjadwalkannya
ke satu thread tertentu (CPU/Kernel).

Permasalahan dalam penggunaan thread dapat mencakup berbagai hal, mulai dari deadlock
hingga race condition. Berikut adalah beberapa permasalahan umum yang sering muncul dalam
pengembangan perangkat lunak yang menggunakan thread, beserta pembahasannya:
Permasalahan Thread

1 Deadlock Solusi

Deadlock terjadi ketika dua atau Solusi untuk deadlock termasuk


lebih threadsaling menunggu untuk mengurangi penggunaan locking,
sumber daya yang dikunci oleh memastikan urutan penguncian yang
thread lain, sehingga tidak ada yang konsisten, dan menggunakan
dapat melanjutkan eksekusi. mekanisme timeout.
Deadlock juga bisa diartikan sebagai
kebuntuan.
Permasalahan Thread

2 Race Condition Solusi

Race condition terjadi ketika hasil Solusi untuk race condition termasuk
dari suatu proses bergantung pada penggunaan locking, penggunaan
urutan eksekusi dari dua atau lebih variabel kondisi, atau penggunaan
thread, dan hasil akhirnya tidak mekanisme sinkronisasi lainnya untuk
dapat diprediksi. mengatur akses ke sumber daya
bersama.
Permasalahan Thread

3 Starvation Solusi

Starvation terjadi ketika satu atau Solusi untuk starvation termasuk


beberapa thread terus-menerus menggunakan mekanisme
gagal mendapatkan akses ke sumber penjadwalan yang adil, seperti
daya yang mereka perlukan karena penjadwalan berbasis waktu atau
prioritas yang lebih rendah penjadwalan berbasis prioritas yang
dibandingkan dengan thread lain. dinamis.
Permasalahan Thread

4 Priority Inversion Solusi

Priority inversion terjadi ketika Solusi untuk priority inversion


sebuah thread dengan prioritas termasuk penggunaan mekanisme
rendah mengunci sumber daya yang penguncian dengan prioritas, seperti
dibutuhkan oleh thread dengan prioritizedmutex, dan penggunaan
prioritas tinggi, menyebabkan thread mekanisme penjadwalan yang
dengan prioritas tinggi terblokir. mendukung inherit priority.
Permasalahan Thread

5 Data Race Solusi

Data race terjadi ketika dua atau Solusi untuk data race termasuk
lebih threadmengakses dan menggunakan locking, penggunaan
memodifikasi data yang sama tanpa variabel atomik, atau penggunaan
sinkronisasi yang tepat, mekanisme sinkronisasi lainnya untuk
mengakibatkan hasil yang tidak memastikan akses yang aman ke data
konsisten. bersama.
Permasalahan Thread

6 Fragmentasi Memori Solusi

Fragmentasi memori terjadi ketika Solusi untuk fragmentasi memori


penggunaan thread yang berlebihan termasuk mengoptimalkan
mengakibatkan fragmentasi memori
penggunaan thread, mengelola alokasi
yang signifikan, yang dapat
mengurangi kinerja aplikasi dan memori dengan bijaksana, dan
meningkatkan overhead alokasi menggunakan teknik kompilasi yang
memori. efisien.
Kesimpulan

Thread merupakan inti dari eksekusi dalam program


komputer, memungkinkan aplikasi berjalan secara
konkuren dan meningkatkan kinerja. Pemilihan model
multi-threading yang tepat penting untuk
mengoptimalkan kinerja aplikasi dan menghindari
masalah. Dengan memahami konsep dasar thread dan
menerapkan prinsip-prinsip desain yang baik, aplikasi
dapat menjadi lebih tangguh dan responsif. Kolaborasi
tim juga krusial untuk mengatasi masalah thread dan
memastikan kinerja optimal aplikasi dan sistem.
UNIVERSITAS UDAYANA

TERIMA KASIH

SISTEM OPERASI

Anda mungkin juga menyukai