Thread memiliki dua karakteristik yang menjadi pembeda yaitu :
- Lightweight process
Terjadi karena thread memiliki beberapa propertis dari proses yang sedang berjalan - Multithreading
Memungkinkan banyak thread dalam proses yang sama.
Di dalam multi-threaded, sebuah proses didefenisikan sebagai unit sumber alokasi dan unit pencegahan. Hal hal tersebut diasosiasikan dengan proses:
- Alamat virtual yang memegang proses image.
- Akses yang aman ke prosesor, prosesor lainnya, file, dan sumber input-output.
Berikut merupakan salah satu contoh dari model thread.
Gambar di bawah akan menjelaskan perbedaan antara proses dan thread.
Pada single-thread, representasi dari proses termasuk proses blok kontrolnya dan space alamat user, sebagaiman user dan kernel menumpuk untuk memanage call/return dari eksekusi dari proses. Sementara proses berjalan, hal itu mengontrol register dari prosesor.
Pada multi-thread, masih terdapat single proses kontrol blok dan asosiasi alamat user dengan proses, tetapi sekarang ada pemisah untuk stack pada masing masing thread.
Implementasi dari thread itu sendiri memiliki keuntungan dan kerugian. Keuntungan dari penggunaan thread adalah tidak dibutuhkannya non blocking sistem call yang baru. Sedangkan, kerugiannya adalah biaya yang lebih mahal baik untuk membuat maupun menghancurkan thread tersebut.
Tabel di bawah akan mendeskripsikan relasi yang mungkin terjadi antar thread dan proses.
Keputusan penjadwalan CPU mungkin akan diambil ketika:
- Switch dari running menjadi waiting
- Switch dari running menjadi ready
- Switch dari waiting menjadi ready
- Ketika terjadi terminasi
Modul dispatcher memberikan kontrol pada CPU untuk proses yang telah dipilih dengan menggunakan skedul jangka pendek, hal tersebut termasuk:
> switch konteks
> switch user mode
> melompat ke lokasi tertentu di dalam program user untuk me-restart program tersebut.
Optimalisasi juga memiliki beberapa kriteria yaitu:
> Penggunaan CPU secara optimal
> Maximum throughput
> Minimum waktu pemakaian
> Minimum waktu tunggu
> Minimum waktu respon
Penjadwalan memiliki beberapa tujuan yaitu:
- All systems
> Memberikan setiap proses jumlah memory yang sama
> Menjaga keseimbangan sistem
> Memastikan semuanya terjamin - Batch systems
> Mampu mengerjakan perkerjaan sebanyak mungkin
> Minimalisasi waktu antara submisi dan terminasi
> Menjaga CPU tetap bekerja sepanjang waktu - Interactive system
> Merespon request dengan cepat
> Memenuhi ekspektasi user - Real-time system
> Menghindari hilangnya data
> Menghindari menurunnya kualitas
Beberapa algoritma yang bisa digunakan dalam melakukan scheduling:
Potensi dari performa dari multicore bergantung pada kemampuan untuk mengeksplotasi sumber daya yang ada secara efektif. Berikut rumus yang dapat digunakan untuk mengukur keoptimalan tersebut.
Berdasarkan sudut pandang Valve, opsi granulariti dari threading didefinisikan oleh hal hal berikut:
- Coarse threading
Modul individual diassign untuk individual prosesor. Dalam kasus search engine, hal ini dapat diartikan dengan meletakkan render pada satu prosesor, AI dan sebagainya. - Fine-grained threading
Banyak persamaan yang tersebar dalam multiple prosesor. Sebagai contoh, perulangan dapat dipecah menjadi jumlah yang lebih kecil. - Hybrid threading
Hal ini termasuk penggunaan seleksi untuk beberapa sistem dan single thread untuk thread lainnya.
Proses multi-threading memperoleh konkurensi tanpa mengalamai overhead menggunakan multiple proses. Thread di dalam proses yang sama dapat saling bertukar informasi melalui alamat dan memiliki akses untuk membagi sumber dari proses.
Sebuah proses pada linux direpresentasikan oleh task_struct struktur data. task_struct mengandung informasi di dalam beberapa kategori yaitu:
- State
State eksekusi dari sebuah proses (ready, executing, ready, suspended, stop, zombie). - Scheduling information
Informasi dibutuhkan oleh linux untuk menjadwalkan proses. Proses bisa jadi bersifat normal, real time dan memiliki prioritas. - Identifier
Setiap proses memiliki pengenal proses yang unik dan juga memiliki user dan kelompok pengenal. - Inter-process communication
Linux mendukung mekanisme IPC yang dapat ditemukan pada UNIX SVR4. - Times and timer
Termasuk waktu proses pembuatan dan jumlah waktu prosesor yang digunakan. Sebuah mungkin diasosiasikan dengan lebih banyak interval waktu. - File system
Termasuk pointer ke beberapa file yang dibuka oleh proses sebagaimana pointer menunjuk proses yang berjalan secara bersamaan. - Address space
Mendefinisikan alamat virtual yang menunjuk pada proses saat ini. - Processor-specific context
Register dan tumpukan informasi yang mengkostitusi konteks dari proses. - Running
Nilai proses ini akan dikorespondenkan dengan dua state.
Thunder Titanium Lights - A light beam - Titanium Arts
BalasHapusWith the titanium fidget spinner world's most advanced weapon mens titanium earrings system, it can produce light beams that give you great babyliss nano titanium Thunder Titanium Lights is a light beam device titanium dive knife that can take you titanium wood stove to a $22.99 · In stock