Perbedaan Threads, SMP, Kernel di Windows dan Linux

advertisement
Perbedaan Threads, SMP, Kernel di
Windows dan Linux
1. Threads
Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini
hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.
Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar
memungkinkan sebuah proses untuk memiliki eksekusi multi-threads, agar dapat
secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses
yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan
lebih dari satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung
beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari
multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya
proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur
multiprosesor. 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.
Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang
berfungsi sebagai pengendali.
 Threads pada windows
Diimplementasikan sebagai objek . Proses executable dapat terdiri dari satu
thread atau lebih. Proses dan objek thread mempunyai kemampuan
sinkronisasi built-in.
Setya Uswatun Hasanah _115060801111076_TIF-E_UB
1
Status thread pada windows :
•
Ready
•
Standby
•
Running
•
Waiting
•
Transition
•
Terminated

Threads pada linux
Ketika pertama kali dikembangkan, Linux tidak didukung dengan threading di
dalam kernelnya, tetapi dia mendukung proses-proses sebagai entitas yang dapat
dijadwalkan melalui clone() system calls. Sekarang Linux mendukung
penduplikasian proses menggunakan system callclone() dan fork(). Clone()
mempunyai sifat mirip dengan fork(), kecuali dalam hal pembuatan copy dari
proses yang dipanggil dimana ia membuat sebuah proses yang terpisah yang
berbagi address space dengan proses yang dipanggil. Pembagian address
space dari parent
process memungkinkancloned
task bersifat
mirip
dengan thread yang terpisah. Pembagian address space ini dimungkinkan karena
proses direpresentasikan di dalam Kernel Linux. Di dalam Kernel Linux setiap
proses direpresentasikan sebagai sebuah struktur data yang unik. Jadi, daripada
menciptakan yang baru maka struktur data yang baru mengandung pointer yang
menunjuk ke tempat dimana data berada. Jadi ketika fork() dipanggil, proses yang
baru akan tercipta beserta duplikasi dari segala isi di struktur data di parent
process, namun ketika clone() dipanggil, ia tidak menduplikasi parent
processnya tetapi menciptakan pointer ke struktur data pada parent processyang
memungkinkan child process untuk berbagi memori dan sumber daya dari parent
processnya.
Project
LinuxThread
menggunakan system
call ini
untuk
mensimulasi thread di user space. Sayangnya, pendekatan ini mempunyai
beberapa kekurangan, khusunya di area signal handling, scheduling,
Setya Uswatun Hasanah _115060801111076_TIF-E_UB
2
daninterprocess synchronization primitive.Untuk meningkatkan kemampuan
Thread Linux, dukungan kernel dan penulisan ulang pustaka thread sangat
diperlukan. Dua project yang saling bersaing menjawab tantangan ini. Sebuah tim
yang terdiri dari pengembang dari IBM membuat NGPT (Next Generation POSIX
Threads). Sementara pengembang dari Red Hat membuat NPTL (Native POSIX
Thread Library).Sebenarnya Linux tidak membedakan antara proses dan thread.
Dalam kenyataannya, Linux lebih menggunakan istilah task dibandingkan proses
dan thread ketika merujuk kepada pengaturan alur pengontrolan di dalam
program.
Status proses pada linux :

Running

Interruptable

Uninterruptable

Stopped

