0% menganggap dokumen ini bermanfaat (0 suara)
37 tayangan17 halaman

Makalah Thread

Thread merupakan unit dasar penggunaan CPU dalam suatu proses. Proses multithreading memungkinkan proses untuk melakukan beberapa tugas secara bersamaan dengan menggunakan beberapa thread. Terdapat dua jenis thread yaitu thread pengguna dan thread kernel. Model multithreading meliputi many-to-one, one-to-one, dan many-to-many.

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 DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
37 tayangan17 halaman

Makalah Thread

Thread merupakan unit dasar penggunaan CPU dalam suatu proses. Proses multithreading memungkinkan proses untuk melakukan beberapa tugas secara bersamaan dengan menggunakan beberapa thread. Terdapat dua jenis thread yaitu thread pengguna dan thread kernel. Model multithreading meliputi many-to-one, one-to-one, dan many-to-many.

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 DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 17

JUDUL MAKALAH

THREAD DALAM SISTEM OPERASI

Oleh:
Kelompok 4
Ida Bagus Adinara Pratama 2308561049
Ida Bagus Gede Widiastana Bawaskara 2308561097
Ida Bagus Made Andika Dwipramana 2308561121
I Gusti Agung Rangga Barbikas Sidemen 2308561136

PROGRAM STUDI INFORMATIKA


FAKULTAS MATEMATIKA DAN PENGETAHUAN
ALAM UNIVERSITAS UDAYANA
2024

0
KATA PENGANTAR

Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa, karena atas
limpahan rahmatnya penyusun dapat menyelesaikan makalah ini tepat waktu tanpa
ada halangan yang berarti dan sesuai dengan harapan.
Ucapan terima kasih kami sampaikan kepada bapak Dr. Made Agung
Raharja,M.Cs. sebagai dosen pengampu mata kuliah Sistem Operasi yang telah
membantu memberikan arahan dan pemahaman dalam penyusunan makalah ini.
Kami menyadari bahwa dalam penyusunan makalah ini masih banyak
kekurangan karena keterbatasan kami. Maka dari itu penyusun sangat mengharapkan
kritik dan saran untuk menyempurnakan makalah ini. Semoga apa yang ditulis dapat
bermanfaat bagi semua pihak yang membutuhkan.

1
DAFTAR ISI

Hlm
COVER ....................................................................................................... 0
KATA PENGANTAR……………………………………………………. 1
DAFTAR ISI……………………………………………………………… 2

BAB I: PENDAHULUAN
1.1 Latar Belakang …………………………………………………………. 3
1.2 Rumusan Masalah ……………………………………………………… 4
1.4 Tujuan Penulisan ………………………………………………….......... 5
BAB II: PEMBAHASAN
2.1 Pengenalan Thread…………………........................................................
2.2 Multithreading Models……………………………..……………………
2.3 Thread Libraries…………………………………………………………
2.3 Permasalahan dalam Thread…………………………………………….
BAB III: PENUTUP
3.1 Kesimpulan……………………………………………………………...
3.2 Saran…………………………………………………………………….
DAFTAR PUSTAKA………………………………………………………
LAMPIRAN (Jika Ada)……………………………………………………

2
BAB I
PENDAHULUAN

1.1 Latar Belakang


Makalah ini membahas konsep-konsep dasar terkait proses dalam sistem
operasi. Proses dalam sistem operasi merupakan fondasi dari semua komputasi yang
dilakukan oleh sebuah sistem komputer. Dalam konteks ini, pengetahuan tentang
konsep proses tidak hanya mencakup pemahaman tentang bagaimana proses dibuat
dan dihentikan, tetapi juga tentang bagaimana sistem operasi menjadwalkan dan
mengelola eksekusi proses-proses tersebut untuk memastikan efisiensi dan kinerja
sistem yang optimal.
Selain itu, pemahaman tentang operasi pada proses, proses yang saling
bekerjasama, dan komunikasi antar proses juga memiliki implikasi penting dalam
pengembangan aplikasi dan sistem yang kompleks. Dengan memahami dengan baik
konsep dan operasi pada proses, serta komunikasi antar proses, pengembang dan
administrator sistem dapat merancang dan mengelola sistem operasi dengan lebih
efektif dan efisien.

1.2 Rumusan Masalah


Rumusan masalah dituliskan dengan poin-poin sebagai berikut:
a. Apa itu Thread?
b. Membahas Multithreading Models dan fungsinya
c. Membahas Thread Libraries dan kegunaanya
d. Permasalahan dalam Thread

3
1.3 Tujuan Penulisan
a. Mendefinisikan thread, menjelaskan model-model multithreading,
mengevaluasi perpustakaan thread, dan menganalisis permasalahan yang
timbul dalam penggunaan thread.
b. Dengan fokus pada tujuan ini, penelitian akan memberikan pemahaman yang
mendalam tentang konsep thread, model-model multithreading, perpustakaan
yang tersedia, serta tantangan yang dihadapi dalam pengguna

