Sistem Operasi (Pertemuan 4)
Session 7
Threads
- Thread memungkinkan beberapa eksekusi berlangsung dalam lingkungan proses yang sama.
- Proses Ringan karena benang memiliki beberapa sifat dari proses.
- Multithreading memungkinkan beberapa thread dalam proses yang sama.
Benefit of Threads
- Menggunakan sedikit waktu untuk mengakhiri thread dari proses.
- Menggunakan sedikit waktu untuk beralih di antara dua thread dalam proses yang sama.
- Sejak thread dalam memori yang sama berbagi proses dan file, mereka membawa sedikit waktu untuk membuat thread baru dari suatu proses.
- Dapat berkomunikasi satu sama lain tanpa melibatkan kernel.
Thread State
Spawn:
- Biasanya, ketika sebuah proses baru di spawn, thread untuk proses yang juga di spawn.
- Thread dalam proses dapat spawn thread lain dalam proses yang sama, memberikan pointer instruksi dan argumen untuk thread baru. Thread baru disediakan dengan konteks mendaftar dan tumpukan ruang sendiri dan ditempatkan pada antrian yang siap.
Block:
- Ketika thread perlu menunggu untuk sebuah acara, itu akan memblokir (menyimpan register pengguna, program counter, dan tumpukan pointer).
- Prosesor mungkin sekarang beralih ke eksekusi benang siap lain yang sama atau proses yang berbeda.
Unblock:
- Ketika acara yang thread diblokir terjadi, benang tersebut akan dipindahkan ke antrian Siap.
Finish:
- Ketika thread selesai, konteks register dan tumpukan yang deallocated.
Session 8
Setting Thread Attributes
Beberapa sifat:
- Contention Scope
- Digunakan untuk mengatur properti penjadwalan baik di dalam proses atau pada sistem global.
- Stack Size & Stack Alamat
- Memungkinkan programmer untuk mengatur seberapa besar tumpukan harus dan di mana dalam memori itu harus.
- Detach State
- Anda dapat membuat sebuah thread sebagai terpisah vs joinable.
- Jadwal Kebijakan & jadwal Parameter.
- Jika sistem operasi Anda mendukungnya Anda dapat menguraikan apa penjadwalan yang harus dilakukan dalam proses antara Proses Ringan (LEP ini). Anda bahkan dapat memberikan parameter seperti prioritas.
Detached Threads
- Sebuah thread terpisah adalah salah satu yang tidak dilayani oleh thread lain.
- Ketika thread dihentikan, maka secara otomatis akan direklamasi oleh sistem operasi.
Terminating Thread
- pthread_exit ()
- Fungsi mengambil pointer ke data yang yang dikembalikan ketika thread bergabung.
When to Use Thread?
- Thread yang paling cocok untuk program yang membutuhkan untuk melakukan hal-hal secara bersamaan atau memiliki sejumlah tugas yang dapat diselesaikan secara paralel untuk menghasilkan hasil.
- Ketika menulis program anda menggunakan benang Anda harus mengatur program menjadi tugas diskrit yang dapat dijalankan secara bersamaan.
- Contoh:
- Masalah grafis komputer misalnya Ray tracing.
- Manipulasi matriks.
Jason Rahardja
1701325271/BX01
www.binusmaya.binus.ac.id
www.skyconnectiva.com