Jumat, 08 Mei 2015

Process and Threads

Threads memungkinkan beberapa eksekusi untuk dijalankan dalam ruang lingkup dan waktu yang sama.
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:
  1. Switch dari running menjadi waiting
  2. Switch dari running menjadi ready
  3. Switch dari waiting menjadi ready
  4. 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:
  1. First Come First Serve

  2. Shortest Job First

  3. Interactive Scheduling Algorithm

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.

1 komentar:

  1. Thunder Titanium Lights - A light beam - Titanium Arts
    With 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

    BalasHapus