4
BAB II
PEMBAHASAN

2.1 Pengenalan Thread

Saat menyelesaikan tugas secara digital, aplikasi komputer dapat membantu anda
menyelesaikan tugas secara efisien dan akurat, antara lain: Microsoft Word, Microsoft
Excel, kalkulator, catatan Evernote, dll. Ini berarti kita terus-menerus menggunakan aplikasi
di PC, ponsel, dan tablet kita. Semua aplikasi tersebut memiliki kegunaan yang berbeda
beda dan memiliki fitur yang spesifik

Namun, dari sudut pandang sistem operasi, semua aplikasi hanyalah proses. Setiap proses
dikendalikan oleh sistem operasi dengan struktur blok kendali proses (PCB). Setiap proses
pada papan sirkuit ini mempunyai komponen-komponen yang berisi informasi penting
tentang proses tersebut, seperti: Hal ini memungkinkan sistem operasi untuk
mengidentifikasi setiap proses dengan PID-nya

Thread adalah unit dasar penggunaan CPU


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

5
Pada prosesor dengan singlecore mengeksekusi proses yang memilki thread lebih dari satu,
maka CPU akan mengeksekusi thread-thread tersebut akan bergantian secara bersisipan
dalam mengeksesusi setiap threadnya. Seakan-akan sistem terdapat processing unit yang
banyak namun kenyataannya processing unit bergantian menjalankan tugas secara cepat
tanpa menyelesaikan masing-masing tugas. Hal ini disebut dengan concurrency.

Upaya untuk mendukung proses multithread dimulai, dan pengembangan teknologi baru
dimulai: prosesor multicore. Prosesor ini memiliki beberapa unit pemrosesan pada chip
prosesor. Oleh karena itu, sistem operasi ini mengenali bahwa sistem memiliki beberapa unit
pemrosesan dan dapat menggunakan prosesor tambahan tersebut untuk menjalankan
program dan proses. Teknologi ini dikembangkan karena kebutuhan sementara akan daya
komputasi yang lebih besar.

Upaya untuk mendukung proses multithread dimulai, dan pengembangan teknologi baru
dimulai: prosesor multicore. Prosesor ini memiliki beberapa unit pemrosesan pada chip
prosesor. Oleh karena itu, sistem operasi ini mengenali bahwa sistem memiliki beberapa unit
pemrosesan dan dapat menggunakan prosesor tambahan tersebut untuk menjalankan
program dan proses. Teknologi ini dikembangkan karena kebutuhan sementara akan daya
komputasi yang lebih besar. Sistem multi-core ini dapat melakukan pemrosesan paralel
proses eksekusi dengan lebih efektif dan efisien. Peran multicore dalam proses dengan
banyak thread adalah membagi thread dalam proses secara merata ke dalam setiap unit
pemrosesan

6
Contohnya jika suatu proses memilki 6 thread dalam eksekusinya dan dieksekusi dengan 2
core prosesor, maka setiap corenya dalam processornya akan mengeksekusi 3 thread secara
concurrent. Proses pembagian thread dalam proses kepada beberapa prosesing unit disebut
dengan parallelism, mengekseksi beberapa tugas secara bersamaan.

Sistem operasi mengintegrasikan konsep proses multithreading dengan beragam pendekatan


yang disesuaikan dengan kebutuhan dan karakteristiknya. Dalam implementasinya, 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. Keunggulan utama dari thread pengguna adalah kemampuan untuk membuat
dan mengendalikan thread secara cepat dan efisien. Ini disebabkan karena pustaka thread
pada tingkat pengguna menyediakan fasilitas yang memungkinkan pembuatan dan
penjadwalan thread dengan overhead yang relatif rendah. Meskipun demikian, meskipun
thread pengguna beroperasi pada tingkat pengguna, mereka tetap mendapat dukungan dari
kernel dalam hal manajemen sumber daya dan akses ke layanan sistem operasi tertentu.
7
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. Proses ini melibatkan interaksi
langsung dengan kernel dan memungkinkan sistem operasi untuk secara langsung mengatur
alokasi sumber daya dan menangani penjadwalan thread. Meskipun thread kernel
memberikan kontrol yang lebih langsung kepada sistem operasi, proses pembuatan dan
penjadwalan thread biasanya memakan waktu lebih lama daripada thread pengguna karena
melibatkan overhead yang lebih tinggi akibat interaksi langsung dengan kernel.

Dengan demikian, perbedaan antara thread pengguna dan thread kernel tidak hanya terletak
pada lokasi di mana mereka dikelola, tetapi juga pada kinerja, tingkat kontrol, dan overhead
yang terkait dengan masing-masing pendekatan tersebut.

2.2 MultiThreading Models


Ada tiga model dari MultiThreading, yaitu :

1. Model Many-to-One.