Zombie
2. SMP ( Symetric Multiprosesing )
Symmetric multiprocessing (SMP) melibatkan multiprosesor arsitektur perangkat keras
komputer dimana dua atau lebih prosesor identik yang terhubung ke satu shared memori
utama dan dikendalikan oleh contoh OS tunggal. Most common multiprocessor systems
today use an SMP architecture. Paling umum sistem multiprosesor saat ini menggunakan
arsitektur SMP. In the case of multi-core processors, the SMP architecture applies to the
cores, treating them as separate processors. Dalam kasus multi-core prosesor, arsitektur
SMP berlaku untuk core, memperlakukan mereka sebagai prosesor terpisah. Processors may
be interconnected using buses, crossbar switches or on-chip mesh networks. Prosesor
mungkin saling berhubungan menggunakan bus, switch crossbar atau on-chip jaringan mesh.
Setya Uswatun Hasanah _115060801111076_TIF-E_UB
3
The bottleneck in the scalability of SMP using buses or crossbar switches is the bandwidth
and power consumption of the interconnect among the various processors, the memory,
and the disk arrays. Hambatan dalam skalabilitas SMP menggunakan bus atau switch
crossbar adalah konsumsi bandwidth dan kekuatan interkoneksi antara berbagai prosesor,
memori, dan array disk. Mesh architectures avoid these bottlenecks, and provide nearly
linear scalability to much higher processor counts at the sacrifice of programmability:
Arsitektur Mesh menghindari kemacetan, dan menyediakan skalabilitas hampir linier untuk
jumlah prosesor jauh lebih tinggi pada pengorbanan programabilitas.


SMP pada windows
Pada Windows, prosesor afinitas memberikan potensi kinerja cache dioptimalkan.
Secara khusus, dengan mengisolasi benang yang mengakses data yang sama untuk
satu prosesor, Anda dapat mengurangi jumlah invalidations data yang muncul dari
utas swapping antara beberapa core.
Multiprocessing simetris, atau SMP, adalah sistem operasi fitur yang memungkinkan
prosesor multicore untuk menjalankan satu contoh dari sistem operasi, terhubung
ke memori utama umum, dan mengeksekusi kode secara paralel. Dengan teknologi
ini, kita dapat dengan mudah memindahkan benang antara prosesor untuk
menyeimbangkan beban kerja secara efisien. Namun, real-time OS (RTOS) dukungan
untuk SMP tidak sepele karena perilaku deterministik RTOS harus dilestarikan untuk
memenuhi hard real-time kendala waktu sambil membagikan thread di prosesor
yang berbeda. Sebagai salah satu dari beberapa yang RTOSs dukungan SMP, OS yang
digunakan oleh LabWindows / CVI Real-Time ETS target sekarang membantu kita
mengambil keuntungan penuh dari perangkat keras multicore terbaru.
SMP pada linux
kernel Linux untuk mengeksploitasi SMP, namun sistem operasi saja tidak cukup.
Ingatlah bahwa kekuatan SMP terletak pada TLP. Tunggal monolitik (tanpa ulir)
program tidak dapat mengeksploitasi SMP, tapi SMP dapat dimanfaatkan dalam
program-program yang terdiri dari banyak benang yang dapat didistribusikan di
seluruh core. Sementara satu thread tertunda menunggu penyelesaian O I /, thread
lain dapat melakukan pekerjaan yang bermanfaat. Dengan cara ini, benang bekerja
dengan satu sama lain untuk menyembunyikan latency masing-masing.
Sistem Operasi portabel Interface (POSIX) benang adalah cara yang bagus untuk
membangun aplikasi threaded yang mampu mengambil keuntungan dari SMP.
Thread POSIX menyediakan mekanisme threading serta memori bersama. Ketika
program dipanggil yang menciptakan beberapa jumlah thread, setiap thread
disediakan tumpukan sendiri (variabel lokal dan negara) namun saham ruang data
dari orangtua. Semua thread yang dibuat berbagi ruang data yang sama, tetapi ini
adalah di mana masalahnya terletak.
Untuk mendukung multi-threaded akses ke memori bersama, mekanisme koordinasi
yang diperlukan. POSIX menyediakan fungsi mutex untuk membuat bagian kritis
yang menegakkan akses eksklusif ke sebuah obyek (sepotong memori) dengan
thread tunggal. Tidak melakukan hal dapat mengakibatkan memori rusak karena
manipulasi tidak sinkron oleh beberapa thread.
Setya Uswatun Hasanah _115060801111076_TIF-E_UB
4
3. Kernel
Sistem operasi sering disebut kernel, yaitu suatu program yang berjalan sepanjang
waktu (selain program aplikasi).
 Kernel pada windows
