konsep proses - E

advertisement
KONSEP THREAD
KONSEP THREAD



Thread merupakan unit dasar dari
penggunaan CPU, yang terdiri dari
Thread_ID, program counter,register set,
dan stack.
Sebuah thread berbagi code section, data
section, dan sumber daya sistem operasi
dengan Thread lain yang dimiliki oleh
proses yang sama
Thread juga sering disebut lightweight
process.
KONSEP THREAD (cont.)
Gambar Thread
Keuntungan Thread
• Responsif
• Berbagai sumber daya
• Ekonomis
• Utilisasi arsitektur multiprosessor
THREAD KERNEL



Thread kernel didukung langsung oleh sistem
operasi. Pembuatan, penjadwalan, dan manajemen
thread dilakukan oleh kernel pada kernel space.
Thread diatur oleh kernel, karena itu jika sebuah
thread menjalankan blocking system call maka
kernel dapat menjadwalkan thread lain di aplikasi
untuk melakukan eksekusi.
Pada lingkungan multiprocessor, kernel dapat
menjadwal thread-thread pada processor yang
berbeda. Contoh sistem operasi yang mendukung
kernel thread adalah Windows NT, Solaris, Digital
UNIX.
MODEL MULTITHREADING

Many To One

One To One
MODEL MULTITHREADING
(cont.)

Many To Many
Keterangan


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
Green Threads dan GNU Portable Threads.
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.

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.
FORK DAN EXEC SYSTEM CALL


Jika fork dipanggil oleh salah satu thread
dalam proses:
1. Semua thread diduplikasi.
2. Hanya thread yang memanggil fork.
Jika Thread memanggil exec system call
maka program yang dispesifikasi di
parameter exec akan mengganti
keseluruhan proses termasuk thread dan
LWP.
THREAD CANCELLATION
Thread cancellation adalah pemberhentian thread
sebelum tugasnya selesai.
 Pemberhentian target thread dapat terjadi melalui
dua cara yang berbeda:
1. Asynchronous cancellation: suatu thread seketika
itu juga memberhentikan target thread.
2. Defered cancellation: target thread secara perodik
memeriksa apakah dia harus berhenti, cara ini
memperbolehkan target thread untuk
memberhentikan dirinya sendiri secara terurut.

THREAD KERNEL LINUX


Linus Torvalds mendefinisikan bahwa
sebuah thread adalah Context of
Execution (COE), yang berarti bahwa
hanya ada sebuah Process Control Block
(PCB) dan sebuah penjadwal yang
diperlukan. Linux tidak mendukung
multithreading,struktur data yang terpisah,
atau pun rutin kernel.
Linux menyediakan 2 system call yaitu
fork dan clone
THREAD KERNEL LINUX


fork memiliki fungsi untuk menduplikasi
proses dimana proses anak yang
dihasilkan bersifat independent.
clone memiliki sifat yang mirip dengan
fork yaitu sama-sama membuat duplikat
dari proses induk.
Tipe PENJADWALAN
Penjadwalan jangka pendek (short-termscheduller)
Penjadwalan ini bertugas menjadwalkan alokasi pemroses
diantara proses-proses ready di memori utama.
Penjadwalan jangka menengah (medium termscheduller )
Penjadwalan jangka menengah adalah menangani proses-proses
swapping (aktivitas pemindahan proses yang tertunda darimemory
utama ke memory sekunder).
Penjadwalan jangka panjang (long-termscheduller)
Penjadwalan jangka panjang bekerja terhadap antrian batch
(proses –proses dengan penggunaan sumberdaya yang intensif)
dan memilih Batch berikutnya yang harus di eksekusi.
Suspended
Blocked
Queue
Batch
Queue
Programprogram
interaktif
Ready
Queue
Penjadwalan
jangka pendek
CPU
Suspended
Ready
Queue
Gambar Tipe-tipe Penjadwalan
Gambar Tipe Penjadwalan dikaitkan
dengan State Proses
Download