2. Model One-to-One.

3. Model Many-to-Man

8
1. Model Many-to-one

Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah
thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga
efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi
Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Kekurangannya
adalah ketika ada satu blocking systemc call, semua akan menjadi terblok juga. Contoh:
Solaris

2. Model One-to-One.

Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread.
Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap
pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika
mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi
sehingga biasanya jumlah thread dibatasi dalam sistem.
Contoh: Windows NT/XP/2000 , Linux, Solaris 9, OS/2.

9
3. Model Many-to-Many

Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread
kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan
developer membuat thread sebanyak yang ia mau 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 dan lebih efisien. Contoh : Solaris 2, IRIX, HPUX.

1
0
2.3 Pustaka Thread

Pustaka thread, atau yang lebih akrab dikenal sebagai Thread Library, 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. Dengan
demikian, pemanggilan fungsi tersebut lebih bersifat lokal dan tidak memerlukan akses ke
kernel. Meskipun proses pembuatan dan pengelolaan thread dapat dilakukan dengan cepat,
thread ini tetap memiliki dukungan dari kernel.

2. API Level Kernel : Pustaka thread diimplementasikan pada level kernel dan didukung
langsung oleh sistem operasi. Oleh karena itu, pemanggilan fungsi thread melibatkan system
call ke kernel. Tiga pustaka thread yang umum digunakan saat ini adalah POSIX Pthreads,
Java, dan Win32. Implementasi standar POSIX dapat dilakukan baik pada level pengguna
maupun level kernel, sementara Win32 beroperasi pada level kernel. API thread Java dapat
diimplementasikan menggunakan Pthreads atau Win32.

Pembatalan thread
adalah 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
1
1
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 thread
pools, 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:

1
2
2.4 Permasalahan dalam Thread

1. Deadlock : Deadlock terjadi ketika dua atau lebih thread saling menunggu untuk sumber
daya yang dikunci oleh thread lain, sehingga tidak ada yang dapat melanjutkan eksekusi.
Deadlock juga bisa diartikan sebagai kebuntuan.

Solusi untuk deadlock termasuk mengurangi penggunaan locking, memastikan urutan


penguncian yang konsisten, dan menggunakan mekanisme timeout.

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

3. Starvation : Starvation terjadi ketika satu atau beberapa thread terus-menerus gagal
mendapatkan akses ke sumber daya yang mereka perlukan karena prioritas yang lebih
rendah dibandingkan dengan thread lain.
Solusi untuk starvation termasuk menggunakan mekanisme penjadwalan yang adil, seperti
penjadwalan berbasis waktu atau penjadwalan berbasis prioritas yang dinamis.

4. Priority Inversion : Priority inversion terjadi ketika sebuah thread dengan prioritas rendah
mengunci sumber daya yang dibutuhkan oleh thread dengan prioritas tinggi, menyebabkan
thread dengan prioritas tinggi terblokir.

1
3
Solusi untuk priority inversion termasuk penggunaan mekanisme penguncian dengan
prioritas, seperti prioritized mutex, dan penggunaan mekanisme penjadwalan yang
mendukung inherit priority.

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

6. Fragmentasi Memori : Fragmentasi memori terjadi ketika penggunaan thread yang


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

1
4
BAB III
PENUTUP

3.1 Kesimpulan
Bagian ini berisi ringkasan dan simpulan dari seluruh pembahasan yang telah
dipaparkan di BAB II. Dalam kesimpulan tidak perlu memasukkan kutipan apapun.
Panjang kesimpulan dibatasi maksimal sebanyak 2 lembar. Kesimpulan dan seluruh
isi BAB III Penutup diketik dengan format margin 4 cm (kiri), 4 cm (atas), 3 cm
(kanan), dan 3 cm (bawah). font yang digunakan adalah Times New Roman ukuran 12
pt. dengan spasi ukuran 1.5. Judul BAB dan setiap sub-judul yang ada dalam BAB III
Penutup wajib diketik cetak tebal (bold).

1
5
DAFTAR PUSTAKA

https://socs.binus.ac.id/2020/12/13/thread-unit-pemanfaatan-cpu/

https://gustibgsbayu.medium.com/sistem-operasi-thread-c7fb4a35d89a

https://repository.dinus.ac.id/docs/ajar/Sister_3_Proses_dan_Thread.pdf

https://lms-paralel.esaunggul.ac.id/pluginfile.php?file=%2F403345%2Fmod_resource
%2Fcontent%2F3%2Fmodul%20online%205%20ccs210.pdf

http://digilib.politama.ac.id/libtama/repository/THREAD.pdf

https://medium-com.translate.goog/@rodbauer/understanding-programs-processes-
and-threads-fd9fdede4d88?
_x_tr_sl=en&_x_tr_tl=id&_x_tr_hl=id&_x_tr_pto=tc&_x_tr_hist=true

1
6

Anda mungkin juga menyukai