Windows adalah sistem operasi yang didukung oleh kernel thread. Kernel thread
disukung langsung oleh sistem operasi. Pembuatan , penjadwalan dan managemen
thread dilakukan oleh kernel pada kernel space. Karena pengaturan thread
dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread lebih
lambat dibandingkan user thread. Keuntungannya adalah thread diatur oleh kernel.
Karena itu jika sebuah thread menjalankan blocking system call maka kernel dapat
menjadwalkan thread lain di aplikasi untuk melakukan eksekusi. Keuntungan lainnya
adalah pada suatu lingkungan multiprosesor, kernel dapat menjadwal thread –
thread pada prosesor yang berbeda.
Pada sistem operasi Windows, kernel ditangani oleh file kernel32.dll. Kernel ini
menangani manajemen memori, operasi masukan / keluaran dan interrupt. Ketika
boot Windows, kernel32.dll di-load ke dalam spasi protected memory sehingga spasi
memorinya tidak digunakan oleh aplikasi lain. Apabila ada aplikasi yang mencoba
mengambil spasi memori kernel32.dll, akan muncul pesan kesalahan "invalid page
fault".

Kernel pada Linux
Kernel adalah inti dari sistem linux, yang mengontrol hardware dan membentuk
berbagai fungsi beraras rendah. Fungsi – fungsi yang dilaksanakan oleh kernell,
antara lain : pelayanan tunggal ( system call ) dan jam sistem, manajemen file, dan
penanganan security, pelayanan operasi masukkan dan keluaran, manajemen dan
penjadwalan proses, manajemen memori, melakukan kegiatan akutansi sistem,
melakukan penanganan kesalahan dan interupsi ( interrupt ).
Setya Uswatun Hasanah _115060801111076_TIF-E_UB
5
Gambar 1.4 mengilustrasikan operasi pemanggilan sistem ( system call ). Bagian –
bagian lain dari linux, seperti apalikasi dan shell, memanggil kernell untuk
membentuk layanan kepadanya. Linux menyediakan antarmuka antara bagian luar
kernell dan kernell sendiri, berupa system call.
Setiap pemanggilan sistem menginstrusikan kernell untuk membentuk layanan
tertentu sesuai permintaan program yang memanggilnya. Sebagai contoh kalau
suatu program hendak membaca data dari terminal, program menyampaikan
permintaan ke kernell. Kernell akan melakukan tindakan yang sesuai dengan
permintaan program kemudian menyampaikan hasilnya ke program.
kernel adalah program yang dimuat pada saat boot yang berfungsi sebagai interface
antara user-level program dengan hardware. Secara teknis linux hanyalah sebuah
kernel. Pogram lain seperti editor, kompilator dan manager yang disertakan dalam
paket (SuSE, RedHat, Mandrake, dll.) hanyalah distribusi yang melengkapi kernel
menjadi sebuah sistem operasi yang lengkap. Kernel membutuhkan konfigurasi agar
dapat bekerja secara optimal.
Rujukan





William Stallings: Operating Systems -- Fourth Edition, Prentice Hall, 2001.
http://translate.googleusercontent.com/translate_c?hl=id&langpair=en|id&rurl=tra
nslate.google.com&twu=1&u=http://en.wikipedia.org/wiki/Symmetric_multiprocess
ing&usg=ALkJrhjBBYUpQnB4u6b3Nyfiooz3T_v5zA
http://www.adipedia.com/2011/02/pentingnya-kernel-pada-sistem-operasi.html
http://tugassosistemoperasi.blogspot.com/2011/04/thread-dengan-linux-threaddengan-java.html
http://translate.google.co.id/translate?hl=id&langpair=en|id&u=http://zone.ni.com
/devzone/cda/tut/p/id/6728
Setya Uswatun Hasanah _115060801111076_TIF-E_UB
6
Download