Threads SMP Mikrokernel

Embed Size (px)

Citation preview

Chapter 4www.themegallery.comwww.themegallery.comBahasa Bahasan n Proses dan Thread SMP Microkernel Bedah OS: Windows Solaris Linuxwww.themegallery.comenda enda Proses dan ThreadMultiThreadinunsionalitas Thread* Status thread* Sinkronisasi thread Contoh aplikasi : dobe PaeMaker Jenis thread :* User-Level Thread (ULT)* Kernel-Level Thread (KLT)* Kombinasi ULT dan KLT Model thread lainnya* Relasi Satu ke Banyak* Relasi Banyak ke Banyak SMP

MCROKERNEL BED OSwww.themegallery.comProses adalah proram dalam eksekusi.Suatu proses adalah lebih dari kode proram,dimana kadan kala dikenal sebaai baian tulisan. Proses jua termasuk aktivitas yan sedan terjadi, Suatu proses umumnya jua termasuk process stack, yan berisikan data temporer (seperti parameter metoda, address yan kembali, dan variabel lokal) dan sebuah data section, yan berisikanvariabel lobal.Process Processwww.themegallery.comKonsepKonsep Proses Proses* KEPEMLKN RESOURCE: Process memerlukan ruan alamat virtual untuk menyimpanprocess imae Process imae = proram + data + stack + PCB Unit terkecil yan dapat memiliki resource adalah proses atau task Resource = memori, /O channel, /O device, file, CPU, dll* PENJDWLN / EKSEKUS : Menikuti jalur eksekusi (trace) Eksekusi suatu proses bisa secara interleavin (selan-selin)denan proses lain Thread = pecahan dari suatu proses yan dapat dijadwalkanatau dieksekusi = lihtweiht process (LWP)www.themegallery.comdalah sebuah alur kontrol dari sebuah proses.Suatu proses yan multithreaded menandun beberapa perbedaan alur kontrol denan ruan alamat yan sama.Keuntunan dari multithreaded meliputi peninkatan respon dari user, pembaian sumber daya proses, ekonomis, dan kemampuan untuk menambil keuntunan dari arsitektur multiprosesor.Threads Threadswww.themegallery.comMultithreadin Multithreadin* Merupakan kemampuan sistem operasi dalammeneksekusi banyak thread yan berasal dari sebuah proses* OS Tradisional : Satu proses hanya terdiri dari satu thread MS-DOS : hanya satu proses dan tiap proses hanyasatu thread UNX tradisional : banyak proses, tetapi tiap proseshanya satu thread* OS Modern : Banyak proses dan tiap proses terdiri dari banyak thread Misal : Windows, Solaris, Linux, Mac OS, dan OS/2www.themegallery.comwww.themegallery.comModel ThreadThread Control Block (TCB) = isireister + prioritas + info threadlainnyawww.themegallery.comunsi Threads*Pembentukan suatu thread jauh lebih cepat daripadapembentukan proses baruPenelitian menunjukkan pembentukan thread 10xlebih cepat daripada pembentukan proses*Terminasi suatu thread jauh lebih cepat daripada terminasiproses* Perpindahan eksekusi antar thread jauh lebih cepat* ntar thread dapat berkomunikasi tanpamelibatkan kernel Sebaai efek dari penunaan share memori dan filewww.themegallery.comunsi Threads*Pembentukan suatu thread jauh lebih cepat daripadapembentukan proses baruPenelitian menunjukkan pembentukan thread 10xlebih cepat daripada pembentukan proses*Terminasi suatu thread jauh lebih cepat daripada terminasiproses* Perpindahan eksekusi antar thread jauh lebih cepat* ntar thread dapat berkomunikasi tanpamelibatkan kernel Sebaai efek dari penunaan share memori dan filewww.themegallery.comContoh PenunaanContoh Penunaan Threads Threads* ktifitas foreround danbackround* MS Excel : tiap satu tuas dilakukan oleh satu thread- Tampilkan menu- Baca inputan dari user- Eksekusi perintah user- Update data*Pemrosesan synchronous* MS Word : proteksi data jika listrik tiba-tiba padam- da thread yan tuasnya khusus untuk melakukanpenyimpanan data dari RM ke harddisk secara periodik-Jadwal thread lansun dikendalikan oleh sistem operasiwww.themegallery.comContoh PenunaanContoh Penunaan Threads Threads*Percepatan eksekusi- da thread yan bertuas melakukan penolahan datadan dalam waktu bersamaan ada thread yan bertuasmenambil data berikutnya yan akan diolah-ile server* Setiap ada request dari user dibentuk satu thread baru* Bila request telah selesai, maka thread diterminasi*Struktur proram Modular- Thread diterapkan pada aplikasi denan berbaai macamaktifitas dan bermacam -macam input dan outputwww.themegallery.comSinkronisasi Threads Sinkronisasi Threads*Thread menunakan ruan alamat memori yan samamaka bila terjadi perubahan data pada suatu resourcedapat mempenaruhi thread yan lain*Baaimana aar antar thread tidak salin menanudan tidak salin memperebutkan resource ?- Diunakan metode sinkronisasi yan mirip denansinkronisasi yan diunakan pada proseswww.themegallery.comContoh plikasi : dobeContoh plikasi : dobe Paemaker Paemaker* dobe PaeMakermerupakan aplikasi untuk menulis,merancan, dan menhasilkandesktop publishing* plikasi berjalan pada sharedsystem pada sistem operasi OS/2* Terdiri dari 3 thread yanselalu aktif :- Service thread- Event-handlin thread- Screen-redraw threadwww.themegallery.comJenis Threads Jenis Threads* User - Level Thread (ULT)- Semua manajemen thread dilakukan oleh proramaplikasi- Tidak ada code proram untuk menatur threadpada proram kernel* Kernel-Level Thread (KLT)- Kernel supported threads = lihtweiht process- Semua manajemen thread dilakukan oleh kernel- Tidak ada code proram untuk menatur threadpada proram aplikasiwww.themegallery.comUser Level Threads (ULT) User Level Threads (ULT)*Jumlah thread sudah direncanakan sejakmembuat proram aplikasi* Terdapat thread library padakode proram*Relasi antara thread user : threadkernel adalah M:1* si thread library adalahkode proram untuk :- Membentuk dan menhapus thread- Melewatkan pesan dan data antar thread- Menjadwalkan eksekusi thread- Menyimpan dan menambil konteks thread* Contoh OS: POSX (Pthread), Mach (C-thread), danSolaris 2 (U-thread)www.themegallery.comUser Level Threads (ULT) User Level Threads (ULT)* Prosedur eksekusi ULT- Mula-mula proram aplikasi dieksekusi hanya denan satuthread-Pada saat aplikasi tersebut dieksekusi thread berikutnyadibuat (bila diperlukan)*Pembuatan thread baru dilakukan denan caramemanil utility yan ada di thread library*Pada saat library dieksekusi > konteks (user reister, PC,dan stack pointer) thread yan sedanrunnin disimpan* Thread library membuat struktur data baru untuk setiapthread yan dibentuk* Setelah thread library selesai >konteks thread yan www.themegallery.comContoh hub. antara status ULTdenan status ProsesContoh hub. antara status ULTdenan status Proseswww.themegallery.comKernel Level Threads (KLT) Kernel Level Threads (KLT)*Jumlah thread sudahdirencanakan sejak membuat proram aplikasi*Kernel menanani isi konteksproses dan setiap thread*Penjadualan bukan berbasis padaproses tetapi berbasis pada thread* Relasi antara thread user :thread kernel adalah 1:1* Model KLT diunakan pada sistemoperasi Windows NT, Windows 2000,Solaris 2, BeOS, Tru64 UNX, OS/2www.themegallery.comKelebihan KLT dibandin ULTKelebihan KLT dibandin ULT* Thread-thread yan berasal dari sebuah proses dapatdieksekusi pada prosesor berbeda secara bersamaan* Thread yan melakukan service call tidakmenyebabkan proses terblok, thread lainnya dalamsatu proses masih dapat dieksekusi* Routine kernel dapat terdiri dari banyak threadwww.themegallery.comKekuranan KLT dibandin ULT Kekuranan KLT dibandin ULT* Perpindahan eksekusi dari satu thread ke threadlainnya menyebabkan overhead akibat mode switch* loritma penjadwalan eksekusi suatu aplikasi harusmenikuti aloritma penjadwalan sistem operasi- Tidak fleksibel* KLT tidak dapat dijalankan pada sistem operasiberbeda-beda, karena terantun pada kernelmasin-masinwww.themegallery.comKombinasi ULT dan KLT Kombinasi ULT dan KLT* Pembentukan thread dilakukanpada aplikasi (user space)* Penjadualan dan sinkronisasidilakukan pada level aplikasi* Beberapa thread ULT dari sebuahaplikasi dipetakan ke sejumlahthread KLT (jumlahnya sama ataulebih kecil)* Relasi antara thread user :thread kernel adalah M:N* Model kombinasi diunakan padasistem operasi Solaris 2, RX,P-UX, dan Tru64 UNXwww.themegallery.comKelebihan kombinasi ULT dan KLT Kelebihan kombinasi ULT dan KLT* Prorammer dapat menatur jumlah KLTberdasarkan aplikasi atau mesin yan akandiunakan untuk mendapatkan hasil optimum* Beberapa thread dari sebuah aplikasi dapatdieksekusi secara bersamaan pada sistemmultiprocessor* Thread yan melakukan system call (perlu /O device)tidak menyebabkan proses terblok* Performansinya lebih baik dibandin ULT maupun KLT